Tower uses a Provably Fair system to ensure that every round is transparent, independently verifiable, and cannot be altered after the server seed has been committed.
Each Tower round is generated using three values:
Server seed – generated by the server before the round begins. A SHA-256 hash of the server seed is displayed before betting starts, allowing players to verify that the server committed to the seed in advance and cannot change the outcome afterward.
Client seed – used together with the server seed to add additional randomness to the round generation.
Nonce – an incrementing value that ensures each round produces a unique result.
Because the hashed server seed is shown before betting begins, the server cannot modify the tower layout after the fact without the hash no longer matching the revealed server seed.
The position of traps on each Tower row is generated using HMAC-SHA256:
float = uint32(HMAC_SHA256(serverSeed, clientSeed:nonce:row:step)[0..8]) / 2^32
traps = first T of fisherYatesShuffle([0..cols-1], float) per row
For each row, the system uses the generated random value to shuffle the available positions and determine the locations of the traps. The resulting layout is used to determine whether each selected tile is safe or contains a trap.
After the server seed is revealed (when the seed pair is rotated), you can verify previous Tower rounds in the Verify tab. By using the revealed server seed, client seed, and nonce, you can reproduce the round generation and confirm that the tower layout was created fairly.
This system ensures that every Tower round is random, transparent, and cannot be manipulated by either the player or the casino after the server seed has been committed.
