> ## 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.

> ## Agent Instructions
> To query the Token Terminal data catalog, read https://tokenterminal.com/docs/catalog/agents-manual.md first. It is the whole catalog as one page: table naming grammar, key columns, partition and cluster rules, units, additivity, and the tables that are documented but not served yet.
> Never query a catalog table on a time bound alone. Also filter its cluster key, which you read from INFORMATION_SCHEMA.COLUMNS; an empty result means the object is a view, whose pruning contract is on its page. Compute is billed to the caller's own Google Cloud project.

# Metrics

> TVL, Fees, Revenue, Token incentives, Active users and sector-specific volume per app and per app on one chain.

TVL, trading volume, fees, revenue, token incentives and active users. One row per thing per day, at two grains: app, and app and chain.

## Tables

> [!NOTE]
>
> Daily DEX pool trading volume, Hyperliquid trading contributions and bridge transfer volumes cover closed UTC days and follow the availability cutoff of each contributing chain.

**App**

One row per app per day. Where a table has a `provenance` column, `ladder` marks a figure summed from the app's own markets and pools and `projected` the project's series attributed to the app.

<table>
  <thead>
    <tr>
      <th width="330">Table</th>
      <th width="190">Value column</th>
      <th>What it holds</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>`metrics_apps.tvl_daily`</td>
      <td>`tvl`</td>
      <td>Total value locked in the app.</td>
    </tr>

    <tr>
      <td>`metrics_apps.trading_volume_daily`</td>
      <td>`trading_volume`</td>
      <td>Value of trades executed by the app, measured on the quote leg at execution price.</td>
    </tr>

    <tr>
      <td>`metrics_apps.active_loans_daily`</td>
      <td>`active_loans`</td>
      <td>USD value of open loans (outstanding borrows) across the app's lending markets.</td>
    </tr>

    <tr>
      <td>`metrics_apps.assets_staked_daily`</td>
      <td>`assets_staked`</td>
      <td>USD value of assets staked with the app.</td>
    </tr>

    <tr>
      <td>`metrics_apps.fees_daily`</td>
      <td>`fees`</td>
      <td>Fees paid by users of the app across every chain it runs on.</td>
    </tr>

    <tr>
      <td>`metrics_apps.fees_supply_side_daily`</td>
      <td>`fees_supply_side`</td>
      <td>Fees the app passed through to builders and, on HIP-3 markets, to market deployers.</td>
    </tr>

    <tr>
      <td>`metrics_apps.revenue_daily`</td>
      <td>`revenue`</td>
      <td>Fees the app retained across every chain it runs on.</td>
    </tr>

    <tr>
      <td>`metrics_apps.token_incentives_daily`</td>
      <td>`token_incentives`</td>
      <td>Value of tokens the app distributed as incentives.</td>
    </tr>

    <tr>
      <td>`metrics_apps.outstanding_supply_daily`</td>
      <td>`outstanding_supply`</td>
      <td>USD value of borrowed principal outstanding.</td>
    </tr>

    <tr>
      <td>`metrics_apps.bridged_supply_daily`</td>
      <td>`bridged_supply`</td>
      <td>USD value of the app's stablecoins held outside the chain they were issued on.</td>
    </tr>

    <tr>
      <td>`metrics_apps.buybacks_daily`</td>
      <td>`buybacks`</td>
      <td>USD value of the app's own tokens repurchased from the market.</td>
    </tr>

    <tr>
      <td>`metrics_apps.bridge_deposits_daily`</td>
      <td>`bridge_deposits`</td>
      <td>USD value of assets held in the app's bridge contracts on the main chain.</td>
    </tr>

    <tr>
      <td>`metrics_apps.transaction_volume_daily`</td>
      <td>`transaction_volume`</td>
      <td>USD value of transactions processed by the app.</td>
    </tr>

    <tr>
      <td>`metrics_apps.open_interest_daily`</td>
      <td>`open_interest`</td>
      <td>USD notional value of all open positions on the app's derivatives markets.</td>
    </tr>

    <tr>
      <td>`metrics_apps.trade_count_daily`</td>
      <td>`trade_count`</td>
      <td>Number of trades executed on the app.</td>
    </tr>

    <tr>
      <td>`metrics_apps.cost_of_revenue_daily`</td>
      <td>`cost_of_revenue`</td>
      <td>Direct supply-side cost of the app's revenue.</td>
    </tr>

    <tr>
      <td>`metrics_apps.capital_deployed_daily`</td>
      <td>`capital_deployed`</td>
      <td>USD value of user deposits the app has allocated into investments.</td>
    </tr>

    <tr>
      <td>`metrics_apps.flash_loan_volume_daily`</td>
      <td>`flash_loan_volume`</td>
      <td>USD value of flash loans taken from the app.</td>
    </tr>

    <tr>
      <td>`metrics_apps.expenses_daily`</td>
      <td>`expenses`</td>
      <td>What the app spent, in USD: cost of revenue, token incentives and operating expenses, wherever each is reported onchain.</td>
    </tr>

    <tr>
      <td>`metrics_apps.operating_expenses_daily`</td>
      <td>`operating_expenses`</td>
      <td>Onchain operating expenses of the app, excluding token incentives.</td>
    </tr>

    <tr>
      <td>`metrics_apps.liquidation_volume_daily`</td>
      <td>`liquidation_volume`</td>
      <td>USD value of debt covered in the app's liquidations.</td>
    </tr>

    <tr>
      <td>`metrics_apps.tradeable_pair_count_daily`</td>
      <td>`tradeable_pair_count`</td>
      <td>Number of token pairs available for trading on the app.</td>
    </tr>

    <tr>
      <td>`metrics_apps.tradeable_asset_count_daily`</td>
      <td>`tradeable_asset_count`</td>
      <td>Number of tokens tradeable on the app.</td>
    </tr>

    <tr>
      <td>`metrics_apps.daily_active_users_daily`</td>
      <td>`daily_active_users`</td>
      <td>Distinct users active on the app per day.</td>
    </tr>

    <tr>
      <td>`metrics_apps.weekly_active_users_daily`</td>
      <td>`weekly_active_users`</td>
      <td>Distinct users active on the app over a trailing week.</td>
    </tr>

    <tr>
      <td>`metrics_apps.monthly_active_users_daily`</td>
      <td>`monthly_active_users`</td>
      <td>Distinct users active on the app over a trailing month.</td>
    </tr>
  </tbody>
