<p>To create a 128 bits BIP39 mnemonic phrase, you need to:</p>
<ol>
<li><p>generate the entropy<br />
Let's take for example <strong>ae0d36b7fcfb6cfe599366ecd9411b62</strong> which is the hexadecimal representation of 128 bits of entropy.</p>
</li>
<li><p>calculate the checksum by hashing the entropy and keeping the first 4bits (1 bit for 32 bits of entropy (128/32 = 4))</p>
<p>hash(entropy) = 9214b8501502213b6e1d67f4bed6dd216596c553f0a0618bbd63c1cc3d7db51e</p>
</li>
</ol>
<p>Now let's keep the first 4bits which is '<strong>9</strong>' (<strong>1001</strong> in binary)</p>
<ol start="3">
<li>append the checksum to the entropy:<br />
<strong>ae0d36b7fcfb6cfe599366ecd9411b629</strong>
which gives us in binary:</li>
</ol>
<p><strong>10101110000 01101001101 10101101111 11111001111 10110110110 01111111001
01100110010 01101100110 11101100110 11001010000 01000110110 11000101001</strong></p>
<p>(The binary string is split into groups of 11 bits (2^11 = 2048 and there are 2048 words in the <a href="https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt" rel="nofollow noreferrer">BIP39 Wordlist</a>))</p>
<ol start="4">
<li>convert each group of 11 bits to its corresponding word in the <a href="https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt" rel="nofollow noreferrer">BIP39 Wordlist</a></li>
</ol>
<p>For example, the first group: <strong>10101110000</strong> is the 1392th word on the list.
(starting from 0) =&gt; The word is 'puppy'</p>
<p>(10101110000 being the binary representation of 1392)</p>

CC BY-SA 4.0
2023-09-17T01:21:18.817Z
2023-09-17T01:21:18.817Z
leslie
<p>The last word is a checksum, i.e. it is computed based on the 11 previous words.</p>
<p>So you can't just pick any random 12 words. You can pick 11 random words and compute the last one -- although I don't know if there is an easy resource that would help you do that.</p>
<p>In any case, you really shouldn't do this with real money ever.</p>

CC BY-SA 4.0
2023-09-16T19:57:52.453Z
2023-09-16T19:57:52.453Z
fiatjaf
<p>I tried to create wallet by mnemonic seed, <a href="https://learnmeabitcoin.com/technical/mnemonic" rel="nofollow noreferrer">this link</a> explains how to do it.</p>
<p>I've created this sample:</p>
<blockquote>
<p>use yellow direct rib grass uncle cinnamon country furnace endless book denial</p>
</blockquote>
<p>Rules I followed:</p>
<ol>
<li>The words are separated by a single space.</li>
<li>The words are all in lowercase.</li>
<li>The words are included in this <a href="https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt" rel="nofollow noreferrer">word list</a></li>
</ol>
<p>But <a href="https://iancoleman.io/bip39/" rel="nofollow noreferrer">https://iancoleman.io/bip39/</a> tells me it is an invalid mnemonic.</p>

<mnemonic-seed>
12 word seed invalid
ioxoi
# 12 word seed invalid

(Asked by: username_0 on 2023-09-16)

I tried to create wallet by mnemonic seed, [this link](https://learnmeabitcoin.com/technical/mnemonic) explains how to do it.

I've created this sample:

> use yellow direct rib grass uncle cinnamon country furnace endless book denial

Rules I followed:

1. The words are separated by a single space.
2. The words are all in lowercase.
3. The words are included in this [word list](https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt)

But <https://iancoleman.io/bip39/> tells me it is an invalid mnemonic.

**Tags:** mnemonic-seed


---

## 2 answers

### Answer by username_1 on 2023-09-17. Score: 0 | Accepted answer

To create a 128 bits BIP39 mnemonic phrase, you need to:

1. generate the entropy  
   Let's take for example **ae0d36b7fcfb6cfe599366ecd9411b62** which is the hexadecimal representation of 128 bits of entropy.
2. calculate the checksum by hashing the entropy and keeping the first 4bits (1 bit for 32 bits of entropy (128/32 = 4))

   hash(entropy) = 9214b8501502213b6e1d67f4bed6dd216596c553f0a0618bbd63c1cc3d7db51e

Now let's keep the first 4bits which is '**9**' (**1001** in binary)

3. append the checksum to the entropy:  
   **ae0d36b7fcfb6cfe599366ecd9411b629**
   which gives us in binary:

**10101110000 01101001101 10101101111 11111001111 10110110110 01111111001
01100110010 01101100110 11101100110 11001010000 01000110110 11000101001**

(The binary string is split into groups of 11 bits (2^11 = 2048 and there are 2048 words in the [BIP39 Wordlist](https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt)))

4. convert each group of 11 bits to its corresponding word in the [BIP39 Wordlist](https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt)

For example, the first group: **10101110000** is the 1392th word on the list.
(starting from 0) => The word is 'puppy'

(10101110000 being the binary representation of 1392)


---

### Answer by username_2 on 2023-09-16. Score: 1

The last word is a checksum, i.e. it is computed based on the 11 previous words.

So you can't just pick any random 12 words. You can pick 11 random words and compute the last one -- although I don't know if there is an easy resource that would help you do that.

In any case, you really shouldn't do this with real money ever.


---

