In dice mode the SeedSigner turns 50 rolls into 12 words or 99 rolls into 24 words. The math is openly documented: SHA-256 over the string of digits, then the BIP39 word list. If you don't want to take the device's word for it, do the math yourself once. That is exactly what this page does – no server, no connection, no third-party code. Everything lives in this one file.
Entropy (SHA-256 of the digits, hex):
Compare word by word with the device. All words identical = the device computed correctly. A mismatch almost always means a typo between your sheet and the device – check the digits, repeat the run. Then hit "Clear everything" and close the window.
src/seedsigner/helpers/mnemonic_generation.py): the digits are taken as text and hashed with SHA-256. 99 rolls give 32 bytes = 256 bits = 24 words; for 50 rolls only the first 16 bytes = 128 bits = 12 words are used.2f5eed53…24dbda, identical to bip39_english.txt in the workshop pack).docs/dice_verification.md) are computed. The self-test only turns green if both match.A verification tool is an attack surface too. If you are serious, cross-check with a second, independent code base:
verify_dice_seed.py (Python standard library only, plus bip39_english.txt), run without arguments so it prompts for the digits. Works on Tails without network. The wrapper dice-check.sh checks both files against SHA256SUMS first.bip39-standalone.html, opened offline): "Show entropy details" → actively click entropy type "Base 10", set "Mnemonic Length" to "24 Words" (or "12 Words"), then paste the digits. If the default "Use Raw Entropy" stays selected, nothing is hashed and the words differ. Never use the "Dice" mode – it turns every 6 into a 0 and produces different words while everything looks fine.
This file cannot contain its own hash. Instead, compare the SHA-256 of your downloaded file with the value on the download page or in the book:
Linux/macOS sha256sum dice-check.html, Windows PowerShell Get-FileHash dice-check.html (output is upper-case, case does not matter).
If the value differs, discard the file and download it again. If you can read code: right-click → View page source. The whole code is in the <script> block at the end, about 200 lines – roughly 70 of them for the actual computation (SHA-256 and word derivation), the rest is interface.
Proves: the device derived the standard-compliant BIP39 words from your rolls, without weakening the entropy or secretly using something else. Does not prove: whether your dice are fair, whether you made a typo while entering the rolls on the device (the comparison will find it, but only afterwards), or whether your backup is readable. That is what the word quiz on the device and the restore drill are for.