Dice, Explained — Roll Ranges, Win Chance and the Exact Payout Math
How crypto casino Dice really works: where the 0.00–99.99 roll comes from, how Over/Under targets set your win chance, the exact payout formula with a 2% house edge, and how to verify any roll yourself.
Where the roll comes from
Every roll is a number from 0.00 to 99.99 — ten thousand equally likely outcomes. It is derived from the provably fair hash (see how the hash is built ): take the first 13 hex characters — 52 bits of the HMAC-SHA256 output — read them as an integer, and map into the range:
roll = ( int(hash[0..13]) mod 10000 ) / 100 52 bits is deliberate: it is the largest slice that stays exact in standard floating point, and it makes the modulo bias against 10,000 outcomes negligible (about 0.0000002%). The roll exists before the animation — the slider and tumbling dice are presentation, not physics.
Over, Under, and your win chance
You pick a target and a direction. Roll Over wins when the roll is strictly greater than the target; Roll Under wins when it is strictly less. Because there are 10,000 possible rolls, the win chance follows directly:
chance(Over t) = 99.99 − t (in %)
chance(Under t) = t
Note the asymmetry: Over 50 wins on 49.99% of rolls — the roll exactly 50.00 loses — while Under 50 wins on a clean 50.00%. The equality case always belongs to the house side of the line, which is one of the two places the numbers stop being “intuitive” (the other is the edge, next).
The payout formula
A fair payout would be 100 / chance — a 50% shot paying exactly 2×. Dice applies a 2% house edge to that fair price:
payout = ( 100 / chance ) × ( 1 − 0.02 ) So the expected return is 98% at every setting — chance × payout always comes back to 0.98:
| Setting | Win chance | Payout |
|---|---|---|
| Over 50 | 49.99% | 1.9604× |
| Under 50 | 50.00% | 1.9600× |
| Over 90 | 9.99% | 9.8098× |
| Under 10 | 10.00% | 9.8000× |
| Over 98 | 1.99% | 49.246× |
| Under 2 | 2.00% | 49.000× |
Every setting costs the same
Look down the table: multiply any row’s chance by its payout and you get 0.98. Sliding toward a 49× long shot or a near-certain break-even grind changes how it feels — the swings, the streaks, how long a bankroll lasts — but never what it costs. There is no target that “beats” another, and no streak logic (“due” numbers, hot ranges) that changes a fresh 10,000-way draw. That trade-off between swings and cost is volatility vs edge — covered in House Edge vs RTP .
Check a roll yourself
After rotating your seed, paste the revealed server seed, your client seed and the bet’s nonce into the verifier (choose Dice). It recomputes the HMAC and the exact formula above in your browser — the roll you got is the only roll that hash could ever produce.
Frequently asked questions
Is the dice roll really random?
It is deterministic but unpredictable: the roll is derived from an HMAC-SHA256 hash of the server seed, your client seed and a bet counter. Because the server commits to a hash of its seed before you bet, neither side can steer the outcome — and you can recompute every roll after the seed is revealed.
What is the house edge on Dice?
A flat 2% at every target. The payout is (100 / win chance) × 0.98, so whatever win chance you pick, your long-run expected return is 98%.
Is a high target better than a low target?
No setting changes the expected return — every target pays back 98% on average. A tight target (e.g. Over 98) wins rarely and pays big; a wide one (e.g. Under 90) wins often and pays little. That is a volatility choice, not a value choice.
Why is Over 50 not a coin flip paying 2×?
Two reasons: rolls run 0.00–99.99, so "Over 50" wins on 49.99% of outcomes (the roll 50.00 itself loses), and the 2% edge scales the fair payout down — (100 / 49.99) × 0.98 ≈ 1.9604×, not 2×.