Team Ai
Datasetpublic

Solal9/polymarket-crypto-updown-binary

Polymarket Crypto Up/Down Binary Markets Historical orderbook and market snapshot data from Polymarket's short-duration binary "Up or Down" prediction markets for BTC, ETH, SOL, and XRP. Collected continuously over approximately two months at 60-second polling intervals. This dataset captures something genuinely uncommon in publicly available crypto data: minute-resolution implied probabilities for 5-minute, 15-minute, hourly, and daily directional outcomes, with full… See the full description on the dataset page: https://huggingface.co/datasets/Solal9/polymarket-crypto-updown-binary.

sourceHugging Facecc-by-4.0updated 5mo agoView on Hugging Face
1likes251downloads
Dataset Card

Polymarket Crypto Up/Down Binary Markets

Historical orderbook and market snapshot data from Polymarket's short-duration binary "Up or Down" prediction markets for BTC, ETH, SOL, and XRP. Collected continuously over approximately two months at 60-second polling intervals.

This dataset captures something genuinely uncommon in publicly available crypto data: minute-resolution implied probabilities for 5-minute, 15-minute, hourly, and daily directional outcomes, with full top-of-book pricing and 5-level orderbook depth.

This dataset was collected while building Kresmion, a financial intelligence platform

What's in this dataset

4 assets: BTC, ETH, SOL, XRP 4 timeframes: 5m, 15m, 1h, 1d (1h and 1d markets are BTC-only on Polymarket) Total markets covered: thousands of resolved binary markets Collection cadence: 60-second polls Time period: [FILL IN: e.g. 2026-03-14 to 2026-05-20, with documented gaps]

Two files per asset-timeframe pair:

  • —`<asset>_<timeframe>_snapshots.parquet` — one row per poll: market metadata, top-of-book pricing, implied probability, depth summary, market-wide volume and liquidity
  • —`<asset>_<timeframe>_orderbook.parquet` — one row per orderbook level per poll: full 5-level depth on both sides with cumulative size and USDC value

Schema

Snapshots

ColumnTypeDescription
collection_timestamp_utcdatetimeWhen this row was collected
market_idstringPolymarket internal market identifier
event_idstringParent event identifier
condition_idstringPolymarket condition identifier (used on the CLOB)
slugstringHuman-readable market slug, e.g. btc-updown-5m-1773315900
assetstringbtc, eth, sol, xrp
questionstringFull market question text
descriptionstringMarket description from Polymarket
market_categorystringPolymarket category tag
window_start_unixintUnix timestamp of the prediction window start
window_start_utcdatetimeWindow start in UTC
window_end_utcdatetimeWindow end in UTC
end_timedatetimeMarket end as reported by Gamma API
resolution_timedatetimeUMA resolution time from Gamma API
active_statusboolWhether the market was active at collection time
closed_statusboolWhether the market was closed at collection time
market_typestring5m, 15m, 1h, 1d
outcomesjsonOutcome labels, e.g. ["Up","Down"]
outcome_pricesjsonOutcome prices, e.g. ["0.54","0.46"]
best_bidfloatTop bid on the Yes/Up token
best_askfloatTop ask on the Yes/Up token
last_pricefloatLast traded price on the Yes/Up token
implied_probabilityfloatProbability of the Up outcome
spreadfloatBid-ask spread on the Yes/Up token
bid_depth_sharesfloatTotal share depth across top-5 bid levels
ask_depth_sharesfloatTotal share depth across top-5 ask levels
bid_depth_usdcfloatUSDC notional depth across top-5 bid levels
ask_depth_usdcfloatUSDC notional depth across top-5 ask levels
bid_levels_countintBid levels actually present (≤ 5)
ask_levels_countintAsk levels actually present (≤ 5)
bid_vwapfloatVWAP across captured bid depth
ask_vwapfloatVWAP across captured ask depth
volumefloatAll-time market volume from Gamma API
volume_24hfloatTrailing 24h market volume from Gamma API
liquidityfloatMarket liquidity from Gamma API

Orderbook

ColumnTypeDescription
collection_timestamp_utcdatetimeWhen this row was collected
market_idstringPolymarket internal market identifier
assetstringbtc, eth, sol, xrp
market_typestring5m, 15m, 1h, 1d
slugstringHuman-readable market slug
token_idstringCLOB token identifier (Up or Down side)
sidestringbid or ask
levelint1 = best price, increasing toward worse prices
pricefloatPrice at this level
sizefloatShares available at this level
usdc_valuefloatprice × size
cumulative_sizefloatRunning total of shares from level 1 to this level
cumulative_usdcfloatRunning total of USDC from level 1 to this level

How the data was collected

