SonarX
DatasetsHyperliquid dataset· 2 min read· By SonarX Team

Hyperliquid Order Status Updates Data

Hyperliquid order status data records every transition an order goes through on HyperCore, from placement to fill, cancel or reject, with the full order object.

Hyperliquid Order Status Updates Data

A Hyperliquid order status update is one transition in the life of an order on HyperCore. A node writes every L1 order status, and one record carries the event time, the owner address, the status value, and the full order object as it stood at that moment: the market, the side, the limit price, the size, the original size, the order id, the order type and the time in force. Hyperliquid documents 29 status values, covering placement, fills, the cancel family and the reject family.

What one record represents

A Hyperliquid node run with --write-order-statuses “writes every L1 order status”, batched one block per line under the envelope {local_time, block_time, block_number, events}.

One record is one transition for one order: time, the event time; user, the address the order belongs to; status, the transition; and order, the full order object as it stood at that moment. hash, the L1 transaction hash, rides alongside where present, as does builder, with b for the address that receives the additional fee and f for the fee in tenths of a basis point.

The 29 documented status values

Hyperliquid’s info endpoint documents 29 status values, one line of explanation each.

  • Placement and execution: open, filled, canceled and triggered
  • The cancel family, naming why an order was pulled: selfTradeCanceled, reduceOnlyCanceled, marginCanceled, liquidatedCanceled, siblingFilledCanceled, delistedCanceled, vaultWithdrawalCanceled, openInterestCapCanceled and scheduledCancel
  • The reject family, naming why an order was refused at placement: badAloPxRejected, iocCancelRejected, minTradeNtlRejected, perpMarginRejected, tickRejected, badTriggerPxRejected, oracleRejected and marketOrderNoLiquidityRejected

Why the rejected statuses matter

Hyperliquid emits a status for an order that never rested, so the record holds intent as well as outcome. The order object is what makes that readable: tif distinguishes Alo post-only, Ioc and Gtc, origSz is the original order size, and sz is the order’s size as of this status. An order is inserted into the book on open for a non-trigger order whose tif is not Ioc, and on triggered for a trigger order.

Statuses, diffs and fills

A status update says what happened to the order; an order book diff says what the book did about it, and a removal there covers both a cancel and a full fill. Joining on oid resolves which. Applied to an L4 order book snapshot, the statuses stream the book forward. The executions themselves are Hyperliquid fills, and Hyperliquid marks a liquidation on the fill that closes the position, covered on Hyperliquid liquidations data.

Delivery

Available history is delivered as files to your own bucket. Fills, funding payments and position snapshots are also available as a Snowflake datashare and real time via Kafka Streaming, and they carry the same block height, so they join to the statuses without a translation layer.

Hyperliquid fields SonarX indexes

Hyperliquid fieldWhat it isSonarX indexes it
statusthe transition, for example open, filled, canceled or triggered✓
timethe time of the status event✓
userthe address the order belongs to✓
cointhe market; a builder-deployed perp carries the dex name as a prefix✓
sideB for the bid side, A for the ask side✓
limitPxthe order's limit price✓
szthe order's size as of this status✓
origSzthe original order size✓
oidthe order id✓
cloidthe optional 128 bit hex client order id✓
timestampthe order placement time, in milliseconds✓
orderTypethe order type, for example Limit, Market or Stop Market✓
tifthe time in force: Alo post-only, Ioc, or Gtc✓
reduceOnlywhether the order may only reduce the position✓
isTriggerwhether the order is a trigger order✓
triggerPxthe trigger price✓
triggerConditionthe condition that fires the trigger, for example Price below 101856✓
hashthe L1 transaction hash✓
builderb, the address that receives the additional fee, and f, the fee in tenths of a basis point✓

Field definitions and mechanics: Hyperliquid's own documentation. Chain overview: indexed Hyperliquid blockchain data.

Frequently asked questions

What is a Hyperliquid order status update?

An order status update is one transition in the life of an order on HyperCore. A Hyperliquid node run with the write-order-statuses flag writes every L1 order status, and each event carries the full order object as it stood at that moment rather than a difference against the previous state.

What status values does Hyperliquid use?

Hyperliquid's info endpoint documents 29 status values, one line of explanation each. They cover placement and execution with open, filled, canceled and triggered; a cancel family such as selfTradeCanceled, reduceOnlyCanceled, marginCanceled, liquidatedCanceled and scheduledCancel; and a reject family such as badAloPxRejected, iocCancelRejected, minTradeNtlRejected and oracleRejected.

What do the Rejected order statuses on Hyperliquid mean?

The rejected statuses record orders that never rested. Hyperliquid emits a status for an order rejected at placement rather than dropping it silently, and the value names the reason: badAloPxRejected for a post-only order that would have matched immediately, iocCancelRejected for an IOC order that could not match, tickRejected for an invalid tick price, perpMarginRejected for insufficient margin.

What does one order status record contain?

One order status record is one transition for one order. It carries the event time, the owner address, the status value, and the full order object, which names the market, the side as B or A, the limit price, the size as of this status, the original size, the order id, the order type, the time in force and an optional client order id. The L1 transaction hash and a builder fee ride alongside where present.

Which statuses mean the order actually rested in the book?

The open and triggered statuses. Hyperliquid's order_book_server reference implementation treats an order as inserted into the book on open when it is not a trigger order and its time in force is not Ioc, and on triggered when it is a trigger order. The reject statuses name orders that never rested at all.

How do order statuses relate to Hyperliquid fills?

Order statuses and fills are two halves of the same order. A status update records what happened to the order, including placement, cancels and rejects; a fill records one execution against the book, with the price and size that traded and the realised PnL on whatever portion of a position closed. Both carry the order id, so they join on oid.

Get started

Query Hyperliquid order status updates data

Tell us the delivery target and the history depth you need, and we scope the Hyperliquid share against it.