Skip to main content
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>
key
string
required
Your GoldRush API key. Passed as a query parameter at connection time.

Comparison with the public Hyperliquid WebSocket

Public WebSocketGoldRush
URLwss://api.hyperliquid.xyz/wswss://hypercore.goldrushdata.com/ws?key=<GOLDRUSH_API_KEY>
AuthNonekey query parameter (required)
Subscriptions per IP1000No cap
Wire compatibilityn/a (it’s the source)Byte-for-byte
Available channelsSee Hyperliquid DocsSee Available subscriptions

Available subscriptions

Order book

ChannelSubscription bodyReturns
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

ChannelSubscription bodyReturns
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.