A Python collector polled two of Polymarket's public APIs every 60 seconds:

  • —Gamma API (https://gamma-api.polymarket.com) — market metadata, volume, liquidity
  • —CLOB API (https://clob.polymarket.com) — live orderbook depth

Both endpoints are public and require no authentication. The collector respected standard HTTP retry-after headers and used connection pooling to minimize load.

Market identification

Polymarket uses two different slug formats for Up/Down markets depending on timeframe:

Format A — unix timestamp suffix (5m and 15m markets): btc-updown-5m-1773315900 btc-updown-15m-1773315900 The window start is computable as floor(now / window_seconds) * window_seconds. No API discovery is needed because slugs are fully deterministic.

Format B — human-readable date/time suffix (1h and 1d markets): bitcoin-up-or-down-march-14-10am-et (1h) bitcoin-up-or-down-on-march-14 (1d) 1h markets use Eastern Time with 12-hour clock and no leading zero. 1d markets use UTC date of the market end day. Both formats pre-create multiple future windows, so the collector generated current + next N window slugs per cycle to capture the transition when one market resolves and the next becomes active.

Polling behavior

For each market, the collector fetched:

  1. 1.Market metadata and volume from Gamma
  2. 2.Live orderbook (5 levels each side) from CLOB
  3. 3.Computed depth aggregates (total shares, USDC, VWAP per side)

Snapshots were appended to per-asset, per-timeframe CSV files. The original CSVs have been converted to Parquet for this release.

Known limitations and gaps

Honest disclosure of what this dataset is and isn't.

Gaps in collection. The collector was not running continuously. Approximate gap periods:

  • —[FILL IN: e.g. 2026-04-02 to 2026-04-08 (collector downtime)]
  • —[FILL IN: e.g. 2026-04-19 to 2026-04-21 (network issue)]
  • —[FILL IN: any other gaps]

To identify gaps programmatically, look for periods where collection_timestamp_utc skips by more than ~120 seconds.

Orderbook depth limited to 5 levels per side. Microstructure research requiring full book reconstruction will find this dataset insufficient. The depth captures the typical Polymarket orderbook well for short-duration markets but doesn't include deep tails.

Resolution outcomes. [FILL IN: state whether the dataset includes final resolution outcomes for closed markets. If yes, describe which column holds it. If no, document the gap and suggest pulling from Polymarket's resolution endpoint via the market_id column.]

Coverage by asset. ETH, SOL, and XRP only have 5m and 15m markets on Polymarket as of the collection period. Only BTC has 1h and 1d markets. The dataset reflects this — there are no eth_1h_*, sol_1d_*, etc. files.

Single collector. Data was collected from a single source point. There is no cross-validation against an independent collector.

API rate limits. During brief periods of high market activity, individual polls may have failed and retried. These show up as occasional gaps of 60-180 seconds rather than the standard 60-second cadence.

Suggested analyses

Things this dataset can support:

  • —Information aggregation efficiency in very short-duration prediction markets (5-15 minute windows are particularly novel)
  • —Comparing Polymarket implied probabilities against realized BTC/ETH/SOL/XRP returns at matching timeframes
  • —Cross-asset correlation of binary market pricing during volatility regimes
  • —Microstructure analysis: spread dynamics, depth resilience, response to underlying spot moves
  • —Calibration studies: how well do market-implied probabilities match observed frequencies of Up vs Down outcomes
  • —Bid-ask spread term structure across 5m, 15m, 1h, 1d horizons
  • —Trading bot research and backtesting against historical orderbook state

Loading the data

python
import pandas as pd

# Single file
snapshots = pd.read_parquet("btc_5m_snapshots.parquet")
orderbook = pd.read_parquet("btc_5m_orderbook.parquet")

# Or load via the Hugging Face datasets library
from datasets import load_dataset
ds = load_dataset("kresmion/polymarket-crypto-updown-binary")

License and use

Released under CC-BY-4.0. You're free to use, modify, and redistribute this data for any purpose including commercial use, provided you give appropriate credit.

The data was collected from Polymarket's public APIs which do not require authentication. Polymarket's Terms of Service apply to any downstream redistribution of the data they originated. If you redistribute this dataset or derivatives of it, please:

  1. 1.Credit the original collection ("Dataset collected via Polymarket public APIs")
  2. 2.Link back to this Hugging Face dataset page
  3. 3.Review Polymarket's current ToS for your specific use case

Citation

If you use this dataset in research or publication:

bibtex
@misc{kresmion2026polymarket,
  title  = {Polymarket Crypto Up/Down Binary Markets Dataset},
  author = {Kresmion},
  year   = {2026},
  url    = {https://huggingface.co/datasets/kresmion/polymarket-crypto-updown-binary}
}

About

This dataset was collected while building Kresmion, a financial intelligence platform that surfaces cross-asset signals from public filings, on-chain activity, derivatives positioning, and prediction markets. The collector ran as part of an experimental arbitrage research project; the dataset is being released because the underlying data is more broadly useful to researchers working on prediction market efficiency, short-duration directional pricing, and crypto microstructure.

Kresmion publishes its full methodology at kresmion.com/about/methodology and is free during beta.