Ga naar de hoofdinhoud

Orders Dataset

Bijgewerkt op
May 07, 2026

Overzicht

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: BESTELLINGEN
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

VeldTypeBeschrijving
tijdtekenreeksTimestamp of the order status event (ISO 8601)
usertekenreeksEthereum 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.
statustekenreeksOrder status - see Order Statuses below
orderobjectFull order details - see Order Object below

Order Object

VeldTypeBeschrijving
munttekenreeksTrading pair (e.g., "BTC", "ETH", "xyz:NVDA", "@162", "#0")
zijdetekenreeksOrder side: "B" (Buy) or "A" (Ask/Sell)
limitPxtekenreeksLimit price as string
sztekenreeksCurrent order size (can be "0.0" if fully filled)
oidgeheel getalUnique order ID
tijdstempelgeheel getalOrder creation timestamp (milliseconds since epoch)
triggerConditiontekenreeksTrigger condition or "N/A" if not a trigger order
isTriggerbooleaanse waardeWhether this is a trigger/stop order
triggerPxtekenreeksTrigger price (0.0 if not applicable)
childrenarrayArray of child orders (for complex order types)
isPositionTpslbooleaanse waardeWhether this is a position-level TP/SL order
reduceOnlybooleaanse waardeWhether order can only reduce position
orderTypetekenreeksOrder type: "Limit", "Market", etc.
origSztekenreeksOriginal order size at placement
tiftekenreeksTime-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:

VeldTypeBeschrijving
btekenreeksBuilder Ethereum address (e.g., "0x999a4b5f268a8fbf33736feff360d462ad248dbf")
fgeheel getalBuilder 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.

StatusBeschrijving
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.

StatusBeschrijving
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.

StatusBeschrijving
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 munt field:

  • Standard perpetuals: "BTC", "ETH", "SOL", etc.
  • Prediction markets (XYZ): "xyz:NVDA", "xyz:AAPL", "xyz:TSLA", etc.
  • Spot tokens: "@162", "@198", etc.
  • Outcome sides (HIP-4): "#0" (Yes), "#1" (No), etc.; format is #N where N = (outcomeIndex × 10) + sideIndex

Time-in-Force (TIF) Types

TIFBeschrijving
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"
}
}
Outcome Market Order (HIP-4)

Outcome assets (HIP-4) appear as #N-prefixed coins in order events. Both sides of a matched outcome trade are Buy orders (side: "B" for both). cloid is null in this example; outcome orders do not use client order IDs.

{
"time": "2026-05-02T08:04:26.444610309",
"user": "0xab3f8d09ae381d7f09bcbd8189ccc8aa99e8577d",
"hash": "0xe0d75028e77608d3e251043a76a4d9016a00680e827927a5849ffb7ba679e2be",
"builder": null,
"status": "filled",
"order": {
"coin": "#1",
"side": "B",
"limitPx": "0.45",
"sz": "0.0",
"oid": 407294212737,
"timestamp": 1777708216775,
"triggerCondition": "N/A",
"isTrigger": false,
"triggerPx": "0.0",
"children": [],
"isPositionTpsl": false,
"reduceOnly": false,
"orderType": "Limit",
"origSz": "20.0",
"tif": "Gtc",
"cloid": null
}
}

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
Deel dit document