📦 Datasets

Hyperliquid L4 Book

The Hyperliquid L4 Book data type provides order-by-order order book snapshots and updates with user attribution on the Hyperliquid L4 exchange.

Hyperliquid L4 Book

Overview

The Hyperliquid L4 Book data type provides a comprehensive, order-by-order view of the order book for a specific trading pair on the Hyperliquid L4 exchange. Each row represents a single order in the book or a change to an existing order, including the Hyperliquid user address, order type, time-in-force, and L4 status information.

[!NOTE]

This data type is available only for symbols on the HYPERLIQUIDL4 exchange. It extends the standard Full Limit Order Book format with Hyperliquid-specific fields.

File Organization

Hyperliquid L4 Book data is organized in the S3 bucket as follows:

T-LIMITBOOK_FULL/
└── D-{YYYYMMDD | YYYYMMDDHH}/
    └── E-HYPERLIQUIDL4/
        └── IDDI-[IDENTIFIER]+SC-[COINAPI_SYMBOL_ID]+S-[EXCHANGE_SYMBOL].csv.gz

Examples:

T-LIMITBOOK_FULL/D-2026060900/E-HYPERLIQUIDL4/IDDI-47427873+SC-HYPERLIQUIDL4_PERP_BTC_USDC+S-BTC.csv.gz

Where:

  • T-LIMITBOOK_FULL: Indicates the data type (Full Limit Order Book)
  • D-{YYYYMMDD | YYYYMMDDHH} defines the time partition:
    • YYYYMMDD → daily data (UTC)
    • YYYYMMDDHH → hourly data (UTC)
  • E-HYPERLIQUIDL4: Hyperliquid L4 exchange identifier
  • IDDI-[IDENTIFIER]: CoinAPI's internal identifier
  • SC-[COINAPI_SYMBOL_ID]: CoinAPI's symbol identifier
  • S-[EXCHANGE_SYMBOL]: The symbol as identified by the exchange

File Format

Files are in CSV format, compressed with gzip. Each row represents a single order book update.

Data Fields

Column NameTypeDescription
time_exchangedatetimeUTC timestamp of the update provided by the exchange or estimated using the exchange API delay.
time_coinapidatetimeUTC timestamp when CoinAPI first received the update.
update_typestringDescribes the order book operation. See Update Types Explained for definitions.
is_buybooleanIndicates if the update is related to the bid side of the book. 0 for ask (sell), 1 for bid (buy).
entry_pxdecimalPrice of the order.
entry_sxdecimalCurrent size of the order.
order_idstringExchange-provided order identifier.
userstringUser or account identifier associated with the order, as provided by Hyperliquid.
tifstringTime-in-force value. Examples: Alo, Gtc, Ioc.
reduce_onlybooleanIndicates whether the order is reduce-only. 0 for false, 1 for true.
order_typestringOrder type. Examples: Limit, Market, Take Profit Limit, Take Profit Market, Stop Market, Stop Limit.
cloidstringClient order identifier, when provided by the exchange.
orig_sizedecimalOriginal order size at placement.
trigger_conditionstringHuman-readable trigger condition. N/A for regular orders. Examples: Price above 65000 or Price below 65000 for stop, take-profit, or stop-loss orders.
is_triggerbooleanIndicates whether the order is a stop, take-profit, or stop-loss order that will activate when trigger_px is reached. 0 for regular limit orders.
trigger_pxdecimalPrice at which a trigger order activates. 0.0 for non-trigger orders.
is_position_tpslbooleanIndicates whether the order is a take-profit or stop-loss that applies to an entire position, rather than a specific order.
children_oidsstringComma-separated list of order IDs for bracket child orders attached to the parent order. Empty when no children are attached.
is_childbooleanIndicates whether the order is a child order in a bracket. 0 for parent orders, 1 for child orders.
hl4_statusstringHyperliquid L4 order status. Present on incremental updates only. See hl4_status Values for definitions. Empty on SNAPSHOT rows.

Example Data

Snapshot rows establish the initial order book state:

time_exchange;time_coinapi;update_type;is_buy;entry_px;entry_sx;order_id;user;tif;reduce_only;order_type;cloid;orig_size;trigger_condition;is_trigger;trigger_px;is_position_tpsl;children_oids;is_child;hl4_status
00:00:00.0050246;00:00:00.7751290;SNAPSHOT;0;63058.0;0.00362;463141850511;0x388d9e1ccaec74527f73f8c87b5928ba28c06c03;Alo;0;Limit;0x00000000000000000000019e9681853a;0.00362;N/A;0;0.0;0;;0;

