CSDB · CS2 Gambling
Provably Fair Verifier
Check a CS2 gambling site’s result yourself, in your own browser. Nothing is sent to us or to the operator — a verifier that asks the operator whether the operator cheated would not be worth much.
Manual mode runs the construction most of the category uses, and does not assume any particular operator. Where we have read an operator’s own scheme in enough detail to reproduce part of it, picking it here presets the maths and prints what its documentation leaves unstated.
1. Did the site reveal the seed it committed to?
This is the check that matters, and it works on any operator that publishes a hashed server seed before a round. Rotate your seed on the site, copy the revealed server seed and the hash it showed you beforehand, and paste both here. It is the check we can preset for Clash.gg, Hunt.gg and CSGOEmpire, whose documentation establishes the commitment but not the derivation.
2. Recompute a roll from the seeds
Once the commitment checks out, this derives what the seeds produce. In manual mode it implements the near-universal construction — HMAC over clientSeed:nonce keyed with the server seed — which is not tied to any one operator. Rain.gg publishes a construction of its own in enough detail for us to preset it; for everyone else, if your site documents a different hash width or slice, change it here rather than assuming this is wrong.
What this proves, and what it does not
A passing commitment check proves one specific thing: the result of that round was fixed before you bet and was not altered afterwards. That is a real guarantee and worth having.
It is also much narrower than the phrase suggests. It says nothing about whether the advertised drop rates are honest, whether the house edge is what the site claims, whether the operator is licensed or solvent, or whether it will process your withdrawal. A site can be scrupulously provably fair and still take a very large margin from you, provably, on every single round. Most “this site is rigged” complaints describe a normal losing run rather than a broken seed — and this tool is how you tell the two apart.
Operators whose scheme we have read
These are the sites in our database whose fairness claim we have actually read, and the column on the right is the honest part: a claim, a readable scheme and a reproducible scheme are three different things, and only the third means you can check a result for yourself. Rain.gg is the only operator here whose own derivation is published in enough detail for us to recompute a digest; the other presets stop at the commitment, because that is as far as the documentation goes.
| Site | What it documents | Can you check it here? |
|---|---|---|
| CSGOEmpire | Publishes a hashed server seed before each round and reveals it afterwards, with a user-editable client seed. Roulette, coinflip and case battles each document their own scheme. | Reproducible hereVerify: Roulette, coinflip and case battles |
| Clash.gg | SHA-256 commit/reveal with an editable client seed — but explicitly scoped to PvE games only. The case-battle algorithm is not documented. | Reproducible hereVerify: PvE games (cases, upgrader) |
| Rain.gg | The best-documented of the set. Publishes working code per game — HMAC-SHA512 over the server seed keyed with clientSeed:nonce:step — and uses an EOS block hash for battles. | Reproducible hereVerify: Site games (per-game published code) |
| Hunt.gg | Documents two schemes rather than one. Single-player games use a hashed server seed committed up front, a client seed the player can set to anything, and an incrementing nonce; rotating the server seed reveals the old one so past rounds can be checked. Multiplayer games replace the client seed with an EOS blockchain block hash committed to before the game starts, which is the right design for a game where one player could otherwise influence the result. It also ships a hash verifier so a revealed seed can be checked against its published hash. | Reproducible hereVerify: Single-player games |
| CSGORoll | publicSeed, serverSeed and nonce, with the verification JavaScript published and runnable in the browser. Its RNG changed in October 2022, so older rolls need a different script. | Documented, not reproducible hereCSGORoll publishes runnable verification code rather than a written specification, and our record captures the inputs (publicSeed, serverSeed, nonce) without the hash width, keying order or concatenation. It also changed its RNG in October 2022, so one preset could not serve both eras. Use CSGORoll’s own published script, and the manual form below only if you already know its format. |
| CSGOBig | A hashed server seed combined with third-party randomness from Random.org, whose sequential serial numbers let you audit for gaps — a stronger design than seed-only schemes. | Documented, not reproducible hereThe outcome depends on a Random.org draw, which is not derivable from any seed — no local calculator can reproduce it. What you can audit instead is what makes this design stronger than seed-only schemes: Random.org’s serial numbers run sequentially, so a gap in the series is visible. |
| Datdrop | Commit-reveal with a secret hash and salt, so you can prove the server seed was not swapped. PvP modes use Random.org tickets drawn only after all players have joined. | Documented, not reproducible hereA salt enters the commitment and DatDrop does not publish how, so hashing the revealed seed alone would not reproduce the published hash — a preset here would manufacture mismatches on an honest operator. PvP modes additionally use Random.org tickets, which are not derivable from seeds. |
| KeyDrop | Its terms assert that "Items contained in a Chest are generated randomly through a provably fair method", and its footer and safety portal both link a Provably Fair page. That page did not resolve for us logged out: /en/provably-fair and key-drop.com/provably-fair both redirected to a login or not-found screen when read on 27 August 2026. So the claim is made, but no seed, hash or verification method is published where a prospective player can read it — and nothing about it can be independently reproduced. | Asserted, not documentedThe claim is made, but nothing a prospective player can read or reproduce sits behind it. Nothing here can verify it, and that is a finding about the operator rather than a gap in this tool. |
Frequently Asked Questions
- What does provably fair actually prove?
- One thing: that the result of a specific round was fixed before you bet, and was not altered afterwards. The site commits to a server seed by publishing its hash, you contribute a client seed, and after the round the server seed is revealed so you can recompute the outcome. If the revealed seed hashes to the published value, the result could not have been swapped after the fact.
- What does it not prove?
- Almost everything else people assume. It does not prove the advertised drop rates or house edge are honest — the operator chooses those and the seed scheme says nothing about them. It does not prove the site is licensed, solvent, or that it will process your withdrawal. And it does not prove the site is not simply taking a large margin on every round, fairly and provably. Treat it as one box ticked, not a safety rating.
- Does this tool send my seeds anywhere?
- No. The hashing runs in your browser using the Web Crypto API, and nothing is transmitted to CSDB or to the operator. That is deliberate: a verifier that asks the operator whether the operator cheated is not a verifier.
- My roll does not match what the site showed. Has it cheated?
- Probably not. Operators differ on hash width, on how many hex characters they consume, and on whether the nonce starts at 0 or 1 — so a mismatch is far more often a formula difference than dishonesty. Check the operator’s own documentation first. A failed commitment check, where the revealed seed does not hash to the published value, is the serious one.
- Which sites can I check with this?
- The commitment check works on any operator that publishes a hashed server seed before the round, which is most sites claiming provable fairness, and the roll derivation implements the construction the category uses with variations. Beyond that, we preset the scheme for Rain.gg, Clash.gg, Hunt.gg and CSGOEmpire, because those are the operators whose own documentation we have read in enough detail to reproduce part of it without guessing. A preset built on a guessed message format would tell honest users their operator cheated, so where an operator publishes runnable code instead of a specification, or mixes in third-party randomness, we say so rather than approximating it.
- A site says it is provably fair but you have not listed a scheme. Why?
- There are two different situations and the table below keeps them apart. Some operators document a scheme we can read but not reproduce — the format is not published in enough detail, or the outcome depends on a third-party draw that no local calculator can derive. Others assert the words without publishing anything a prospective player can use; KeyDrop is the live example, claiming a provably fair method behind a page that does not resolve when you are logged out. The first is a limitation of ours. The second is a limitation of theirs.