Skip to content

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 (>2 outcomes) → 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.