</table>

**App × chain**

One row per app and chain per day. Each figure sits on the chain it comes from. Where a table has a `provenance` column, `ladder` marks a figure summed from the app's own markets and pools on that chain and `projected` the project's series attributed to the app.

<table>
  <thead>
    <tr>
      <th width="380">Table</th>
      <th width="190">Value column</th>
      <th>What it holds</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>`metrics_apps_by_chain.tvl_daily`</td>
      <td>`tvl`</td>
      <td>Total value locked in the app.</td>
    </tr>

    <tr>
      <td>`metrics_apps_by_chain.trading_volume_daily`</td>
      <td>`trading_volume`</td>
      <td>Value of trades executed by the app, measured on the quote leg at execution price.</td>
    </tr>

    <tr>
      <td>`metrics_apps_by_chain.active_loans_daily`</td>
      <td>`active_loans`</td>
      <td>USD value of open loans (outstanding borrows) across the app's lending markets.</td>
    </tr>

    <tr>
      <td>`metrics_apps_by_chain.fees_daily`</td>
      <td>`fees`</td>
      <td>Fees paid by users of the app across every chain it runs on.</td>
    </tr>

    <tr>
      <td>`metrics_apps_by_chain.fees_supply_side_daily`</td>
      <td>`fees_supply_side`</td>
      <td>Fees the app passed through to builders and, on HIP-3 markets, to market deployers.</td>
    </tr>

    <tr>
      <td>`metrics_apps_by_chain.revenue_daily`</td>
      <td>`revenue`</td>
      <td>Fees the app retained across every chain it runs on.</td>
    </tr>

    <tr>
      <td>`metrics_apps_by_chain.token_incentives_daily`</td>
      <td>`token_incentives`</td>
      <td>Value of tokens the app distributed as incentives, on one chain.</td>
    </tr>

    <tr>
      <td>`metrics_apps_by_chain.outstanding_supply_daily`</td>
      <td>`outstanding_supply`</td>
      <td>USD value of borrowed principal outstanding, on one chain.</td>
    </tr>

    <tr>
      <td>`metrics_apps_by_chain.bridge_deposits_daily`</td>
      <td>`bridge_deposits`</td>
      <td>USD value of assets held in the app's bridge contracts on the main chain, on one chain.</td>
    </tr>

    <tr>
      <td>`metrics_apps_by_chain.trade_count_daily`</td>
      <td>`trade_count`</td>
      <td>Number of trades executed on the app, on one chain.</td>
    </tr>

    <tr>
      <td>`metrics_apps_by_chain.tradeable_asset_count_daily`</td>
      <td>`tradeable_asset_count`</td>
      <td>Number of tokens tradeable on the app, on one chain.</td>
    </tr>

    <tr>
      <td>`metrics_apps_by_chain.tradeable_pair_count_daily`</td>
      <td>`tradeable_pair_count`</td>
      <td>Number of token pairs available for trading on the app, on one chain.</td>
    </tr>

    <tr>
      <td>`metrics_apps_by_chain.cost_of_revenue_daily`</td>
      <td>`cost_of_revenue`</td>
      <td>Direct supply-side cost of the app's revenue, on one chain.</td>
    </tr>

    <tr>
      <td>`metrics_apps_by_chain.capital_deployed_daily`</td>
      <td>`capital_deployed`</td>
      <td>USD value of user deposits the app has allocated into investments, on one chain.</td>
    </tr>

    <tr>
      <td>`metrics_apps_by_chain.bridged_supply_daily`</td>
      <td>`bridged_supply`</td>
      <td>USD value of the app's stablecoins held outside the chain they were issued on, on one chain.</td>
    </tr>

    <tr>
      <td>`metrics_apps_by_chain.assets_staked_daily`</td>
      <td>`assets_staked`</td>
      <td>USD value of assets staked with the app, on one chain.</td>
    </tr>

    <tr>
      <td>`metrics_apps_by_chain.flash_loan_volume_daily`</td>
      <td>`flash_loan_volume`</td>
      <td>USD value of flash loans taken from the app, on one chain.</td>
    </tr>

    <tr>
      <td>`metrics_apps_by_chain.open_interest_daily`</td>
      <td>`open_interest`</td>
      <td>USD notional value of all open positions on the app's derivatives markets, on one chain.</td>
    </tr>

    <tr>
      <td>`metrics_apps_by_chain.expenses_daily`</td>
      <td>`expenses`</td>
      <td>What the app spent on the chain, in USD: cost of revenue, token incentives and operating expenses.</td>
    </tr>

    <tr>
      <td>`metrics_apps_by_chain.operating_expenses_daily`</td>
      <td>`operating_expenses`</td>
      <td>Onchain operating expenses of the app, excluding token incentives, on one chain.</td>
    </tr>

    <tr>
      <td>`metrics_apps_by_chain.transaction_volume_daily`</td>
      <td>`transaction_volume`</td>
      <td>USD value of transactions processed by the app, on one chain.</td>
    </tr>

    <tr>
      <td>`metrics_apps_by_chain.buybacks_daily`</td>
      <td>`buybacks`</td>
      <td>USD value of the app's own tokens repurchased from the market, on one chain.</td>
    </tr>

    <tr>
      <td>`metrics_apps_by_chain.liquidation_volume_daily`</td>
      <td>`liquidation_volume`</td>
      <td>USD value of debt covered in the app's liquidations, on one chain.</td>
    </tr>
  </tbody>
