Complete guide to V3 bet Platform
Get started in 3 simple steps
Connect your Web3 wallet (MetaMask, Coinbase Wallet, etc.) to Base Sepolia Testnet
Acquire testnet USDC tokens for betting (available on Base Sepolia faucets)
Browse available pools or create your own with custom odds
Become a market maker
Choose an upcoming game from the available leagues (Premier League, La Liga, Serie A, etc.)
Pick the outcome you actually believe will happen — no mental inversion required. The interface lets you select your prediction directly (e.g. "Team 1 Win", "Over 2.5", "Team 1 to Score").
Only outcomes that have a clean inverse inside the on-chain bet-type enum are offered for pool creation, because the contract needs both sides to settle the market. The supported families are:
Outcomes that have no natural inverse in the contract enum today (Both Teams Score, Exactly N Goals, Win by 1+/2+, Win to Nil) are not currently offered as creator pools. They become available the moment matching inverse codes are added to P2PBetting.sol; the frontend regenerates its bet-type tables from the enum on every build.
Enter the multiplier you want to be paid out at when your prediction lands — not the odds opposing bettors will use. The platform converts your number to the contract odds automatically.
Conversion: contract odds = y / (y − 1), where y is the multiplier you set.
Example: you want 2.50× payout → opposing bettors stake at 1.67× (250 / 150).
Tip: Lower odds = higher probability = less risk. Higher odds = lower probability = more risk. The pool creation form previews the contract odds live as you type.
Deposit USDC to cover potential payouts on the opposing side.
Formula: Max bets allowed = (Liquidity × 100) / (Contract Odds − 100)
Example: 100 USDC at contract odds 1.67× → ~149 USDC max in opposing stakes.
Toggle Private pool in the create form to restrict betting to a list of wallets you specify (paste an address and click + to add — up to 8 per pool). Private pools:
placeBet call from a wallet that isn't on the allow list (the contract reverts with NotAllowedBettor).Approve USDC spending and confirm the transaction. Behind the scenes, your outcome and odds are inverted before being written to the contract; opposing bettors browsing pools see the inverted side at the inverted odds. Your pool is now live!
The pool creator picks their preferred outcome and odds. The system flips both before writing to the contract so the on-chain pool reflects what opposing bettors will see.
y / (y − 1), which is the multiplier opposing bettors stake at.Worked example: back "Team 1 Win" at 2.50×, deposit 100 USDC liquidity. The contract stores a "Team 2 or Draw" pool at 1.67×. If Team 1 wins, you keep your 100 USDC plus all opposing stakes. If Team 2 wins or it's a draw, opposing bettors get paid 1.67× their stake from your liquidity.
View all active betting pools with different odds for the same game. Choose the best value for your prediction.
Each pool shows available capacity. If capacity is 0%, pool cannot accept more bets.
Example: Pool with 100 USDC liquidity at 2.0x can accept max 50 USDC in total bets
Enter amount, approve USDC, and confirm. You'll see potential payout before confirming.
After game finishes, visit "My Bets" tab to claim payouts. Claim button appears for winning bets.
Technical details
Network: Base Sepolia Testnet
Token: USDC (6 decimals)
Fee: 3% on profits only
Security: ReentrancyGuard, Pausable, Ownable
createPool() - Create liquidity poolplaceBet() - Place bet against poolclaimBet() - Claim winning betclaimPoolCreator() - Pool creator claims fundsProvably-fair single-player games — every roll, flip, and spin is settled by Chainlink VRF and paid out instantly in USDC.
| Game | Max payout | RTP |
|---|---|---|
| Coin Toss | 1.9× stake | 95.00% |
| Rock Paper Scissors | 1.9× stake | 96.67% |
| Dice | 5.7× stake | 95.00% |
| Roulette | 36× stake | 94.74% |
| Lucky Wheel | 8× stake | 95.83% |
| Slots | 10× stake | ~44.9% |
RTP figures reflect the on-chain payout tables. They are theoretical long-run averages — short sessions can deviate dramatically. Slots in particular is a high-variance game with a meaningful house edge by design.
Pick Heads or Tails, place a USDC bet, and watch the coin spin while VRF is fetched. A correct call returns 1.9× your stake; a wrong call loses the stake.
Pick Rock, Paper, or Scissors. The contract draws the house's hand from VRF. Win pays 1.9×, draw refunds your stake (1×), lose pays nothing.
Choose Exact, Over, or Under a target value (1–6). VRF rolls the die. Multipliers are calibrated so every bet type has the same long-run RTP.
American roulette with 0 and 00 — 38 pockets total. Place chips on straight numbers, splits, streets, corners, six-lines, columns, dozens, or even-money bets. The wheel is rendered live and lands on the on-chain VRF result.
Spin a 24-segment wheel. The spinning continues until VRF returns a winning index, then decelerates to land under the pointer. Outcomes are interleaved around the rim so 0× slices don't bunch on one side.
Three reels of seven symbols each (Cherry, Lemon, Orange, Plum, Bell, Bar, Seven). VRF spins all three; matching combinations pay according to the table below. Slots is the highest-variance game on the platform — most spins lose, but big paying combinations land occasionally.
| Combination | Probability | Payout |
|---|---|---|
| Three Sevens | 0.29% (1/343) | 10× |
| Three Cherries | 0.29% (1/343) | 5× |
| Three Bells | 0.29% (1/343) | 4× |
| Three Bars | 0.29% (1/343) | 3× |
| Three of Lemon / Orange / Plum | 0.87% (3/343) | 2× |
| Two Sevens + any | 5.25% (18/343) | 5× |
| Two Cherries + any | 5.25% (18/343) | 2× |
Theoretical RTP from the paytable above: ~44.9%. Slots is intentionally high variance — long-run return is lower than the other titles, but a single Three Sevens spin pays 10× your stake.
Provably fair: every game outcome is sourced from Chainlink VRF v2.5. Bet placement, randomness fulfillment, payout calculation, and settlement all happen on-chain — the wheel, dice, coin, and reels you see are visual representations of an on-chain result that anyone can verify on Basescan.
Provably-fair gaming with instant payouts
50/50 odds, pick Heads or Tails
Payout: 1.96× (2% house edge)
Beat the house hand in 3-way game
Payout: 2.88× on win (4% house edge)
Exact, Over, or Under - choose your risk level
Payout: Up to 96× (4% house edge)
European wheel - Red/Black or single number
Payout: Up to 35× (2.7% house edge)
Spin 12 segments - win multipliers or bust
Payout: Up to 10× (variable house edge)
Classic 3-reel slots with multiple paylines
Payout: Variable (slot-dependent)
Connect your Web3 wallet with USDC balance on Base Sepolia
Choose your game and enter your bet (min 0.5 USDC)
Chainlink VRF generates provably-fair random result
Winnings deposited directly to your wallet immediately
All casino games use Chainlink VRF (Verifiable Random Function) for cryptographically-proven randomness. Results are generated on-chain and cannot be manipulated by the platform or anyone else. Complete transparency and fairness guaranteed.
You profit when your published outcome does NOT happen. For example, if you create a "Team A Wins" pool and Team A loses, you keep all the bets placed against your prediction minus the 3% fee.
You lose when your published outcome happens. If you created a "Team A Wins" pool and Team A wins, you must pay out the bettors from your liquidity. The amount you lose depends on how many bets were placed at what odds.
Yes! You can place bets on different pools for the same game to hedge your positions. You can also create multiple pools for different outcomes.
Immediately after the game result is set by operators. Check the "My Bets" or "My Pools" tab to claim your winnings.
You can claim your original liquidity back after the game finishes. The full amount is returned to you.
Cancelled games allow all participants to withdraw their funds (bets and liquidity) in full.
Minimum liquidity: 1 USDC. Maximum bet per transaction depends on pool capacity. Maximum liquidity per pool depends on your wallet.
Provably fair means the randomness is generated on-chain using Chainlink VRF and cannot be manipulated. You can verify the result against the VRF proof, ensuring no cheating is possible.
Results are typically available within seconds. The smart contract awaits the VRF response, which usually completes quickly. Payouts are instant once the result is confirmed.
Minimum bet for all casino games is 0.5 USDC. Maximum bet depends on the game and available liquidity in the house wallet.
Casino games have fixed house edges (2-4% typically) while P2P betting odds depend on the pool creator. Both can be profitable depending on your skill and strategy.