Resolution & settlement
Resolution is how a market goes from "awaiting the result" to "winners can be paid." Each market specifies a resolution source and a resolveAfter timestamp when it is created.
The resolve window
- Lock — at the betting deadline the market stops trading (see lifecycle).
- Wait — no one can settle before
resolveAfter. This buffer gives the real-world result time to become final and verifiable. - Resolve — once the window has passed and the outcome is known, the market is resolved to YES or NO. Every market resolves to exactly one of these two sides — there is no tie.
The oracle
The single most important part of settlement is the oracle — the data source that decides which side won. A market is only as trustworthy as the source that resolves it, so POP settles markets against an onchain oracle rather than a private off-chain call.
POP builds on Chainlink for this. Chainlink's decentralized oracle network — and the Chainlink Runtime Environment (CRE) / Chainlink Functions for event-driven questions — fetches the real-world result, and the outcome is written onchain where anyone can verify it before winners are paid. Each market records its resolutionSource so the exact feed or data source used is public.
Normal settlement
When the outcome is decided, a settlement fee is taken once from totalCollateral, and the remainder funds the winning side. The losing token redeems for 0.
fee = totalCollateral × settlementFeeBps / 10 000 (capped at 5 %)
remaining = totalCollateral − fee
winning token rate = remaining × 1e18 / totalCollateral (≈ 1 USDC, minus the fee)
losing token rate = 0The settlement fee is split between the market creator and the platform (by default 30 % creator / 70 % platform). It is the only protocol fee taken at settlement; the swap fee that LPs earn is separate and accrues during trading — see Providing liquidity & fees.
Outcomes at a glance
| Resolution | YES token redeems | NO token redeems | Notes |
|---|---|---|---|
| YES | ≈ 1 USDC (net of fee) | 0 | NO holders lose their stake |
| NO | 0 | ≈ 1 USDC (net of fee) | YES holders lose their stake |
A market always settles to one side. There is no draw/tie outcome — the only non-YES/NO path is the emergency refund below, which is a safety valve, not a result of the question.
Emergency fallback — no admin resolution
The only case where a market does not pay out to a single winning side is a safety mechanism that protects users if a market is never resolved. If the outcome is still unresolved 24 hours after resolveAfter, anyone can call emergencyForceDraw() to unlock funds.
This is not a "draw" result for the question — it is a refund. Every YES and NO redeems at the market's last implied odds (P(YES) = noReserve / (yesReserve + noReserve)), and no protocol fee is taken. A balanced YES + NO pair is still worth 1 USDC, so no side is arbitrarily favored and everyone gets their capital back at the last traded probability. In normal operation this path is never reached.
After settlement
Holders claim winning tokens for USDC and LPs claim their pool payout at the settlement prices. Both are single transactions on the market contract; see the Trading guide and the LP payout example in Providing liquidity & fees.