Contract Details
Network
Sepolia Testnet
Ethereum Testnet
Minimum Bet
0.001 ETH
Maximum Bet
10 ETH
Shoe Size
416 cards
8 decks · 52 cards each
How It Works
The contract is a fully on-chain Baccarat table operating without any server or third party. The house (owner) manages the shoe and opens betting; players call placeBet() with ETH to join each round.
deal().Randomness Model
Shoe Seed
Chainlink VRF v2.5 provides a 256-bit verifiably random seed once per shoe shuffle. Truly unmanipulable.
Card Draws
keccak256(seed, position) — deterministic given the seed, generating a provably fair permutation for all 416 cards.
Bet Types & Payouts
Player
1 : 1
Stake × 2 returned
Banker
0.95 : 1
Stake + stake × 19/20
Tie
8 : 1
Stake × 9 returned
Game Flow
Each round follows this deterministic sequence on-chain
Request Shoe
requestShoe()Owner submits a Chainlink VRF request. The contract moves into a pending state while awaiting the random seed.
VRF Fulfillment
fulfillRandomWords()Chainlink delivers a 256-bit random seed. The shoe generation counter increments — no storage clearing needed.
Open Betting
openBetting()Owner opens the betting window. Previous bets and round data are cleared. State moves to BETTING.
Place Bets
placeBet(betType)Players send ETH (0.001 – 10 ETH) and choose PLAYER, BANKER, or TIE. Multiple bets are accepted.
Deal & Settle
deal()Owner triggers the deal. Cards are drawn per Punto Banco rules, outcome is determined, and all winners are paid in one transaction.
Baccarat Rules
Card Values
Totals are calculated modulo 10. Maximum score is 9.
Drawing Rules
Shoe Parameters
8
Decks
416
Total Cards
384
Cut Card Position
~60+
Rounds per Shoe
Explore the Contract
The full source code is verified and available on Etherscan. Read state, inspect events, and interact directly.
