Settlement is automated viaDocumentation Index
Fetch the complete documentation index at: https://docs.adipredictstreet.com/llms.txt
Use this file to discover all available pages before exploring further.
oracle-service and the
PredictStreetOracle contract. Binary and neg-risk markets
follow different on-chain settlement paths — see
Flow for the per-market-type timeline.
The data side is currently single-source per market (configured by
admin during market authoring). Multi-source aggregation exists in
oracle-service but is partial — when used, it follows a simple
majority rule across the configured sources; there is no
“primary-source must agree” gate enforced at this layer today.
Flow
Per-market-type timelines: binary (propose / challenge / finalize)
and neg-risk (direct winner-index report).
Challenges
Binary-only: 10 USDC bond, 2h window, override / confirm / void outcomes.
Void / delayed
When automated settlement cannot proceed safely.
Data sources
oracle-service integrates with multiple match-data providers
(Stats Perform / API-Football / Sportmonks). At the admin authoring
flow today, a market is configured with one source. Multi-source
support exists but is partial and not the default path through the
admin surface.
When multi-source IS configured, the implemented rule is simple
majority of the configured sources. The “2-of-3 against a primary
source” rule that earlier docs described is not enforced today.
A market moves to DELAYED when the configured source(s) cannot
produce a safe, unambiguous outcome — either because data is
unavailable, ambiguous, or there is no safe majority among the
configured providers. See
Void & delayed.
Bond + challenge window — binary markets only
The propose → challenge → finalize lifecycle (with bond-backed challenge window) applies to binary markets. Neg-risk markets do NOT use this lifecycle — see Flow for the neg-risk path. For binary markets:- Challenger bond: 10 USDC
- Challenge window: 2 hours after proposal
- Only the first challenge per market is accepted
| Decision | Challenger bond | Finalisation |
|---|---|---|
| Confirm original | Forfeited to revenue wallet | Original payouts stand |
| Override | Returned + reward | Corrected payouts |
| Void | Returned in full | Void payout vector applied |
Emergency paths
markDelayed(questionId)/undelay(questionId)— pause while waiting for data.voidMarket(questionId)— admin-authorised void path (governance approvals are tracked off-chain via SOP; the on-chain authorisation model is an admin role today, not a verified multisig).initiateProposalClear+executeProposalClear— 7-day timelock path for clearing a stuck proposal (binary markets).
What partners typically need to know
- Fills are not final until the oracle finalises the market.
- Subscribe to
oracle.market_resolvedfor resolved markets; void/cancel publishes viaoracle.market_cancelled(separate event — both should be handled). - Redemption is on-chain — call
ConditionalTokens.redeemPositionswith your winning tokens. No off-chain helper endpoint is exposed on the partner surface; the on-chainPayoutRedemptionevent triggers an automatic credit to your/api/me/balances.collateralvia chain-watcher.