Skip to main content
Channels identify the stream you want. Symbols identify the market inside that channel’s venue family.
Lighter live subscriptions are available on lighter_orderbook, lighter_trades, lighter_open_interest, and lighter_funding through wss://api.0xarchive.io/ws. lighter_candles and lighter_l3_orderbook are replay-only, and all six Lighter channels support historical replay. See Lighter WebSocket channels for live message shapes.Lighter on Robinhood Chain live subscriptions are available on rh_lighter_orderbook, rh_lighter_trades, rh_lighter_open_interest, and rh_lighter_funding through wss://api.0xarchive.io/ws. rh_lighter_candles is replay-only, and all five Robinhood Chain channels support historical replay. See Lighter on Robinhood Chain.

Examples

Unsubscribe

Pick the channel family and symbol format together. A HIP-3 symbol does not belong on a Lighter channel.

Channel Selection

Choose channels the same way you choose REST route families. Hyperliquid core channels are for standard perp symbols such as BTC and ETH. Spot work should use Spot-specific route and stream context when available. HIP-3 channels keep the builder prefix, HIP-4 channels keep outcome identifiers, and Lighter channels stay under the Lighter family.

Channel Family Matrix

Use this matrix to avoid treating every WebSocket channel as the same stream.

Live and replay availability

Replay availability is a channel contract, not a family-wide default. Standard timed replay emits timeline events according to speed. Core L4 uses checkpoint-anchored bulk delivery. A live channel can still have no replay path, and stored replay can remain available while current reads use REST. For core L4, replay starts from the latest usable checkpoint at or before the requested start time. A request can be rejected when no checkpoint is available for that symbol and window. See WebSocket replay for the l4_snapshot and l4_batch event flow.

Lighter live channels

Live Lighter channels use the same subscribe command and data envelope as live Hyperliquid channels, on wss://api.0xarchive.io/ws. lighter_orderbook sends a full top-20 book at most once per interval: one book per second by default, or the rate set by the optional interval_ms subscribe field (100 to 5000). lighter_trades sends fill legs, two per trade with the same tid. lighter_open_interest and lighter_funding carry the same market-context message. Live payloads differ from the historical_data rows that Lighter replay returns, so parse them separately. See Lighter WebSocket channels for payload fields, errors, and lag notices. Lighter on Robinhood Chain live subscriptions are available on rh_lighter_orderbook, rh_lighter_trades, rh_lighter_open_interest, and rh_lighter_funding through wss://api.0xarchive.io/ws. rh_lighter_candles is replay-only, and all five Robinhood Chain channels support historical replay. The live messages use the same shapes as the mainnet channels, rh_lighter_orderbook takes the same interval_ms range, and a multi-channel replay keeps rh_lighter_* and lighter_* channels in separate commands.

Native userFills terminology

Native Hyperliquid userFills maps to 0xArchive trades. 0xArchive has no WebSocket channel named userFills; do not subscribe to a nonexistent fill channel. Use trades and filter the returned rows client-side when attribution is needed.

Subscription Fields

Record these fields for each active subscription. Store the checklist with active connection state. On reconnect, restore from this checklist list. On unsubscribe, remove it from the list before trusting local subscription state.

Common Channel Mistakes

Do not send a HIP-3 symbol to a Lighter channel. Do not strip a HIP-3 prefix before subscribing. Do not treat HIP-4 outcome identifiers as ordinary perp symbols. Do not add Spot pairs to a generic perp stream; use Spot channel names such as spot_orderbook and keep dashed pair symbols visible in code.

State Handling

For order books and reconstruction workflows, treat the first snapshot as the baseline and each update as an ordered change. Live lighter_orderbook is the exception: every live message is a full top-20 book, so replace local state with each message instead of applying it as a change. Store channel, symbol, timestamp, and message type with local state so a replay or reconnect can show what happened. If a gap event appears, mark the local state unsafe until it is rebuilt from a fresh snapshot or replay window.

Keep Subscriptions Bounded

Subscribe to the minimum channel and symbol set for the job, then add more only after throughput and reconnection behavior are understood. A dashboard can usually tolerate fewer channels than a backtest replay, and a backtest replay usually needs stronger gap handling than a simple monitor.

Unsubscribe And Reconnect Discipline

Subscription code should include the inverse operation. If an example subscribes, also show or link to unsubscribe behavior. Long-running clients should track active subscriptions so reconnects do not accidentally duplicate streams. Treat subscription state as application state. Expose the active channel set in debug output so stream bugs can be inspected without reproducing the whole session.
Last modified on September 29, 2026