Polymarket Crypto Up/Down Order Books: 1-Second L2 Depth Across Three Contract Lengths
Authors/Creators
Description
Full bid and ask ladders, captured once per second, for Polymarket's binary up/down cryptocurrency markets at three contract lengths: 5 minutes, 15 minutes and 4 hours. Every market has already settled, so each row carries the winning outcome.
897,192 snapshots · 805 resolved markets · 8 coins · 43 MB
| File | Rows | Markets | Contract length |
|---|---|---|---|
| updown_5m.parquet | 167,941 | 471 | 5 minutes |
| updown_15m.parquet | 239,310 | 265 | 15 minutes |
| updown_4h.parquet | 489,941 | 69 | 4 hours |
Coins: BTC, ETH, SOL, XRP, BNB, DOGE, HYPE, ZEC. Capture period 2026-08-21 to 2026-08-24 UTC.
Why three contract lengths
Published order book data for prediction markets, where it exists at all, covers a single contract length. That makes it impossible to tell whether an observed effect is a property of prediction markets or a property of five-minute prediction markets. These three files share a schema and a capture method, so they are directly comparable.
| 5m | 15m | 4h | |
|---|---|---|---|
| One side of the book empty | 16.9% | 9.3% | 0.5% |
| Crossed quotes | 3.24% | 3.08% | 1.50% |
| One side empty, final 60s | 76.2% | 85.4% | 46.5% |
| Median bid levels per snapshot | 39 | 42 | 46 |
Capture
A websocket collector subscribed to Polymarket's CLOB book feed writes a row whenever a token's book changes. Snapshots are sparse by design: an unchanged book is not rewritten.
Polymarket's feed carries roughly 24,000 events per second across all markets. Any collector drops messages at that rate, and the delta stream carries no sequence numbers, so a dropped message cannot be detected from the stream itself. To bound the resulting drift the collector re-reads the full book from Polymarket's REST API every 60 seconds and replaces its in-memory state.
That reconcile is also why this kind of data cannot be reconstructed after the fact: replaying an archived delta stream has nothing to re-read against. Measured on a public Polymarket event archive, replaying its own delta stream between its own snapshots diverged at 67.8% of 381,093 checkpoints.
Known properties, disclosed rather than cleaned
One-sided books are real. 16.9% of 5-minute rows have an empty bid or ask side, rising to 76.2% in the final minute. As a binary market resolves nobody offers the losing side. This is market behaviour, not missing data, but it will break code that assumes two-sided books.
Crossed quotes are flagged, not removed. 1.50% to 3.24% of rows have best_bid >= best_ask, which is not a tradeable state; it means one side of the in-memory book was stale. These are transient — median duration 2 seconds, and 98.2% clear within the 60-second reconcile interval. They are kept and flagged so the capture's true error rate is measurable rather than hidden.
One collector regime throughout. The 60-second reconcile began on 2026-08-20. This dataset starts on 2026-08-21 and a market is included only when its entire lifetime falls inside the window, so no market is half-captured across the change. Roughly a million rows captured under the earlier regime were excluded rather than published alongside.
Markets are sampled, not exhaustive. Drawn at random from those that resolved in the window rather than taken in sequence. Many more markets resolved in the period than are included here.
The README in this record carries the full schema, loading snippets for pandas and DuckDB, and a section showing how to verify every figure above directly from the files.
Not affiliated with, endorsed by, or connected to Polymarket. Market data is reproduced for research purposes. Nothing here is financial advice.
Notes
Files
README.md
Additional details
Related works
- Is documented by
- https://docs.polyorderbooks.com (URL)
- Is supplement to
- https://polyorderbooks.com (URL)
- Is supplemented by
- https://pypi.org/project/polyorderbooks/ (URL)
- References
- https://huggingface.co/datasets/polyorderbooks/polymarket-crypto-5min-l2 (URL)
- https://www.kaggle.com/datasets/polyorderbooks/polymarket-crypto-5min-orderbooks (URL)