Kalshi KXBTCD: Bitcoin price above/below (daily) — order book & trade data
105K book and trade events for Kalshi's bitcoin price above/below (daily) markets, recorded live since 2026-10-01 — about 4,180 events a day.
Coverage
KXBTCD BTC Daily data coverage
What is recorded, how often it updates and how much there is.
Recording since
2026-10-01
25 days so far · no backfill
Events recorded
104,500
≈ 105K as of 2026-10-25
Avg events / day
4,180
book snapshot · book delta · trade
Update frequency
Order-book snapshots, deltas and trades streamed in real time
Daily activity · last 25 days
Indicative daily event volume, last 25 days to 2026-10-25. Shape modeled from collector stats; mean matches the average events/day above.
About this market
What is KXBTCD BTC Daily?
KXBTCD is Kalshi's daily bitcoin ladder: every day a stack of 'BTC above $X at 5pm ET?' contracts is listed across a range of strikes, and the whole ladder trades at once. AymarData has been recording the KXBTCD series since 2026-10-01 and holds 105K events so far — about 4,180 a day. History is forward-only; we record live and do not backfill Kalshi.
Each contract is a binary on whether the reference BTC price is above its strike at the daily cut-off. Because the strikes form a ladder, the YES prices across the stack are effectively a market-implied probability distribution for bitcoin's end-of-day price — and that distribution is what the order-book data lets you reconstruct.
KXBTCD is the best Kalshi series for comparing a retail-heavy prediction market with a deep spot market. Pair the YES-ladder with Binance BTCUSDT ticks to measure how fast Kalshi reprices after a spot move, and how the implied distribution compares with what actually happened at settlement.
What moves KXBTCD
- Distance from spot to each strike, which turns every BTC move into repricing across the whole ladder
- US macro prints and ETF-flow headlines in the hours before the cut-off
- Volatility regime — realized and implied vol set how wide the ladder's mass is
Schema
KXBTCD BTC Daily fields and sample rows
The same columns are returned by the API and in Parquet and CSV files.
| Field | Type | Description |
|---|---|---|
| ts_ms | int64 | Exchange event time, Unix milliseconds |
| ticker | string | Full Kalshi market ticker |
| event_type | string | book_snapshot | book_delta | trade |
| side | string | buy / sell on trades; bid / ask on book events |
| yes_bid | number | Best YES bid, 0–1 dollars |
| yes_ask | number | Best YES ask, 0–1 dollars |
| volume | int64 | Contracts traded or resting at the level |
Sample rows
| ts_ms | ticker | event_type | side | yes_bid | yes_ask | volume |
|---|---|---|---|---|---|---|
| 1792937107581 | KXBTCD-26OCT2617-T67000 | book_snapshot | bid | 0.62 | 0.64 | 1787 |
| 1792937108082 | KXBTCD-26OCT2617-T67500 | trade | buy | 0.41 | 0.43 | 3274 |
| 1792937108713 | KXBTCD-26OCT2617-T68000 | book_delta | ask | 0.22 | 0.24 | 2182 |
Illustrative rows for the KXBTCD series; tickers follow Kalshi's naming and prices are YES quotes in dollars (0–1).
Code
Pull KXBTCD BTC Daily in Python, cURL or MCP
Market id: KXBTCD-26OCT2617-T67000. Export AYMARDATA_API_KEY from your dashboard, then run the Python requests example.
import os
import requests
API = "https://api.aymardata.com/v1"
KEY = os.environ["AYMARDATA_API_KEY"] # export AYMARDATA_API_KEY=ad_live_…
H = {"Authorization": f"Bearer {KEY}", "User-Agent": "aymardata-docs/1.0"}
# KXBTCD: ten minutes of trades and book updates for one contract
trades = requests.get(
f"{API}/trades",
headers=H,
params={
"source": "kalshi",
"market": "KXBTCD-26OCT2617-T67000",
"start": "2026-10-25T14:00:00Z",
"end": "2026-10-25T14:10:00Z",
"limit": 500,
},
timeout=30,
).json()["data"]
last = trades[-1]
print(last["ticker"], last["yes_bid"], last["yes_ask"])
book = requests.get(
f"{API}/book",
headers=H,
params={
"source": "kalshi",
"market": "KXBTCD-26OCT2617-T67000",
"at": "2026-10-25T14:05:00Z",
"depth": 10,
},
timeout=30,
).json()
print(book.get("spread"), len(trades))FAQ
KXBTCD BTC Daily: common questions
How is a KXBTCD ticker structured?
KXBTCD-<settlement date and hour>-T<strike>, for example KXBTCD-26OCT2617-T67000: a daily contract settling at 17:00 ET on 26 October on whether BTC is above 67,000. Contracts at the same settlement time form one ladder.
Can I rebuild the implied BTC distribution from this data?
Yes. Take YES mid-prices (average of yes_bid and yes_ask) for each strike at one timestamp; the difference between adjacent strikes approximates the probability of settling in that bucket. Repeat over time to watch the distribution shift.
What moves KXBTCD prices?
Distance from spot to each strike, which turns every BTC move into repricing across the whole ladder; US macro prints and ETF-flow headlines in the hours before the cut-off; and volatility regime — realized and implied vol set how wide the ladder's mass is.
How much KXBTCD history is available?
Recording began 2026-10-01 and is forward-only. At the time of this page that is 25 days, 105K events and about 4,180 events a day.
How do I query KXBTCD data with the API?
Use market=<full ticker> such as KXBTCD-26OCT2617-T67000 with source=kalshi on /v1/trades or /v1/book, or ask the MCP server for the series by name. The snippets on this page are ready to run with your API key.
Related
Related markets and next steps
KXBTCMAX · BTC Max Price
Bitcoin maximum price in a window
KXETHD · ETH Daily
Ether price above/below (daily)
INXD · S&P 500 Daily
S&P 500 above/below (daily close)
Polymarket: BTC Up/Down 15m
Prediction-market view of the same asset
Binance USDⓈ-M perps: BTCUSDT perp
Binance perpetual: funding and mark price
Binance spot: BTCUSDT spot
Binance spot order book
Hyperliquid: BTC perp
On-chain perpetual
← All kalshi data
Parent hub for Kalshi
Pricing →
Builder, Pro and Enterprise plans
Backtest KXBTCD BTC Daily with real tick data
Get an API key, pull your first window and join it with the other sources in the catalog.