Verify fairness
Before each round starts, the game locks in all words onchain — the secret word, 10 bonus words, and 5 burn words — using cryptographic commitments.
When the round ends, the secret word and salt are revealed so anyone can verify the game was fair.
Check the most recent round, or look up any past round by number.
Onchain record
The game uses two smart contracts on Base. Both are publicly verified and all commitments are immutable once written.
0xfcb0D07a5BB5f004A1580D5Ae903E33c4A79EdB5
0x2eEa96E86D5b9e44E39A2A7D83CE214c6E10b574
Why this matters
Before any guesses are made, all 16 words are locked onchain: the secret word (SHA-256 on JackpotManager) and 10 bonus + 5 burn words (keccak256 on WordManager).
When a player finds a bonus or burn word, the contract verifies the word matches its committed hash before releasing tokens. This guarantees no word can be changed mid-round.
Want to double-check it yourself?
If you'd like to independently confirm the result using your own tools, here's how each commitment is computed.
SHA256(salt + word)- • Salt: 64-character hex string
- • Word: 5-letter answer (UPPERCASE)
- • Concatenated directly, no separator
echo -n "<salt><word>" | sha256sumkeccak256(abi.encodePacked(word, salt))- • Word: 5-letter word (UPPERCASE, encoded as string)
- • Salt: 32-byte value (bytes32)
- • Uses Solidity's
abi.encodePacked— word first, then salt - • 16 hashes per round: 1 secret + 10 bonus + 5 burn
cast keccak "$(cast --abi-encode-packed 'f(string,bytes32)' '<WORD>' '<0xSALT>')"Using Foundry's cast, or ethers.js solidityPackedKeccak256(['string','bytes32'], [word, salt])