How rounds stay provably fair
Each round's seed is locked in a SHA-256 hash before picks open and revealed when it ends. How to check the hash and replay the round yourself.
Every Basement round is played from a random seed A random number drawn before the round opens. The match plays out from it. , and that seed is locked in a hash before anyone can pick. When the round ends, the seed is revealed, so you can check the hash and replay the round in your browser. This page covers what that proves and what it doesn't.
Every side starts even
Who plays in a round is public. The lineup comes from the game and the round number alone. Everything that could favor one side, like a grid position, spawn point, role or fighting style, is dealt by a shuffle drawn from the seed.
So before GO, each side has exactly the same chance: 1 in 2, 1 in 4 or 1 in 6, depending on the game. The lineup screen doesn't reveal the shuffle, and the win-chance bars during a match read only what's on the stage.
Locked before picks, revealed after
When a round is announced, the server draws its seed and a salt, a random 32-character code. It publishes a lock right away, before the round takes a single pick. The lock is the SHA-256 hash of this text:
textarena:round:version:seed:salt
arenais the game's id:rush-hour,clash,knockoutfor Neon Knockout,broadside,skyballorturf-war. It's the same id as in the game's link, like/a/knockout.roundis the round number.versionis the version of the game that played it, likeskyball-4. It changes when a game's rules change, so older rounds keep the version they ran on.
Picks close just before GO, and the round is locked in before its first frame plays. When it ends, the seed and salt are published. If anyone had changed the seed after picks came in, the hash would no longer match the lock. The salt is there so nobody can work out the seed from the lock by trying every possible number.
Here's a real one, Skyball round 100, from when Skyball was one on one and ran on skyball-3:
textskyball:100:skyball-3:1426668468:ff6ae4bd664563b967c173074f57f5a2
Its SHA-256 is 640c01c179e8b0a14105f05a27d757e163b267507eb1434e86309070282f612f, which is the lock that round published before it opened.
Check a round in the app
Open Game info
Tap the game's name near the bottom of its card in the feed, next to the small info icon. On a computer, click the ⓘ next to the title under the stage, and the panel opens on the left.
Find Provably fair
Scroll to Provably fair. Lock (now) is the current round's lock. Below it is the last finished round with its number, a Replay link, and its Version, Seed, Salt and Lock.
Copy the values
Tap any value to copy it. Long ones are shortened on screen but copy in full.
Hash it
Join arena, round, version, seed and salt with colons and run SHA-256 on the result with any tool you trust. It should equal the round's Lock.
Replay the round
Tap Replay to run the round again in your browser.

On a computer the same panel also shows the arena's last 10 winners, newest first, and a replay lists the round's values under Fairness.

To run the check with your own code, see verify a round.
What a replay proves
A replay is a fresh simulation. The replay page loads the same game code the live round ran, feeds it the revealed seed and the round's Drops, and plays the whole match in your browser. If the winner or the finish time comes out different from what the round reported, it refuses to play and says "This round can't be replayed on this version".
The two checks cover different halves. The hash shows the seed was fixed before picks opened. The replay shows that this seed, plus the Drops, gives the result you saw. More on watching and sharing replays is in replays.
What this doesn't cover
- Drops aren't in the lock. When someone drops, the server picks the Drop's kind and target at random right then. Every Drop is published with the round, with its kind, target and when it landed, and the replay uses them, but none of that is locked in ahead of time.
- The game code isn't public. Outside the app you can check the hash, but you can't re-run the match on your own. The in-app replay runs the shipped game code in your browser.
- Replays stop working after a game update. Once a game's version changes, its older rounds show "This round ran on an earlier version of the game" instead. The hash check still works for them.