Stream catalogue

Every stream. Every method. Every field.

The complete inventory of what the feeds carry: proto methods, compatibility, field-by-field specs, filters, snapshot semantics, sample messages, and honest volume notes. If a field is not listed here, we do not stream it.

stream.hyperliquidrpc.com:443
  • hyperliquid.*QuickNode-compatible
  • hyperliquid_l1_gateway.v2Dwellir-compatible
  • hyperliquid_swaps.v1native schema
  • hyperliquid_btc_price.v1native schema

Trades / Swaps

Native schema
hyperliquid_swaps.v1.SwapStreaming/StreamSwaps
hyperliquid.Streaming/StreamData (stream_type: TRADES)
also via

The richest feed: full wallet attribution on every fill. The flat swap schema (Solana-swap-compatible) is the recommended surface; the same fills are also available QuickNode-compatibly via StreamData with stream_type TRADES. Around 6.5M fills a day across 462 markets.

Key fields
FieldTypeDescription
coinstringMarket symbol (perp, spot @N, or HIP-3 dex:SYMBOL).
pxstringFill price.Byte-exact decimal string, never a float.
szstringFill size in base units.Byte-exact decimal string.
notionalstringFill notional in USDC.Byte-exact decimal string.
sidestringAggressor side: B (buy) or A (sell).
userstringTrader's wallet address. Full attribution on every fill.
dirstringPosition context: Open Long, Close Short, etc.
start_positionstringTrader's position before the fill.Byte-exact decimal string.
closed_pnlstringRealized PnL closed by this fill.Byte-exact decimal string.
feestringFee paid (negative when rebated).Pair with is_rebate.
is_rebateboolTrue when the fee is a maker rebate.
crossedboolTrue if this side crossed the book (taker).
oid / cloid / tiduint64 / string / uint64Order id, client order id, and trade id.
twap_iduint64?Set when the fill belongs to a native TWAP execution.
liquidationobject?Liquidation details (liquidated user, mark price) when applicable.
Server-side filters
  • coins[]: one or more markets
  • wallets[]: one or more trader addresses
  • market_type: ALL / SPOT / PERP
  • replay from a block height
Semantics

Pure event stream: one message per executed fill, in block order. No snapshot phase; replay from a past block height to backfill.

Sample message
{  "block_height": 612408133,  "block_time": "2026-06-09T08:14:02.418Z",  "coin": "BTC",  "px": "67012.0",  "sz": "0.14523",  "notional": "9732.15",  "side": "B",  "crossed": true,  "user": "0x7c4ee0c0c5d3ab91f7f0f3c2a3d6b18452e9a3f9",  "dir": "Close Short",  "start_position": "-0.42100",  "closed_pnl": "182.337041",  "fee": "2.433037",  "is_rebate": false,  "oid": 91834221107,  "cloid": "0x00000000000000000000000000a1b2c3",  "tid": 442191083327011,  "twap_id": null,  "liquidation": null}

Volume: ~6.5M fills/day across all markets (~75/s average; bursts are much higher). Filter server-side to pay only for what you subscribe to.

Read the Trades / Swaps guide

L2 Order Book

QuickNode-compatible
hyperliquid.OrderBookStreaming/StreamL2Book

Top-of-book and depth by price level for a single coin. Subscribe with {coin, n_levels}; the first message is a full snapshot, then one update per block. Levels carry price, aggregated size, and resting-order count.

Key fields
FieldTypeDescription
coinstringMarket symbol.
levelsLevel[][2]Bids and asks arrays, best price first.
pxstringPrice level.Byte-exact decimal string.
szstringAggregated size resting at the level.Byte-exact decimal string.
nuint32Number of resting orders at the level.
block_heightuint64Block this state corresponds to.
Server-side filters
  • coin: required, one market per subscription
  • n_levels: 1 to 100
Semantics

Snapshot-then-updates: first message is a full book snapshot, then one full refresh per block. The book is guaranteed never crossed.

