Place
All three share the same tail:clientSeed (non-zero), expectedCommitId (must equal currentCommitId()), optional affiliate (zero address = none), and optional platform / game attribution strings (≤ 64 bytes, emit-only). Each returns the new betId.
placeStrike
Solidity
placeRange
Solidity
placeLadder
Solidity
Claim
All claim methods are bettor-only (msg.sender must be the bet’s player) and share the payout choice: claimAsChance = false pays USDG from bankroll cash; true spends the full payout buying CHANCE on the V4 pool and transfers it to your wallet, with minChanceOut as the slippage floor.
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.
Stake (bankroll)
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.