Provably Fair
Every spin is verifiable on the blockchain. No trust required. The outcome is determined by math that nobody can manipulate.
On-Chain Settlement
Every round with bets is settled directly on the Arbitrum blockchain. The smart contract generates the result and verifies fairness. Round outcomes are permanently recorded on-chain.
Dual-Source Randomness
Results are generated by combining two independent random sources: our server's secret seed and Ethereum's validator randomness (prevrandao). Neither party can predict or manipulate the outcome.
Withdraw Anytime
Your balance is tracked in real-time. When you're ready to leave, hit Cash Out to withdraw your funds on-chain directly to your wallet via the smart contract. No approval needed.
How Every Round Works
Seed Commitment
Before any bets are placed, our server generates a random seed and publishes its hash (keccak256) on the blockchain. This hash is permanent and unchangeable -- it proves the seed existed before any bets.
commitSeed(keccak256(serverSeed))Players Place Bets
During the 45-second betting window, players place their bets through our interface. Bets are collected off-chain for a seamless experience -- no wallet popups for each bet.
No gas per bet. One signature to start playing.On-Chain Settlement
After betting closes, the server submits ALL bets to the smart contract in a single transaction and reveals the original seed. The contract verifies the seed matches the committed hash.
settleRound(serverSeed, bets[])Result Generation
The smart contract generates the winning number by combining the server's seed with the block's prevrandao value. This is calculated entirely on-chain -- no external input.
result = keccak256(serverSeed, block.prevrandao) % 37Result & Verification
The contract checks each bet against the result and emits events for every outcome. Winnings are tracked and your balance updates in real-time. When you're ready, cash out on-chain to your wallet.
Results recorded. Balances updated. Withdraw anytime via cashOut().Why Nobody Can Cheat
The Casino Can't Cheat
- ✓Server commits its seed hash BEFORE seeing any bets
- ✓Cannot change the seed after bets are placed (hash is on-chain)
- ✓Does not know the block's prevrandao when committing
- ✓The combination makes the result unpredictable to the server
Players Can't Cheat
- ✓Players don't know the server's seed (only the hash is public)
- ✓Cannot predict what prevrandao will be in the settlement block
- ✓Bets are locked before the result is generated
- ✓Smart contract enforces all payout rules automatically
Validators Can't Cheat
- ✓Validators control prevrandao but don't know the server seed
- ✓Manipulating prevrandao costs $50,000+ in lost block rewards
- ✓Even with manipulation, the result is still combined with the unknown seed
- ✓Economic attack cost far exceeds any possible gain
Open Source & Auditable
- ✓Smart contract is verified on Arbiscan -- read the code yourself
- ✓Every round's seed, prevrandao, and result are stored on-chain
- ✓Anyone can verify any historical round independently
- ✓verifyRound() function built into the contract
The Math
The result is a number from 0 to 36, exactly like a European roulette wheel. House edge: 2.70% (1/37), same as any real casino.
Payout Table
Standard European roulette odds. Enforced by the smart contract.
| Bet Type | Coverage | Payout |
|---|---|---|
| Straight | 1 number | 36x |
| Split | 2 numbers | 18x |
| Street | 3 numbers | 12x |
| Corner | 4 numbers | 9x |
| Six Line | 6 numbers | 6x |
| Column / Dozen | 12 numbers | 3x |
| Red / Black / Odd / Even | 18 numbers | 2x |
| Low (1-18) / High (19-36) | 18 numbers | 2x |
| Voisins du Zero | 17 numbers | 3x |
| Tiers du Cylindre | 12 numbers | 3x |
| Orphelins | 8 numbers | 5x |
Smart Contract
Verified and open source on Arbiscan
Cash Out Anytime
Your balance updates in real-time as you play. Winnings and losses are tracked after each round settles on-chain. When you're ready to leave, hit the Cash Out button to withdraw your funds.
Cash Out calls cashOut() on the smart contract, which sends USDT directly to your wallet in a single transaction. There is no withdrawal queue, no manual approval from the operator.