Resolution¶
How markets are modeled and how they settle.
Every outcome is its own binary YES/NO¶
An event is N independent binary YES/NO children sharing an event_id. Each
child is fully tradable with its own market_id:
- Binary / 2-outcome event → one child,
market_id = event_id(=slug). - Multi-outcome event (
>2outcomes) → one child per outcome,market_id = "{event_id}-{i}"with a 0-based index ({event_id}-0,{event_id}-1, …).
Both shapes return the same Market object: the event carries an outcomes[]
array, one entry per child, each with a label and yes_price / no_price in
basis points (0–10000; 5000 = 50¢, no_price = 10000 − yes_price). The
top-level category is the typed { name, sub? } object.
Trade against outcomes[i].market_id
You place orders, read books, and subscribe to WS channels against
outcomes[i].market_id — never against the bare event_id of a
multi-outcome event. Legacy market_id / yes_price / no_price on the
event itself are a first-outcome shortcut for old binary clients — prefer
outcomes[].
This one model covers sports 3-way ([team, draw, team]), long candidate lists
("next president" → one child per candidate), and multiple-winners markets
(independent children — any subset can resolve YES).
Resolution metadata¶
Each Market carries resolution_metadata and resolution_source describing
what the market settles against (official result, on-chain price feed, declared
authority). Read these to know exactly what makes an outcome resolve YES.
Settlement & payout¶
When the underlying event concludes, the market resolves. Resolved
markets stop trading; winning shares redeem for $1.00 (10000 bps) each, losing
shares for $0.00. Payouts are credited to the user's Parti balance. List
resolved markets with GET /v1/markets?status=resolved.
Positions reads surface a redeemable flag and status per market — see
LP → Concepts → Account reads.