Skip to main content

Orders Dataset

Updated on
Feb 13, 2026

Overview

The orders stream contains all order status updates from the Hyperliquid exchange. This includes order placements, cancellations, fills, rejections, and other lifecycle events.

Stream Type: ORDERS
API Availability: gRPC Streaming API + JSON-RPC/WebSocket APIs
Volume: Very High - Most frequent stream with 18+ different status types

Data Structure

Each block contains an array of order status events:

{
"local_time": "2025-12-04T17:00:00.268701903",
"block_time": "2025-12-04T17:00:00.083688002",
"block_number": 817828537,
"events": [
{
"time": "2025-12-04T17:00:00.268701903",
"user": "0xeb6eda4756f831824cd28e568ef8adcff35016e3",
"hash": "0x81598918a9303dff82d30430bf015102068e00fe44335cd12522346b683417ea",
"builder": null,
"status": "open",
"order": {
"coin": "ZEC",
"side": "B",
"limitPx": "356.42",
"sz": "1.1",
"oid": 258166303284,
"timestamp": 1764867600268,
"triggerCondition": "N/A",
"isTrigger": false,
"triggerPx": "0.0",
"children": [],
"isPositionTpsl": false,
"reduceOnly": false,
"orderType": "Limit",
"origSz": "1.1",
"tif": "Gtc",
"cloid": "0x89119db7aae18b90abe620888af9aadc"
}
}
]
}

Event Fields

FieldTypeDescription
timestringTimestamp of the order status event (ISO 8601)
userstringEthereum address of the user who placed the order
hashstring|nullTransaction hash (null for rejected/canceled orders without blockchain tx)
builderobject|nullBuilder information when order flow comes through a builder. Contains {"b": "builder_address", "f": fee_in_basis_points}. Null for direct orders.
statusstringOrder status - see Order Statuses below
orderobjectFull order details - see Order Object below

Order Object

FieldTypeDescription
coinstringTrading pair (e.g., "BTC", "ETH", "xyz:NVDA", "@162")
sidestringOrder side: "B" (Buy) or "A" (Ask/Sell)
limitPxstringLimit price as string
szstringCurrent order size (can be "0.0" if fully filled)
oidintegerUnique order ID
timestampintegerOrder creation timestamp (milliseconds since epoch)
triggerConditionstringTrigger condition or "N/A" if not a trigger order
isTriggerbooleanWhether this is a trigger/stop order
triggerPxstringTrigger price (0.0 if not applicable)
childrenarrayArray of child orders (for complex order types)
isPositionTpslbooleanWhether this is a position-level TP/SL order
reduceOnlybooleanWhether order can only reduce position
orderTypestringOrder type: "Limit", "Market", etc.
origSzstringOriginal order size at placement
tifstringTime-in-force: "Gtc", "Alo", "Ioc", etc.
cloidstring|nullClient order ID (optional, for user reference)

Builder Orders

When order flow comes through a builder (MEV builder or order flow provider), the builder field contains structured information about the builder and associated fees.

Builder Object Structure:

FieldTypeDescription
bstringBuilder Ethereum address (e.g., "0x999a4b5f268a8fbf33736feff360d462ad248dbf")
fintegerBuilder fee in basis points (e.g., 20 = 0.20%)

Example builder object:

{
"b": "0x999a4b5f268a8fbf33736feff360d462ad248dbf",
"f": 20
}

When is builder null vs populated?

  • null: Direct orders placed by users without a builder intermediary
  • populated: Orders that flow through builders, often for HIP-3 coins or MEV-related order flow

HIP-3 Coins: Orders for HIP-3 coins (identified by prefixes like vntl:, xyz:, etc.) commonly include builder information. Examples: vntl:SPACEX, xyz:NVDA, vntl:TRUMPWIN.

Filtering for builder orders:

// WebSocket - Get all orders with any builder
{"streamType": "orders", "filters": {"builder": ["*"]}}

// WebSocket - Get orders for specific builder
{"streamType": "orders", "filters": {"builder": ["0x999a4b5f268a8fbf33736feff360d462ad248dbf"]}}

// gRPC - Get all orders with any builder
{"builder": {"values": ["*"]}}

// gRPC - Get orders for specific builder
{"builder": {"values": ["0x999a4b5f268a8fbf33736feff360d462ad248dbf"]}}

Order Statuses

The following order statuses are observed in the dataset:

Success Statuses

These statuses indicate orders that have been successfully processed or are actively working on the exchange.

StatusDescription
openOrder successfully placed and is active on the orderbook
filledOrder fully executed/filled
triggeredTrigger order condition met and order activated

Cancellation Statuses

Orders with these statuses were placed successfully but later canceled due to user action or system conditions.

StatusDescription
canceledOrder canceled by user or system
marginCanceledOrder canceled due to insufficient margin
openInterestCapCanceledOrder canceled due to open interest cap reached
reduceOnlyCanceledReduce-only order canceled (likely position closed)
scheduledCancelOrder canceled on a scheduled basis
selfTradeCanceledOrder canceled to prevent self-trading
siblingFilledCanceledOrder canceled because a sibling order filled

Rejection Statuses

Orders with these statuses were rejected before being placed on the order book due to validation failures or risk constraints.

