> ## Documentation Index
> Fetch the complete documentation index at: https://goldrush.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Sequenced L4 Order Book Diffs for Hyperliquid

> The GoldRush Hyperliquid WebSocket API now exposes l4BookUpdates, a strictly-ordered, diff-only L4 book stream with per-coin sequence numbers for gap detection.

*Published September 30, 2026*

![Sequenced L4 Order Book Diffs for Hyperliquid](https://www.datocms-assets.com/86369/1790780859-gol598-banner.jpg)

The GoldRush Hyperliquid WebSocket API now exposes `l4BookUpdates`, a strictly-ordered, diff-only L4 book stream with per-coin sequence numbers for gap detection. It pairs with a new `/info` method, [`l4BookSnapshot`](https://goldrush.dev/docs/api-reference/hyperliquid-info/l4-book-snapshot), which returns a full order-level book for one coin along with the `height`, `epoch`, and `seq` that bootstrap the stream. Both are GoldRush-native — neither exists on the public Hyperliquid feed.

## Why it's different from `l4Book`

* **Strictly block-ordered** — diffs are emitted synchronously in monotonic `block_height` order. The [`l4Book`](https://goldrush.dev/docs/api-reference/hyperliquid-websocket/l4-book) per-block broadcast can deliver adjacent blocks out of order, which puts an exact local book out of reach. `l4Book` is unchanged; `l4BookUpdates` is the sequenced sibling.
* **Per-coin `seq` / `prev_seq`** — each per-coin entry names the sequence it follows. When `prev_seq` doesn't match the last `seq` you applied, you dropped a message and you know it on the next frame instead of drifting silently. Coins in a multi-coin subscription are sequenced independently.
* **A server `epoch`** — a UUID regenerated whenever the stream resets. A changed `epoch` tells you your local book is stale and to re-bootstrap, rather than applying diffs onto a book that no longer matches.
* **Diff-only, snapshot on demand** — the stream never emits an inline `Snapshot`. You seed from `l4BookSnapshot`, so a reconnect re-fetches the one coin you need instead of pushing every subscribed book back over the wire.

## What you can build

* **An exact local order-level book** — seed from `l4BookSnapshot`, drop buffered batches at or below its `height`, then apply `new` / `update` / `remove` diffs by `oid`. The snapshot's `seq` is the `prev_seq` of the first diff you apply.
* **Queue position and per-trader flow** — entries are individual orders carrying `user`, `oid`, and `tif`, so you can reconstruct queue order at a price, attribute flow per wallet, and follow an order's lifecycle through `order_statuses`.
* **Pipelines that can prove they're complete** — `seq`, `prev_seq`, and `epoch` turn "did I miss anything?" into a check rather than an assumption, so a market-making loop or a backfill can assert continuity.

`l4BookUpdates` is perps-only and `coin` is required — subscribe with a single symbol or an array of up to 64.

[Learn more](https://goldrush.dev/docs/api-reference/hyperliquid-websocket/l4-book-updates)
