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.

Place a Parlay

The on-chain path works with one published live vault/card at a time. The card's legs are fixed; the current app does not build an arbitrary cross-vault parlay.

Transaction order

  1. Connect a wallet on Polygon. Use the account that should receive the parlay-vault shares.
  2. Choose one published vault and review every fixed leg. Confirm each selected outcome, the current multiplier, and the vault address.
  3. Review stake, capacity, and deadline. Enter a USDC.e stake no larger than the displayed remaining capacity while the vault is still Open and before its deposit deadline.
  4. Approve USDC.e if needed. If the account's allowance is below the stake, the wallet sends approve(vault, stake) to the USDC.e contract. Wait for that approval to confirm.
  5. Request the quote after approval. BetSlip.place() then asks the backend to reprice the vault. This avoids spending most of the quote's 30-second lifetime waiting for approval.
  6. Submit the deposit. The wallet calls depositWithQuote(assets, receiver, combinedProbWad, validUntil, nonce, signature) on that vault.
  7. Track the share-backed ticket. After the Polygon transaction confirms and indexing catches up, use My Tickets to follow the vault status and redeemable shares.

The backend signature cannot submit either wallet transaction. The account must approve and sign each transaction itself.

Prototype status

The current configured treasury is inactive, so real-money placement is not operational and users should not deposit. Verify Network & Contracts before interpreting this flow as available.

If placement fails

StateWhat happenedWhat to do
Multiplier movedThe fresh multiplier fell below the value the user acceptedReview the new terms and request another quote only if acceptable
Quote expired or nonce usedThe 30-second window elapsed or that single-use nonce already reached the vaultRequest a fresh quote and resubmit
Quote unavailableGamma pricing, the signer, database, or quote service could not produce a valid signatureWait for the dependency to recover; do not submit stale fields
Vault closedIts status changed or the deposit deadline passedChoose another published Open vault
Capacity fullThe stake exceeds remaining capacityReduce the stake if capacity remains, or choose another vault
Wallet rejectedThe user declined approval or depositNo transaction occurs; restart only when ready
RPC or transaction failurePolygon RPC, simulation, broadcast, or confirmation failedCheck network status and transaction history before retrying to avoid confusion
Insufficient funds or gasThe wallet lacks enough USDC.e for the stake or enough Polygon gas tokenFund the correct asset separately before retrying

A moved or expired quote does not move wallet funds. A mined approval only creates allowance; the vault receives USDC.e only when a valid depositWithQuote executes.

Demo cards are not tickets

Fixture/sample slips and mixed-vault selections can keep a prototype interface interactive, but they do not call a valid on-chain parlay vault. A celebratory demo message is not a transaction receipt, vault share balance, or bet.

Next: understand the remaining latency dependencies in Instant Liquidity, then learn the post-event path in Resolve & Redeem.