GODLGODL
  • Mine
  • Rush
  • Stake
  • Explore
MineRush
Deploy
StakeChat

Verify RNG

Verify the randomness generation for GODL rounds

Lite Mode Verification
Quick verification with minimal inputs. Paste round commit or enter manually, then click Verify
Optional: If provided, will calculate top miner sample for non-split rounds

How It Works

  1. Wait for end slot if it's in the future (slot time measured live from the stream)
  2. Fetch slot hash from Solana's SlotHashes sysvar
  3. Retrieve seed from entropy provider (retry with 1s delay if 404)
  4. Compute entropy value: keccak(slot_hash || seed || samples)
  5. Derive round RNG and compute all game outcomes

How RNG Works in GODL

1. Entropy Generation (Commit-Reveal)

The entropy provider pre-commits to a secret seed by publishing keccak(seed). After a specified slot, the slot hash is sampled from Solana's slot history. The final entropy value is computed as:

value = keccak(slot_hash || seed || samples)

2. Round RNG Derivation

The round RNG (r) is derived from the entropy value by splitting it into 4×u64 values and XORing them:

r = u64[0] ^ u64[1] ^ u64[2] ^ u64[3]

3. Winning Square Selection

Simple modulo operation to select one of 25 squares:

winning_square = r % 25

4. Split vs Top-Miner Mode

Determines whether rewards are split among all miners on the winning square or given to a single top miner:

is_split = (reverse_bits(r) split into 4×u16, XOR them) % 2 == 0

5. Motherlode Hit

1 in 625 chance to trigger the motherlode payout:

motherlode_hit = reverse_bits(r) % 625 == 0

6. Top-Miner Selection (Non-Split Rounds)

When not in split mode, a weighted random sample selects the top miner proportional to their deployment:

sample = reverse_bits(r) % total_deployed_at_winning_square

The miner whose cumulative deployment interval contains this sample wins.