> ## Documentation Index
> Fetch the complete documentation index at: https://tokenterminal.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Metrics

> TVL, Fees, Revenue, Token incentives, Active users and sector-specific volume at four levels.

A project is the company or protocol behind one or more apps: Uniswap is a project, `uniswap-v3` one of its apps. Four tables carry the same measures at four levels: one row per day per project, project and chain, app, and app and chain. Every measure is in USD, and an empty cell means no figure for that day, not zero.

## Tables

<Tabs>
  <Tab title="Project">
    One row per `(project_id, timestamp)`, in `metrics.projects_daily`, since 2020-05. Everything the project runs, combined: gas from its chains and trading fees from its apps arrive added into a single fee figure.

    <table>
      <thead>
        <tr>
          <th width="280">Column</th>
          <th width="130">Type</th>
          <th>Description</th>
        </tr>
      </thead>

      <tbody>
        <tr>
          <td><code>timestamp</code></td>
          <td><code>TIMESTAMP</code></td>
          <td>The day, truncated to UTC midnight. Partition column.</td>
        </tr>

        <tr>
          <td><code>project\_id</code></td>
          <td><code>STRING</code></td>
          <td>Project the row measures.</td>
        </tr>

        <tr>
          <td><code>tvl</code></td>
          <td><code>BIGNUMERIC</code></td>
          <td>Value locked in the project's contracts at day end, in USD.</td>
        </tr>

        <tr>
          <td><code>trading\_volume</code></td>
          <td><code>BIGNUMERIC</code></td>
          <td>Cash value of the trades that took place, in USD.</td>
        </tr>

        <tr>
          <td><code>active\_loans</code></td>
          <td><code>BIGNUMERIC</code></td>
          <td>Value of loans outstanding at day end, in USD.</td>
        </tr>

        <tr>
          <td><code>notional\_trading\_volume</code></td>
          <td><code>BIGNUMERIC</code></td>
          <td><strong>In progress.</strong> Face value of perpetual contracts traded, in USD.</td>
        </tr>

        <tr>
          <td><code>assets\_staked</code></td>
          <td><code>BIGNUMERIC</code></td>
          <td><strong>In progress.</strong> Value staked at day end, in USD.</td>
        </tr>

        <tr>
          <td><code>fees</code></td>
          <td><code>FLOAT64</code></td>
          <td>Total fees users paid, in USD. Chain gas plus app trading fees.</td>
        </tr>

        <tr>
          <td><code>revenue</code></td>
          <td><code>FLOAT64</code></td>
          <td>Fees the project kept, in USD.</td>
        </tr>

        <tr>
          <td><code>token\_incentives</code></td>
          <td><code>FLOAT64</code></td>
          <td><strong>In progress.</strong> Value of the project's own token paid out as rewards, in USD.</td>
        </tr>

        <tr>
          <td><code>active\_users</code></td>
          <td><code>INT64</code></td>
          <td><strong>In progress.</strong> Distinct addresses that used the project that day.</td>
        </tr>
      </tbody>
    </table>
  </Tab>

  <Tab title="Project × chain">
    One row per `(project_id, chain_id, timestamp)`, in `metrics.projects_chains_daily`, since 2020-05. This is where a chain's own numbers meet the project that runs it.

    <table>
      <thead>
        <tr>
          <th width="280">Column</th>
          <th width="130">Type</th>
          <th>Description</th>
        </tr>
      </thead>

      <tbody>
        <tr>
          <td><code>timestamp</code></td>
          <td><code>TIMESTAMP</code></td>
          <td>The day, truncated to UTC midnight. Partition column.</td>
        </tr>

        <tr>
          <td><code>project\_id</code></td>
          <td><code>STRING</code></td>
          <td>Project the row measures.</td>
        </tr>

        <tr>
          <td><code>chain\_id</code></td>
          <td><code>STRING</code></td>
          <td>Chain the row measures.</td>
        </tr>

        <tr>
          <td><code>tvl</code></td>
          <td><code>BIGNUMERIC</code></td>
          <td>Value locked in the project's contracts on the chain at day end, in USD.</td>
        </tr>

        <tr>
          <td><code>trading\_volume</code></td>
          <td><code>BIGNUMERIC</code></td>
          <td>Cash value of the trades that took place on the chain, in USD.</td>
        </tr>

        <tr>
          <td><code>active\_loans</code></td>
          <td><code>BIGNUMERIC</code></td>
          <td>Value of loans outstanding on the chain at day end, in USD.</td>
        </tr>

        <tr>
          <td><code>notional\_trading\_volume</code></td>
          <td><code>BIGNUMERIC</code></td>
          <td><strong>In progress.</strong> Face value of perpetual contracts traded on the chain, in USD.</td>
        </tr>

        <tr>
          <td><code>assets\_staked</code></td>
          <td><code>BIGNUMERIC</code></td>
          <td><strong>In progress.</strong> Value staked on the chain at day end, in USD.</td>
        </tr>

        <tr>
          <td><code>fees</code></td>
          <td><code>FLOAT64</code></td>
          <td>Total fees users paid on the chain, in USD.</td>
        </tr>

        <tr>
          <td><code>revenue</code></td>
          <td><code>FLOAT64</code></td>
          <td>Fees the project kept on the chain, in USD.</td>
        </tr>

        <tr>
          <td><code>token\_incentives</code></td>
          <td><code>FLOAT64</code></td>
          <td><strong>In progress.</strong> Value of the project's own token paid out as rewards on the chain, in USD.</td>
        </tr>

        <tr>
          <td><code>active\_users</code></td>
          <td><code>INT64</code></td>
          <td><strong>In progress.</strong> Distinct addresses that used the project on the chain that day.</td>
        </tr>
      </tbody>
    </table>
  </Tab>

  <Tab title="App">
    One row per `(app_id, timestamp)`, in `metrics.apps_daily`, since 2020-05. Details such as which project runs the app and which market sectors it belongs to live in `dimensions.apps`.

    <table>
      <thead>
        <tr>
          <th width="280">Column</th>
          <th width="130">Type</th>
          <th>Description</th>
        </tr>
      </thead>

      <tbody>
        <tr>
          <td><code>timestamp</code></td>
          <td><code>TIMESTAMP</code></td>
          <td>The day, truncated to UTC midnight. Partition column.</td>
        </tr>

        <tr>
          <td><code>app\_id</code></td>
          <td><code>STRING</code></td>
          <td>App the row measures.</td>
        </tr>

        <tr>
          <td><code>tvl</code></td>
          <td><code>BIGNUMERIC</code></td>
          <td>Value locked in the app's contracts at day end, in USD.</td>
        </tr>

        <tr>
          <td><code>trading\_volume</code></td>
          <td><code>BIGNUMERIC</code></td>
          <td>Cash value of the trades that took place on the app, in USD.</td>
        </tr>

        <tr>
          <td><code>active\_loans</code></td>
          <td><code>BIGNUMERIC</code></td>
          <td>Value of loans outstanding on the app at day end, in USD.</td>
        </tr>

        <tr>
          <td><code>notional\_trading\_volume</code></td>
          <td><code>BIGNUMERIC</code></td>
          <td><strong>In progress.</strong> Face value of perpetual contracts traded on the app, in USD.</td>
        </tr>

        <tr>
          <td><code>assets\_staked</code></td>
          <td><code>BIGNUMERIC</code></td>
          <td><strong>In progress.</strong> Value staked on the app at day end, in USD.</td>
        </tr>

        <tr>
          <td><code>fees</code></td>
          <td><code>FLOAT64</code></td>
          <td>Fees paid by users of the app, in USD.</td>
        </tr>

        <tr>
          <td><code>revenue</code></td>
          <td><code>FLOAT64</code></td>
          <td>Fees the app kept, in USD.</td>
        </tr>

        <tr>
          <td><code>token\_incentives</code></td>
          <td><code>FLOAT64</code></td>
          <td><strong>In progress.</strong> Value of the project's own token paid out as rewards through the app, in USD.</td>
        </tr>

        <tr>
          <td><code>active\_users</code></td>
          <td><code>INT64</code></td>
          <td><strong>In progress.</strong> Distinct addresses that used the app that day.</td>
        </tr>
      </tbody>
    </table>
  </Tab>

  <Tab title="App × chain">
    One row per `(app_id, chain_id, timestamp)`, in `metrics.apps_chains_daily`, since 2020-05: the narrowest level published.

    <table>
      <thead>
        <tr>
          <th width="280">Column</th>
          <th width="130">Type</th>
          <th>Description</th>
        </tr>
      </thead>

      <tbody>
        <tr>
          <td><code>timestamp</code></td>
          <td><code>TIMESTAMP</code></td>
          <td>The day, truncated to UTC midnight. Partition column.</td>
        </tr>

        <tr>
          <td><code>app\_id</code></td>
          <td><code>STRING</code></td>
          <td>App the row measures.</td>
        </tr>

        <tr>
          <td><code>chain\_id</code></td>
          <td><code>STRING</code></td>
          <td>Chain the row measures.</td>
        </tr>

        <tr>
          <td><code>tvl</code></td>
          <td><code>BIGNUMERIC</code></td>
          <td>Value locked in the app's contracts on the chain at day end, in USD.</td>
        </tr>

        <tr>
          <td><code>trading\_volume</code></td>
          <td><code>BIGNUMERIC</code></td>
          <td>Cash value of the trades that took place on the app and chain, in USD.</td>
        </tr>

        <tr>
          <td><code>active\_loans</code></td>
          <td><code>BIGNUMERIC</code></td>
          <td>Value of loans outstanding on the app and chain at day end, in USD.</td>
        </tr>

        <tr>
          <td><code>notional\_trading\_volume</code></td>
          <td><code>BIGNUMERIC</code></td>
          <td><strong>In progress.</strong> Face value of perpetual contracts traded on the app and chain, in USD.</td>
        </tr>

        <tr>
          <td><code>assets\_staked</code></td>
          <td><code>BIGNUMERIC</code></td>
          <td><strong>In progress.</strong> Value staked on the app and chain at day end, in USD.</td>
        </tr>

        <tr>
          <td><code>fees</code></td>
          <td><code>FLOAT64</code></td>
          <td>Fees paid by users of the app on the chain, in USD.</td>
        </tr>

        <tr>
          <td><code>revenue</code></td>
          <td><code>FLOAT64</code></td>
          <td>Fees the app kept on the chain, in USD.</td>
        </tr>

        <tr>
          <td><code>token\_incentives</code></td>
          <td><code>FLOAT64</code></td>
          <td><strong>In progress.</strong> Value of the project's own token paid out as rewards through the app on the chain, in USD.</td>
        </tr>

        <tr>
          <td><code>active\_users</code></td>
          <td><code>INT64</code></td>
          <td><strong>In progress.</strong> Distinct addresses that used the app on the chain that day.</td>
        </tr>
      </tbody>
    </table>
  </Tab>
