Resolution & Oracle
Market Lifecycle
Section titled “Market Lifecycle”
PrediX market lifecycle states
| Stage | Description |
|---|---|
| Created | Creator (with CREATOR_ROLE) creates a market, sets endTime + selects oracle |
| Trading | Users split / merge / trade until endTime |
| EndTime | Trading closes (hook blocks add liquidity + swap). Oracle window opens |
| Resolved | Oracle calls resolveMarket() with the outcome |
| Redemption | Users holding the winning token → redeem for USDC |
| RefundMode | Fallback if oracle cannot resolve (oracle down, dispute hung) |
| Refunded | Users burn YES+NO pairs → receive USDC pro-rata |
4 Oracle Types
Section titled “4 Oracle Types”
PrediX 4 oracle types
1. ChainlinkOracle - Automatic, permissionless.
Section titled “1. ChainlinkOracle - Automatic, permissionless.”PrediX uses ChainlinkOracle when Price-threshold markets (BTC, ETH, asset prices, FX rates).

ChainlinkOracle PrediX
2. ManualOracle
Section titled “2. ManualOracle”PrediX uses ChainlinkOracle with Subjective events (sports, elections, debate outcomes).
Multisig 2/3 reads the result from an off-chain source and signs the transaction.
- Source: Reuters, AP, official APIs, on-chain data, video streaming.
- Outcome is immutable once set (invariant INV-6).
- Audit trail:
OracleReportCreatedevent on-chain.
3. UMAOracle (Phase 2 - TBA)
Section titled “3. UMAOracle (Phase 2 - TBA)”PrediX uses UMAOracle with Events requiring decentralized resolution without multisig dependency (Permissionless propose + 48h dispute window).

UMAOracle PrediX
Bond sizing: max(min_bond, min(market_tvl x 0.5%, max_bond)). Range $500 - $50,000 USDC.
4. Committee Oracle (Phase 3 - TBA)
Section titled “4. Committee Oracle (Phase 3 - TBA)”PrediX uses Committee Oracle with Cross-chain governance outcomes, complex composite events.
- t-of-N threshold signature (e.g., 5-of-9 validators).
- Commit-reveal voting prevents front-running.
- PRX slashing if a vote contradicts the final consensus.
- Cross-chain via Wormhole / LayerZero.
Oracles Comparison
Section titled “Oracles Comparison”| Manual | Chainlink | UMA | Committee | |
|---|---|---|---|---|
| Who resolves | Multisig 2/3 | Anyone | Anyone proposes, DVM disputes | t-of-N validators |
| Subjective events | ✅ | ❌ | ✅ | ✅ |
| Dispute | Off-chain social | None (data is law) | On-chain 48h | On-chain commit-reveal |
| Latency | Instant after signing | After 1 round (~30s-1min) | 48h default | After commit-reveal cycle |
| Decentralization | Low | Medium | High | High |
Refund Mode - Last Resort
Section titled “Refund Mode - Last Resort”When no oracle can resolve → admin enables refund mode via 48h timelock → users burn YES+NO pairs → receive USDC pro-rata.
Incorrect Resolution - What to Do
Section titled “Incorrect Resolution - What to Do”| Phase | Mechanism |
|---|---|
| Phase 1 (Manual) | Multisig discussion, social consensus. If majority agrees resolution was wrong → enable refund mode |
| Phase 2 (UMA) | Dispute via UMA protocol, DVM vote |
| All phases | isResolved=true is never reverted (INV-6 hard invariant) |
Who Can Create Markets
Section titled “Who Can Create Markets”- Phase 1: Addresses with
CREATOR_ROLE(admin + whitelisted creators). - Phase 3 (TBA): Permissionless - anyone can create a market by staking a PRX bond (10k PRX proposed). Bond is slashed if the market is malformed or resolution is disputed.
Resolve Timing
Section titled “Resolve Timing”- Resolve window: 7 days after endTime. If delayed → may trigger default refund mode.
- Redemption: No hard deadline, 365-day grace period, after which admin may call
sweepUnclaimedto transfer to treasury. - UMA dispute: 48h after proposal.
Time parameters are configurable per-market or globally.