Connect
Decide what to set before you connect, then open the socket, authenticate, keep it alive, and reconnect cleanly.
Keep alive
Ping/pong, idle timeout, backoff, and resubscription discipline.
Channels
Subscribe to order books, trades, L4 diffs, HIP-3, HIP-4, and Lighter channels.
Real-time streams
Choose WebSocket when live updates and sequence matter.
L4 order book
Maintain stateful L4 books with snapshots, diffs, gaps, and replay.
Replay
Play historical sequences at a controlled speed and handle gap messages.
Backtesting
Use replay windows for deterministic research and strategy checks.
Message schema
Use documented command and event shapes for clients and agents.
Limits
Size subscriptions, replay jobs, and reconnection behavior for your plan.
Tier limits
Match subscription count, replay speed, and concurrency to plan limits.
Latency, freshness, and infrastructure boundaries
The canonical customer endpoint iswss://api.0xarchive.io/ws. Current WebSocket health is an HTTP service check, not a client connection-time or round-trip measurement. The service does not publish a stable numeric WebSocket latency claim.
Keep these measurements separate: HTTP service health, server-side REST handler timing, stored-data freshness, ingest lag, WebSocket upgrade/connect time, application ping/pong round-trip time, and client processing lag. In the data-quality response, websocket.current_ms is the latest stored order-book freshness value, not client WebSocket round-trip time. There is no published end-to-end WebSocket latency percentile today.
A client can measure one session with the native application ping/pong messages. Send {"op":"ping"} and time the response {"type":"pong"}. That result describes the requesting client’s path and processing, not a platform-wide claim.
0xArchive does not sell a general Hyperliquid node or RPC service and does not publish deployment topology here. The docs do not make region, co-location, or root-cause claims about infrastructure.
Server-Side Smoke Test
When To Use WebSocket
Use WebSocket when sequence matters. Live subscriptions are useful for monitors, dashboards, and local books that need updates after an initial state. Replay is useful for backtests, incident review, reconstruction, and workflows where event order carries meaning. If the job only needs one current order-book snapshot or one bounded trade list, REST is usually simpler and easier to retry. For a Hyperliquid-focused overview of live channels, replay speeds, and depth choices, start with the Hyperliquid WebSocket Streaming API. Every WebSocket client should implement four paths: open and authenticate, subscribe or start replay, handle messages, and recover from close or gap signals. A client that only handles happy-path messages will eventually corrupt a local stateful workflow. Keep reconnection and resubscription explicit, and route gap handling to the same data-quality policy used by REST jobs.Stream Execution Checklist
Before writing WebSocket code or handing the task to an agent, capture the stream checklist.
If the checklist is incomplete, start with REST or a one-channel sample instead of a broad streaming client.
Contract Boundaries
WebSocket is a command-and-event surface. Client commands useop values such as subscribe, unsubscribe, replay, replay.pause, replay.resume, replay.seek, replay.stop, and ping. Server replay events use event names such as replay_started, replay_snapshot, historical_data, replay_completed, and gap_detected.
Use WebSocket message schema before building typed handlers. Do not infer event names from the replay-control command names; replay.pause is a client command, while replay_paused is a server event.
Message Discipline
Do not mix venue families inside one channel assumption. A HIP-3 channel should use HIP-3 symbols such askm:US500. Lighter channels should stay in the Lighter namespace. If the stream feeds a model, alert, or strategy harness, store enough message metadata to reconstruct what channel, symbol, time window, and request produced the state.