Hi optout,
Thank you, this was very useful feedback and it prompted a concrete audit/update pass on the reference repository.
A few points are now documented or enforced more explicitly:
- Existing non-English BIP39 wordlists
The draft now makes the relationship to existing non-English BIP39 wordlists clearer.
BIP39 already includes non-English wordlists, but those lists are independent canonical BIP39 lists, not translations of the English list. Existing backups created with those lists remain valid and should be supported by wallets that choose to support them.
This proposal does not reuse those legacy non-English BIP39 lists as display lists. It defines separate display/input lists that map deterministically by index back to canonical English BIP39.
- Manual recovery path
I added clearer documentation for the manual recovery path:
localized display word → word index → English BIP39 word at the same index → canonical English BIP39 mnemonic → standard BIP39 recovery
This is one of the main advantages of the approach. A user is not locked into a specific wallet implementation. With the localized display list and the English BIP39 list, the backup can be converted back to the canonical English phrase manually, and then restored in a standard English BIP39-compatible wallet, assuming the same derivation path and any BIP39 passphrase settings.
- Checksum preservation
The draft now states explicitly that checksum validity is preserved because the index sequence is preserved.
The display phrase resolves to the same BIP39 indexes as the English mnemonic. Therefore the entropy and checksum bits are unchanged. The display layer does not recompute, relax, or replace the BIP39 checksum.
- Prefix statistics
A new deterministic prefix statistics report was added for the display wordlists.
It reports, per language:
-
most common 2-character prefixes
-
most common 3-character prefixes
-
most common 4-character prefixes
-
whether 4-character uniqueness holds
-
largest prefix collision group
The result confirms that 4-character uniqueness should not be assumed generally. It holds only for Korean in the current set. Wallets should therefore use full-word matching as the safe fallback.
- Normalization and diacritics
I also added a normalization collision check to the validator.
The important result is that there are zero NFKD collisions across all display wordlists. Since BIP39 uses NFKD at the derivation boundary, this is now enforced as a hard validation error so it cannot regress.
There are, however, collisions under lossy wallet-side input handling such as accent stripping or case folding. For example, some languages can produce ambiguity if a wallet accepts user input without diacritics.
The documentation now says that if normalization or forgiving input creates ambiguity, the wallet must reject the token and ask the user to disambiguate. It must never silently choose one word.
- Legacy non-English BIP39 export
I added an interoperability recommendation that wallets implementing this display/input convention should prefer canonical English BIP39, or this reversible display path, for new backups rather than creating new legacy non-English BIP39 backups.
This does not deprecate existing non-English BIP39 backups and does not affect wallets that already created them. It is only a recommendation for new wallet export/display behavior, to improve portability.
- BIP direction
I agree with your point that if the goal is interoperable support across more than one wallet, this should be formalized as a BIP.
The updated draft keeps English BIP39 as the seed of record and the only PBKDF2 input. The display wordlists are fixed, deterministic mappings to the English BIP39 indexes.
The latest update added:
-
docs/prefix-statistics.md
-
validation/prefix_stats.py
-
normalization collision validation in CI
-
clearer manual recovery wording
-
clearer checksum wording
-
clearer interoperability guidance around legacy non-English BIP39 exports
No wordlist or mapping bytes were changed.
Thanks again. This was very helpful feedback and made the draft more precise.
Best, Daniel