Sample message
{  "coin": "BTC",  "block_height": 612408133,  "time": "2026-06-09T08:14:02.418Z",  "is_snapshot": false,  "levels": [    [      { "px": "67011.0", "sz": "3.41280", "n": 14 },      { "px": "67010.0", "sz": "1.20019", "n": 6 }    ],    [      { "px": "67012.0", "sz": "2.88457", "n": 11 },      { "px": "67013.0", "sz": "5.10022", "n": 19 }    ]  ]}

Volume: One update per block per subscribed coin gives predictable, low-bandwidth depth. Use n_levels: 1 as a top-of-book ticker.

Read the L2 Order Book guide

L4 Order Book

QuickNode-compatible
hyperliquid.OrderBookStreaming/StreamL4Book

Every individual resting order, attributed to its wallet. Starts with a complete book snapshot, then per-block diffs. This is the microstructure surface: queue position, order ownership, and full reconstruction at any block.

Key fields
FieldTypeDescription
oiduint64Order id of the resting order.
userstringOwner's wallet address.
coinstringMarket symbol.
sidestringB (bid) or A (ask).
pxstringLimit price.Byte-exact decimal string.
szstringRemaining size.Byte-exact decimal string.
diffs[].typeenumNEW / UPDATE / REMOVE per-block change.
Server-side filters
  • coin: required, one market per subscription
  • replay from a block height
Semantics

Snapshot + diffs: the first message is the complete order-by-order book; each block then delivers the set of order-level changes. Full snapshots can be large; set max receive size ≥256 MB.

Sample message
{  "coin": "BTC",  "block_height": 612408134,  "is_snapshot": false,  "diffs": [    {      "type": "NEW",      "order": {        "oid": 91834221299,        "user": "0x2f8a91be6cda04417e3c50f1a7b9d20c1e664b07",        "side": "A",        "px": "67018.0",        "sz": "0.75000"      }    },    { "type": "REMOVE", "oid": 91834219841 }  ]}

Volume: High volume on liquid markets. This is the full order flow behind 725M+ order updates/day, so budget bandwidth accordingly or filter to specific coins.

Read the L4 Order Book guide

Order lifecycle

QuickNode-compatible
hyperliquid.Streaming/StreamData (stream_type: ORDERS)

The full L1 order lifecycle for every wallet and market: placements, modifications, cancels, fills, trigger activations, and rejections, with the order's complete parameters on each event.

Key fields
FieldTypeDescription
userstringWallet that owns the order.
coinstringMarket symbol.
sidestringB (buy) or A (sell).
limit_pxstringLimit price.Byte-exact decimal string.
szstringOrder size.Byte-exact decimal string.
order_typestringLimit, trigger (stop/TP), etc.
tifstringTime-in-force: Gtc, Ioc, Alo.
trigger_px / trigger_conditionstring?Trigger parameters for stop and take-profit orders.
reduce_onlyboolTrue for reduce-only orders.
statusstringopen / filled / canceled / triggered / rejected.
oid / cloiduint64 / stringOrder id and optional client order id.
Server-side filters
  • coins[]
  • wallets[]
  • replay from a block height
Semantics

Pure event stream in block order: one message per order-status transition. No snapshot phase.

Sample message
{  "block_height": 612408135,  "block_time": "2026-06-09T08:14:03.121Z",  "user": "0x91b3c07a4de2f6cc185a0fd2b94e7a30c8d1572e",  "coin": "ETH",  "side": "B",  "limit_px": "3498.25",  "sz": "12.4400",  "order_type": "Limit",  "tif": "Gtc",  "trigger_px": null,  "trigger_condition": null,  "reduce_only": false,  "oid": 91834221384,  "cloid": null,  "status": "open"}

Volume: 725M+ order updates/day platform-wide (~8,400/s average). Server-side coin and wallet filters are strongly recommended.

Read the Order lifecycle guide

Raw book diffs

QuickNode-compatible
hyperliquid.Streaming/StreamData (stream_type: BOOK_UPDATES)

The lowest-level book surface: every change to every order book, as it happened. Pair with a snapshot to reconstruct the exact book state at any block; the basis of queue-position and microstructure research. Over 1B book updates archived so far.

