CSBattle provably fair: how it works, and we tested it
CSBattle calls itself provably fair. That means every result can be checked: the site publishes what went into a roll, and anyone can recompute it and get the same answer. It's a big claim, and most players never test it. So we did. On 23 October 2026 we read the verification code CSBattle publishes for every game. Then we took real finished games and recomputed every result with our own code, written separately from CSBattle's. We also looked up the blockchain data the site relies on.
The short version: everything we checked matched.
- Battles: 212 out of 212 openings across four battles gave the same ticket and the same item.
- Jackpot mode: both jackpot draws picked the same winner.
- Coinflip: all 12 flips came out the same.
- The blockchain part: every EOS block was real and was mined after the game was set up.
Below is how the system works, what we found, and how to check a game yourself.
What "provably fair" means
Think of a sealed envelope. Before you play, the site writes a secret number, called the server seed, puts it in an envelope and shows you a fingerprint of it, the hash. After the game, it opens the envelope. If the revealed seed produces the same fingerprint, the site can't have swapped it halfway through.
The fingerprint is a SHA-256 hash: a 64-character code that works in one direction only. You can't get the seed back from the hash, and you can't find a different seed with the same hash.
A secret seed alone isn't enough, because the site picked it. So every result also mixes in a second input the site doesn't control:
- Single-player games (Cases, Upgrader, 21, Mines, Tower, Plinko, Keno) use your client seed, which you can change whenever you like, plus a nonce, a counter that goes up by one with every bet.
- Multiplayer games (Battles, Coinflip, Double) use a block on the EOS blockchain that hasn't been mined yet when the game locks. Nobody can know its ID in advance, CSBattle included.

How a ticket is made
Every game uses the same recipe, which CSBattle publishes on its fairness page:
- Mix the inputs. Take the server seed and the second input (your client seed, or the EOS block ID), plus the nonce or round number. Run them through HMAC-SHA256, a standard way to mix a secret key with a message.
- Turn it into a number. Read the 64-character result as one huge number and divide it by the largest possible value. That gives a number between 0 and 1.
- Scale it to the game. For a case, multiply by 100 and keep six decimals. That gives a ticket from 0.000000 to 99.999999: 100 million possible tickets, all equally likely.
The items in a case are laid out along those tickets in the order the case lists them, most valuable first. Each item gets a stretch as long as its odds. A 0.1% knife gets tickets 0 to 0.099999. The 85% filler skin at the bottom gets the last 85 points.
A real example. In a four-player battle on 23 October, the fourth player's first opening of the "Stalker" case got ticket 9.767621.
- In that case, the first eight items take up tickets 0 to 6.999999.
- The next item, a StatTrak™ AWP Graphite at 3%, covers 7.000000 to 9.999999.
- So 9.767621 lands on the AWP, which is exactly the item the player got.
How each game uses it
All 10 games run on the recipe above. What changes is the second input and what the number is turned into.
| Game | Second input | What gets drawn |
|---|---|---|
| Cases | Your client seed + nonce | One ticket from 0 to 99.999999, matched to the item list |
| Battles | EOS block ID | One case ticket per player per round, plus an extra ticket for Jackpot mode and other modes |
| Coinflip | EOS block ID | A number from 0 to 100: below 50 is heads, 50 and up is tails |
| Double | EOS block ID | One of 15 slots: 1 yellow slot pays 14x, 7 blue and 7 grey slots pay 2x |
| Upgrader | Your client seed + nonce | A percentage from 0 to 99.9999, compared with your win chance |
| 21 | Your client seed + nonce | Each card drawn from a full 52-card deck |
| Mines | Your client seed + nonce | Mine positions one by one, skipping repeats |
| Tower | Your client seed + nonce | One bad tile per row |
| Plinko | Your client seed + nonce | Left or right at every row, 50/50 |
| Keno | Your client seed + nonce | 10 numbers out of 40, skipping repeats |
Three things in that table are worth knowing before you play:
- In 21, every card comes from a fresh 52-card deck. The same card can show up twice in one hand, so counting cards does nothing.
- Double pays back 93.3% on every colour. Yellow pays 14x on 1 slot out of 15, and blue or grey pay 2x on 7 out of 15. Both work out to 14/15 of your stake on average.
- Low tickets are the rare items. In every case we checked, the most valuable item sits at the start of the range, so a ticket close to 0 is the one you want.
We tested it
Battles: 212 out of 212 openings matched
We took four finished battles from 23 October in different formats. For each one we read the server seed and EOS block from the battle's Fairness panel, and the recorded tickets and items from the battle itself. Then we recomputed every ticket with our own code.
| Battle | Format | Rounds | Openings | Tickets matched | Items matched |
|---|---|---|---|---|---|
| 4c60e095 | Group, 4 players | 17 | 68 | 68 | 68 |
| 824c65c8 | Team 2v2v2, Jackpot mode | 10 | 60 | 60 | 60 |
| 07991c65 | Group, 4 players | 3 | 12 | 12 | 12 |
| cd56e98d | Free-for-all, 6 players, Jackpot mode | 12 | 72 | 72 | 72 |
In all four, the revealed server seed produced exactly the hash that was shown before the battle. Every ticket matched to the sixth decimal, and every ticket landed on the item the player actually got.

