🏆 7xKP...9kZq won 0.4820 SOL!💥 Abc1...xyz hit TNT (-0.1 SOL)⚔️ New 1v1: 0.5 SOL - Join now!🔥 9mNx...4pQr is on fire! 5 win streak!🏆 3jKm...8vLp won 1.2500 SOL!⚔️ xYz2...mNo defeated Pqr5...sTu for 0.8 SOL!🏆 Lmn4...jKl won 0.0850 SOL!💥 Qrs7...wXy hit TNT (-0.25 SOL)⚡ 2nBc...5dEf is unstoppable! 10 win streak!⚔️ New 1v1: 1.0 SOL - Join now!🏆 Fgh8...2nPq won 0.3200 SOL!⚔️ Rst3...vWx defeated Yza6...bCd for 1.5 SOL!🏆 7xKP...9kZq won 0.4820 SOL!💥 Abc1...xyz hit TNT (-0.1 SOL)⚔️ New 1v1: 0.5 SOL - Join now!🔥 9mNx...4pQr is on fire! 5 win streak!🏆 3jKm...8vLp won 1.2500 SOL!⚔️ xYz2...mNo defeated Pqr5...sTu for 0.8 SOL!🏆 Lmn4...jKl won 0.0850 SOL!💥 Qrs7...wXy hit TNT (-0.25 SOL)⚡ 2nBc...5dEf is unstoppable! 10 win streak!⚔️ New 1v1: 1.0 SOL - Join now!🏆 Fgh8...2nPq won 0.3200 SOL!⚔️ Rst3...vWx defeated Yza6...bCd for 1.5 SOL!

Provably Fair

Every game in GOLD RUSH uses cryptographic randomness that you can verify. We never manipulate the outcome.

How It Works

1. Seed Generation

Before each game, a random seed is generated. This seed determines where TNT is placed.

2. Hash Display

You see the SHA-256 hash of the seed BEFORE the game starts. This proves we can't change the outcome.

3. Verification

After the game, the seed is revealed. You can verify that it matches the hash and produces the same TNT positions.

Technical Details

  • • Seeds are 32-byte random values generated using cryptographic randomness
  • • SHA-256 is used to hash seeds before display
  • • TNT positions are deterministically derived using a seeded Fisher-Yates shuffle
  • • In production, Switchboard VRF provides on-chain verifiable randomness

Verify a Game

Enter the game details to verify the fairness of any past game.

TNT Position Algorithm

// Pseudocode for TNT position generation
function getTntPositions(seed, tntCount, gridSize) {
  // Create array of all positions [0, 1, 2, ..., 29]
  positions = [0..gridSize-1]
  
  // Hash the seed
  hash = SHA256(seed)
  
  // Fisher-Yates shuffle using hash bytes
  for i from gridSize-1 to 1:
    randomByte = hash[i % hash.length]
    j = randomByte % (i + 1)
    swap(positions[i], positions[j])
  
  // Return first tntCount positions
  return positions.slice(0, tntCount).sort()
}