From f84880db87676d268eacd65c3a74ebb09187cf87 Mon Sep 17 00:00:00 2001 From: Ferdinando Ametrano Date: Wed, 5 Aug 2026 23:55:29 +0200 Subject: [PATCH] BIP-39: say what separates two words The BIP never says it. The rule is on the wordlist page, which requires the ideographic space for Japanese, and it is not quoted here; the note there also holds a caveat that ASCII and ideographic spaces are the same "as long as your code ... [does not try] to split the phrase input by the user". The reference implementation's to_entropy() does split it, on U+0020 and with no prior normalization, and so cannot read back the Japanese sentences to_mnemonic() writes; check() and to_seed() normalize first and are unaffected. No test vector changes. --- bip-0039.mediawiki | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/bip-0039.mediawiki b/bip-0039.mediawiki index 2a6118b26a..4301b6c458 100644 --- a/bip-0039.mediawiki +++ b/bip-0039.mediawiki @@ -48,6 +48,13 @@ are split into groups of 11 bits, each encoding a number from 0-2047, serving as an index into a wordlist. Finally, we convert these numbers into words and use the joined words as a mnemonic sentence. +Words are joined using a single space character (U+0020), except in Japanese, +where the ideographic space (U+3000) is used; see +[[bip-0039/bip-0039-wordlists.md|Wordlists (Special Considerations)]]. A sentence +is split back into words after NFKD normalization, which maps U+3000 to U+0020; +splitting on U+0020 before normalization reads a Japanese sentence as a single +word. + The following table describes the relation between the initial entropy length (ENT), the checksum length (CS), and the length of the generated mnemonic sentence (MS) in words.