CSBattle's own verifier on the fairness page gives the same tickets. We ran the first battle through it to compare:

The EOS blocks are real, and came after the battle
The EOS part only protects you if the block didn't exist yet when the battle locked. So we looked up all four blocks on a public EOS node:
- Every block ID matched the one CSBattle showed. An EOS block ID also carries the block number in its first characters, and those matched too.
- Every block was mined after the battle was created. The gap was 3 to 4.5 seconds each time. For example, the first battle was created at 20:07:37 UTC and its block was mined at 20:07:41 UTC.
- A battle still waiting for players shows only the hash. We checked one: the server seed and EOS block were still blank. The block is only picked once the battle is full.
Coinflip: 12 out of 12
We checked the 12 most recent finished coinflips. Every seed matched its hash, and every ticket below 50 came up heads and every ticket of 50 or above came up tails. The EOS blocks we looked up were mined 2.5 to 3 seconds before each flip started.
Single-player games: same answer as CSBattle's tool
Checking a real single-player bet means playing one yourself and then revealing your seed. We didn't do that for this article. Instead we gave CSBattle's verifier a made-up seed set:
- server seed "bandits-test-server-seed-2026"
- client seed "BANDITS"
- nonce 7
We ran the same seeds through our own code.
The case ticket came out at 9.387202% in both. The Keno draw gave the same 10 numbers in the same order. So the code CSBattle publishes does what it says, and anyone can reproduce it.


