Skip to main content

Claiming Winnings

This guide explains how settlement works and how to claim your winnings.

Settlement Overview

After a market resolves, winning shares can be redeemed for USDC:

Resolution Process

1. Price Snapshots

The market captures two oracle prices:

SnapshotWhenPurpose
Start Price (P_start)At t_startReference point
End Price (P_end)At t_endComparison point

2. Outcome Determination

The outcome is determined by comparing prices:

Important: Equality (P_end == P_start) resolves to UP.

3. Resolution Finality

Once resolved:

  • Outcome is final and irreversible
  • No dispute window
  • Settlement can begin immediately

Payout Calculation

Winning Shares

OutcomeWinning SharePayout per Share
UPYES1 USDC
DOWNNO1 USDC

Losing Shares

OutcomeLosing SharePayout per Share
UPNO0 USDC
DOWNYES0 USDC

Total Payout

If outcome == UP:
    payout = yes_shares × 1 USDC

If outcome == DOWN:
    payout = no_shares × 1 USDC

Settlement Process

Step 1: Wait for Resolution

Step 2: Claim Settlement

Settlement is permissionless - anyone can trigger it for any user:

Step 3: Receive Funds

Your USDC is transferred directly to your token account.

Settlement Example

Scenario: You hold 100 YES shares, market resolves UP

Multiple Positions

If you hold both YES and NO shares:

Your PositionOutcome UPOutcome DOWN
100 YES + 50 NO100 USDC50 USDC
50 YES + 100 NO50 USDC100 USDC
100 YES + 100 NO100 USDC100 USDC

Note: Holding equal YES and NO guarantees a fixed return regardless of outcome.

Automatic Settlement

Crank-Driven Settlement

Settlement is triggered by crank operators:

  • They call settle_position for each user
  • Earn a small reward for each settlement
  • You don't need to do anything

Self-Settlement

You can also settle your own position:

  • Call settle_position directly
  • Receive your payout immediately
  • No waiting for cranks

Position Closure

After settlement, your position can be closed:

Benefits:

  • Reclaim rent (~0.002 SOL)
  • Clean up blockchain state

Settlement Timeline

Typical settlement flow:

TimeEvent
t_endTrading ends
t_end + ~1sEnd snapshot captured
t_end + ~5sMarket resolved
t_end + ~10sSettlements begin
t_end + ~30sMost positions settled

Edge Cases

Force Close

If a market fails to resolve within 7 days:

What happens:

  • All users get their collateral back
  • No outcome is determined
  • Market closes without resolution

Oracle Failure

If Pyth oracle is unavailable:

ScenarioProtocol Behavior
Stale at t_startWaits for valid price
Stale at t_endWaits for valid price
Extended outageForce close after expiry

Claiming Checklist

  1. Verify market resolved: Check outcome is set
  2. Calculate expected payout: Based on your shares and outcome
  3. Trigger settlement: Call or wait for crank
  4. Verify receipt: Check USDC balance increased
  5. Close position: Reclaim rent (optional)

Common Questions

When can I claim?

Immediately after market resolves (outcome != None).

What if I don't claim?

Cranks will settle for you, or you can claim anytime.

Is there a deadline?

You can claim until the market account is closed (7+ days).

What about partial positions?

Entire position is settled at once - no partial claims.

Next Steps