The GoldRush Hyperliquid WebSocket API is a drop-in replacement for wss://api.hyperliquid.xyz/ws. Subscription payloads, channel names, and message shapes are byte-for-byte identical to the public Hyperliquid feed. The only difference is the connection URL - authentication is a required key query parameter, so no header changes are needed in your client.
Endpoint
wss://hypercore.goldrushdata.com/ws?key=<GOLDRUSH_API_KEY>
Your GoldRush API key. Passed as a query parameter at connection time.
Comparison with the public Hyperliquid WebSocket
| Public WebSocket | GoldRush |
|---|
| URL | wss://api.hyperliquid.xyz/ws | wss://hypercore.goldrushdata.com/ws?key=<GOLDRUSH_API_KEY> |
| Auth | None | key query parameter (required) |
| Subscriptions per IP | 1000 | No cap |
| Wire compatibility | n/a (it’s the source) | Byte-for-byte |
| Available channels | See Hyperliquid Docs | See Available subscriptions |
Available subscriptions
Order book
| Channel | Subscription body | Returns |
|---|
l2Book | {"type": "l2Book", "coin": "BTC"} | Real-time L2 order book snapshots - bids and asks aggregated by significant figures. coin is optional - omit it to stream every asset on one subscription. |
l2BookDiff | {"type": "l2BookDiff", "coin": "HYPE"} | GoldRush-native L2 diff transport - initial Snapshot per coin plus per-block Updates carrying only changed {px, sz, n} levels. coin accepts a single asset, an array of assets, or can be omitted to stream every asset. Not available on the public Hyperliquid WebSocket. |
l4Book | {"type": "l4Book", "coin": "BTC"} | GoldRush-native order-level book stream - initial Snapshot of every resting order plus per-block Updates with order_statuses and book_diffs. Exposes user, oid, cloid, tif, and trigger metadata per order. coin is required. Not available on the public Hyperliquid WebSocket. |
Wallet activity
| Channel | Subscription body | Returns |
|---|
userFills | {"type": "userFills", "addresses": ["0x…"]} | Live trade fills for one or more wallets, batched per block as [address, fill] tuples. Aliases user / users also accepted. |
orderUpdates | {"type": "orderUpdates", "addresses": ["0x…"]} | Live order lifecycle events (placements, fills, cancels, rejections) for one or more wallets, batched per block as an updates array of objects, each tagged with the originating user. Aliases user / users also accepted. |
liquidationFills | {"type": "liquidationFills"} | Global stream of every liquidation fill on HyperCore. Same shape as userFills with a non-null liquidation object on every entry. GoldRush-native, no upstream equivalent. |
userNonFundingLedgerUpdates | {"type": "userNonFundingLedgerUpdates", "addresses": ["0x…"]} | Live non-funding ledger events (deposits, withdrawals, transfers, liquidations, vault actions, staking, rewards) for one or more wallets. |
Limits
No 1000-subscription-per-IP cap. On l2Book and l2BookDiff, filter parameters are optional - omit coin to stream the full L2 book across every asset on a single subscription. The wildcard defaults to perps only (marketTypes: ["perp"]); pass ["spot"], ["outcome"], a mix, or ["*"] to opt into spot, outcome, and future market types. l2BookDiff additionally accepts an array of coin symbols for a fixed multi-asset subscription. l4Book requires coin and is one-asset-per-subscription. See Limits & Connections for details.
For richer real-time analytics (pre-decoded HyperCore fills, liquidations, vault events, OHLCV across every HIP-3/HIP-4 market), pair the WebSocket with the GraphQL Streaming API.