What we learned about Jackpot mode
CSBattle describes Jackpot mode in one line: a roll decides the winner "based on your rewards". The data shows what that means. At the end of the battle, one extra ticket is drawn from the seeds, and each player's chance of winning the whole pot is in inverse proportion to what they unboxed. The less you pulled, the better your odds.
Here is the 6-player battle we checked:
| Player | Unboxed (coins) | Chance to win the jackpot |
|---|---|---|
| Player 2 | 0.48 | 35.76% |
| Player 5 | 0.48 | 35.76% |
| Player 1 | 1.07 | 16.04% |
| Player 6 | 2.71 | 6.33% |
| Player 3 | 3.13 | 5.48% |
| Player 4 | 27.37 | 0.63% |
The jackpot ticket came out at 65.40, which fell in Player 5's range. Player 5 took the pot. Player 4 unboxed more than everyone else combined and had a 0.63% chance.
The team battle shows the same thing at a bigger scale. One player pulled a skin worth 4,140.29 coins. Their jackpot chance rounded to 0%, and the pot went to another team.
So Jackpot mode is not "most value wins". It works more like a comeback roll. Know that before you turn it on.
How to check a CSBattle game yourself
Battles, Coinflip and Double
- Open the finished game and click Fairness.
- Note the hashed server seed while the game is still waiting. After the game, check that it hasn't changed.
- Click Verify. The fairness page opens with every field filled in and shows each ticket.
- Compare the tickets with the items in the battle. A ticket lands on the item whose range contains it, counting from the most valuable item down.
- For extra certainty, look the EOS block number up on an EOS block explorer such as bloks.io. Check that the block ID matches and that the block was mined after the game started.
Single-player games
- Before you play, open the fairness section of your profile and set your own client seed. It's the one input you control, and it costs nothing.
- Write down the hashed server seed shown there.
- Play as normal.
- When you want to check, rotate your seed (possible after at least one bet). The old server seed is revealed, and a new hidden one takes over.
- Open the bet in your history and click Verify, or paste the seeds into the fairness page. The revealed seed must match the hash you wrote down.
The fairness page also has the full verification code under "Reproduce it yourself", which you can paste into your browser's console.
What provably fair doesn't tell you
Provably fair proves that nobody changed a result after the fact. It doesn't prove the game is a good deal. Three things it says nothing about:
- The odds themselves. A case that pays back 86% is just as provably fair as one that pays back 91%. In our check of 90 CSBattle cases, returns ran from 85.7% to 91.2%. The house edge is built into the item odds, in plain sight, and the fairness system works on top of it.
- Item values. CSBattle sets the coin value of every skin. The system proves which item you got, not what it's worth.
- Payouts. Fair rolls don't mean smooth withdrawals. CSBattle scored 3.1 on Trustpilot when we last checked, with complaints about blocked withdrawals and identity checks. Our CSBattle guide covers that side.
One small note from our test: a battle's server seed shows up as soon as its EOS block is mined, while the cases are still spinning on screen. That's not a problem, because by then the result is already locked. It just means the seed comes out a few seconds earlier than the fairness page says.
Play with code BANDITS
If you play on CSBattle, code BANDITS puts every wager on the 500 coin BANDITS leaderboard. It doesn't change any roll: your results come from the same seeds as everyone else's, and you can check them the same way. Sign in through csbattle.com/r/bandits and the code is applied as part of signing up; see our promo code guide for how to enter it on an existing account, and the CSBattle rewards page for the prizes and payout steps.
How we checked
On 23 October 2026 we read the verification code that CSBattle's fairness page publishes for all 10 games in its menu, and its explanation of the system. We then wrote our own verifier in Node.js using the standard crypto library, separate from CSBattle's browser code.
- Battles: we took four finished battles from that evening. The server seed, hash and EOS block came from each battle's Fairness panel. The recorded tickets, items and jackpot shares came from the battle page.
- Coinflips: we read the 12 most recent finished games the same way.
- EOS blocks: we looked them up on a public EOS API node (eos.greymass.com).
- Single-player games: we compared our code with CSBattle's verifier on a made-up seed set, for Cases and Keno.
What we didn't test: a real single-player bet, since that needs our own bet and a seed rotation, and the Double, Twist and Elimination modes on real games. The code for those follows the same recipe.
Frequently asked questions
- Is CSBattle provably fair?
- Yes, as far as we could test. We recomputed 212 battle openings, 2 jackpot draws and 12 coinflips from their published seeds with our own code, and every result matched what CSBattle recorded. Every EOS block was real and was mined after the game was set up.
- How does CSBattle's provably fair system work?
- Each result comes from HMAC-SHA256 of a secret server seed and a second input. In single-player games that's your client seed and a bet counter, in multiplayer games the ID of a future block on the EOS blockchain. The server seed's hash is shown before the game, and the seed itself is revealed afterwards, so you can check nothing was swapped.
- Can CSBattle rig a battle?
- Not without it showing. The server seed is fixed by its hash before the battle, and the EOS block that decides the rolls is mined after the battle locks. Neither side can know or choose that block's ID in advance. What the site does control is the odds and values of the items in each case, which are published on the case page.
- How do I verify a CSBattle battle?
- Open the finished battle, click Fairness, then Verify. The fairness page fills in the seeds and shows every player's ticket for every case. You can also check the EOS block number on an EOS block explorer.
- How does Jackpot mode decide the winner?
- One extra ticket is drawn from the battle's seeds at the end. In the battles we checked, each player's chance was inversely proportional to the value they unboxed, so the players who pulled the least had the best odds of taking the whole pot.
- Does provably fair mean I'll win?
- No. It proves the results weren't changed, not that the odds are good. Cases on CSBattle pay back about 86% to 91% on average, and every game has a house edge.
- Does code BANDITS change my odds?
- No. It puts your wagers on the BANDITS leaderboard. Your rolls come from the same seeds and the same system as everyone else's.
- Who can play?
- You must be 18 or over, and the site must be available in your country. Gambling can be addictive, play responsibly. Help and advice: GambleAware.org.
18+ only. Gambling can be addictive, play responsibly. The Gambling Bandits earns a referral commission from CSBattle. Details about CSBattle were checked on 23 October 2026 and can change; the site's own pages are the final word.