How SeedSigner turns dice rolls into a seed phrase

Interactive walkthrough of the algorithm used by SeedSigner for 50 dice rolls → 12-word BIP-39 mnemonic. Everything runs locally in your browser.

This page is for education and verification of the algorithm only.

1 Roll a 6-sided dice 50 times

Official example is pre-filled. Change any value — everything below updates live.

2 Concatenate the 50 roll values into 1 string

Length: 0 / 50

3 (SHA-256) Hash the string

SeedSigner hashes the string as UTF-8 text.

Input mode: TEXT · SHA-256( UTF-8 bytes of the digit string )
Same as: hashlib.sha256(roll_data.encode()).digest()
Full 32-byte digest

4 Truncate for entropy

Keep only the first 16 bytes of the hash from Step 3. These raw bytes are the entropy.

entropy (hex)

5 Convert the entropy hex to binary

The 16 entropy bytes from Step 4, shown in hex and binary.

entropy (binary)

6 Calculate the checksum

Hash the 16 raw entropy bytes (not the hex text) and keep only the first 4 bits of that hash.

Input mode: RAW BYTES · SHA-256( 16 entropy bytes )not the hex string as text
Same as: hashlib.sha256(bytes.fromhex(entropy_hex)).digest()
1. Input = the same 16 raw entropy bytes (hex shown for reading only)
2. SHA-256 of those raw bytes → full 32-byte digest
3. Take only the first byte of that digest
4. Keep only the top 4 bits of that first byte

7 Append the checksum to the entropy binary

128 entropy bits + 4 checksum bits. Checksum bits highlighted in pink.

8 Partition into 12 groups

Each group will become a word in the seed phrase.

9 Convert the binary to decimal

Each 11-bit group is an integer from 0 to 2047 since 2^11 = 2048.

10 Lookup the words from the BIP-39 wordlist

Each integer is the (0-based) index for the standard 2048-word English list (0 = abandon … 2047 = zoo).

11 Final 12-word mnemonic

This page is for education and verification of the algorithm only.