Non-production prototype
These contracts are unaudited. The configured treasury currently has no contract code, so real-money betting and LP deposits are not operational. Do not deposit; check the current deployment status before any interaction.
Resolve & Redeem
Every parlay vault has one terminal lifecycle:
Open → Won | Lost
Neither transition happens merely because an event ended. Polymarket's Conditional Tokens outcomes must settle, then someone must submit resolve() to the Polypar vault.
Step 1: wait for external settlement
A potential win needs every stored leg to have a final CTF payout. A loss may be proven earlier when the contract reaches a resolved losing leg; a still-unresolved leg earlier in the stored order blocks that particular resolution attempt.
A selected side counts as winning only when its payout numerator equals the condition's payout denominator. An opposite result, split, tie, or void makes the all-or-nothing parlay lose.
Step 2: call resolve()
resolve() is permissionless. A keeper, ticket holder, or unrelated account may submit the Polygon transaction and pay its gas. It is not an automatic contract action.
- On
Won, the vault requests any nominal collateral shortfall from the configured treasury, once, during resolution. - On
Lost, the vault sends its collateral balance to the configured treasury.
The status cannot return to Open.
Step 3: redeem shares
After status is Won or Lost, the ticket holder signs a wallet transaction calling redeem:
- losing shares redeem for zero;
- winning shares redeem pro-rata from the vault's actual USDC.e balance;
- a treasury shortfall can make actual winning proceeds lower than the displayed nominal claim.
The backend cannot redeem for the user solely because it knows the ticket or signed the entry quote.
No Open-state exit
While status is Open, redeem reverts and the standard ERC-4626 withdraw path is disabled. There is no cancellation, refund, cash-out, or time-based escape path in the present contract.
Use My Tickets to inspect the vault status and shares, but verify the Polygon transaction before treating a UI message as final. The current inactive treasury also means the deployed prototype is not suitable for real-money use.
Next: trace custody in Your Funds and review resolution delays and shortfall scenarios in Risks & Limitations.