Every game result can be independently verified
SolArena uses a commit-reveal scheme to ensure that game outcomes cannot be manipulated by either the house or the player. Here is how it works:
A cryptographic random value generated by the server before the game starts. Its SHA-256 hash is revealed to the player upfront as a commitment.
A value provided by the player (or generated randomly). This ensures the server cannot predict the final outcome alone.
A sequential counter that increments with each bet. Combined with both seeds to produce a unique result for every game.
result = SHA-256(serverSeed:clientSeed:nonce)The first 8 hex characters (32 bits) of the hash determine the game outcome. For duels: number = (parseInt(hex, 16) % 100) + 1. For coin flips: HEADS if even, TAILS if odd.
Before the game begins, the server generates a random seed and publishes its SHA-256 hash. This hash is your proof that the seed was chosen before gameplay.
You can provide your own client seed or use the auto-generated one. This seed is combined with the server seed to determine the outcome.
The game outcome is determined by SHA-256(serverSeed:clientSeed:nonce). Neither party can manipulate the result alone.
After the game ends, the raw server seed is revealed. You can now hash it yourself and compare against the pre-game commitment.
Use the tools below to confirm: SHA-256(serverSeed) matches the commitment, and SHA-256(serverSeed:clientSeed:nonce) produces the claimed result.
Enter a Game ID and type to look up its provably fair data. For resolved games, we will automatically verify the result client-side.
Verify any game result yourself. Enter the server seed, client seed, and nonce revealed after the game to independently compute the outcome.
Secret number derived from SHA-256(serverSeed:clientSeed:nonce). First 8 hex chars mapped to 1-100.
Result derived from SHA-256(serverSeed:clientSeed:nonce). Even = HEADS, Odd = TAILS.
Chamber positions pre-determined using provably fair seeds and committed before each pull.
Each match flip uses unique nonce derived from bracket position.