Durian EntropyFairness Test · live on KUB

Is the randomness fair? Watch it, block by block.

Every KUB block produces an unpredictable block hash — the same value DurianEntropy V2.1 hashes to make a result (rng = keccak256(blockhash · id · player · seed)). This page takes every block's hash and derives a Roulette, Dice, Two-dice, Blackjack and Coinflip outcome from it — no bet, no gas, no clicking — so the distribution fills in live. If the source were biased, the bars would lean. Anyone can reproduce it from public block hashes.

collecting…
scanning chain…
draws / block block blocks sampled 0 draws 0

Recent blocks → roulette pocket (tap to open the block on KubScan)

How this is a fair test

Each draw is keccak256(blockhash, game, blockNumber, k) reduced into the game's outcome range — the same keccak-of-blockhash construction the contract uses. The block hash isn't known until the block is mined, so no one (not even us) can steer it. Over many blocks a fair source flattens to the dashed expected line: Roulette → 1/37 each pocket, Dice → 1/6, Two dice → the 2-12 triangle, Blackjack → 1/13 per rank, Coinflip → 50/50. The χ² stat sums the squared gap vs expected; below the 95% threshold = consistent with fair (a fair source still crosses it ~1 spin in 20, so it wiggles — that's healthy, not rigged). Note: a casino's house edge comes from the payout rules, not from biased numbers — this page tests the numbers. Single block producers can nudge one block hash within the 256-block horizon; the consumer's per-block bet cap is the mitigation (this is a commit-reveal scheme, not a VRF).

How to read an outcome — in plain words

You don't have to trust us. Every result is just simple math on a number nobody can fake — the block's hash. Here is the most recent block, decoded step by step:
1
A block gets mined. Right now that's block #—. Its fingerprint — the hash — is . The whole network decides it together; no one can choose it ahead of time.
2
We scramble it. The contract runs that hash through keccak256 (a one-way blender) and gets — one giant unpredictable number.
3
We shrink it to fit the game. Roulette has 37 pockets, so we keep the remainder after dividing by 37 (number mod 37):
=
4
That's the spin. The exact same hash also gives — one honest source feeds every game. Change a single letter of the hash and every result changes, so it can't be faked after the block exists.
Want to check it yourself on KubScan?
  1. Open the block → kubscan.com/block/— ↗
  2. Find the Hash field on that page — it matches from step 1.
  3. The formula is fixed and public, so that hash can only produce this result. Nobody can change it afterwards.
In the live game the contract also mixes in your bet's id, your wallet address and a seed — so two people betting on the same block still get independent spins. The unpredictable ingredient is always the block hash.