Tables
Daily perpetual and order-book fees, revenue and volume cover closed UTC days and follow the availability cutoff of each market’s chain.
- Project
- Project × chain
- App
- App × chain
- Perp market
- Perp market token
- Order book market
- Order book market token
One row per project per day. Notional volume comes in two lenses, exchange and interface, and each is a complete account of the same trades.
| Table | Value column | What it holds |
|---|---|---|
metrics_projects.exchange_notional_trading_volume_daily | notional_trading_volume | Notional value of perpetual futures traded, attributed to the project whose matching engine settled the trade. |
metrics_projects.interface_notional_trading_volume_daily | notional_trading_volume | Notional value of perpetual futures traded, attributed to the project whose interface the trade was placed through. |
metrics_projects.trading_volume_daily | trading_volume | Total value of trades executed. |
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 project and chain per day.
| Table | Value column | What it holds |
|---|---|---|
metrics_project_chains.exchange_notional_trading_volume_daily | notional_trading_volume | Notional value of perpetual futures traded, attributed to the project whose matching engine settled the trade. |
metrics_project_chains.interface_notional_trading_volume_daily | notional_trading_volume | Notional value of perpetual futures traded, attributed to the project whose interface the trade was placed through. |
metrics_project_chains.trading_volume_daily | trading_volume | Total value of trades executed. |
metrics_project_chains.fees_daily | fees | Total fees paid by users. |
metrics_project_chains.fees_supply_side_daily | fees_supply_side | Fees paid out to the supply side. |
metrics_project_chains.revenue_daily | revenue | Fees retained by the protocol. |
One row per app per day. The exchange lens credits the venue whose matching engine settled the trade and the interface lens the app the trade was placed through.
| Table | Value column | What it holds |
|---|---|---|
metrics_apps.exchange_notional_trading_volume_daily | notional_trading_volume | Notional value of perpetual futures traded, attributed to the app whose matching engine settled the trade. |
metrics_apps.interface_notional_trading_volume_daily | notional_trading_volume | Notional value of perpetual futures traded, attributed to the app whose interface the trade was placed through. |
metrics_apps.trading_volume_daily | trading_volume | Value of trades executed by the app, measured on the quote leg at execution price. |
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 app and chain per day.
| Table | Value column | What it holds |
|---|---|---|
metrics_app_chains.exchange_notional_trading_volume_daily | notional_trading_volume | Notional value of perpetual futures traded, attributed to the app whose matching engine settled the trade. |
metrics_app_chains.interface_notional_trading_volume_daily | notional_trading_volume | Notional value of perpetual futures traded, attributed to the app whose interface the trade was placed through. |
metrics_app_chains.trading_volume_daily | trading_volume | Value of trades executed by the app, measured on the quote leg at execution price. |
metrics_app_chains.fees_daily | fees | Fees paid by users of the app across every chain it runs on. |
metrics_app_chains.fees_supply_side_daily | fees_supply_side | Fees the app passed through to builders and, on HIP-3 markets, to market deployers. |
metrics_app_chains.revenue_daily | revenue | Fees the app retained across every chain it runs on. |
One row per perpetual market per day. The money tables also have
chain_id, project_id and app_id; the position and trader tables are keyed on the market alone.| Table | Value column | What it holds |
|---|---|---|
metrics_perp_markets.price_daily | price | Mark price of the perpetual futures market. |
metrics_perp_markets.exchange_notional_trading_volume_daily | notional_trading_volume | Notional value traded in the perpetual futures market, attributed to the app whose matching engine settled the trade. |
metrics_perp_markets.interface_notional_trading_volume_daily | notional_trading_volume | Notional value traded in the perpetual futures market, attributed to the app whose interface the trade was placed through. |
metrics_perp_markets.trades_count_daily | trades_count | Number of trades executed in the perpetual futures market. |
metrics_perp_markets.active_traders_daily | active_traders | Distinct traders active in the perpetual futures market. |
metrics_perp_markets.open_interest_daily | open_interest | Notional value of open positions in the perpetual futures market. |
metrics_perp_markets.long_open_interest_daily | long_open_interest | Notional value of open long positions in the perpetual futures market. |
metrics_perp_markets.short_open_interest_daily | short_open_interest | Notional value of open short positions in the perpetual futures market. |
metrics_perp_markets.volume_to_open_interest_daily | volume_to_open_interest | Notional trading volume divided by open interest. |
metrics_perp_markets.long_traders_daily | long_traders | Distinct traders with long positions in the perpetual futures market. |
metrics_perp_markets.short_traders_daily | short_traders | Distinct traders with short positions in the perpetual futures market. |
metrics_perp_markets.average_long_position_size_daily | average_long_position_size | Average notional size of long positions in the perpetual futures market. |
metrics_perp_markets.average_short_position_size_daily | average_short_position_size | Average notional size of short positions in the perpetual futures market. |
metrics_perp_markets.median_long_position_size_daily | median_long_position_size | Median notional size of long positions in the perpetual futures market. |
metrics_perp_markets.median_short_position_size_daily | median_short_position_size | Median notional size of short positions in the perpetual futures market. |
metrics_perp_markets.top10_long_trader_share_daily | top10_long_trader_share | Share of long open interest held by the ten largest long traders. |
metrics_perp_markets.top10_short_trader_share_daily | top10_short_trader_share | Share of short open interest held by the ten largest short traders. |
metrics_perp_markets.funding_rate_daily | funding_rate | Daily funding rate paid between long and short positions in the perpetual futures market. |
metrics_perp_markets.long_liquidations_daily | long_liquidations | Notional value of long positions force-closed in the perpetual futures market. |
metrics_perp_markets.short_liquidations_daily | short_liquidations | Notional value of short positions force-closed in the perpetual futures market. |
metrics_perp_markets.fees_daily | fees | Fees paid by traders on the perpetual market. |
metrics_perp_markets.revenue_daily | revenue | Fees retained by the protocol on the perpetual market, net of the builder tip and HIP-3 deployer cut. |
metrics_perp_markets.fees_supply_side_daily | fees_supply_side | Fees passed through on the perpetual market, being the builder-code tip plus the HIP-3 deployer’s cut. |
One row per perpetual market and settlement token per day. Amounts become dollars here, and
fees equals revenue plus fees_supply_side for the same market, token and day.| Table | Value column | What it holds |
|---|---|---|
metrics_perp_market_tokens.notional_trading_volume_daily | notional_trading_volume | Notional value traded in the perpetual futures market, price times trade amount over crossed (taker) legs. |
metrics_perp_market_tokens.exchange_notional_trading_volume_daily | notional_trading_volume | Notional value traded in the perpetual futures market, attributed to the app whose matching engine settled the trade. |
metrics_perp_market_tokens.interface_notional_trading_volume_daily | notional_trading_volume | Notional value traded in the perpetual futures market, attributed to the app whose interface the trade was placed through. |
metrics_perp_market_tokens.fees_daily | fees | Fees paid by traders on the perpetual market. |
metrics_perp_market_tokens.revenue_daily | revenue | Fees retained by the protocol on the perpetual market, net of the builder tip and HIP-3 deployer cut. |
metrics_perp_market_tokens.fees_supply_side_daily | fees_supply_side | Fees passed through on the perpetual market, being the builder-code tip plus the HIP-3 deployer’s cut. |
One row per order-book market per day. Every table also has
chain_id, project_id and app_id.| Table | Value column | What it holds |
|---|---|---|
metrics_order_book_markets.trading_volume_daily | trading_volume | Value of trades executed in the order book market, measured on the quote leg at execution price. |
metrics_order_book_markets.fees_daily | fees | Fees paid by traders on the order-book market. |
metrics_order_book_markets.revenue_daily | revenue | Fees retained by the protocol on the order-book market, net of the builder tip. |
metrics_order_book_markets.fees_supply_side_daily | fees_supply_side | Fees passed through on the order-book market, being builder-code tips. |
One row per order-book market and quote token per day. Amounts become dollars here, and
fees equals revenue plus fees_supply_side for the same market, token and day.| Table | Value column | What it holds |
|---|---|---|
metrics_order_book_market_tokens.trading_volume_daily | trading_volume | Value of trades executed in the order book market, measured on the quote leg at execution price. |
metrics_order_book_market_tokens.fees_daily | fees | Fees paid by traders on the order-book market. |
metrics_order_book_market_tokens.revenue_daily | revenue | Fees retained by the protocol on the order-book market, net of the builder tip. |
metrics_order_book_market_tokens.fees_supply_side_daily | fees_supply_side | Fees passed through on the order-book market, being builder-code tips. |
Sample queries
- Apps by volume
- Project volume by chain
- One market's series
- Pool liquidations
- Order books by volume
- Sector total
The same trades also sit in
metrics_apps.exchange_notional_trading_volume_daily credited to the matching venue, and summing both lenses counts every trade twice.select
app_id,
sum(notional_trading_volume) as volume
from `metrics_apps.interface_notional_trading_volume_daily`
where timestamp >= timestamp('2026-08-01')
and timestamp < timestamp('2026-08-08')
group by app_id
order by volume desc
chain_id on a per-chain table is the chain the market settled on, and one project’s chain rows add back to its metrics_projects row for the same day.select
chain_id,
sum(notional_trading_volume) as volume
from `metrics_project_chains.interface_notional_trading_volume_daily`
where project_id = 'hyperliquid'
and timestamp >= timestamp('2026-08-01')
and timestamp < timestamp('2026-08-08')
group by chain_id
order by volume desc
Each measure is its own table, so a row with all three is a join on
perp_market_id and timestamp. Join with full join: a market has open interest on a day nothing traded.with price as (
select timestamp, price
from `metrics_perp_markets.price_daily`
where perp_market_id = 'hlbtc-hypercore'
and timestamp >= timestamp('2026-06-01')
),
volume as (
select timestamp, notional_trading_volume
from `metrics_perp_markets.exchange_notional_trading_volume_daily`
where perp_market_id = 'hlbtc-hypercore'
and timestamp >= timestamp('2026-06-01')
),
open_interest as (
select timestamp, open_interest
from `metrics_perp_markets.open_interest_daily`
where perp_market_id = 'hlbtc-hypercore'
and timestamp >= timestamp('2026-06-01')
)
select
timestamp,
price.price,
volume.notional_trading_volume,
open_interest.open_interest
from price
full join volume
using (timestamp)
full join open_interest
using (timestamp)
order by timestamp
Long and short liquidation measures are separate USD tables. Join each to the registry on
perp_market_id to select the venue and settlement chain.with liquidations as (
select timestamp, perp_market_id, 'long' as side, long_liquidations as value
from `metrics_perp_markets.long_liquidations_daily`
where timestamp >= timestamp('2026-08-01')
and timestamp < timestamp('2026-08-08')
union all
select timestamp, perp_market_id, 'short' as side, short_liquidations as value
from `metrics_perp_markets.short_liquidations_daily`
where timestamp >= timestamp('2026-08-01')
and timestamp < timestamp('2026-08-08')
)
select
liquidations.timestamp,
liquidations.side,
sum(liquidations.value) as liquidated_notional_usd
from liquidations
join `dimensions.perp_markets` as markets
using (perp_market_id)
where markets.exchange_app_id = 'mux-perps'
and markets.chain_id = 'arbitrum'
group by liquidations.timestamp, liquidations.side
order by liquidations.timestamp, liquidations.side
order_book_market_id joins the registry for the pair name, and trading_volume counts one side of each match.select
daily.order_book_market_id,
markets.name,
daily.app_id,
daily.trading_volume
from `metrics_order_book_markets.trading_volume_daily` as daily
join `dimensions.order_book_markets` as markets
using (order_book_market_id)
where daily.timestamp = timestamp('2026-08-01')
order by daily.trading_volume desc
limit 25
Group on
primary_market_sector, where every project appears exactly once. market_sectors holds every tag on a project, so unnesting it in the from clause counts a project once per tag.select
daily.timestamp,
sum(daily.notional_trading_volume) as sector_volume
from `metrics_perp_markets.exchange_notional_trading_volume_daily` as daily
join `dimensions.projects` as projects
on projects.project_id = daily.project_id
where 'derivatives' in unnest(projects.market_sectors)
and daily.timestamp >= timestamp('2026-08-01')
group by daily.timestamp
order by daily.timestamp