What Is Provably Fair in CS2 Case Opening?
Provably fair is a cryptographic system that lets you verify, yourself, that the outcome of a CS2 (CS:GO) case opening was decided before you opened it and was not altered afterwards. Instead of trusting a site's promise that its case opening is random, a provably fair system gives you the mathematical proof — a committed server seed, your own client seed, and a running nonce — so you can recompute any roll and confirm it matches. This guide explains exactly how it works, why it matters, and how to verify your own DuckSkins rolls step by step.
What Does "Provably Fair" Mean?
A provably fair system has one job: to make randomness auditable. It does this by forcing the site to commit to its random server seed in advance — by publishing a cryptographic hash of it — before any rolls happen. Because a hash cannot be reversed, the site cannot reveal the seed early; and because the hash is locked in, the site cannot swap the seed for a different one after seeing your bet. When you later ask the site to reveal the original seed, you hash it yourself and confirm it matches the hash that was published before you played. If it matches, the outcome could not have been manipulated. That is the entire trust model — and it replaces "trust us" with "verify it."
Why Provably Fair Matters for CS2 Case Opening
Opening CS2 cases inside the official game is a black box: Valve has never published the exact drop rates, and there is no way for a player to verify that a specific opening was fair. On third-party case sites the stakes are higher still — you are depositing real balance, so the question "can this site rig my drops?" is the one that matters most.
Provably fair answers it. On a properly built site, every single roll is bound to a server seed that was committed (hashed and shown) before you opened, mixed with a client seed that you control. Because your input is part of every result, the operator cannot pre-compute favourable or unfavourable outcomes for you — it would have to predict a value you can change at any time. This is the difference between a site that says it's fair and one that lets you prove it.
How Provably Fair Works — The Three Ingredients
Every provably fair roll on DuckSkins is built from three pieces of data. Two are visible to you from the start; the secret one is committed in advance and revealed on demand.
1. Server Seed (committed)
A long random secret generated by the site. Before you play, the site publishes only its SHA-256 hash — a one-way fingerprint. The seed itself stays hidden until it is revealed, so you can prove later that it existed unchanged from the start, but the site can't use a different one.
2. Client Seed (yours)
A value you set and can change at any time. Because your seed feeds into every roll, the operator cannot know the outcome of a seed it doesn't fully control. On DuckSkins you set your client seed on the Provably Fair page.
3. Nonce (the counter)
A number that increases by one with every roll. The same server and client seed therefore produce a different, fixed result for each nonce — making every individual open independently reproducible and verifiable.
The Roll, Step by Step
DuckSkins combines those three ingredients with a standard, well-known cryptographic function — HMAC-SHA256 — to turn them into a single number, then maps that number onto the case's items. Here is the exact process:
-
Build the message. The site joins your client seed, the nonce, the case ID,
and the open index into one string (conceptually
clientSeed : nonce : caseId : index). -
Sign it with the secret seed. It computes
HMAC-SHA256(message, serverSeed), a deterministic 64-character hexadecimal hash. The same inputs always produce the same output — that's what makes it verifiable. - Convert to a roll number. It takes the first 8 hex characters of that hash, converts them to a decimal integer, and reduces it modulo 100,000 — giving a roll between 0 and 99,999.
- Map the roll to an item. The case's items are lined up from most to least valuable, and each is assigned a slice of the 0–99,999 range proportional to its published drop chance. The slice your roll lands in is the item you win. Cheaper items occupy the widest slices (high numbers); rare items occupy thin slices (low numbers).
Crucially, the drop percentages and the ranges are shown on every case before you open, and the roll is a pure function of the seeds and nonce. Nothing about the outcome is decided after you click "open."
How to Verify Your Own DuckSkins Rolls
This is what separates provably fair from a marketing slogan: you can independently re-run the math. Here's how, using the DuckSkins Provably Fair page:
- Note the committed hash. Before opening, the Provably Fair page shows the SHA-256 hash of the active server seed. Copy it — this is the commitment you'll check against later.
- Set (or note) your client seed. Set your own client seed so you know exactly what value goes into your rolls.
- Open cases as normal. Every roll is recorded with its nonce, the server-seed hash, your client seed, and the resulting roll value — visible in your roll history.
- Reveal the server seed. When you want to audit, reveal the current server seed. The site publishes the secret seed (and salt) and immediately rotates to a fresh seed for future play (so revealing never exposes rolls you haven't made yet).
-
Check the commitment. Compute
SHA-256(seed + salt)yourself and confirm it equals the hash that was published before you played. A match proves the seed was never swapped. -
Recompute the roll. Re-run
HMAC-SHA256(clientSeed : nonce : caseId : index, seed + salt), take the first 8 hex characters, convert to decimal, and applymod 100000. The number must match the roll stored for that open — and that roll must fall inside the winning item's range. If it does, the result is provably honest.
You can run these checks in any programming language, an online HMAC calculator, or even a spreadsheet — the algorithms (SHA-256, HMAC-SHA256) are public standards, not something DuckSkins invented or controls.
Does Provably Fair Mean There's No House Edge?
No — and this is the most misunderstood part. Provably fair guarantees verifiability, not zero house edge. It proves that the randomness was committed in advance and the result wasn't tampered with for a specific bet. It does not mean a site makes no margin — every case-opening platform, like every casino, builds an edge into its pricing.
The honest version is this: provably fair lets you confirm the process was fair, while the odds and the price are shown to you up front so you can judge the value before you open. A trustworthy site gives you both — transparent, verifiable rolls and visible drop rates — so there are no surprises. Anyone claiming "provably fair = guaranteed profit" is misusing the term.
Provably Fair in Case Battles and Upgrades
The same model extends across DuckSkins. In CS2 case battles (see the case battles guide), each round's roll for each player is generated from a per-battle server seed and verifiable in exactly the same way, so no player — and not the house — can influence who wins. The upgrade and contract features use the same committed-seed approach for their outcome rolls. Wherever there's a random result on the site, there's a record you can verify.
See It for Yourself
Every DuckSkins case opening is provably fair, the drop rates are shown before you open, and you can verify any roll from your history. Set your client seed, open a case, and check the math.
Common Questions
Is DuckSkins provably fair?
Yes. DuckSkins commits to a hashed server seed before play, mixes in a client seed you control, and records the nonce, hash, and roll for every open so you can independently verify the result on the Provably Fair page.
Can a provably fair site still cheat?
It cannot change a single committed roll without you detecting it — the published hash locks the server seed in advance. The thing to watch for is the odds themselves, which is why DuckSkins displays each case's drop rates up front. Verify the process and read the odds.
What is a client seed and should I change it?
Your client seed is your personal input into every roll. You don't have to change it, but setting it yourself is good practice: it guarantees the site couldn't have pre-arranged outcomes around a seed only it knew.
What does revealing the server seed do?
Revealing publishes the previously-secret server seed so you can confirm it matches the hash committed before you played, then rotates in a brand-new seed for future rolls. That rotation is why revealing can never expose the outcome of a case you haven't opened yet.
Why doesn't Valve's in-game case opening have this?
Valve's case system is closed and unaudited — drop rates aren't officially published and individual openings can't be verified. Provably fair is something third-party platforms added specifically to give players cryptographic proof the in-game model doesn't offer.
DuckSkins is an 18+ entertainment platform. Case opening involves risk — only play with what you can afford to lose. Provably fair proves a result is honest; it does not guarantee a profit.