Redemption window
After a market resolves, winners and LPs have 30 days to redeem. After that, abandoned funds are forfeited.
When you can redeem
Anytime within 30 days after resolve_market runs. The clock starts at the moment the oracle posts final_price.
How to redeem
Open the market's page. The position card shows your RUG/RUN balance and a Redeem button:
- Winners — your winning-side tokens redeem 1:1 for SOL.
- Losers — losing-side tokens redeem for zero. There's no penalty for clicking, it's just a no-op.
LP redeem
LPs call redeem_lp from the same market page. The payout is lp_share × (vault − winning_traders_total) / lp_supply — your proportional share of the SOL left in the vault after winners are paid out.
What happens after 30 days
If no one redeems for 30 days post-resolution, an admin may call close_market. This:
- Closes all of the market's on-chain accounts.
- Sweeps the rent-exemption deposit + any unredeemed SOL to a hardcoded forfeit wallet:
E8gAXC971TPgjLiuRXivUKThdWDFwbnF8vPeLeGfvhSv.
The forfeit wallet is not the admin signer. It's a separate cold wallet, hardcoded in the program. Every close emits a public MarketClosed event for audit.
This is a clawback on abandoned funds, not a fee on active trades. Anything inside the 30-day window is fully redeemable; the 0% platform-rake commitment is unchanged.
Redeem within 30 days. After that, your winnings are forfeit. There is no recovery path.
Cancelled markets
If a market was cancelled (rare admin action) instead of resolved, both positions and LP shares are refunded via cancel_redeem_position and cancel_redeem_lp. The refund uses pool prices snapshotted at the moment of cancel, not at expiry.