Skip to main content
Incasino is a confidential on-chain casino built on Inco Lightning. Six games in one contract: Coin Flip, Dice, Mines, Plinko, Rock Paper Scissors, and Slots. You bet native test ETH on Base Sepolia, with no token or deposit step.

Play the live demo

incasino.vercel.app, running on Base Sepolia.
Where the ConfidentialDeck template shuffles a deck, Incasino leans on the other core randomness primitive: e.rand(). It is the cleanest place to see the play-then-settle pattern that every asynchronous Inco game uses.

The play-then-settle pattern

Inco has no synchronous on-chain decryption, so a round is always two transactions:
The seed is drawn confidentially and revealed only at settlement, so the outcome cannot be known or front-run while the bet is live. The contract verifies the covalidator-signed attestation before paying, so a player cannot forge a win.

The six games

One Casino.sol holds the ETH bankroll and all six games. Each has its own play* entry point; a single settle routes by game kind. Bets are capped at MAX_WAGER_PER_ROUND = 0.0005 ether, and quick games run up to MAX_ROUNDS = 10 rounds in one transaction. Payouts carry a small house edge baked into the multiplier (for example Coin Flip pays 1.98x, a 2% edge).

Deployed contract (Base Sepolia)

One verified contract holds the bankroll and every game. Chain id 84532. The owner funds and withdraws the bankroll from the /owner page.

Running it

Connect a wallet on Base Sepolia, grab test ETH from a faucet, and play.

Honest note

This is a testnet build. Bets are capped low and the bankroll is a single owner-funded contract, so it is a worked example of the play-then-settle pattern and confidential randomness, not a production casino.