StatusDescription
badAloPxRejectedALO (Add Liquidity Only) order rejected due to bad price (would cross spread)
iocCancelRejectedIOC (Immediate or Cancel) order rejected/canceled
insufficientSpotBalanceRejectedOrder rejected due to insufficient spot token balance
minTradeNtlRejectedOrder rejected - notional value below minimum
oracleRejectedOrder rejected due to oracle price issues
perpMarginRejectedPerpetual order rejected due to insufficient margin
perpMaxPositionRejectedPerpetual order rejected - would exceed max position size
positionFlipAtOpenInterestCapRejectedOrder rejected - would flip position at OI cap
positionIncreaseAtOpenInterestCapRejectedOrder rejected - would increase position at OI cap
reduceOnlyRejectedReduce-only order rejected (would increase position)
tooAggressiveAtOpenInterestCapRejectedOrder rejected - too aggressive near OI cap

Market Types

Orders can reference different market types via the coin field:

  • Standard perpetuals: "BTC", "ETH", "SOL", etc.
  • Prediction markets (XYZ): "xyz:NVDA", "xyz:AAPL", "xyz:TSLA", etc.
  • Spot tokens: "@162", "@198", etc.

Time-in-Force (TIF) Types

TIFDescription
GtcGood-Till-Cancel (remains active until filled or canceled)
AloAdd-Liquidity-Only (will only add to book, not cross spread)
IocImmediate-or-Cancel (executes immediately or cancels)
FrontendMarketMarket order from frontend interface

Example Order Events

Open Order
{
"time": "2025-12-04T17:00:00.268701903",
"user": "0xeb6eda4756f831824cd28e568ef8adcff35016e3",
"hash": "0x81598918a9303dff82d30430bf015102068e00fe44335cd12522346b683417ea",
"builder": null,
"status": "open",
"order": {
"coin": "ZEC",
"side": "B",
"limitPx": "356.42",
"sz": "1.1",
"oid": 258166303284,
"timestamp": 1764867600268,
"triggerCondition": "N/A",
"isTrigger": false,
"triggerPx": "0.0",
"children": [],
"isPositionTpsl": false,
"reduceOnly": false,
"orderType": "Limit",
"origSz": "1.1",
"tif": "Gtc",
"cloid": "0x89119db7aae18b90abe620888af9aadc"
}
}
Filled Order
{
"time": "2025-12-04T17:00:00.475982103",
"user": "0x4c96f9be0e7bd04bb2db2a5cdf0b8797be00b0da",
"hash": "0xace6f472128f05e4ae600430bf19350202770057ad8224b650af9fc4d182dfcf",
"builder": null,
"status": "filled",
"order": {
"coin": "ZEREBRO",
"side": "B",
"limitPx": "0.036676",
"sz": "0.0",
"oid": 258174064171,
"timestamp": 1764868092303,
"triggerCondition": "N/A",
"isTrigger": false,
"triggerPx": "0.0",
"children": [],
"isPositionTpsl": false,
"reduceOnly": false,
"orderType": "Limit",
"origSz": "2858.0",
"tif": "Gtc",
"cloid": null
}
}
Rejected Order
{
"time": "2025-12-04T17:00:00.105982103",
"user": "0x1234567890abcdef1234567890abcdef12345678",
"hash": null,
"builder": null,
"status": "perpMarginRejected",
"order": {
"coin": "BTC",
"side": "B",
"limitPx": "95000.0",
"sz": "10.0",
"oid": 258166123456,
"timestamp": 1764867600105,
"triggerCondition": "N/A",
"isTrigger": false,
"triggerPx": "0.0",
"children": [],
"isPositionTpsl": false,
"reduceOnly": false,
"orderType": "Limit",
"origSz": "10.0",
"tif": "Gtc",
"cloid": null
}
}
Order with Builder
{
"time": "2025-12-04T17:15:23.456789012",
"user": "0xabc123def456789abcdef0123456789abcdef012",
"hash": "0x789abc123def456789abcdef0123456789abcdef0123456789abcdef012345678",
"builder": {
"b": "0x999a4b5f268a8fbf33736feff360d462ad248dbf",
"f": 20
},
"status": "open",
"order": {
"coin": "vntl:SPACEX",
"side": "B",
"limitPx": "125.50",
"sz": "50.0",
"oid": 258166987654,
"timestamp": 1764868523456,
"triggerCondition": "N/A",
"isTrigger": false,
"triggerPx": "0.0",
"children": [],
"isPositionTpsl": false,
"reduceOnly": false,
"orderType": "Limit",
"origSz": "50.0",
"tif": "Gtc",
"cloid": "0x12345678abcdef1234567890abcdef12"
}
}

API Usage

gRPC Streaming
// Subscribe to orders
const request = {
subscribe: {
stream_type: 'ORDERS',
filters: {
"user": {"values": ["0x123..."]},
"coin": {"values": ["BTC", "ETH"]},
"status": {"values": ["open", "filled"]},
"builder": {"values": ["*"]} // Filter for orders with any builder
}
}
};
JSON-RPC
# Get latest order blocks
curl -X POST https://your-endpoint.hype-mainnet.quiknode.pro/your-token/hypercore \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "hl_getLatestBlocks",
"params": {
"stream": "orders",
"count": 10
},
"id": 1
}'
WebSocket
// Subscribe to orders
ws.send(JSON.stringify({
"method": "hl_subscribe",
"params": {
"streamType": "orders"
}
}));

Important Notes


  • High Volume: Orders stream has the highest event frequency - use filtering for specific users/coins
  • Order Lifecycle: Track complete order lifecycle from placement to completion/cancellation
  • Status Importance: Different status types indicate various success/failure conditions
  • Partial Fills: sz field shows remaining size, origSz shows original order size
  • Hash Field: null for rejected orders that don't reach the blockchain
  • Client Order IDs: Use cloid for tracking your own orders

  • Trades - See the actual fills that result from these orders
  • Book Updates - See how open orders affect the order book
  • Events - View system events that may cause order cancellations
Share this doc