event_type is one of 5m · 15m · 1h · 4h · daily_up_down.
Event types
event_type | Duration | Resolution boundary |
|---|---|---|
5m | 5 minutes | every :00, :05, :10 … |
15m | 15 minutes | every :00, :15, :30, :45 |
1h | 1 hour | every :00 |
4h | 4 hours | every 4-hour boundary |
daily_up_down | 1 day | midnight UTC |
YES / NO tokens
Each market trades two tokens on the Polymarket CLOB:- YES — pays out 0 otherwise.
- NO — pays out 0 otherwise.
yes_ask + no_ask should be ≥ 1 — even by a few cents — there’s a logical arb
on the table: buy both sides, collect the deterministic payoff at
resolution.
Strike price
The strike is the underlying’s spot price at the market’s open boundary, not its close. Markets are published 12–24 hours before they open (so users can pre-trade), which means the strike isn’t defined until the open boundary passes. The API computes strike as follows:Tickers
Three crypto underlyings:ticker | Binance symbol | Chainlink aggregator (Polygon) |
|---|---|---|
BTC | BTCUSDT | 0xc907E116054Ad103354f2D350FD2514433D57F6f |
ETH | ETHUSDT | 0xF9680D99D6C9589e2a93a78A04A279e509205945 |
SOL | SOLUSDT | 0x10C8264C0935b3B9870013e057f330Ff3e9C56dC |
BTC), not the symbol.
Resolution outcome
When a market resolves, Polymarket publishes aresolution_outcome
string. We normalise to "Up" / "Down":
| Polymarket text | Normalised | YES payout | NO payout |
|---|---|---|---|
starts with up | Up | $1 | $0 |
starts with down | Down | $0 | $1 |
| anything else | left raw | — | — |