Skip to main content
Curated player and integrator methods on ChancePool. Admin and keeper methods (epoch rotation, params, pause) are intentionally omitted.

Place

All four share the same tail: clientSeed (non-zero), expectedCommitId (must equal currentCommitId()), optional affiliate (zero address stores feeRecipient), and optional platform / game attribution strings (≤ 64 bytes, emit-only). Each returns the new betId.

placeStrike

Solidity

placeRange

Solidity

placeTieredBetter

Solidity

placeShuffle

Solidity

Claim

All claim methods are bettor-only (msg.sender must be the bet’s player). amount = 0 claims the whole remaining payout; a positive amount claims a slice and leaves the bet Settled until it is fully drained. Shared payout choice: claimAsChance = false pays USDG from bankroll cash (no claim fee); true takes claim-as-CHANCE fees from the claimed USD, then spends the net remainder buying CHANCE on the V4 pool. minChanceOut floors that net buy. Losses never revert a claim - a settled zero-payout bet is a silent no-op. USDG claims revert InsufficientBankroll if the pool’s free cash cannot cover the payout. Partial claims emit remaining on ClaimedUsd / ClaimedChance.

Stake (bankroll)

Deposits may queue while settleable bets exist (StakeQueued); they mint shares once that cutoff clears (activateStake or the next settle). Exits are tranches: each requestUnstake / requestUnstakeAll gets its own cooldown and claim. See Deposit & withdraw and Rewards.

Views you’ll use

Permissionless settlement

settleBet(betId), settleBets(betIds), settleWithSeed(betId, serverSeed), settleWithProof(betId, entropy, proof), and forceRefundOnTimeout(betId) are callable by anyone - settlement never depends on the operator being online. In practice the claim methods above fold settlement into the claim transaction, so most integrations never call these directly.