Skip to main content
Settlement is fully automated via oracle-service and the PredictStreetOracle contract. The pipeline combines three independent data sources, enforces a 2-of-3 consensus against a primary source, and opens a bond-backed challenge window before finalising.

Flow

The T+0 → T+137 timeline from event end to USDC distribution.

Challenges

10 USDC bond, 2h window, override / confirm / void outcomes.

Void / delayed

When automated settlement cannot proceed safely.

Three data sources

SourceRolePrimary fields
Stats PerformPrimary — live SDDP WebSocket + SDAPI RESTMatch score, elapsed, status
API-FootballSecondary — REST pollingMatch score, status
SportmonksSecondary — REST pollingMatch score, status
Consensus rules (PS-SOP §8.2):
  • 3-of-3 → proceed with proposal
  • 2-of-3primary must agree with majority. If not, pause for manual review.
  • 0-of-3 / unavailable → market moves to DELAYED

Bond + challenge window

  • Challenger bond: 10 USDC
  • Challenge window: 2 hours after proposal
  • Only the first challenge per market is accepted
Outcomes:
DecisionChallenger bondFinalisation
Confirm originalForfeited to revenue walletOriginal payouts stand
OverrideReturned + rewardCorrected payouts
VoidReturned in fullAll collateral returned to users

Emergency paths

  • markDelayed(questionId) / undelay(questionId) — pause while waiting for data.
  • voidMarket(questionId) — CO + CTO joint decision (admin multi-sig).
  • initiateProposalClear + executeProposalClear — 7-day timelock path for clearing a stuck proposal.

What partners typically need to know

  1. Fills are not final until the oracle finalises the market.
  2. Subscribe to oracle.market_resolved to know when redemption is available.
  3. Redemption is on-chain — call ConditionalTokens.redeemPositions with your winning tokens. Helper endpoint: POST /api/me/redemptions.