Point-in-time archive
Every UTC day, Blockmetric freezes what it saw into an immutable dataset. Nobody can backfill missed months of public positions later.
What is in a day
| Dataset | What it is | Kind | Access | Typical rows a day |
|---|---|---|---|---|
positions_eod | Hyperliquid positions (end of day) | Snapshot | Per wallet, Enterprise | 42,429 |
positions_aggregate | Tracked positioning per coin (end of day) | Snapshot | In the free sample | 593 |
position_events | Whale position changes | Series | Per wallet, Enterprise | 66,894 |
heatmap_real | Liquidation heatmap (real positions) | Series | In the free sample | 984,547 |
liquidations_hl | Hyperliquid liquidations | Series | In the free sample | 2,711 |
liquidations_5m | Liquidations per 5 minutes (all enabled venues) | Series | In the free sample | 13,463 |
whale_stops_eod | Whale stop / take-profit orders (end of day) | Snapshot | Per wallet, Enterprise | 128 |
cluster_observations | Liquidation cluster observations | Series | In the free sample | 90 |
cluster_hits | Cluster hits | Series | In the free sample | 4 |
market_5m | Funding, open interest, marks (5 min) | Series | In the free sample | 367,414 |
long_short_5m | Long / short positioning (5 min) | Series | In the free sample | 16,872 |
Typical rows: the median over the archived days. Columns of each dataset:
positions_eod Hyperliquid positions (end of day)
Every tracked Hyperliquid position as captured right after the day ended. Positions are polled wallet by wallet; updated_at is the poll time of each row.
| Column | Type | Meaning |
|---|---|---|
address | string | Hyperliquid address, lowercase (public on-chain state). |
coin | string | Coin as named on Hyperliquid (BTC, ETH, kPEPE, HIP-3 names like xyz:TSLA). |
side | string | long | short. |
size | number | Absolute size in coins. |
entry_px | number | Entry price. |
position_usd | number | Notional at mark (USD). |
leverage | number | Leverage. |
leverage_type | string | cross | isolated. |
liq_px | number | Liquidation price reported by Hyperliquid (empty = none). |
margin_used | number | Margin used (USD). |
unrealized_pnl | number | Unrealised PnL (USD). |
updated_at | timestamp | Poll time of this position. |
positions_aggregate Tracked positioning per coin (end of day)
positions_eod summed per coin and side: positions, wallets, notional and the notional with a liquidation price.
| Column | Type | Meaning |
|---|---|---|
coin | string | Coin as named on Hyperliquid (BTC, ETH, kPEPE, HIP-3 names like xyz:TSLA). |
side | string | long | short. |
positions | integer | Number of positions. |
position_usd | number | Summed notional (USD). |
with_liq_px_usd | number | Notional of positions that have a liquidation price (USD). |
newest_poll | timestamp | Newest poll time of the group. |
position_events Whale position changes
Opens, closes, flips, adds, reductions and liquidations of tracked wallets, detected between two polls (liquidated = confirmed by the wallet’s liquidation fills).
| Column | Type | Meaning |
|---|---|---|
ts | timestamp | UTC time (ISO 8601). |
address | string | Hyperliquid address, lowercase (public on-chain state). |
coin | string | Coin as named on Hyperliquid (BTC, ETH, kPEPE, HIP-3 names like xyz:TSLA). |
kind | string | open | close | increase | decrease | flip | liquidated (fill-confirmed). |
side | string | long | short. |
size_delta | number | Change in coins. |
usd_delta | number | Change in notional (USD). |
price | number | Mark at detection. |
entry_px | number | Entry price after the change. |
liq_px | number | Liquidation price after the change. |
leverage | number | Leverage after the change. |
heatmap_real Liquidation heatmap (real positions)
Liquidation levels of the tracked Hyperliquid positions per snapshot (default every 5 min): USD that would be liquidated per price bucket. Built from the liquidation price each position reports. No leverage is assumed.
| Column | Type | Meaning |
|---|---|---|
coin | string | Coin as named on Hyperliquid (BTC, ETH, kPEPE, HIP-3 names like xyz:TSLA). |
ts | timestamp | UTC time (ISO 8601). |
mark | number | Mark at the snapshot. |
bucket_size | number | Bucket width (price). |
bucket_px | number | Lower edge of the bucket. |
long_usd | number | Long notional liquidated in the bucket (USD). |
short_usd | number | Short notional liquidated in the bucket (USD). |
liquidations_hl Hyperliquid liquidations
Liquidations of tracked Hyperliquid wallets, confirmed by Hyperliquid’s own fills of the wallet (fill.liquidation.liquidatedUser = the wallet): time of the last liquidation fill, size-weighted fill price, summed size and notional.
| Column | Type | Meaning |
|---|---|---|
ts | timestamp | UTC time (ISO 8601). |
coin | string | Coin as named on Hyperliquid (BTC, ETH, kPEPE, HIP-3 names like xyz:TSLA). |
side | string | long | short. |
price | number | Price. |
qty | number | Size in coins. |
usd | number | Notional (USD). |
liquidations_5m Liquidations per 5 minutes (all enabled venues)
Liquidations summed per venue, coin, side and 5-minute bucket. Exchange streams are not redistributed one by one (source terms), only as these aggregates.
| Column | Type | Meaning |
|---|---|---|
bucket | timestamp | Start of the 5-minute bucket (UTC). |
venue | string | hyperliquid | binance | bybit | okx (enabled sources only). |
coin | string | Coin as named on Hyperliquid (BTC, ETH, kPEPE, HIP-3 names like xyz:TSLA). |
side | string | long | short. |
count | integer | Number of liquidations. |
usd | number | Summed notional (USD). |
whale_stops_eod Whale stop / take-profit orders (end of day)
Open trigger orders of the largest tracked wallets as last read (frontendOpenOrders, rotation ≈ 40 min) when the day ended.
| Column | Type | Meaning |
|---|---|---|
address | string | Hyperliquid address, lowercase (public on-chain state). |
coin | string | Coin as named on Hyperliquid (BTC, ETH, kPEPE, HIP-3 names like xyz:TSLA). |
kind | string | stop | take_profit. |
side | string | buy | sell (direction when triggered). |
price | number | Trigger price. |
size | number | Size in coins. |
usd | number | size × price (USD). |
reduce_only | boolean | Reduce-only. |
position_tpsl | boolean | Attached to the whole position. |
attached | boolean | Child of a not yet filled entry order. |
order_type | string | Order type as reported. |
placed_at | timestamp | Placement time. |
fetched_at | timestamp | Read time. |
cluster_observations Liquidation cluster observations
Large liquidation clusters of the real positions as observed, with distance to the mark at observation. Whether a cluster was reached later is in cluster_hits of the day it happened.
| Column | Type | Meaning |
|---|---|---|
id | integer | Observation id (joins cluster_hits). |
coin | string | Coin as named on Hyperliquid (BTC, ETH, kPEPE, HIP-3 names like xyz:TSLA). |
layer | string | Always real (tracked Hyperliquid positions). |
observed_at | timestamp | Observation time. |
side | string | long | short. |
bucket_px | number | Lower edge. |
bucket_top | number | Upper edge. |
usd | number | Notional in the cluster (USD). |
positions | integer | Positions in the cluster. |
mark | number | Mark at observation. |
distance_pct | number | Percent from the mark to the near edge. |
rank | integer | Rank by size at observation. |
cluster_hits Cluster hits
Observations whose bucket the sampled Hyperliquid mark reached on this day (checked up to 72 h after observation).
| Column | Type | Meaning |
|---|---|---|
id | integer | Observation id. |
coin | string | Coin as named on Hyperliquid (BTC, ETH, kPEPE, HIP-3 names like xyz:TSLA). |
layer | string | Always real (tracked Hyperliquid positions). |
observed_at | timestamp | Observation time. |
side | string | long | short. |
bucket_px | number | Lower edge. |
usd | number | Notional at observation (USD). |
reached_at | timestamp | First time the sampled mark touched the bucket. |
reach_source | string | hl_mark_30s | history_5m. |
market_5m Funding, open interest, marks (5 min)
Per venue and coin every 5 minutes: mark, hourly funding rate, open interest and high / low of the sampled marks. Enabled venues whose raw data may be redistributed only: rows of exchanges under licence review (Binance, Bybit, OKX) are left out and named under omitted in the manifest.
| Column | Type | Meaning |
|---|---|---|
venue | string | Venue. |
coin | string | Coin as named on Hyperliquid (BTC, ETH, kPEPE, HIP-3 names like xyz:TSLA). |
ts | timestamp | UTC time (ISO 8601). |
mark | number | Mark. |
funding_hourly | number | Funding per hour (fraction). |
open_interest_usd | number | Open interest (USD). |
mark_high | number | Highest sampled mark. |
mark_low | number | Lowest sampled mark. |
long_short_5m Long / short positioning (5 min)
Long/short account ratios of the enabled exchanges and the tracked Hyperliquid long / short notional and wallet counts. Columns of switched-off venues and of exchanges under licence review (Binance, Bybit, OKX; named under omitted in the manifest) are empty.
| Column | Type | Meaning |
|---|---|---|
coin | string | Coin as named on Hyperliquid (BTC, ETH, kPEPE, HIP-3 names like xyz:TSLA). |
ts | timestamp | UTC time (ISO 8601). |
binance_account | number | Binance long/short account ratio. |
binance_top_account | number | Binance top traders, accounts. |
binance_top_position | number | Binance top traders, positions. |
bybit_account | number | Bybit account ratio. |
okx_account | number | OKX account ratio. |
hl_long_usd | number | Tracked Hyperliquid long notional (USD). |
hl_short_usd | number | Tracked Hyperliquid short notional (USD). |
hl_long_accounts | integer | Tracked Hyperliquid wallets long. |
hl_short_accounts | integer | Tracked Hyperliquid wallets short. |
Calendar
Free sample
One day for BTC, ETH and HYPE, at least 7 days old, without per-wallet data. For evaluation and research; production use needs a licence.
No sample yet. The first one is cut from 2 Nov 2026 once it is 7 days old, from 10 Nov 2026.
Licence
The full archive (every coin, per-wallet positions, whale stops, position changes) is licensed as a dataset under an Enterprise contract (a yearly contract from $12,000, or as a one-off dataset licence): delivered as files, with the methodology and manifests, invoiced.
Ask for a dataset licencePoint-in-time rules
- Point-in-time data is never revised retroactively. A day is never changed after its manifest is written.
- Time series (heatmap snapshots, liquidations, position changes, cluster observations, funding and open interest, long/short): the rows whose time lies in the UTC day.
- Snapshots (positions, whale stop orders): captured right after the day ended, each row with its own poll time; one not captured within 6 h is left out and listed under
omitted, never reconstructed. - Cluster hits are recorded on the day the price reached the cluster, so the observations of a day never change.
- Exchange liquidation streams only as 5-minute aggregates (source terms); wallet addresses only, no names or labels.
- Files: gzip'd CSV with a header row and NDJSON per dataset,
manifest.jsonandSHA256SUMS. Method: methodology · data sources · what is stored since when: Historical data.