A transparent bankroll.
Games on top.
Casinhood is a bankroll contract for Robinhood Chain. Anyone can back it with ETH and take the other side of every bet placed on European roulette, coinflip and dice. The house edge is fixed and stated, exposure is capped by the contract, and realized profit is split with token stakers.
The bankroll earns because players lose in expectation: 2.70 % of every roulette bet, 2 % of every coinflip and dice bet. There is no other source of return, and backers can lose ETH.
- Chain
- Robinhood Chain · 4663
- Contracts
- Not deployed
- Admin keys
- None. No owner, no pause, no upgrade
- External audit
- None
Bankroll state
Read from the contract, nothing else. While nothing is deployed, every field below is empty on purpose.
Contract state
Not deployed| Bankroll | — |
|---|---|
| Reserved for pending bets | — |
| Free bankroll | — |
| Max payout per bet (1 %) | — |
| Realized house result | — |
| High water mark | — |
| Total wagered | — |
| Paid to operator | — |
| Paid to stakers | — |
No figure is shown until a contract answers on chain. Nothing here is simulated.
Addresses
| House | Not deployed |
|---|---|
| Staking | Not deployed |
| Token | Not deployed |
| LP manager | Not deployed |
| Uniswap v4 PoolManager | — |
Sources will be published and verified on Blockscout at deployment. Until then there is nothing to point a wallet at, and any address claiming to be Casinhood is not ours.
Back the bankroll
Opens at launchDeposit ETH, receive shares in the bankroll. You then earn the house edge on every bet and pay every winner. A losing streak is your loss.
- Deposits priced as if every pending bet loses; withdrawals as if every pending bet wins. Reading an outcome early buys nothing.
- No lock-up and no admin. The last shares wait for pending bets to settle, a few blocks.
- Withdrawals take a minimum amount out, so a burst of bets cannot shave your exit.
Stake the token
Opens at launch1,000,000,000 fixed supply, no owner, no mint, no tax, no roles. Staking pays the stakers' share of realized profit, in ETH, dripped over a day.
No yield figure is shown, here or anywhere: there is no realized profit yet, so any APR would be invented. The ticker is not final.
Economics and exposure
What the contract takes, what it can lose in one bet, and who receives the difference.
House edge, per game
| Game | Return on a win | Edge | Player's expected loss |
|---|---|---|---|
| European roulette | 36 / covered | 2.7027 % | −0.027 ETH per 1 ETH |
| Coinflip | 1.96x | 2.00 % | −0.020 ETH per 1 ETH |
| Dice, roll under | 98 / chance | 2.00 % | −0.020 ETH per 1 ETH |
Single zero, and the same edge on every square of the felt: a straight-up pays 36 for 1 over 37 pockets. Short sessions are noise in both directions; the edge is what remains over many bets.
Exposure limits
| Worst case reserved per bet | exact, at placement |
|---|---|
| Maximum risk, one bet | 1 % of the free bankroll |
| Maximum risk, one EVM block | 5 % of the free bankroll |
| Minimum wager | 0.0001 ETH |
| Solvency rule | bankroll ≥ sum of reserved payouts |
These are exposure limits, not a promise of profit. They bound what one bet or one block can take from the bankroll; they do not stop a long run of player wins from eating into it.
Split of realized profit
- 20 % operator — an immutable address written into the contract at deployment, paid by
payDev(), which anyone can call. - 40 % token stakers — in ETH, dripped over a day so nobody can stake for one block and take a cut.
- 40 % bankroll — retained, raising the value of every backer's shares.
High water mark first. While the house sits below its previous peak, nobody takes anything: losses are recovered by the bankroll before a single wei is shared.
Where the money sits
Every balance is an explicit book inside the contract: bankroll, reserved, amounts owed to players, the operator's share, the stakers' share. Nothing is derived from the raw ETH balance, so a donation cannot distort the books and cannot lock anything.
A payout that a receiving contract refuses is credited and claimable later, so one player cannot block anybody else's settlement.
How an outcome is made
Commit at one block, reveal with a hash that did not exist yet.
- Commit. Your bet is accepted at EVM block N, and the contract reserves its exact worst case right there.
- Reveal. From block N+2 anyone can settle it: you, this page, a keeper. The result is
keccak256(blockhash(N+1), keccak256(betId, player, seed))— a hash that did not exist when the bet was accepted. The reveal never readsblockhash(block.number − 1). - Same answer, whoever asks. Early or late, by you or by a stranger, settling gives the same result.
- Anchoring. Every call to the contract copies readable block hashes into storage. Once anchored, a bet can always be settled and can never be refunded, so sitting on a losing bet in the hope of a refund does not work.
- Refund. Only if nobody touched the contract for 256 EVM blocks (about 40 minutes) does the hash go unanchored; then the wager comes back in full.
What you still have to trust
Robinhood Chain is an Arbitrum-style rollup with a single sequencer. It orders transactions and produces the block data behind blockhash, so in principle it could see or steer an outcome. Casinhood cannot remove that trust, and no on-chain casino on this chain can. What the contract does guarantee is that nobody else chooses: not the player, not the operator, not a keeper.
Verify a settled bet
Nothing is deployed, so there are no on-chain bets to verify yet. Demo rounds can be recomputed here: play one below, then enter the id printed in the result.
Demo play credits only
The same payout math as the contract, run in your browser with credits that are worth nothing. No wallet, no settlement, no deposit. Random entropy stands in for the block hash.
1.96x on a fair coin: a 2 % edge. Expected result of this bet: −2 % of the wager.
Return is 98 / chance, so the edge is 2 % at every line you pick. A longer shot does not change the edge, only the variance.
Risks and status
Stated with the same weight as everything above.
Risks
- Players lose in expectation. The edge is 2.70 % on roulette and 2 % on the other tables. Play only with what you can afford to lose, and only where it is legal for you.
- Backers can lose ETH. Backing the bankroll is taking the other side of the bets: over a bad run, share value falls.
- The sequencer is trusted. One operator produces the block data the outcomes are drawn from.
- No external audit. The code has been tested and reviewed internally only.
- Settlement needs someone to call it. A keeper settles and anchors; if nothing touches the contract for 256 blocks, a pending bet is refunded instead.
- Smart contract risk. An undiscovered bug can lose funds. There is no admin key to pause or to reverse anything — by design, in both directions.
Where the build stands
| Contracts written and tested | 62 tests, incl. fuzz, invariants and attack tests |
|---|---|
| Full dry run on a chain fork | Deploy, liquidity, bets, settlement, payouts |
| Independent review | One, internal. 4 findings, all fixed |
| External audit | None |
| Deployed on Robinhood Chain | Not yet |
| Token ticker | Not final |
Casinhood is built on Robinhood Chain. That is a choice of network and implies no relationship with, or endorsement by, Robinhood.