Guides / Trade History

SOL Trade History — Executed Fills on Kalshi & Polymarket Up/Down

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.

Intervals covered

Contract intervalWhat it means for SOL Up/Down
5mResolves every 5 minutes. Thinnest books; spread is usually the dominant cost.
15mResolves every 15 minutes. Enough depth to test size without moving the book much.
1hHourly resolution. The most consistently quoted interval across both venues.
4hFour-hour resolution. Slower drift, fewer independent observations per day.
24hDaily resolution. Closest to a directional bet; overnight gaps matter most here.

Contract interval vs. snapshot granularity

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.

Fields, by venue

Trade records keep venue-specific identifiers rather than discarding them, because they are what let you reconcile against the venue's own records later.

FieldVenueMeaning
market_idbothNormalized market identifier
timestampbothUnix seconds of the fill
pricebothExecution price in cents
sizebothContracts filled
taker_sideKalshiWhich side lifted the book
trade_idKalshiVenue trade identifier
sidePolymarketDirection of the fill
transaction_hashPolymarketOn-chain settlement reference
fee_rate_bpsPolymarketFee applied, in basis points
asset_idPolymarketOutcome token the fill was against

Querying it

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.

Reading the tape against the book

Access

SOL Up/Down trade history is included from the Pro plan; Builder adds Kalshi alongside Polymarket across a 60-day window.

Related

Related guides

Data from Kalshi and Polymarket. Search live API docs Pricing