Incremental update examples:

00:00:00.0050246;00:00:00.8864830;SET;0;63123.0;0.026;463141856202;0xf5dd745bcf393686ceffb6a43f7e7b4c172aefad;Alo;0;Limit;0x57f9b690afe6937760d553b17a3aebc4;0.026;N/A;0;0.0;0;;;OPEN
00:00:00.0050246;00:00:00.8340728;DELETE;0;63072.0;0.01138;463141848401;0x31ca8395cf837de08b24da3f660e77761dfb974b;Alo;0;Limit;;0.01138;N/A;0;0.0;0;;;CANCELED
00:00:00.0050246;00:00:00.8889144;REJECTED;0;63057.0;0.52335;463141856209;0x2cffce91b4e0c81df18726ff66b31b2b1545e1ad;Alo;0;Limit;0x20e929c95def00cf6b53743265be0100;0.52335;N/A;0;0.0;0;;;REJECTED_ALO

Data Collection Process

  1. We maintain a real-time connection to the Hyperliquid L4 exchange.
  2. Every change to the order book is captured and recorded with full order-level detail.
  3. The data is processed, normalized, and stored in our system.
  4. At the end of each day (UTC), the data is aggregated into daily files and uploaded to the S3 bucket.

Update Types Explained

  • SNAPSHOT: Provides a full snapshot of the order book. All previous data should be discarded before processing a SNAPSHOT.
  • SET: Order accepted and placed in the book.
  • DELETE: Order removed from the book. See hl4_status for the removal reason.
  • REJECTED: Order rejected. See hl4_status for the rejection reason.
  • PENDING: Order is pending activation (for example, a trigger order waiting for its trigger price).

hl4_status Values

hl4_status is present on incremental updates only, alongside update_type. Snapshot rows leave this field empty.

ValueDescription
OPENOrder accepted and placed on the book.
FILLEDOrder fully executed.
CANCELEDOrder canceled by the user.
TRIGGEREDStop/TP/SL trigger order was activated and executed.
REDUCE_ONLY_CANCELEDCanceled because it would increase position size (reduce-only constraint).
SELF_TRADE_CANCELEDCanceled to prevent self-trading against own orders.
SIBLING_FILLED_CANCELEDOCO bracket — canceled because its sibling order was filled.
MARGIN_CANCELEDCanceled by the risk engine due to insufficient margin.
VAULT_WITHDRAWAL_CANCELEDCanceled due to a vault withdrawal reducing available balance.
LIQUIDATED_CANCELEDCanceled as part of a liquidation process.
REJECTED_ALORejected — Add Liquidity Only order would have crossed the spread.
REJECTED_MARGINRejected — insufficient perpetual margin.
REJECTED_IOCRejected — Immediate-or-Cancel order could not be filled immediately.
REJECTED_BALANCERejected — insufficient spot balance.
REJECTED_REDUCERejected — reduce-only order would not reduce position.
REJECTED_MIN_NTLRejected — order size below minimum notional value.
REJECTED_ORACLERejected — oracle price deviation too large.
REJECTED_OIRejected — would exceed open interest limit.

Corner Cases and Special Considerations

  1. Snapshots: Snapshots are provided at the start of each day or after a disconnection. Always process SNAPSHOT updates by clearing the existing book first.
  2. Bracket Orders: Parent orders may reference child orders via children_oids. Child orders are identified by is_child = 1.
  3. Trigger Orders: Stop, take-profit, and stop-loss orders include trigger_condition, is_trigger, and trigger_px fields.
  4. High Frequency Updates: During periods of high volatility, you may observe a very high frequency of updates.

Usage Tips

  1. To reconstruct the full order book, process updates sequentially, maintaining the state of the book in memory.
  2. Use the time_exchange field for accurate sequencing of updates.
  3. Pay attention to the update_type and hl4_status fields to correctly apply changes to your local order book representation.
  4. Use the user field to analyze order book composition by Hyperliquid account.

For any questions or issues with the Hyperliquid L4 Book data, please contact our support team.

Service StatusGitHub SDK