1 — We commit
At the start of a session the server generates a secret seed and hands the player its SHA-256 hash. The seed itself stays hidden, but it is now fixed — we cannot change it later without the hash no longer matching.
Two things keep a player at a game: believing it is straight, and having a reason to come back tomorrow. We build for both in the engine itself.
"Trust us" is not a feature. This is the mechanism, in full.
At the start of a session the server generates a secret seed and hands the player its SHA-256 hash. The seed itself stays hidden, but it is now fixed — we cannot change it later without the hash no longer matching.
The player supplies their own client seed and can change it whenever they like. Every round also carries a counter, so no two rounds share inputs.
Reel stops come from HMAC-SHA256 over those three values, with rejection sampling so every stop is uniform. Nothing else touches the outcome.
When the seed rotates, the old one is published. The player — or an auditor — can recompute every round they played and compare it against what was paid.
We ship the verifier as a tool, not a promise: it plays real rounds against a server, checks the revealed seed against the original commitment, replays each round locally, and reconciles the wallet balance.
Built into the engine, so a campaign is configured once rather than integrated per title.
Leaderboards over a window, scored on win multiple rather than stake, so a small player can still place.
Granted per player at a fixed bet, settled through the same wallet calls as any other round.
Lightweight objectives — land a feature, hit a multiple — that give a session a shape beyond the next spin.
Status: the fairness layer is built and shipping in Phoenix Gold. The promo tools are specified and partially built — talk to us about timing before you plan a campaign around them.