Guide
Bitcoin Up/Down order book microstructure on Polymarket
Bitcoin is the busiest crypto contract in the archive and it sets the benchmark for pricing quality. This page reads the measured microstructure of Polymarket BTC Up/Down markets - market counts, spread, top-of-book depth, crossed-book frequency and reference-price coverage - straight from the same L2 snapshots the API serves.
What this guide covers
- 833 BTC Up/Down markets in the archive, 598 of them 5-minute, 220 15-minute and 15 4-hour
- Average market spread of 0.0115 (median 0.0100) - the tightest of the eight crypto assets
- Average top-of-book liquidity of about $57k per market over the trailing three days
- 2.79% of the last 24 hours of BTC book snapshots were crossed (best bid above best ask)
- All 833 markets settle on chainlink_twap reference prices
How many BTC markets the archive holds
At the time of writing (2026-10-17) the archive holds 833 Bitcoin Up/Down markets, split across the three standard horizons: 598 pay every 5 minutes, 220 every 15 minutes, and 15 over 4 hours. That 5-minute share - roughly 72% of all BTC markets - is what makes Bitcoin the deepest continuous series in the dataset.
442 of the 833 markets have resolved with a recorded winner. Those resolved markets are almost evenly split, 231 up versus 211 down (52.3% up), which is the balance you would expect from a near-martingale underlying. The remaining markets were still accepting orders or had not been graded when the snapshot was taken.
Because every market is snapshotted on the same 250ms cadence, a 5-minute BTC window yields a dense ladder of books. Over a single 24-hour window the archive captured 903,969 BTC book snapshots across 1,124 outcome tokens - the highest raw volume of any asset tracked.
| Horizon | Markets |
|---|---|
| 5 minute | 598 |
| 15 minute | 220 |
| 4 hour | 15 |
| Total | 833 |
Measured spread and depth
Bitcoin quotes the tightest book in the dataset. Averaged across every BTC market over the trailing three days, the market spread is 0.0115 with a median of 0.0100 - a one-cent-wide book on a contract that trades between 0 and 1. Ethereum is the next tightest at 0.0139; the widest tracked asset, Zcash, averages 0.4271, about 37 times wider.
Depth tells the same story. The trailing three-day average top-of-book liquidity for a BTC market is roughly $57,147, more than twice Ethereum's $26,844 and 28 times the $2,044 seen on ZEC. In practice that means a modest market order on a 5-minute BTC contract is unlikely to walk the book far from the touch.
This matters for fill modeling. A backtest that assumes a 0.01 spread on BTC is close to reality; the same assumption on HYPE (0.1025 average) or ZEC (0.4271 average) would understate transaction costs by an order of magnitude.
import statistics
import requests
BASE = "https://api.polyorderbooks.com/v1"
HEADERS = {"X-API-Key": "your-key"}
# A resolved 5-minute BTC market, one minute at 250ms resolution.
slug = "btc-updown-5m-1787486400"
r = requests.get(
f"{BASE}/markets/{slug}/books",
headers=HEADERS,
params={"start_ts": 1787486400, "end_ts": 1787486460, "resolution": "250ms"},
)
r.raise_for_status()
yes = r.json()["data"]["Yes"]
spreads = []
for snap in yes:
if snap["bids"] and snap["asks"]:
spreads.append(snap["asks"][0][0] - snap["bids"][0][0])
print(f"n={len(spreads)} mean={statistics.mean(spreads):.4f} "
f"median={statistics.median(spreads):.4f}")Crossed books and repricing speed
A crossed book is a snapshot where the best bid sits above the best ask - a momentary arbitrage that the next tick normally clears. Across the last 24 hours, 25,246 of 903,969 BTC snapshots were crossed, a rate of 2.79%. That is the highest crossed rate of any asset except Ethereum's 2.94% and Solana's 2.63%.
A high crossed rate is a signal of repricing intensity, not a broken feed. Bitcoin's book updates most often because it is the most actively quoted contract, so it catches more mid-move states before the book self-corrects. Illiquid assets sit at the other end: ZEC was crossed in only 101 of 96,959 snapshots (0.10%).
For a backtester this is a concrete warning. If your simulator fills any order that touches a crossed book, BTC results will be inflated by frequent phantom liquidity. Model fills against a de-crossed book, or skip crossed snapshots, and the effect largely disappears.
Settlement and reference coverage
Every BTC market in the archive is tagged settlement_source = chainlink_twap, so grading compares the settlement window's TWAP against the reference level using the Chainlink feed rather than a Polymarket-internal price. The archive also stores the underlying reference observations so you can reconcile a grade yourself.
Reference-price capture for BTC is the most complete in the dataset: 66,403 observations recorded between 07:38:14 and 18:20:15 UTC on 2026-10-17, covering both spot and the native 60-second TWAP. Joining those rows to a market's final books lets you reconstruct exactly which reference value graded the market.
import requests
BASE = "https://api.polyorderbooks.com/v1"
HEADERS = {"X-API-Key": "your-key"}
# Pull BTC reference prices (spot + Chainlink TWAP) for grading.
r = requests.get(
f"{BASE}/reference-prices",
headers=HEADERS,
params={"asset": "btc", "start_ts": 1787486400, "end_ts": 1787486700},
)
for row in r.json()["data"]:
print(row["t"], row["kind"], row["value"], row["provider"])What this means for a BTC backtest
For most strategies Bitcoin is the forgiving case: tight spreads, deep books and a dense 250ms series mean the archive can support realistic fills without heroic modeling. The corrections that matter are the crossed-book filter above and a spread assumption near 0.01 rather than zero.
If your strategy depends on sub-penny edge, remember the tick is 0.01 on a 0-1 contract. Bitcoin's median spread of exactly 0.0100 means the touch is often a full tick wide - a round-trip cost you must clear before any edge is real.
Code examples
import requests
BASE = "https://api.polyorderbooks.com/v1"
HEADERS = {"X-API-Key": "your-key"}
slug = "btc-updown-5m-1787486400"
r = requests.get(
f"{BASE}/markets/{slug}/books",
headers=HEADERS,
params={"start_ts": 1787486400, "end_ts": 1787486460, "resolution": "250ms"},
)
r.raise_for_status()
book = r.json()
print("tokens:", book["tokens"])
print("first Yes snapshot:", book["data"]["Yes"][0])Free tier
The Starter plan is free, includes order books, prices, and metrics at 250ms resolution, with 3 days of history, 60 requests/min, 1,000/day, 1 free AI backtest, and 3 strategy backtests. No credit card required.
Paid data windows from $19/mo extend history to 30–120 days at higher throughput. Backtest AI add-on is +$19/mo or standalone at $29/mo.
FAQ
How tight is the BTC order book on Polymarket?
Averaged over the trailing three days the spread is 0.0115, with a median of 0.0100 - about a one-cent touch on a 0-1 contract, the tightest of the eight tracked crypto assets.
Why do BTC books cross so often?
About 2.79% of the last 24 hours of BTC snapshots had best bid above best ask. It reflects fast repricing in the busiest contract rather than bad data; the next tick usually clears the cross.
What resolution does the BTC book data use?
Capture is uniform 250ms. You can query coarser grids (1s up to 1d) but the underlying cadence is always 250ms, on every plan including the free Starter tier.
How do BTC markets settle?
All 833 BTC Up/Down markets resolve on a Chainlink TWAP reference price (settlement_source chainlink_twap), and the archive stores the spot and TWAP observations used for grading.