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 (~400ms per slot)
  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.