Guides / Trade History
The SOL Up/Down trade tape is the list of fills that actually happened: price, size, side, and timestamp for every execution on Solana's Up/Down markets. Where orderbook history records what was offered, the tape records what was taken — and the gap between the two is where most optimistic backtests live.
| Contract interval | What it means for SOL Up/Down |
|---|---|
5m | Resolves every 5 minutes. Thinnest books; spread is usually the dominant cost. |
15m | Resolves every 15 minutes. Enough depth to test size without moving the book much. |
1h | Hourly resolution. The most consistently quoted interval across both venues. |
4h | Four-hour resolution. Slower drift, fewer independent observations per day. |
24h | Daily resolution. Closest to a directional bet; overnight gaps matter most here. |
These are two different things, and mixing them up is the usual reason a backtest
looks wrong. The contract interval (5m through 24h) is a property of the
market itself — how often that series resolves. The snapshot granularity
is how often ProbSights recorded the book, set with the granularity query
parameter, which accepts 1m or 5m. A 24h contract sampled at
1m gives you roughly 1,440 snapshots across its life; a 5m contract sampled at
5m gives you a handful. Pick the granularity from the resolution your strategy
needs, not from the contract interval.
Trade records keep venue-specific identifiers rather than discarding them, because they are what let you reconcile against the venue's own records later.
| Field | Venue | Meaning |
|---|---|---|
market_id | both | Normalized market identifier |
timestamp | both | Unix seconds of the fill |
price | both | Execution price in cents |
size | both | Contracts filled |
taker_side | Kalshi | Which side lifted the book |
trade_id | Kalshi | Venue trade identifier |
side | Polymarket | Direction of the fill |
transaction_hash | Polymarket | On-chain settlement reference |
fee_rate_bps | Polymarket | Fee applied, in basis points |
asset_id | Polymarket | Outcome token the fill was against |
GET /api/v1/historical/polymarket/trades
?market_id=<market_id>
&start_time=1737331200
&end_time=1737417600
&limit=1000
The response is { trades, pagination }, paged the same way as orderbook
history: follow pagination.pagination_key while
pagination.has_more is true. Use /api/v1/historical/kalshi/trades
for the Kalshi side of the same window.
mid from the matching snapshot to see what crossing actually cost.SOL Up/Down trade history is included from the Pro plan; Builder adds Kalshi alongside Polymarket across a 60-day window.
Data from Kalshi and Polymarket. Search live API docs Pricing