entropy = SHA-256( utf8(systemSalt) ++ utf8(userSalt) ++ hexBytes(blockhashes) )[0 : ENT_bits/8] checksum = SHA-256(entropy)[0 : ENT/32 bits] # 4 / 5 / 6 / 8 bits bits = bin(entropy) ++ bin(checksum) # 132 / 165 / 198 / 264 bits mnemonic = [ WORDLIST[bits[i:i+11]] for i in 0,11,22,... ]
Nano (XNO) is a feeless, eco-friendly cryptocurrency with a unique block-lattice architecture. It is perfectly suited as a live entropy source for this tool:
In July 2026 a single hidden firmware bug in a famous hardware wallet silently replaced its hardware TRNG with a non-cryptographic PRNG for years. On July 30, 2026 an attacker recreated the weak seeds offline and drained about 594 BTC (~ $38M) from vulnerable wallets.
1. What is a BIP39 mnemonic seed phrase?
BIP39 is the standard used by Nano, Bitcoin and many other cryptos to represent a private key as a list of human-readable words (12 / 15 / 18 / 24). The words come from a fixed dictionary of 2048 entries, so the phrase can be written down and retyped safely.
2. Where does the randomness come from?
Three sources are combined and SHA-256 hashed:
- System salt – a secure random 128-bit value generated by your browser's
crypto.getRandomValues()on page load. Auto-generated, readonly, and you can click any time. - User salt – optional text you type yourself. Leave empty unless you want a second, personal layer.
- Live Nano blockhashes – fetched from
api.nanexplorer.com/last-blocksevery 3 seconds. The last 16 hashes are concatenated.
Result: entropy = SHA-256( systemSalt + userSalt + blockhashes )[0 : ENT/8]
3. Why mix blockhash with two salts?
Blockhashes are public. A blockhash alone is not a private secret. The system salt is auto-generated by your browser (so nobody can calculate it in advance), and the user salt adds a second layer that you control — if an attacker knew the blockhash(es) and guessed one of the salts, they still have to guess the other. On the Nano network, both salts stay local, never uploaded.
4. Is this tool safe? Where is my seed stored?
Everything runs 100% client-side in your browser. No seed, salt or entropy is ever sent to any server. The only network call is to the public Nano explorer API to read live blockhashes. Still, before holding real funds, consider using a trusted offline/air-gapped device to sign transactions.
5. Why do 12 / 15 / 18 / 24 word options exist?
BIP39 requires the entropy length to be a multiple of 32 bits. The supported lengths are:
- 12 words → 128 bits entropy + 4-bit checksum
- 15 words → 160 bits entropy + 5-bit checksum
- 18 words → 192 bits entropy + 6-bit checksum
- 24 words → 256 bits entropy + 8-bit checksum
6. Can I reuse a salt later?
The salt is part of your entropy. If you regenerate the same salt (e.g. by saving it) combined with the same blockhash, you'd get the same seed. In practice the blockhash changes every few seconds, so each run is unique. If you want to back up a seed, use Download instead.
7. What happens if the API is down?
The badge switches to API Off, the blockhash buffer stays as-is and the seed will not regenerate until the connection recovers (auto-retry on every poll). You can keep editing the salt to regenerate the seed from the existing buffer.
- Write down your seed phrase on paper and store it offline. Never store it in cloud notes or screenshots.
- Never share the seed or the salts (system + user) with anyone. Anyone with both salts + the matching blockhash window can fully recover your wallet.
- For significant funds, prefer using an offline/air-gapped device and verify the seed derivation there before trusting any on-screen values.
- This tool is open and client-side — you can save the page and run it offline after the first load.