Skip to content

Oracle and resolution: how an outcome is announced ​

This article is about the mechanism of resolution — the timeline and the rules common to all participants. For the duties and risks of the oracle itself there is a separate article, Oracle; here we look at how a market gets from betting close to payouts.

The gist in two paragraphs ​

A market can only be resolved after betting closes (betting_expiration) — while bets are still coming in, announcing an outcome is pointless. A market has a result_expiration deadline by which the oracle must announce the result (pm_resolve_market). On resolution, payouts to those who called it right are credited automatically (virtual pm_payout), losing outcomes are zeroed out and their money goes into the winners' prize pot.

If there is no outcome — the event was cancelled, the source disappeared, a draw with no winner — the market is closed as no-contest (pm_no_contest): bets are refunded, nobody wins and nobody loses. And if the oracle stayed silent past the deadline and the grace period, the market dies as missed-resolution (the oracle is penalised). There is also an early path: markets with allow_early_resolution can be closed sooner if the outcome is already known for sure.

Market timeline ​

1. Open. Bets are coming in, the price floats along the curve. Resolution is forbidden.

2. Betting closes (betting_expiration). Bets are no longer accepted. The window opens in which the oracle can (and must) announce the outcome.

3. Resolution (pm_resolve_market). The oracle announces the winning outcome. The node splits the pool: payouts are automatic, there is nothing to claim by hand. For the resolution the oracle gets its fee (capped by a median parameter).

4. Dispute window. After the announcement comes the grace period (pm_dispute_grace_sec) in which the outcome can be challenged (see Disputes). Until the dispute is finalised the payouts are not final.

5. Settlement. The confirmed outcome is settled: LP liquidity is returned (principal-protected) and the prize pot is distributed.

Special paths ​

Early resolution (allow_early_resolution). If the market was created with this flag and the outcome is already known for certain, the oracle closes it early. result_expiration then shifts to the moment of resolution (the dispute window collapses to "now + grace"), but disputers still keep the full pm_dispute_grace_sec from the announcement. A late resolution (after result_expiration), on the contrary, does not extend the window.

No-contest (pm_no_contest). There is no outcome — the market is cancelled and bets are refunded. This is not a penalty on participants: their money does not "burn" because a source went quiet. The oracle must declare no-contest in time if there is not going to be a result.

Missed-resolution (void on deadline). The oracle did not announce an outcome and did not declare no-contest before result_expiration + grace → the cron voids the market and the oracle is slashed. Important: the void only fires after result_expiration + pm_dispute_grace_sec (the same cutoff as the settle-sweep) — so that the oracle has a real resolution window rather than a race against the deadline (this was fixed by the reachability fix; otherwise a fixed-deadline market without the early flag was impossible to resolve).

What to understand ​

  • Resolution only after betting closes. Not before; the early path is a separate market flag.
  • Payouts are automatic. No "claim", no buttons: winnings and refunds arrive on resolution/cancellation.
  • Silence is punished. No outcome → no-contest in time. Simply "doing nothing" = missed-resolution and a slashing of the oracle.
  • The outcome is not final until the grace period ends. Within the dispute window payouts can be recomputed.
  • Leverage does not wait for resolution. Leverage positions are closed at the price as of betting_expiration, independently of the oracle's verdict — see Leverage trader.
  • Oracle — who announces the outcome and what they answer with.
  • Disputes — how to challenge an announced result.
  • Bettor — what resolution looks like from the bet's side.
  • Specification — the formal deadlines and cutoffs.