</Tabs>

## Sample queries

<Tabs>
  <Tab title="Project">
    **Read one project's daily Fees, Revenue and TVL.**

    ```sql theme={null}
    select
        timestamp,
        fees,
        revenue,
        tvl
    from `metrics.projects_daily`
    where project_id = 'hyperliquid'
      and timestamp >= timestamp('2026-06-01')
    order by timestamp
    ```
  </Tab>

  <Tab title="Project × chain">
    **Break one project's fees down by chain on one day.** The project-and-chain table is where a chain's own numbers meet the project that runs it.

    ```sql theme={null}
    select
        chain_id,
        fees,
        revenue
    from `metrics.projects_chains_daily`
    where project_id = 'hyperliquid'
      and timestamp = timestamp('2026-08-01')
    order by fees desc
    ```
  </Tab>

  <Tab title="App">
    **Rank apps by fees over one week.**

    ```sql theme={null}
    select
        app_id,
        sum(fees) as fees,
        sum(revenue) as revenue
    from `metrics.apps_daily`
    where timestamp >= timestamp('2026-08-01')
      and timestamp < timestamp('2026-08-08')
    group by app_id
    order by fees desc
    ```
  </Tab>

  <Tab title="App × chain">
    **Split one app's fees by chain over one week.** Dropping the chain filter and grouping by chain turns the narrowest table into a comparison across every chain the app runs on.

    ```sql theme={null}
    select
        chain_id,
        sum(fees) as fees,
        sum(revenue) as revenue
    from `metrics.apps_chains_daily`
    where app_id = 'uniswap-v3'
      and timestamp >= timestamp('2026-08-01')
      and timestamp < timestamp('2026-08-08')
    group by chain_id
    order by fees desc
    ```
  </Tab>
</Tabs>

## Notes

`trading_volume`, `notional_trading_volume`, `fees`, `revenue` and `token_incentives` measure a day's activity and add up freely: a weekly figure is seven daily rows added together, and a project figure is its apps added together plus whatever its own chains contributed. `tvl`, `active_loans` and `assets_staked` are values standing at day end, so a weekly figure for them is a choice of day rather than a sum. Counts of distinct addresses never add up at all.

A daily sector figure is a `group by` over the project table joined to `dimensions.projects`; group by `primary_market_sector`, since joining through `unnest(market_sectors)` counts a project once per tag it carries. [Metric definitions](/docs/catalog/metric-definitions) holds the rule for every measure as data you can query.
