Trading volume, TVL, fees and revenue, in USD. One row per thing per day, at four grains: project, app, pool and pair.
Tables
Daily pool trading volume and position principal, uncollected fees and TVL cover closed UTC days and follow the availability cutoff of each pool’s chain.
A tab per grain. Coverage shows which apps report which measure.
One row per project per day.| Table | Value column | What it holds |
|---|
metrics_projects.trading_volume_daily | trading_volume | Total value of trades executed. |
metrics_projects.tvl_daily | tvl | Total value locked. |
metrics_projects.fees_daily | fees | Total fees paid by users. |
metrics_projects.fees_supply_side_daily | fees_supply_side | Fees paid out to the supply side. |
metrics_projects.revenue_daily | revenue | Fees retained by the protocol. |
One row per app per day.| Table | Value column | What it holds |
|---|
metrics_apps.trading_volume_daily | trading_volume | Value of trades executed by the app, measured on the quote leg at execution price. |
metrics_apps.tvl_daily | tvl | Total value locked across the app’s lending markets and vaults. |
metrics_apps.fees_daily | fees | Fees paid by users of the app across every chain it runs on. |
metrics_apps.fees_supply_side_daily | fees_supply_side | Fees the app passed through to builders and, on HIP-3 markets, to market deployers. |
metrics_apps.revenue_daily | revenue | Fees the app retained across every chain it runs on. |
One row per pool per day. The volume table names the app in app_id; the others use the older protocol_id, which holds the same values.| Table | Value column | What it holds |
|---|
metrics_dex_pools.trading_volume_daily | trading_volume | Total value of trades executed through the DEX pool. |
metrics_dex_pools.tvl_daily | tvl | USD value of assets held in the DEX pool. |
metrics_dex_pools.fees_daily | fees | Fees paid by users of the DEX pool. |
metrics_dex_pools.flash_loan_volume_daily | flash_loan_volume | Total value of flash loans executed through the DEX pool. |
One row per pool and token pair per day.| Table | Value column | What it holds |
|---|
metrics_dex_pool_pairs.trading_volume_daily | trading_volume | Total value of trades executed through the DEX pool. |
Sample queries
One pool's series
Pools by volume
Pair total across pools
Pool by pair breakdown
Sector total
Pool vs pair check
Each measure is its own table, so a row with all three is a join on dex_pool_id and timestamp, bounded on every side. Join with full join: a pool can hold liquidity on a day nothing traded. One day of pool volume across the catalog, ranked. dex_pool_id joins dimensions.dex_pools for the pool’s tokens and its fee tier. The same pair can trade in many pools, and it has the same dex_pair_id in all of them, so a total across pools is a group by on that column. A pool’s pair rows add back up to its row on the pool table. A breakdown by single token would not: every swap involves two tokens, so counting it under each one counts it twice and the total stops matching the pool. A sector total is a grouping over the pool volume table joined to dimensions.projects, by day. Group by primary_market_sector, where every project appears exactly once. The pool row is the sum of its pair rows. On any day the pool traded, the two sides agree exactly.