Hyperliquid Fills Data
Trades executed on HyperCore, per user and per market: price, size, side, direction, the position before the fill, realised PnL on the closed part, and fees.

A fill on Hyperliquid is one execution against HyperCore's on-chain order book. One row is one execution for one account in one market: the price and size that traded, the side and direction, the position the account held going in, the realised PnL on whatever portion of that position closed, and the fee paid. Fills are the base layer for maker and taker studies, for reconstructing an account's PnL, and for liquidation history, because Hyperliquid marks a liquidation on the fill that closes the position.
What one row represents
A fill is one execution against HyperCore’s on-chain order book. HyperCore, the exchange state machine, runs “fully onchain perpetual futures and spot order books”, so an execution is a record of chain state rather than a report from an off-chain matching engine.
One row is one execution for one account in one market. It carries the price and size that traded, the side and direction, the position the account held going in, the realised PnL on whatever portion of that position closed, and the fee paid. That makes fills the base layer for maker and taker studies and for reconstructing an account’s PnL.
Direction values
Hyperliquid’s dir field carries display strings such as Open Long, Close Long, Open Short, Close Short, Long > Short, Short > Long, Buy and Sell. The documentation annotates dir as “used for frontend display” and does not enumerate its values, so read them as labels that describe how a fill changed the position rather than as a protocol enum.
Liquidation-marked fills
Hyperliquid marks a liquidation on the fill that closes the position. The marker, with the liquidated user, the mark price and the method, is covered on Hyperliquid liquidations data. The fill field annotations are on the WebSocket subscriptions page; the request shapes and their history caps are on the info endpoint page.
Delivery
Available history is delivered as a Snowflake datashare or as files to your own bucket, and real time via Kafka Streaming. Funding payments, position snapshots and order book snapshots carry the same block height, so they join to fills without a translation layer.
Hyperliquid fields SonarX indexes
| Hyperliquid field | What it is | SonarX indexes it |
|---|---|---|
coin | the market, for example BTC; spot markets carry an @ prefix | ✓ |
px | the fill price | ✓ |
sz | the fill size | ✓ |
side | the side of the fill | ✓ |
time | the fill timestamp, in milliseconds | ✓ |
dir | the direction label, for example Open Long or Close Short | ✓ |
startPosition | the position held before the fill | ✓ |
closedPnl | realised PnL on the portion of the position this fill closed | ✓ |
hash | the L1 transaction hash | ✓ |
oid | the order id | ✓ |
tid | the unique trade id | ✓ |
crossed | whether the order crossed the spread, that is, was the taker | ✓ |
fee | the fee paid; negative means a rebate | ✓ |
feeToken | the token the fee was paid in | ✓ |
builderFee | the amount paid to a builder, also included in fee | ✓ |
Field definitions and mechanics: Hyperliquid's own documentation. Chain overview: indexed Hyperliquid blockchain data.
Frequently asked questions
What is a fill on Hyperliquid?
A fill is one execution against HyperCore's on-chain order book. HyperCore runs fully onchain perpetual futures and spot order books, so an execution is a record of chain state rather than a report from an off-chain matching engine, and every trade settles with one-block finality inherited from HyperBFT.
What does one row of Hyperliquid fills data represent?
One row is one execution for one account in one market. It carries the price and size that traded, the side and direction, the position the account held going in, the realised PnL on whatever portion of that position closed, the taker flag, and the fee paid in the fee token.
Are liquidations included in Hyperliquid fills data?
Hyperliquid marks a liquidation on the fill that closes the position rather than in a separate log, so the fill that closes a liquidated position is a fills row. The marker Hyperliquid attaches, with the liquidated user, the mark price and the method, is described on the Hyperliquid liquidations data page.
Which Hyperliquid fill fields does SonarX index?
The fields of a Hyperliquid fill record as its API documents them: coin, px, sz, side, time, dir, startPosition, closedPnl, hash, oid, tid, crossed, fee, feeToken and builderFee. Each row also carries the block height and block time it settled in, so fills join to funding, position snapshots and order book snapshots on the same height.
What values does the Hyperliquid dir field carry?
Strings such as Open Long, Close Long, Open Short, Close Short, Long > Short, Short > Long, Buy and Sell. Hyperliquid's documentation annotates dir as used for frontend display and does not enumerate its values, so read them as display labels that describe how a fill changed the position rather than as a protocol enum.
Get started
Query Hyperliquid fills data
Tell us the delivery target and the history depth you need, and we scope the Hyperliquid share against it.
Other Hyperliquid datasets

Hyperliquid Liquidations Data
Hyperliquid marks liquidations on the fill that closes the position, carrying the liquidated user, the mark price and the method used to close it.

Hyperliquid Funding Data
Hyperliquid funding recorded hourly, one entry per account and perpetual market: the rate applied, the USDC amount paid, and the position size it covered.

Hyperliquid Open Interest and Perp Positions Data
Point-in-time perpetual position snapshots at regular block intervals: size, entry price, leverage, margin and accumulated funding, per user and market.