The tower waits in silence. Be the first to climb.

Provably Fair

The tower commits to its outcomes before you choose. After your run, it reveals the seed so you can verify every portal yourself.

1 · Server Seed Commit

When you start a run, the server generates a 32-byte server seed, hashes it with SHA-256, and stores both. Only the hash is visible during the run.

2 · Client Seed + Nonce

Your client provides a random seed. Each floor increments a nonce. HMAC-SHA256(serverSeed, clientSeed:nonce) → first 4 bytes / 2^32 → a number in [0,1) used to deterministically shuffle portals.

3 · Reveal & Verify

When your run ends (cashout or death), the server seed is revealed in the run record. Re-compute the HMACs yourself with your client seed and nonce — they will match the floors you walked.

Pseudocode

hmac = HMAC_SHA256(server_seed, client_seed + ":" + nonce)
u32 = first 4 bytes of hmac, big-endian
f = u32 / 2^32   // in [0,1)
// Fisher–Yates shuffles portals using f; first N become "safe"