</table>

## Sample queries

**App**

Each measure is its own table, so a row with all three is a join on `app_id` and `timestamp`. A `full join` keeps a day that only one of the tables has a figure for.

```sql theme={null}
with fees as (
    select timestamp, fees
    from `metrics_apps.fees_daily`
    where app_id = 'uniswap-v3'
      and timestamp >= timestamp('2026-06-01')
),

revenue as (
    select timestamp, revenue
    from `metrics_apps.revenue_daily`
    where app_id = 'uniswap-v3'
      and timestamp >= timestamp('2026-06-01')
),

tvl as (
    select timestamp, tvl
    from `metrics_apps.tvl_daily`
    where app_id = 'uniswap-v3'
      and timestamp >= timestamp('2026-06-01')
)

select
    timestamp,
    fees.fees,
    revenue.revenue,
    tvl.tvl
from fees
full join revenue
    using (timestamp)
full join tvl
    using (timestamp)
order by timestamp
```

**App × chain**

An app's chain rows add back to its app row for the same day. `tvl` is a day-end balance, so read one day across chains rather than a range.

```sql theme={null}
select
    chain_id,
    tvl
from `metrics_apps_by_chain.tvl_daily`
where app_id = 'aave-v3'
  and timestamp = timestamp('2026-08-01')
order by tvl desc
```

**Apps of one project**

The registry supplies the name and the daily table supplies the figure, joined on `app_id`. Filtering `project_id` on the daily table keeps the scan on one project.

```sql theme={null}
select
    apps.app_id,
    apps.name,
    sum(daily.fees) as fees
from `metrics_apps.fees_daily` as daily
join `dimensions.apps` as apps
    using (app_id)
where daily.project_id = 'hyperliquid'
  and daily.timestamp >= timestamp('2026-08-01')
  and daily.timestamp < timestamp('2026-08-08')
group by apps.app_id, apps.name
order by fees desc
```

**Balance rollup**

`tvl` stands at day end, so the week's figure is the last day's value and the summed column counts the same locked value seven times. `daily_active_users` is a distinct count and behaves the same way: read the day you want, or read `weekly_active_users` for the week.

```sql theme={null}
select
    array_agg(tvl order by timestamp desc limit 1)[offset(0)] as tvl,
    sum(tvl) as tvl_summed
from `metrics_apps.tvl_daily`
where app_id = 'aave-v3'
  and timestamp >= timestamp('2026-08-01')
  and timestamp < timestamp('2026-08-08')
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.