Fees
All fee rates live in one governance-mutable Vault config and accrue in the pool, claimable by the fee recipient. Three fees, current defaults shown.
- Bet fee
bet_amount × betFeeBps / 10000 + relayGasFeeUSDC. Default 0.3% + $0.15 relay.- Withdrawal fee
- flat USDC skim from the payout. Default $1.00.
- Minimums
- $1 minimum bet, $5 minimum withdrawal.
Why the bet fee lives inside the circuit
The Vault can't see your hidden note balance, so it can't skim a fee from it directly. Instead it injects the fee as a public input to the BET_AUTH proof, which enforces new_balance = balance − bet_amount − fee. Because the Vault — not you — supplies the fee, a proof built with any other fee produces a new commitment that fails verification.
The gas reimbursement is always charged in USDC from the note, never as a native POL transfer — a POL transfer from your wallet would re-link wallet to bet and defeat the whole point.
Why the withdrawal fee does not
A withdrawal pays out USDC the Vault controls directly, so its fee is a plain contract-level skim — no circuit involved. The note burns the full amount; you receive the amount minus the fee; the difference stays in the pool.