]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/blame - src/index.html
Show the checksum value in the entropy details
[perso/Immae/Projets/Cryptomonnaies/BIP39.git] / src / index.html
CommitLineData
ebd8d4e8
IC
1<!DOCTYPE html>
2<html>
3 <head lang="en">
4 <meta charset="utf-8" />
5 <title>BIP39 - Mnemonic Code</title>
9a54f27e 6 <link rel="stylesheet" href="css/bootstrap-3.3.7.css">
f2de7aa7 7 <link rel="stylesheet" href="css/app.css">
ebd8d4e8
IC
8 <meta content="Mnemonic code for generating deterministic keys" name="description"/>
9 <meta content="width=device-width, initial-scale=1.0" name="viewport" />
10 <meta content="bitcoin mnemonic converter" name="description" />
b630f83d 11 <meta content="Ian Coleman" name="author" />
18f16009 12 <link type="image/x-icon" rel="icon" href="data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAAF0lEQVRIx2NgGAWjYBSMglEwCkbBSAcACBAAAeaR9cIAAAAASUVORK5CYII=" />
ebd8d4e8
IC
13 </head>
14 <body>
15 <div class="container">
16
17 <h1 class="text-center">Mnemonic Code Converter</h1>
fcc7d121 18 <p class="version">v0.3.3</p>
ebd8d4e8
IC
19 <hr>
20 <div class="row">
21 <div class="col-md-12">
d4779799 22 <h2>Mnemonic</h2>
ebd8d4e8 23 <form class="form-horizontal" role="form">
ebd8d4e8 24 <div class="form-group">
c6624d51
IC
25 <div class="col-sm-2"></div>
26 <div class="col-sm-10">
fb00a22d
IC
27 <p>You can enter an existing BIP39 mnemonic, or generate a new random one. Typing your own twelve words will probably not work how you expect, since the words require a particular structure (the last word is a checksum).</p>
28 <p>
60599f7a
IC
29 For more info see the
30 <a href="https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki" target="_blank">BIP39 spec</a>.
31 </p>
c6624d51
IC
32 </div>
33 </div>
34 <div class="form-group generate-container">
b0818b31 35 <label class="col-sm-2 control-label"></label>
ebd8d4e8 36 <div class="col-sm-10">
b0818b31
IC
37 <div class="form-inline">
38 <div class="input-group-inline">
fb00a22d 39 <span>Generate a random mnemonic, or enter your own below</span>:
b0818b31 40 <button class="btn generate">Generate</button>
b0818b31
IC
41 <select id="strength" class="strength form-control">
42 <option value="3">3</option>
43 <option value="6">6</option>
44 <option value="9">9</option>
45 <option value="12">12</option>
46 <option value="15" selected>15</option>
47 <option value="18">18</option>
48 <option value="21">21</option>
49 <option value="24">24</option>
50 </select>
fb00a22d 51 <span>words</span>
b0818b31
IC
52 </div>
53 </div>
ebd8d4e8 54 </div>
7c31e3cd 55 </div>
c6624d51 56 <div class="entropy-container hidden">
0a84fe6a 57 <div class="form-group text-danger">
fb00a22d 58 <label class="col-sm-2 control-label">Warning</label>
0a84fe6a 59 <div class="col-sm-10 form-control-static">
fb00a22d
IC
60 <span>Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.</span>
61 <a href="#entropy-notes">Read more</a>
439f0e25 62 </div>
1cf1bbaf 63 </div>
0a84fe6a 64 <div class="form-group">
fb00a22d 65 <label for="entropy" class="col-sm-2 control-label">Entropy</label>
0a84fe6a 66 <div class="col-sm-7">
fb00a22d 67 <textarea id="entropy" rows="2" class="entropy form-control" placeholder="Accepts either binary, base 6, 6-sided dice, base 10, hexadecimal or cards"></textarea>
ee0981f1
IC
68 <div class="row filter-warning text-danger hidden">
69 <p class="col-sm-12">
70 <strong>
71 Some characters have been discarded
72 </strong>
73 </p>
74 </div>
a3a61b68 75 <div class="row">
fb00a22d 76 <label class="col-sm-3 control-label"><span class="more-info" title="Based on estimates from zxcvbn using Filtered Entropy">Time To Crack</span></label>
20f459ce 77 <div class="crack-time col-sm-3 form-control-static"></div>
fb00a22d 78 <label class="col-sm-3 control-label">Event Count</label>
a3a61b68
IC
79 <div class="event-count col-sm-3 form-control-static"></div>
80 </div>
81 <div class="row">
fb00a22d 82 <label class="col-sm-3 control-label">Entropy Type</label>
a3a61b68 83 <div class="type col-sm-3 form-control-static"></div>
fb00a22d 84 <label class="col-sm-3 control-label">Bits Per Event</label>
a3a61b68
IC
85 <div class="bits-per-event col-sm-3 form-control-static"></div>
86 </div>
87 <div class="row">
fb00a22d 88 <label class="col-sm-3 control-label">Raw Entropy Words</label>
a3a61b68 89 <div class="word-count col-sm-3 form-control-static"></div>
fb00a22d 90 <label class="col-sm-3 control-label"><span class="more-info" title="Total bits of entropy may be less than indicated if any entropy event uses a weak source.">Total Bits</span></label>
a3a61b68
IC
91 <div class="bits col-sm-3 form-control-static"></div>
92 </div>
fb00a22d 93 <label class="col-sm-3 control-label">Filtered Entropy</label>
0a84fe6a 94 <div class="filtered col-sm-9 form-control-static"></div>
fb00a22d 95 <label class="col-sm-3 control-label">Raw Binary</label>
0a84fe6a 96 <div class="binary col-sm-9 form-control-static"></div>
09d63290
IC
97 <label class="col-sm-3 control-label">Binary Checksum</label>
98 <div class="checksum col-sm-9 form-control-static">&nbsp;</div>
74ab4cbe
IC
99 <label class="col-sm-3 control-label">Word Indexes</label>
100 <div class="word-indexes col-sm-9 form-control-static">&nbsp;</div>
fb00a22d 101 <label class="col-sm-3 control-label">Mnemonic Length</label>
0a84fe6a 102 <div class="col-sm-9">
1cf1bbaf 103 <select class="mnemonic-length form-control">
fb00a22d
IC
104 <option value="raw" selected>Use Raw Entropy (3 words per 32 bits)</option>
105 <option value="12">12 <span>Words</span></option>
106 <option value="15">15 <span>Words</option>
107 <option value="18">18 <span>Words</span></option>
108 <option value="21">21 <span>Words</span></option>
109 <option value="24">24 <span>Words</span></option>
1cf1bbaf 110 </select>
c6624d51 111 </div>
1cf1bbaf 112 </div>
0a84fe6a 113 <div class="col-sm-3">
fb00a22d 114 <p>Valid entropy values include:</p>
0a84fe6a 115 <ul>
fb00a22d
IC
116 <li><strong>Binary</strong> [0-1]<br>101010011</li>
117 <li><strong>Base 6</strong> [0-5]<br>123434014</li>
118 <li><strong>Dice</strong> [1-6]<br>62535634</li>
119 <li><strong>Base 10</strong> [0-9]<br>90834528</li>
120 <li><strong>Hex</strong> [0-9A-F]<br>4187a8bfd9</li>
121 <li><strong>Card</strong> [A2-9TJQK][CDHS]<br>ahqs9dtc</li>
0a84fe6a
IC
122 </ul>
123 </div>
c6624d51
IC
124 </div>
125 </div>
126 <div class="form-group">
127 <div class="col-sm-2"></div>
128 <div class="col-sm-10 checkbox">
129 <label>
130 <input type="checkbox" class="use-entropy">
74ab4cbe 131 <span>Show entropy details</span>
c6624d51
IC
132 </label>
133 </div>
134 </div>
135 <div class="form-group">
fb00a22d 136 <label class="col-sm-2 control-label">Mnemonic Language</label>
7c31e3cd 137 <div class="col-sm-10 languages">
60599f7a
IC
138 <div class="form-control no-border">
139 <a href="#english">English</a>
140 <a href="#japanese" title="Japanese">日本語</a>
141 <a href="#spanish" title="Spanish">Español</a>
142 <a href="#chinese_simplified" title="Chinese (Simplified)">中文(简体)</a>
143 <a href="#chinese_traditional" title="Chinese (Traditional)">中文(繁體)</a>
144 <a href="#french" title="French">Français</a>
145 <a href="#italian" title="Italian">Italiano</a>
146 </div>
7c31e3cd 147 </div>
ebd8d4e8
IC
148 </div>
149 <div class="form-group">
fb00a22d 150 <label for="phrase" class="col-sm-2 control-label">BIP39 Mnemonic</label>
ebd8d4e8 151 <div class="col-sm-10">
e00964cc 152 <textarea id="phrase" class="phrase form-control" data-show-qr></textarea>
ebd8d4e8
IC
153 </div>
154 </div>
1abcc511 155 <div class="form-group">
fb00a22d 156 <label for="passphrase" class="col-sm-2 control-label">BIP39 Passphrase (optional)</label>
1abcc511
PR
157 <div class="col-sm-10">
158 <textarea id="passphrase" class="passphrase form-control"></textarea>
159 </div>
160 </div>
3e0ed16a 161 <div class="form-group">
fb00a22d 162 <label for="seed" class="col-sm-2 control-label">BIP39 Seed</label>
3e0ed16a 163 <div class="col-sm-10">
e00964cc 164 <textarea id="seed" class="seed form-control" readonly="readonly" data-show-qr></textarea>
3e0ed16a
KK
165 </div>
166 </div>
4d457a38 167 <div class="form-group">
fb00a22d 168 <label for="network-phrase" class="col-sm-2 control-label">Coin</label>
4d457a38
IC
169 <div class="col-sm-10">
170 <select id="network-phrase" class="network form-control">
7f15cb6e 171 <!-- populated by javascript -->
4d457a38
IC
172 </select>
173 </div>
174 </div>
ebd8d4e8 175 <div class="form-group">
fb00a22d 176 <label for="root-key" class="col-sm-2 control-label">BIP32 Root Key</label>
ebd8d4e8 177 <div class="col-sm-10">
e00964cc 178 <textarea id="root-key" class="root-key form-control" data-show-qr></textarea>
ebd8d4e8
IC
179 </div>
180 </div>
3abab9b0 181 <div class="form-group litecoin-ltub-container hidden">
fb00a22d 182 <label for="litecoin-use-ltub" class="col-sm-2 control-label">Prefixes</label>
3abab9b0
IC
183 <div class="col-sm-10 checkbox">
184 <label>
1c2b8c6b 185 <input type="checkbox" id="litecoin-use-ltub" class="litecoin-use-ltub" checked="checked">
3abab9b0
IC
186 Use <code>Ltpv / Ltub</code> instead of <code>xprv / xpub</code>
187 </label>
188 </div>
189 </div>
ebd8d4e8
IC
190 </form>
191 </div>
192 </div>
193
194 <hr>
195
196 <div class="row">
197 <div class="col-md-12">
198 <h2>Derivation Path</h2>
199 <ul class="derivation-type nav nav-tabs" role="tablist">
3b40653f 200 <li id="bip32-tab">
23d4a0f1
IC
201 <a href="#bip32" role="tab" data-toggle="tab">BIP32</a>
202 </li>
33b3dd47
IC
203 <li id="bip44-tab" class="active">
204 <a href="#bip44" role="tab" data-toggle="tab">BIP44</a>
205 </li>
6c08f364
IC
206 <li id="bip49-tab">
207 <a href="#bip49" role="tab" data-toggle="tab">BIP49</a>
208 </li>
4e9b492c
IC
209 <li id="bip84-tab">
210 <a href="#bip84" role="tab" data-toggle="tab">BIP84</a>
211 </li>
c49e8812
IC
212 <li id="bip141-tab">
213 <a href="#bip141" role="tab" data-toggle="tab">BIP141</a>
214 </li>
ebd8d4e8
IC
215 </ul>
216 <div class="derivation-type tab-content">
55a9e51a 217 <div id="bip44" class="tab-pane active">
ebd8d4e8
IC
218 <form class="form-horizontal" role="form">
219 <br>
220 <div class="col-sm-2"></div>
221 <div class="col-sm-10">
fb00a22d 222 <p>
60599f7a
IC
223 For more info see the
224 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target="_blank">BIP44 spec</a>.
225 </p>
ebd8d4e8
IC
226 </div>
227 <div class="form-group">
228 <label for="purpose" class="col-sm-2 control-label">
fb00a22d 229 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target="_blank">Purpose</a>
ebd8d4e8
IC
230 </label>
231 <div class="col-sm-10">
684624b5 232 <input id="purpose" type="text" class="purpose form-control" value="44" readonly>
ebd8d4e8
IC
233 </div>
234 </div>
235 <div class="form-group">
236 <label for="coin" class="col-sm-2 control-label">
fb00a22d 237 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target="_blank">Coin</a>
ebd8d4e8
IC
238 </label>
239 <div class="col-sm-10">
684624b5 240 <input id="coin" type="text" class="coin form-control" value="0" readonly>
ebd8d4e8
IC
241 </div>
242 </div>
243 <div class="form-group">
244 <label for="account" class="col-sm-2 control-label">
fb00a22d 245 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target="_blank">Account</a>
ebd8d4e8
IC
246 </label>
247 <div class="col-sm-10">
248 <input id="account" type="text" class="account form-control" value="0">
249 </div>
250 </div>
251 <div class="form-group">
252 <label for="change" class="col-sm-2 control-label">
fb00a22d 253 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target="_blank">External / Internal</a>
ebd8d4e8
IC
254 </label>
255 <div class="col-sm-10">
256 <input id="change" type="text" class="change form-control" value="0">
257 </div>
258 </div>
c554e6ff
IC
259 <div class="form-group">
260 <label class="col-sm-2 control-label">
261 </label>
262 <div class="col-sm-10">
fb00a22d 263 <p>The account extended keys can be used for importing to most BIP44 compatible wallets, such as mycelium or electrum.</p>
c554e6ff
IC
264 </div>
265 </div>
266 <div class="form-group">
267 <label for="account-xprv" class="col-sm-2 control-label">
fb00a22d 268 <span>Account Extended Private Key</span>
c554e6ff
IC
269 </label>
270 <div class="col-sm-10">
271 <textarea id="account-xprv" type="text" class="account-xprv form-control" readonly data-show-qr></textarea>
272 </div>
273 </div>
274 <div class="form-group">
275 <label for="account-xpub" class="col-sm-2 control-label">
fb00a22d 276 <span>Account Extended Public Key</span>
c554e6ff
IC
277 </label>
278 <div class="col-sm-10">
279 <textarea id="account-xpub" type="text" class="account-xpub form-control" readonly data-show-qr></textarea>
280 </div>
281 </div>
282 <div class="form-group">
283 <label class="col-sm-2 control-label">
284 </label>
285 <div class="col-sm-10">
fb00a22d 286 <p>The BIP32 derivation path and extended keys are the basis for the derived addresses.</p>
c554e6ff
IC
287 </div>
288 </div>
ebd8d4e8 289 <div class="form-group">
fb00a22d 290 <label for="bip44-path" class="col-sm-2 control-label">BIP32 Derivation Path</label>
ebd8d4e8 291 <div class="col-sm-10">
d198865f 292 <input id="bip44-path" type="text" class="path form-control" value="m/44'/0'/0'/0" readonly="readonly">
ebd8d4e8
IC
293 </div>
294 </div>
295 </form>
296 </div>
297 <div id="bip32" class="tab-pane">
298 <form class="form-horizontal" role="form">
299 <br>
300 <div class="col-sm-2"></div>
301 <div class="col-sm-10">
fb00a22d 302 <p>
60599f7a
IC
303 For more info see the
304 <a href="https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target="_blank">BIP32 spec</a>
305 </p>
ebd8d4e8 306 </div>
a2e3e819 307 <div class="form-group">
fb00a22d 308 <label for="bip32-client" class="col-sm-2 control-label">Client</label>
a2e3e819 309 <div class="col-sm-10">
29bf60f5
IC
310 <select id="bip32-client" class="client form-control">
311 <option value="custom">Custom derivation path</option>
a2e3e819
IC
312 <!-- populated by javascript -->
313 </select>
314 </div>
315 </div>
ebd8d4e8 316 <div class="form-group">
fb00a22d 317 <label for="bip32-path" class="col-sm-2 control-label">BIP32 Derivation Path</label>
ebd8d4e8
IC
318 <div class="col-sm-10">
319 <input id="bip32-path" type="text" class="path form-control" value="m/0">
320 </div>
321 </div>
146e089e
IC
322 <div class="form-group">
323 <div class="col-sm-2"></div>
324 <label class="col-sm-10">
325 <input class="hardened-addresses" type="checkbox">
fb00a22d 326 <span>Use hardened addresses</span>
146e089e
IC
327 </label>
328 </div>
8786746b 329 <div class="form-group">
fb00a22d 330 <label for="core-path" class="col-sm-2 control-label">Bitcoin Core</label>
8786746b 331 <div class="col-sm-10">
fb00a22d 332 <p class="form-control no-border">
8786746b 333 Use path <code>m/0'/0'</code> with hardened addresses.
ea12c8a9 334 </p>
fb00a22d 335 <p class="form-control no-border">
60599f7a
IC
336 For more info see the
337 <a href="https://github.com/bitcoin/bitcoin/pull/8035" target="_blank">Bitcoin Core BIP32 implementation</a>
8786746b
IC
338 </p>
339 </div>
340 </div>
aa51da11 341 <div class="form-group">
fb00a22d 342 <label for="core-path" class="col-sm-2 control-label">Multibit</label>
aa51da11
IC
343 <div class="col-sm-10">
344 <p class="form-control no-border">
fb00a22d 345 <span>Use path <code>m/0'/0</code>.</span>
ea12c8a9
IC
346 </p>
347 <p class="form-control no-border">
fb00a22d 348 <span>For more info see</span>
6ee4fb7d 349 <a href="https://multibit.org/" target="_blank">MultiBit HD</a>
aa51da11 350 </p>
6ee4fb7d
IC
351 </div>
352 </div>
353 <div class="form-group">
fb00a22d 354 <label class="col-sm-2 control-label">Block Explorers</label>
6ee4fb7d 355 <div class="col-sm-10">
3f363a42 356 <p class="form-control no-border">
fb00a22d
IC
357 <span>Use path <code>m/44'/0'/0'</code>.</span>
358 <span>Only enter the <code>xpub</code> extended key into block explorer search fields, never the <code>xprv</code> key.</span>
3f363a42
AG
359 </p>
360 <p class="form-control no-border">
fb00a22d 361 <span>Can be used with</span>:
6ee4fb7d 362 <a href="https://blockchain.info/" target="_blank">blockchain.info</a>
3f363a42 363 </p>
aa51da11
IC
364 </div>
365 </div>
ebd8d4e8
IC
366 </form>
367 </div>
6c08f364
IC
368 <div id="bip49" class="tab-pane">
369 <form class="form-horizontal" role="form">
370 <br>
371 <div class="unavailable hidden">
372 <div class="form-group">
373 <div class="col-sm-2"></div>
374 <div class="col-sm-10">
fb00a22d 375 <p>BIP49 is unavailable for this coin.</p>
6c08f364
IC
376 </div>
377 </div>
378 </div>
379 <div class="available">
380 <div class="col-sm-2"></div>
381 <div class="col-sm-10">
fb00a22d 382 <p>
6c08f364
IC
383 For more info see the
384 <a href="https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki" target="_blank">BIP49 spec</a>.
385 </p>
386 </div>
387 <div class="form-group">
388 <label for="purpose" class="col-sm-2 control-label">
fb00a22d 389 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target="_blank">Purpose</a>
6c08f364
IC
390 </label>
391 <div class="col-sm-10">
392 <input id="purpose" type="text" class="purpose form-control" value="49" readonly>
393 </div>
394 </div>
395 <div class="form-group">
396 <label for="coin" class="col-sm-2 control-label">
fb00a22d 397 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target="_blank">Coin</a>
6c08f364
IC
398 </label>
399 <div class="col-sm-10">
400 <input id="coin" type="text" class="coin form-control" value="0" readonly>
401 </div>
402 </div>
403 <div class="form-group">
404 <label for="account" class="col-sm-2 control-label">
fb00a22d 405 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target="_blank">Account</a>
6c08f364
IC
406 </label>
407 <div class="col-sm-10">
408 <input id="account" type="text" class="account form-control" value="0">
409 </div>
410 </div>
411 <div class="form-group">
412 <label for="change" class="col-sm-2 control-label">
fb00a22d 413 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target="_blank">External / Internal</a>
6c08f364
IC
414 </label>
415 <div class="col-sm-10">
416 <input id="change" type="text" class="change form-control" value="0">
417 </div>
418 </div>
419 <div class="form-group">
420 <label class="col-sm-2 control-label">
421 </label>
422 <div class="col-sm-10">
fb00a22d 423 <p>The account extended keys can be used for importing to most BIP49 compatible wallets.</p>
6c08f364
IC
424 </div>
425 </div>
426 <div class="form-group">
427 <label for="account-xprv" class="col-sm-2 control-label">
fb00a22d 428 <span>Account Extended Private Key</span>
6c08f364
IC
429 </label>
430 <div class="col-sm-10">
431 <textarea id="account-xprv" type="text" class="account-xprv form-control" readonly data-show-qr></textarea>
432 </div>
433 </div>
434 <div class="form-group">
435 <label for="account-xpub" class="col-sm-2 control-label">
fb00a22d 436 <span>Account Extended Public Key</span>
6c08f364
IC
437 </label>
438 <div class="col-sm-10">
439 <textarea id="account-xpub" type="text" class="account-xpub form-control" readonly data-show-qr></textarea>
440 </div>
441 </div>
442 <div class="form-group">
443 <label class="col-sm-2 control-label">
444 </label>
445 <div class="col-sm-10">
fb00a22d 446 <p>The BIP32 derivation path and extended keys are the basis for the derived addresses.</p>
6c08f364
IC
447 </div>
448 </div>
449 <div class="form-group">
fb00a22d 450 <label for="bip49-path" class="col-sm-2 control-label">BIP32 Derivation Path</label>
6c08f364
IC
451 <div class="col-sm-10">
452 <input id="bip49-path" type="text" class="path form-control" value="m/49'/0'/0'/0" readonly="readonly">
453 </div>
454 </div>
455 </div>
456 </form>
457 </div>
c49e8812
IC
458 <div id="bip141" class="tab-pane">
459 <form class="form-horizontal" role="form">
460 <br>
461 <div class="unavailable hidden">
462 <div class="form-group">
463 <div class="col-sm-2"></div>
464 <div class="col-sm-10">
465 <p>BIP141 is unavailable for this coin.</p>
466 </div>
467 </div>
468 </div>
469 <div class="available">
470 <div class="col-sm-2"></div>
471 <div class="col-sm-10">
472 <p>
473 For more info see the
474 <a href="https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki" target="_blank">BIP141 spec</a>
475 </p>
476 </div>
477 <div class="form-group">
478 <label for="bip141-path" class="col-sm-2 control-label">BIP32 Derivation Path</label>
479 <div class="col-sm-10">
480 <input id="bip141-path" type="text" class="bip141-path form-control" value="m/0">
481 </div>
482 </div>
483 <div class="form-group">
484 <label class="col-sm-2 control-label">Script Semantics</label>
485 <div class="col-sm-10">
486 <select class="form-control bip141-semantics">
487 <option value="p2wpkh">P2WPKH</option>
488 <option value="p2wpkh-p2sh" selected>P2WPKH nested in P2SH</option>
489 </select>
490 </div>
491 </div>
492 </div>
493 </form>
494 </div>
4e9b492c
IC
495 <div id="bip84" class="tab-pane">
496 <form class="form-horizontal" role="form">
497 <br>
498 <div class="col-sm-2"></div>
499 <div class="col-sm-10">
500 <p>
501 For more info see the
502 <a href="https://github.com/bitcoin/bips/blob/master/bip-0084.mediawiki" target="_blank">BIP84 spec</a>.
503 </p>
504 </div>
505 <div class="form-group">
506 <label for="purpose" class="col-sm-2 control-label">
507 Purpose
508 </label>
509 <div class="col-sm-10">
510 <input id="purpose" type="text" class="purpose form-control" value="84" readonly>
511 </div>
512 </div>
513 <div class="form-group">
514 <label for="coin" class="col-sm-2 control-label">
515 Coin
516 </label>
517 <div class="col-sm-10">
518 <input id="coin" type="text" class="coin form-control" value="0" readonly>
519 </div>
520 </div>
521 <div class="form-group">
522 <label for="account" class="col-sm-2 control-label">
523 Account
524 </label>
525 <div class="col-sm-10">
526 <input id="account" type="text" class="account form-control" value="0">
527 </div>
528 </div>
529 <div class="form-group">
530 <label for="change" class="col-sm-2 control-label">
531 External / Internal
532 </label>
533 <div class="col-sm-10">
534 <input id="change" type="text" class="change form-control" value="0">
535 </div>
536 </div>
537 <div class="form-group">
538 <label class="col-sm-2 control-label">
539 </label>
540 <div class="col-sm-10">
541 <p>The account extended keys can be used for importing to most BIP84 compatible wallets.</p>
542 </div>
543 </div>
544 <div class="form-group">
545 <label for="account-xprv" class="col-sm-2 control-label">
546 <span>Account Extended Private Key</span>
547 </label>
548 <div class="col-sm-10">
549 <textarea id="account-xprv" type="text" class="account-xprv form-control" readonly data-show-qr></textarea>
550 </div>
551 </div>
552 <div class="form-group">
553 <label for="account-xpub" class="col-sm-2 control-label">
554 <span>Account Extended Public Key</span>
555 </label>
556 <div class="col-sm-10">
557 <textarea id="account-xpub" type="text" class="account-xpub form-control" readonly data-show-qr></textarea>
558 </div>
559 </div>
560 <div class="form-group">
561 <label class="col-sm-2 control-label">
562 </label>
563 <div class="col-sm-10">
564 <p>The BIP32 derivation path and extended keys are the basis for the derived addresses.</p>
565 </div>
566 </div>
567 <div class="form-group">
568 <label for="bip84-path" class="col-sm-2 control-label">BIP32 Derivation Path</label>
569 <div class="col-sm-10">
570 <input id="bip84-path" type="text" class="path form-control" value="m/84'/0'/0'/0" readonly="readonly">
571 </div>
572 </div>
573 </form>
574 </div>
ebd8d4e8
IC
575 </div>
576 <form class="form-horizontal" role="form">
577 <div class="form-group">
fb00a22d 578 <label for="extended-priv-key" class="col-sm-2 control-label">BIP32 Extended Private Key</label>
ebd8d4e8 579 <div class="col-sm-10">
e00964cc 580 <textarea id="extended-priv-key" class="extended-priv-key form-control" readonly="readonly" data-show-qr></textarea>
ebd8d4e8
IC
581 </div>
582 </div>
583 <div class="form-group">
fb00a22d 584 <label for="extended-pub-key" class="col-sm-2 control-label">BIP32 Extended Public Key</label>
ebd8d4e8 585 <div class="col-sm-10">
e00964cc 586 <textarea id="extended-pub-key" class="extended-pub-key form-control" readonly="readonly" data-show-qr></textarea>
ebd8d4e8
IC
587 </div>
588 </div>
589 </form>
590 </div>
591 </div>
592
593 <hr>
594
595 <div class="row">
596 <div class="col-md-12">
597 <h2>Derived Addresses</h2>
20871923 598 <p>Note these addresses are derived from the BIP32 Extended Key</p>
fe8f2d14
IC
599 </div>
600 <div class="col-md-12 use-bitpay-addresses-container hidden">
601 <div class="checkbox">
602 <label>
603 <input type="checkbox" class="use-bitpay-addresses">
604 <span>Use BitPay-style addresses for Bitcoin Cash (ie starting with 'C' instead of '1')</span>
605 </label>
606 </div>
607 </div>
0b39e9dc
IC
608 <div class="col-md-12">
609 <div class="checkbox">
610 <label>
611 <input type="checkbox" class="use-bip38">
612 <span>Encrypt private keys using BIP38 and this password:</span>
613 </label>
614 <input class="bip38-password">
615 <span>Enabling BIP38 means each key will take take several minutes to generate.</span>
616 </div>
617 </div>
a78f4e28
IC
618 <ul class="addresses-type nav nav-tabs" role="tablist">
619 <li id="table-tab" class="active">
620 <a href="#table" role="tab" data-toggle="tab">Table</a>
621 </li>
622 <li id="csv-tab">
623 <a href="#csv" role="tab" data-toggle="tab">CSV</a>
624 </li>
625 </ul>
626 <div class="addresses-type tab-content">
627 <div id="table" class="tab-pane active">
628 <div class="col-md-12">
629 <table class="table table-striped">
630 <thead>
631 <th>
632 <div class="input-group">
633 <span>Path</span>&nbsp;&nbsp;
634 <button class="index-toggle">Toggle</button>
635 </div>
636 </th>
637 <th>
638 <div class="input-group">
639 <span>Address</span>&nbsp;&nbsp;
640 <button class="address-toggle">Toggle</button>
641 </div>
642 </th>
643 <th>
644 <div class="input-group">
645 <span>Public Key</span>&nbsp;&nbsp;
646 <button class="public-key-toggle">Toggle</button>
647 </div>
648 </th>
649 <th>
650 <div class="input-group">
651 <span>Private Key</span>&nbsp;&nbsp;
652 <button class="private-key-toggle">Toggle</button>
653 </div>
654 </th>
655 </thead>
656 <tbody class="addresses monospace">
657 <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
658 <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
659 <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
660 <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
661 <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
662 </tbody>
663 </table>
664 </div>
665 </div>
666 <div id="csv" class="tab-pane">
667 <div class="col-md-12">
668 <textarea class="csv form-control" rows="25" readonly></textarea>
669 </div>
670 </div>
ebd8d4e8
IC
671 </div>
672 </div>
9183f9f6 673 <span>Show</span>
ebd8d4e8 674 <input type="number" class="rows-to-add" value="20">
9183f9f6
IC
675 <button class="more">more rows</button>
676 <span>starting from index</span>
677 <input type="number" class="more-rows-start-index">
678 <span>(leave blank to generate from next index)</span>
ebd8d4e8
IC
679
680 <hr>
681
682 <div class="row">
683 <div class="col-md-12">
fb00a22d
IC
684 <h2>More info</h2>
685 <h3>BIP39 <span class="small">Mnemonic code for generating deterministic keys</span></h3>
686 <p>
ebd8d4e8
IC
687 Read more at the
688 <a href="https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki">official BIP39 spec</a>
689 </p>
fb00a22d
IC
690 <h3>BIP32 <span class="small">Hierarchical Deterministic Wallets</span></h3>
691 <p>
ebd8d4e8
IC
692 Read more at the
693 <a href="https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target="_blank">official BIP32 spec</a>
60599f7a 694 </p>
fb00a22d 695 <p>
60599f7a 696 See the demo at
ebd8d4e8
IC
697 <a href="http://bip32.org/" target="_blank">bip32.org</a>
698 </p>
fb00a22d
IC
699 <h3>BIP44 <span class="small">Multi-Account Hierarchy for Deterministic Wallets</span></h3>
700 <p>
ebd8d4e8
IC
701 Read more at the
702 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target="_blank">official BIP44 spec</a>
703 </p>
fb00a22d
IC
704 <h3>BIP49 <span class="small">Derivation scheme for P2WPKH-nested-in-P2SH based accounts</span></h3>
705 <p>
861750ae
JC
706 Read more at the
707 <a href="https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki" target="_blank">official BIP49 spec</a>
708 </p>
fb00a22d 709 <h3>Private Keys</h3>
ebd8d4e8 710 <p>
fb00a22d 711 <span>
60599f7a
IC
712 Use private keys at
713 <a href="https://web.archive.org/web/20150707020924/https://brainwallet.org/" target="_blank">brainwallet.org</a>.
714 </span>
fb00a22d 715 <span>Be careful - it can be easy to make mistakes if you don't know what you're doing.</span>
ebd8d4e8 716 </p>
fb00a22d 717 <h3 id="entropy-notes">Entropy</h3>
c6624d51 718 <p>
fb00a22d 719 <span>
60599f7a
IC
720 Entropy values must be sourced from a
721 <a href="https://en.wikipedia.org/wiki/Random_number_generation" target="_blank">strong source of randomness</a>.
722 </span>
fb00a22d
IC
723 <span>This means flipping a fair coin, rolling a fair dice, noise measurements etc.</span>
724 <span>
20871923 725 Do <strong>NOT</strong> use phrases from books, lyrics from songs, your birthday or street address,
60599f7a
IC
726 keyboard mashing, or anything you <i>think</i> is random, because chances are overwhelming it isn't
727 random enough for the needs of this tool.
728 </span>
c6624d51 729 </p>
bf9bdfd2 730 <p>
fb00a22d 731 <strong><span>Do not store entropy.</span></strong>
bf9bdfd2
IC
732 </p>
733 <p>
fb00a22d
IC
734 <span>Storing entropy (such as keeping a deck of cards in a specific shuffled order) is unreliable compared to storing a mnemonic.</span>
735 <span>Instead of storing entropy, store the mnemonic generated from the entropy.</span>
736 <span><a href="https://en.wikipedia.org/wiki/Steganography#Physical" target="_blank">Steganography</a> may be beneficial when storing the mnemonic.</span>
bf9bdfd2 737 </p>
c6624d51 738 <p>
fb00a22d 739 <span>
60599f7a
IC
740 The random mnemonic generator on this page uses a
741 <a href="https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues" target="_blank">cryptographically secure random number generator</a>.
742 </span>
fb00a22d
IC
743 <span>The built in random generator can generally be trusted more than your own intuition about randomness.</span>
744 <span>If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.</span>
745 <span>In that case you might choose to use your own source of entropy.</span>
c6624d51
IC
746 </p>
747 <p>
fb00a22d 748 <a href="https://bitcointalk.org/index.php?topic=311000.msg3345309#msg3345309" target="_blank">You are not a good source of entropy.</a>
c6624d51 749 </p>
fb00a22d 750 <h3>License</h3>
1f618a77 751 <p>
fb00a22d 752 <span>Please refer to <a href="https://github.com/iancoleman/bip39/blob/master/LICENSE" target="_blank">the software license</a> for more detail.
1f618a77
IC
753 </span>
754 </p>
fb00a22d 755 <p>The software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.</p>
ebd8d4e8
IC
756 </div>
757 </div>
45b8a745
IC
758
759 <hr>
760
73b8724a
IC
761 <div class="row">
762 <div class="col-md-12">
763 <h2>Alternative Tools</h2>
764 <p>This tool is interoperable with any BIP39 wallet.</p>
765 <p>Some similar tools to this one (ie not consumer wallets) are</p>
766 <p>
767 <a href="https://bip32jp.github.io/english/">
768 https://bip32jp.github.io/english/
769 </a>
770 </p>
771 </div>
772 </div>
773
774 <hr>
775
c5863485
IC
776 <div class="row">
777 <div class="col-md-12">
778
fb00a22d 779 <h2>Offline Usage</h2>
c5863485 780
fb00a22d 781 <p>
c5863485
IC
782 You can use this tool without having to be online.
783 </p>
fb00a22d 784 <p>
c5863485
IC
785 In your browser, select file save-as, and save this page
786 as a file.
787 </p>
fb00a22d 788 <p>
c5863485
IC
789 Double-click that file to open it in a browser
790 on any offline computer.
791 </p>
792 <p>
fb00a22d 793 <span>Alternatively, download the file from the repository</span>
60599f7a
IC
794 -
795 <a href="https://github.com/iancoleman/bip39">https://github.com/iancoleman/bip39</a>
796 </p>
c5863485
IC
797
798 </div>
799 </div>
800
801 <hr>
802
45b8a745
IC
803 <div class="row">
804 <div class="col-md-12">
805
fb00a22d 806 <h2>This project is 100% open-source code</h2>
45b8a745
IC
807
808 <p>
fb00a22d 809 <span>Get the source code from the repository</span>
60599f7a 810 -
b630f83d
IC
811 <a href="https://github.com/iancoleman/bip39" target="_blank">
812 https://github.com/iancoleman/bip39
45b8a745
IC
813 </a>
814 </p>
815
fb00a22d 816 <h3>Libraries</h3>
45b8a745
IC
817
818 <p>
819 <span>BitcoinJS - </span>
820 <a href="https://github.com/bitcoinjs/bitcoinjs-lib" target="_blank">
821 https://github.com/bitcoinjs/bitcoinjs-lib
822 </a>
823 </p>
824
825 <p>
826 <span>jsBIP39 - </span>
827 <a href="https://github.com/iancoleman/jsbip39" target="_blank">
828 https://github.com/iancoleman/jsbip39
829 </a>
830 </p>
831
832 <p>
0937f3ab
IC
833 <span>sjcl - </span>
834 <a href="https://github.com/bitwiseshiftleft/sjcl" target="_blank">
835 https://github.com/bitwiseshiftleft/sjcl
45b8a745
IC
836 </a>
837 </p>
838
839 <p>
840 <span>jQuery - </span>
841 <a href="https://jquery.com/" target="_blank">
842 https://jquery.com/
843 </a>
844 </p>
845
846 <p>
847 <span>Twitter Bootstrap - </span>
848 <a href="http://getbootstrap.com/" target="_blank">
849 http://getbootstrap.com/
850 </a>
851 </p>
852
853 </div>
854 </div>
855
ebd8d4e8
IC
856 </div>
857
e00964cc 858 <div class="qr-container hidden">
fb00a22d
IC
859 <div class="qr-hint bg-primary hidden">Click field to hide QR</div>
860 <div class="qr-hint bg-primary">Click field to show QR</div>
8a93952c 861 <div class="qr-hider hidden">
97811c29 862 <div class="qr-image"></div>
fb00a22d 863 <div class="qr-warning bg-primary">Caution: Scanner may keep history</div>
97811c29 864 </div>
e00964cc
IC
865 </div>
866
ebd8d4e8 867 <div class="feedback-container">
d26cce22 868 <div class="feedback">Loading...</div>
ebd8d4e8
IC
869 </div>
870
871 <script type="text/template" id="address-row-template">
872 <tr>
873 <td class="index"><span></span></td>
e00964cc
IC
874 <td class="address"><span data-show-qr></span></td>
875 <td class="pubkey"><span data-show-qr></span></td>
876 <td class="privkey"><span data-show-qr></span></td>
ebd8d4e8
IC
877 </tr>
878 </script>
24137d96 879 <script src="js/polyfill.es6.js"></script>
64a7d2aa 880 <script src="js/basex.js"></script>
6e0f24b1 881 <script src="js/unorm.js"></script>
863fa61a 882 <script src="js/jquery-3.2.1.js"></script>
9a54f27e 883 <script src="js/bootstrap-3.3.7.js"></script>
563e401a 884 <script src="js/levenshtein.js"></script>
9225b805 885 <script src="js/kjua-0.1.1.min.js"></script>
9f59e99b 886 <script src="js/bitcoinjs-3.3.0.js"></script>
cee442b1 887 <script src="js/bitcoinjs-extensions.js"></script>
0f0a888e 888 <script src="js/bitcoinjs-bip38-2.0.2.js"></script>
c49e8812 889 <script src="js/segwit-parameters.js"></script>
505a3159 890 <script src="js/ethereumjs-util.js"></script>
64a7d2aa 891 <script src="js/ripple-util.js"></script>
cee442b1
KK
892 <script src="js/sjcl-bip39.js"></script>
893 <script src="js/wordlist_english.js"></script>
3a8dbe99
IC
894 <script src="js/wordlist_japanese.js"></script>
895 <script src="js/wordlist_spanish.js"></script>
896 <script src="js/wordlist_chinese_simplified.js"></script>
897 <script src="js/wordlist_chinese_traditional.js"></script>
898 <script src="js/wordlist_french.js"></script>
899 <script src="js/wordlist_italian.js"></script>
cee442b1 900 <script src="js/jsbip39.js"></script>
b6dbc2a1 901 <script src="js/biginteger.js"></script>
b299a6a7 902 <script src="js/zxcvbn.js"></script>
c6624d51 903 <script src="js/entropy.js"></script>
cee442b1 904 <script src="js/index.js"></script>
ebd8d4e8
IC
905 </body>
906</html>