Support
Backgammon True Dice
Write to ivy.barlow9617@gmail.com and describe what happened. If it is about a particular game, open Verify in the app, tap Copy everything and paste the result into your message — it contains the seed and the full roll journal, which is enough to reproduce that game exactly.
How the dice work
Before your first move the app generates a random 32-byte seed and shows you its SHA-256 fingerprint on the board. Every roll of the game is derived from that seed, so the entire sequence is fixed before you make a single decision. When the game ends, the seed is revealed and the app replays the rolls in front of you.
Roll number n is the first byte of HMAC-SHA256(key, "roll:<n>:<k>"),
starting with k = 0. Bytes from 252 to 255 are discarded and k is increased,
because 256 is not a multiple of 36 and folding those bytes in would make four outcomes more likely
than the rest. The accepted byte b gives v = b mod 36, and the dice are
v / 6 + 1 and v mod 6 + 1. The key is the seed itself, or, if you set your own
seed in Settings, the seed XOR HMAC-SHA256(seed, your text).
The opponent receives only the board and the roll that has already happened. It has no access to the seed and no way to look ahead.
Common questions
I got four doubles in a row. Are the dice really fair?
Two things are worth separating. First, who moves first is decided by one die each, and equal dice are re-rolled — those re-rolls are ties by definition, and the app marks them “who starts” in the journal. Second, genuine runs happen: four doubles in a row occurs roughly once every 1,900 rolls, which is about once in thirty games. If you suspect otherwise, finish the game and check it: the seed was committed before your first move, so it could not have been chosen to suit the position.
Can I check the dice with my own tools?
Yes — that is the point. Verify → Copy everything gives you the fingerprint, the seed and every roll. The algorithm above is complete: any language with an HMAC-SHA256 implementation reproduces the sequence.
Why can't I move the checker I want?
Both games require you to use as many dice as legally possible, and when only one number can be played, it has to be the higher one. In long nardy only one checker may leave the head per turn. The app highlights every move that leads to a legal turn, so if a checker is not offered, no legal turn uses it that way.
Does the app work offline?
Always. There is no networking code in it at all.