Fair Dice, Fair Play
Every backgammon player who loses to a last-roll double has wondered it: are these dice fair? It's the right question to ask of any backgammon app. Here is exactly how our dice are generated, why nobody, including us, can tilt them, and how the rest of the game is kept honest too.
Verify Any Finished Game Yourself
Talk is cheap, so here is the part you can run yourself. When a match ends we disclose its server seed, the commitment we published before the first roll, and every link each side contributed along the way. Paste that reveal bundle below, or look the game up by its ID, and this page re-derives every single die from that record, the exact same computation our servers ran, then shows you roll by roll whether the stored values match. You do not have to take our word for any of it: the arithmetic is open and anyone can repeat it. The one thing this page deliberately will not do is hand out a green "provably fair" badge, because it cannot honestly earn one. It never sees the values your own device wrote down and locked before the first roll, and a record whose chain was replaced wholesale by a careful forgery re-derives here just as flawlessly. Only a byte-for-byte comparison against what your device locked can rule that out, and only your app holds those values. So "consistent" is the honest ceiling on this page, and the strongest verdict is the one the Verify screen in the app can give you.
The Dice: Provably Fair, Rolled on the Server
Every roll in a completed online match is produced on our game servers, and it is provably fair in a way you never have to take on trust. Before the first roll we publish a commitment to the secret seed the dice will come from, and both players' apps commit to a private chain of their own; all of it is frozen together into one record before anyone rolls. Every roll then spends one fresh link from each side's chain: the player about to roll publishes theirs at the start of the turn, the opponent releases theirs only once that is locked in, and the die is derived last. So the final unknown input to any die always sits on the other side of the board. Opening dice are no exception, neither one exists until both sides have contributed. Each die is therefore a deterministic result of values committed in advance: nobody, ourselves included, can pick a die, swap it for another, or quietly roll it again. That is a claim about the value of a completed roll and it stops there: whether a match gets cancelled, whether a message arrives, and whose clock ran out all lie outside it. The tool above re-derives every die of a finished game from the published record, arithmetic anyone can repeat. What it cannot do is confirm that the record is your match, because that takes the values your device locked before play and only your app holds those, so that last step happens on the Verify screen in the app.
Just as important is where the roll happens. The dice are never generated on your device, your phone only displays a roll the server has already made. That single design decision eliminates the whole family of dice cheats: a modified app can't reroll, a lag spike can't duplicate a throw, and no client-side trick can peek at the next number, because the next number is not on your phone to be read: it is derived on the server, and only once both sides have released their link for that turn.
And the rolls are never adjusted. There is no "engagement curve", no comeback mechanics, no boost for players on losing streaks. The generator neither knows nor cares who is winning.
The Board: Verified on Every Single Move
Fair dice would mean little if the board itself could drift or be tampered with, so the game runs on a strict server-authoritative model. Your device never tells the server what the board looks like, it only sends your intent ("move this checker from the 13-point to the 8-point"). The server checks that move against the official rules and the official board; illegal moves are simply rejected, no matter what a modified client claims.
Then comes the double-check: with every state update, the server broadcasts a compact fingerprint (hash) of the true board position. Your device computes the same fingerprint from its local board and compares. If even a single checker differs, the client discards its copy and re-synchronizes from the server. Both players are therefore provably looking at the same game at all times, desyncs self-heal in one round-trip, and there is no window in which a stale or manipulated board can be played on.
The Opponents: Glicko-2 Matchmaking
Fairness is also about who you face. Ratings here use Glicko-2, a modern successor to Elo that tracks both your playing strength and the system's confidence in that estimate, so new players converge quickly to their true level instead of spending fifty games being stepping stones. Matchmaking pairs you against opponents of comparable rating, and ranked results feed back into it after every game.
The result: when you win, you outplayed a peer. When you lose, there's something real to learn, usually in the strategy guides.
What Fair Dice Actually Feel Like
Here's the uncomfortable truth: genuinely random dice feel streakier than most people expect. Real randomness produces four doubles in a row, entry dances against a one-point board, and last-roll miracles, at exactly the frequencies probability predicts. A 17/36 shot missing twice in a row happens more than a quarter of the time. Memory keeps the outrages and discards the routine, which is why every experienced online player has a "rigged dice" story and no statistical audit has ever backed one up here.
If you want to calibrate your instincts, the probability basics guide lays out the real numbers, 36 combinations, hitting odds at every distance, entry chances from the bar. Knowing that any specific number shows up 11 times in 36 turns "impossible luck" into "Tuesday".
Want the deeper technical version, generator classes, how the commit-reveal proof works, and the psychology of "rigged" streaks? The blog has it: how server-side RNG actually works.
Our Commitment
- Server-generated, provably fair dice: never rolled on a device, never adjusted for any player or situation, and derived from inputs both sides commit to before the first roll, so every die re-derives from the published record once the game ends and the app can confirm the match was yours.
- Rule enforcement at the source: every move validated by the server; modified clients gain nothing.
- Continuous board verification: hash-checked on every update, self-healing on any mismatch.
- Skill-based pairing: Glicko-2 ratings and rating-based matchmaking.
Fair dice mean the only edge left at the table is skill, and skill is learnable. Start with the rules, sharpen it with strategy, and test it live: the table below is free, in your browser, no install needed.