Key fields
FieldTypeDescription
update_typeenumNEW / UPDATE / MODIFIED / REMOVE.
coinstringMarket symbol.
oiduint64Order id the delta applies to.
userstringOwner's wallet address.
sidestringB (bid) or A (ask).
pxstringPrice of the affected order.Byte-exact decimal string.
szstringSize after the change (0 on remove).Byte-exact decimal string.
block_heightuint64Block the delta belongs to; apply in order.
Server-side filters
  • coins[]
  • replay from a block height
Semantics

Pure delta stream in strict block order. Apply deltas to a snapshot (from StreamL4Book or the historical archive) for exact reconstruction.

Sample message
{  "block_height": 612408136,  "coin": "BTC",  "update_type": "MODIFIED",  "oid": 91834220771,  "user": "0x5d20af913cc01b76e4a8f20de33c197a40b8e641",  "side": "B",  "px": "67009.0",  "sz": "0.40000"}

Volume: The highest-volume stream: every book change on every market. Filter by coin unless you genuinely need the firehose.

Read the Raw book diffs guide

TWAP algos

QuickNode-compatible
hyperliquid.Streaming/StreamData (stream_type: TWAP)

Status events for Hyperliquid's native TWAP orders: who is running them, total and executed size, executed notional (giving average fill price), duration, and lifecycle status. Useful for large-order detection and flow analysis.

Key fields
FieldTypeDescription
twap_iduint64TWAP identifier; joins to twap_id on fills.
coinstringMarket symbol.
userstringWallet running the TWAP.
sidestringB (buy) or A (sell).
szstringTotal TWAP size.Byte-exact decimal string.
executed_szstringSize executed so far.Byte-exact decimal string.
executed_ntlstringNotional executed so far; divide by executed_sz for average fill price.Byte-exact decimal string.
minutesuint32Configured duration.
statusstringactivated / finished / canceled / terminated.
Server-side filters
  • coins[]
  • wallets[]
  • replay from a block height
Semantics

Event stream: one message per TWAP status change or progress update, in block order.

Sample message
{  "block_height": 612408201,  "twap_id": 48112,  "coin": "HYPE",  "user": "0xa4f17bd09e26c3158c0b7341fa882ce05d97b264",  "side": "B",  "sz": "25000.00",  "executed_sz": "9412.36",  "executed_ntl": "116214.872340",  "minutes": 60,  "randomize": true,  "status": "activated"}

Volume: Low volume relative to fills, since only institutional TWAPs appear here. Cheap to subscribe to platform-wide.

Read the TWAP algos guide

Events

QuickNode-compatible
hyperliquid.Streaming/StreamData (stream_type: EVENTS)

The non-order event surface: per-user funding payments with the funding rate, liquidations with victim and mark price, deposits, withdrawals, and position updates. The live source behind the liquidation and funding datasets.

Key fields
FieldTypeDescription
typestringfunding / liquidation / deposit / withdraw / position update.
userstringAffected wallet.
coinstringMarket symbol (funding, liquidation).
usdcstringUSDC amount of the event (signed for funding).Byte-exact decimal string.
funding_ratestringFunding rate applied (funding events).Byte-exact decimal string.
szistringSigned position size the payment applied to.Byte-exact decimal string.
liquidationobject?Liquidated size, price, and mark price (liquidation events).
Server-side filters
  • coins[]
  • wallets[]
  • replay from a block height
Semantics

Pure event stream in block order. Funding arrives per user per funding interval; liquidations as they execute.

Sample message
{  "block_height": 612409002,  "block_time": "2026-06-09T09:00:00.084Z",  "type": "funding",  "user": "0xe83b6f02a1d94c7785cb01f3aa620d94b17c08d5",  "coin": "BTC",  "usdc": "-14.302187",  "szi": "2.54000",  "funding_rate": "0.0000125"}

Volume: Bursty: funding clusters at funding intervals across 63,000+ wallets; liquidations cluster with volatility.

Read the Events guide

Blocks

