Skip to main content
hyperliquid.perp_market_metrics_daily is the reporting grain for Hyperliquid perpetual markets: one row per (coin, block_date), venue-wide across first-party markets (coin = BTC) and HIP-3 builder-deployed markets (coin = dex:SYMBOL, e.g. xyz:TSLA). Same column list as perp_market_metrics_hourly, with block_hour replaced by block_date. Partitioned by block_month. A row exists for a market-day if the market traded or held an open position. On a day it held positions without trading, the flow columns are zero-filled and the candle columns are null.

Table schema

Not a sum of the hourly rows

The two column families are built differently, and neither is an hourly SUM: Because volume_usd is taker-leg only, this is the volume figure to quote. Summing notional_usd on perp_trades gives roughly twice the traded volume, since that table holds both legs of every match.
A market that held no open position at the day’s last funding round reports 0 for the stocks, not null and not its own stale earlier snapshot. Null there means something different: no funding round happened anywhere on the venue that day, so the state is unknown. Treat 0 and null as distinct in any open-interest series.
The snapshot hour is a venue-wide clock — funding fires once an hour for every open market simultaneously — so every market’s stock columns on a given block_date are struck at the same round, and summing open_interest_usd across markets for one day is coherent.

The newest day is partial

Trades are still accumulating and the day’s “last global round” is only the latest round ingested so far. The row is merge-updated in place on each run, so it moves during the day. Filter block_date < current_date for complete days.

History floors

Flows start on 2025-07-27, the floor of the decoded fills source. Open interest and funding start on 2025-09-27. Market-days in between carry flows with null stocks. Both floors are measured 2026-08-21; 417 distinct coin values have a row in this table.