Replay a Hyperliquid order book snapshot list

Matchstick guide
#guide#import#hyperliquid#bring-your-own-data

Import a list of Hyperliquid l2Book responses you saved yourself and step through the book in your browser. Try a made-up sample first.

What you get: a list of order-book snapshots you saved from Hyperliquid’s public API, replayed step by step in the Matchstick Replay app. The file stays on your machine. No Hyperliquid data is bundled or shown here; the sample below is made up.

Try the made-up sample first

Open the Try the public demo, open the session menu, and pick Perp book (synthetic). It is a generated BTC book with the same shape as Hyperliquid’s feed (20 levels per side, one-dollar steps, millisecond times) and two large resting orders that appear and disappear. It is not a real market and not a real account.

1. Save the snapshots

Hyperliquid’s info API answers an l2Book request with one snapshot: the coin, a millisecond time, and up to 20 levels per side with price, size and order count (https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint, read 2026-10-10). Call it repeatedly, save each response in order, and write them as a JSON array or one JSON object per line.

2. Import it

  1. Open the Matchstick Replay app. The Replay app is invite-only. Request access at app.matchstick.trading; the public demo at replay.matchstick.trading needs no account. Request access.
  2. Open the session menu and choose Import file….
  3. Pick your file. The first snapshot is the starting book; every later snapshot becomes the level changes that turn the previous book into it.

3. What to expect

  • The book is only as fine as your snapshots. Replay shows what your snapshots saw. It does not invent what happened between two of them.
  • Time never runs backwards. Snapshots must be in increasing time order.
  • One coin per file.
  • The docs page does not say which of the two levels lists is bids. Replay reads the first as bids and the second as asks, and refuses a snapshot whose best bid is not below its best ask, so a swapped pair is caught rather than guessed.
You seeIt meansDo this
LEGACY_IMPORT_FAILED naming a snapshot numberThat snapshot has a bad price or size, a time that did not increase, a different coin, or a crossed bookFix or drop that snapshot and import again

Fills against the book

Hyperliquid also returns an account’s recent fills (up to 2000 per response). Lining each fill up with the latest snapshot at or before its millisecond tells you the best bid and ask it traded against, and how old that snapshot was. A fill before the first snapshot or after the last one is reported as a gap rather than guessed. This check is a developer command today, not a button in the app.

Don’t do this

  • Check Hyperliquid’s own terms before you share anything built from its data. Its historical-data page states none, which is not the same as permission.
  • Matchstick makes no performance claim about any data or any account.