Overview
Kuest uses the UMA Protocol for decentralized market resolution. This system allows anyone to propose outcomes, with a dispute period for challenges, ensuring fair and accurate resolutions.Resolution Process
Market Closes
When a market reaches its end date, it stops accepting new trades. The market enters the resolution phase.
Outcome Proposal
Anyone can propose a resolution outcome by:
- Visiting the UMA proposal interface
- Posting a bond (typically in USDC)
- Submitting the proposed outcome (Yes/No/Invalid)
The proposer who correctly resolves the market receives the USDC reward configured during market creation (typically 5 USDC per market).
Liveness Period
After a proposal is submitted, there’s a liveness period (default: 1 hour) during which the proposal can be disputed.Resolution Status Values:
posed: Initial state, no proposal yetproposed: First proposal submittedreproposed: New proposal after a disputechallenged: Proposal is being disputeddisputed: Formal dispute initiatedresolved: Final outcome confirmed
Dispute Window
During the liveness period, anyone can dispute an incorrect proposal by:
- Posting a dispute bond (larger than the proposal bond)
- Providing evidence for the correct outcome
- Initiating the dispute process
challenged or disputed.Resolution Settlement
If no disputes occur during the liveness period, the proposal is automatically accepted.If disputed:
- UMA token holders vote on the correct outcome
- Voting period lasts 48-96 hours
- Winning side receives the losing side’s bond
- Correct outcome is finalized on-chain
UMA Integration
Oracle Contracts
Kuest integrates with UMA’s Optimistic Oracle contracts:Resolution Data Structure
Proposal Links
The system automatically generates proposal and settlement URLs:Resolution Timeline
The frontend displays a visual timeline showing the resolution progress:Dispute Handling
When to Dispute
Dispute a proposal if:- The proposed outcome is factually incorrect
- Resolution rules were not followed
- The outcome source was misinterpreted
- The proposal violates market integrity
Dispute Process
Identify Incorrect Proposal
Monitor newly proposed markets and verify outcomes against resolution rules.
Prepare Evidence
Gather proof of the correct outcome:
- Screenshots of authoritative sources
- Archived web pages
- Official announcements
- Data from trusted APIs
Post Dispute Bond
Visit the UMA dispute interface and post the required bond (typically 2x the proposal bond).
Dispute Tracking
The system tracks dispute history:Automated Resolution Sync
The platform automatically syncs resolution data from the UMA subgraph:Sync Process
Update Database
For each resolution, update:
- Condition resolution status
- Market active/resolved flags
- Outcome payout values
- Event status (if all markets resolved)
Event Status Updates
When markets are resolved, event status automatically updates:Settlement
After resolution, users can settle their positions:Merging Shares
Users holding shares in both outcomes can merge them to recover USDC:Redeeming Winning Shares
Users with winning shares redeem them for USDC:Best Practices
Monitor Proposals
Set up alerts for new proposals on your markets to quickly verify correctness.
Document Sources
Keep records of outcome sources during market creation for easy resolution.
Incentivize Proposals
Set appropriate reward amounts to attract proposers (typically 5+ USDC).
Clear Resolution Rules
Write unambiguous rules to minimize disputes and ensure fair outcomes.
Troubleshooting
No Proposal Submitted
Issue: Market closed but no one proposed an outcome. Solution:- Increase the resolution reward for future markets
- Manually propose using the UMA interface
- Contact your community to encourage participation
Incorrect Proposal
Issue: Someone proposed the wrong outcome. Solution:- Gather evidence of the correct outcome
- Submit a dispute within the liveness period
- Engage the UMA community for voting support
Sync Delays
Issue: Resolution status not updating on your platform. Solution:- Check cron job execution logs
- Verify
CRON_SECRETis configured correctly - Manually trigger sync:
GET /api/sync/resolutionwith authorization header - Check Sentry for sync errors
Settlement Fails
Issue: Users can’t redeem winning shares. Solution:- Verify the market is fully resolved (
resolution_status = 'resolved') - Check that payout values are set in the database
- Ensure users are calling the correct contract (CTF vs NegRisk adapter)
- Verify sufficient POL gas balance
Related Resources
Market Creation
Create markets with proper resolution configuration
UMA Documentation
Learn more about UMA’s Optimistic Oracle
Admin Panel
Monitor market resolution status
API Reference
Resolution sync API endpoint