QuickNode-compatible
hyperliquid.BlockStreaming/StreamBlocks
hyperliquid.Streaming/StreamData (stream_type: BLOCKS)
also via

Every L1 block as produced: height, timestamp, and the raw block content. The base layer if you want to run your own decoding, indexing, or verification on top of our node fleet.

Key fields
FieldTypeDescription
heightuint64Block height.
block_timestringBlock timestamp (ISO-8601).
rawbytesRaw block payload.
Server-side filters
  • replay from a block height
Semantics

Sequential stream of blocks; replay from any height to backfill, then continue live.

Sample message
{  "height": 612408133,  "block_time": "2026-06-09T08:14:02.418Z",  "num_txs": 1742,  "raw": "<bytes: 1.8 MB>"}

Volume: One message per L1 block. Individual blocks can be large; raise your client's max receive size.

Read the Blocks guide

Dedicated BTC price

Native schema
hyperliquid_btc_price.v1.BtcPriceStreaming/StreamBtcPrices

A single-purpose ticker for the most common ask: the current BTC price, from last trades on the BTC perp. Minimal payload, minimal bandwidth. The right surface for bots and dashboards that just need a number that moves.

Key fields
FieldTypeDescription
pxstringBTC last-trade price.Byte-exact decimal string.
block_heightuint64Block of the underlying trade.
timestringTrade timestamp (ISO-8601).
Server-side filters
  • none (the stream is pre-filtered to BTC by design)
Semantics

Pure ticker: one message per BTC last-trade price change, no snapshot phase.

Sample message
{  "px": "67012.0",  "block_height": 612408133,  "time": "2026-06-09T08:14:02.418Z"}

Volume: Tiny: a few messages per second at most. Available on every tier including Free.

Read the Dedicated BTC price guide

Dwellir-compatible gateway

Dwellir-compatible
hyperliquid_l1_gateway.v2.HyperliquidL1Gateway

For teams already integrated with Dwellir: the same hyperliquid_l1_gateway.v2 service on our endpoint. Streaming methods StreamBlocks, StreamFills, and StreamOrderbookSnapshots, plus point-in-time GetBlock, GetFills, and GetOrderBookSnapshot. Change the endpoint and key; keep your stubs.

Key fields
FieldTypeDescription
StreamBlocksstreamL1 blocks, Dwellir wire format.
StreamFillsstreamExecuted fills, Dwellir wire format.
StreamOrderbookSnapshotsstreamOrder-book snapshots, Dwellir wire format.
GetBlockunaryPoint-in-time block fetch by height.
GetFillsunaryPoint-in-time fills fetch.
GetOrderBookSnapshotunaryPoint-in-time book snapshot.
Server-side filters
  • per the gateway request messages (coin, height), identical to Dwellir's
Semantics

Identical wire semantics to Dwellir's hyperliquid_l1_gateway.v2; generated stubs work unchanged against our endpoint.

Sample message
{  "block_height": 612408133,  "coin": "BTC",  "px": "67012.0",  "sz": "0.14523",  "side": "B",  "user": "0x7c4ee0c0c5d3ab91f7f0f3c2a3d6b18452e9a3f9",  "time": "2026-06-09T08:14:02.418Z"}

Volume: Volume matches the underlying surfaces (blocks, fills, snapshots), so it is sized like the native equivalents.

Read the Dwellir-compatible gateway guide

Across every stream

Cross-cutting features

These apply to every surface above. They are properties of the platform, not of individual streams.

Server-side filtering

Filter by coin and wallet on the server. You only receive (and pay bandwidth for) what you subscribe to.

Replay from height

Start any stream from a past block height to backfill, then continue live without a gap.

All markets

Perps, spot (@N), and HIP-3 / pre-market (dex:SYMBOL), including new listings.

Exact decimals

Prices, sizes, PnL, and fees are byte-exact decimal strings. No float rounding, ever.

Wire-compatible

QuickNode and Dwellir client stubs work unchanged; switch by changing one endpoint.

Found the fields you need?

Every stream on this page is on both plans. Subscribe in under a minute.