Supported Games
All games use Chainlink VRF for verifiable randomness. Each game has clear rules and deterministic outcome mapping.
Coin Flip
LiveClassic 50/50 coin flip. Choose Heads or Tails and bet against another player.
Odds
50/50
Payout
2x
Min Bet
1 -
Max Bet
1,000,000 -
Rules
- Two players bet equal amounts
- One chooses Heads, one chooses Tails
- Chainlink VRF determines the winner
- Winner takes the entire pot
Game Modes
P2Pvs House1v1 Challenge
How Winner is Determined (Chainlink VRF)
randomWords[0] % 2 → 0 = Player A, 1 = Player BFor Nerds: Technical Details(click to expand)
Contract:
PeerBet.solFunction:
fulfillRandomWords()Winner Logic:
winner = (randomWords[0] % 2) == 0 ? playerA : playerB
✓ Verified on Etherscan • ✓ Open Source • ✓ Chainlink VRF v2.5
Dice Roll
LiveRoll a virtual dice (1-6). Higher roll wins.
Odds
1/N (3-100 players)
Payout
Nx (up to 100x)
Min Bet
1 -
Max Bet
1,000,000 -
Rules
- Both players roll simultaneously
- VRF generates two independent rolls
- Higher number wins
- Ties result in a re-roll
Game Modes
Public Rooms (3-100 players)Private Challenge Rooms
How Winner is Determined (Chainlink VRF)
(randomWords[0] % currentPlayers) + 1 = Winner NumberFor Nerds: Technical Details(click to expand)
Contract:
PeerBet.solFunction:
_finalizeDiceGame()Winner Logic:
winningNumber = (randomWord % currentPlayers) + 1
✓ Verified on Etherscan • ✓ Open Source • ✓ Chainlink VRF v2.5
Rock Paper Scissors
Coming SoonP2P commit-reveal Rock Paper Scissors. Both players commit their choice, then reveal.
Odds
33.3% each
Payout
2x
Min Bet
1 -
Max Bet
1,000,000 -
Rules
- Both players commit a hashed choice
- After both commit, choices are revealed
- Standard RPS rules apply
- Draws result in a rematch
Game Modes
P2P
How Winner is Determined (Chainlink VRF)
0 = Rock, 1 = Paper, 2 = ScissorsFor Nerds: Technical Details(click to expand)
Contract:
Coming SoonFunction:
TBDWinner Logic:
randomWords[0] % 3 determines computer choice
✓ Verified on Etherscan • ✓ Open Source • ✓ Chainlink VRF v2.5
Custom Games
PeetBet's architecture supports custom game contracts. Developers can create new games by implementing the IPeetBetGame interface.
Required Interface
interface IPeetBetGame {
function createGame(uint256 amount) external returns (uint256 gameId);
function joinGame(uint256 gameId) external;
function resolveGame(uint256 gameId, uint256 randomValue) external;
event GameCreated(uint256 indexed gameId, address creator, uint256 amount);
event GameJoined(uint256 indexed gameId, address player);
event GameResolved(uint256 indexed gameId, address winner, uint256 outcome);
}