Skip to main content

Order-Log Replay (L3)

Order-Log Replay reconstructs the full Level-3 order book from a Hyperliquid order-log capture and plays it back in your browser — every resting individual order, its account, and its FIFO queue position, block by block. Where Depth Replay shows aggregated size at each price (L2), this shows the orders inside each level (L3).

Like the depth tool, it runs entirely in your browser in WebAssembly — nothing is uploaded, and the capture never leaves your machine. Open it from the Start menu → Services → Order-Log Replay, or go to alphaquick.io/orderlog.

Opening a capture​

Click 📂 Open file and choose a *_HLC_*.bin.lz4 order-log capture (the per-order recording produced by AlphaQuick's Hyperliquid recorder — e.g. BTC_HLC_20260806.bin.lz4). Files up to ~1 GB are read in one pass and indexed ("Indexing order log… NN%"); multi-GB files are first read from disk in chunks ("Reading file locally… NN%") and then indexed, all while staying responsive — and the file never leaves your machine. The status line then shows the coin, day, and counts (blocks, orders, trades, accounts).

What you see​

DOM ladder (L3) — asks over bids with a spread divider, but each row shows the number of resting orders on that level (N×) alongside the total size and a size histogram. Click any level to open its queue.

Level queue — the orders resting at the clicked level, in price then FIFO priority (front of queue first): index, size, cumulative size, order id, and the full account address (0x…, never truncated). This is the L3 detail the aggregated ladder can't show — who is queued where, and in what order.

Order events — the live event feed as the replay advances: opens, cancels, fills, resizes and (optionally) rejects, each with status, side, time-in-force, price, size and order id, colour-coded.

Time & Sales — the trade tape (time · ▲/▼ · price · size), with a running buy/sell/CVD readout.

Charts — mid & best bid/ask, cumulative volume delta, and resting liquidity over time.

Controls​

  • ▶ Play / ⏸ Pause, ⏮ Restart, and a scrubber to jump anywhere; the whole L3 book is reconstructed for that moment.
  • Speed 0.5× – 25×.
  • levels (12/16/24/40) and group (1× … 1000×) to squeeze the ladder into coarser price buckets — the order counts and sizes aggregate accordingly.
  • rejects to include rejected orders in the event feed (reload the file to apply).

How it works​

The engine is Rust compiled to WebAssembly. It decodes the order-log records, reconstructs the L3 book with the normative Hyperliquid replay rules (opens rest, cancels/fills remove, trades reduce maker and taker, snapshots resize in place), and replays block-by-block as the playhead moves. Everything — decode, book reconstruction, rendering — happens on your device, so proprietary recordings stay private.

Limits & tips​

  • Size — files up to ~1 GB load fully into memory for the snappiest scrubbing. Larger files (up to ~3.4 GB) are read in chunks and streamed — the compressed capture stays in the browser's memory and blocks are decoded on demand, so there's no single 2 GB allocation wall. Above ~3.4 GB the tool declines with a message — record or export a shorter time window.
  • The book at the start — when a capture opens with a day-start snapshot (full day files do), the L3 ladder is populated with the resting book from t=0, before you press play.
  • Streaming seeks — on a streamed (large) file, jumping backwards replays from the nearest keyframe, so it's a touch slower than the in-memory path; forward play is smooth. The status line notes when a file is streamed.
  • Load pause — a large capture spends a few seconds reading + indexing before it plays; this is one-time and shows a progress %.
  • Rejected orders are hidden by default (they never touch the book); toggle rejects and reload to include them.