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
Order Object
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.
Cancellation Statuses
Orders with these statuses were placed successfully but later canceled due to user action or system conditions.
Rejection Statuses
Orders with these statuses were rejected before being placed on the order book due to validation failures or risk constraints.
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
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
}
}
API Usage
gRPC Streaming
// Subscribe to orders
const request = {
subscribe: {
stream_type: 'ORDERS',
start_block: 0,
filters: {
"user": ["0x123..."],
"coin": ["BTC", "ETH"],
"status": ["open", "filled"]
}
}
};
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": {
"streams": ["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:
szfield shows remaining size,origSzshows original order size - Hash Field:
nullfor rejected orders that don't reach the blockchain - Client Order IDs: Use
cloidfor tracking your own orders
Related Streams
- 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