Overview
Mayybee uses the UMA Optimistic Oracle to resolve prediction markets in a trustless, decentralized manner. This ensures fair outcomes without relying on a single centralized entity.Resolution Flow
- Market ends → 2. Outcome proposed → 3. Challenge period → 4. Resolution finalized
How Resolution Works
Step 1: Market Creation
When an admin creates a market, a price request is sent to the Optimistic Oracle via theUmaCompatibleCtfAdapter contract.
Step 2: Outcome Proposal
After the market ends, a proposer submits the outcome:| Price Value | Outcome | Payout Array |
|---|---|---|
1e18 | YES | [1, 0] |
0 | NO | [0, 1] |
0.5e18 | UNKNOWN | [1, 1] (50/50 split) |
Step 3: Challenge Period
Anyone can dispute the proposed outcome during the liveness period. If no dispute is raised, the outcome is accepted as truth.Step 4: Resolution
The admin callsresolve() to finalize the market and distribute payouts:
Dispute Resolution (UMA DVM)
Dispute Timeline
| Phase | Duration | Description |
|---|---|---|
| Commit | 24 hours | Voters submit hashed votes |
| Reveal | 24 hours | Voters reveal actual votes |
| Total | 48-96 hours | Full dispute resolution |
Bond Requirements
- Proposers must post a bond to propose an outcome
- Disputers must post an equal bond to challenge
- Winner receives their bond back + portion of loser’s bond
- Incorrect voters are slashed (lose staked UMA)
How to Submit a Dispute
1
Access UMA dApp
Go to vote.uma.xyz
2
Find Proposal
Navigate to the “Verify” tab and find the proposal
3
Post Bond
Submit your dispute bond to challenge the outcome
4
Wait for Voting
DVM voting takes 48-96 hours
Contract Functions
UmaCompatibleCtfAdapter
The main oracle adapter that bridges UMA with the Conditional Tokens Framework.IOptimisticOracleV2
Emergency Resolution
Requirements
- Caller must be an admin (
onlyAdminmodifier) - Question must be initialized
- Valid payout array must be provided
When to Use
- Oracle is unresponsive for extended period
- Clear oracle malfunction or manipulation
- Extreme market conditions
- Legal or regulatory requirements
Safety Period
Troubleshooting
Wrong outcome proposed
Wrong outcome proposed
Submit a dispute through the UMA OO dApp before the liveness period ends. Post the required bond and wait for DVM voting.
Market not resolving
Market not resolving
Check if
hasPrice() returns true. If yes, call resolve(). If no, wait for the liveness period or check for active disputes.Oracle completely unresponsive
Oracle completely unresponsive
After the emergency safety period (2 days), admins can call
emergencyResolve() with the correct payout array.Disputed market result
Disputed market result
If you believe the DVM vote was manipulated, escalate to UMA governance. The DVM is designed to be manipulation-resistant through economic incentives.
Contract Addresses
UmaCompatibleCtfAdapter
0x1Ea9a6086724D8e15933b911b2095aa249475D48View on BSCScanUmaCtfAdapterNegRisk
0xa92DDe2473b02eDc02DAB845518A68B3EaBbe1BbView on BSCScan