]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/blob - src/index.html
Add immae_config.yaml
[perso/Immae/Projets/Cryptomonnaies/BIP39.git] / src / index.html
1 <!DOCTYPE html>
2 <html>
3 <head lang="en">
4 <meta charset="utf-8" />
5 <title>BIP39 - Mnemonic Code</title>
6 <link rel="stylesheet" href="css/bootstrap.css">
7 <link rel="stylesheet" href="css/app.css">
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" />
11 <meta content="Ian Coleman" name="author" />
12 <link type="image/x-icon" rel="icon" href="data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAAF0lEQVRIx2NgGAWjYBSMglEwCkbBSAcACBAAAeaR9cIAAAAASUVORK5CYII=" />
13 </head>
14 <body>
15 <div class="container">
16
17 <h1 class="text-center">Mnemonic Code Converter</h1>
18 <p class="version">v0.5.2</p>
19 <hr>
20 <div class="row">
21 <div class="col-md-12">
22 <h2>Mnemonic</h2>
23 <form class="form-horizontal" role="form">
24 <div class="form-group">
25 <div class="col-sm-2"></div>
26 <div class="col-sm-10">
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 contains a checksum).</p>
28 <p>
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>
32 </div>
33 </div>
34 <div class="form-group generate-container">
35 <label class="col-sm-2 control-label"></label>
36 <div class="col-sm-10">
37 <div class="form-inline">
38 <div class="input-group-inline">
39 <span>Generate a random mnemonic</span>:
40 <button class="btn generate" ><b>GENERATE</b></button>
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>
51 <span>words, or enter your own below</span>.
52 <p class="warning help-block hidden">
53 <span class="text-danger">
54 Mnemonics with less than 12 words have low entropy and may be guessed by an attacker.
55 </span>
56 </p>
57 </div>
58 </div>
59 </div>
60 </div>
61 <div class="entropy-container hidden">
62 <div class="form-group text-danger">
63 <label class="col-sm-2 control-label">Warning</label>
64 <div class="col-sm-10 form-control-static">
65 <span>Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.</span>
66 <a href="#entropy-notes">Read more</a>
67 </div>
68 </div>
69 <div class="form-group">
70 <label for="entropy" class="col-sm-2 control-label">Entropy</label>
71 <div class="col-sm-7">
72 <textarea id="entropy" rows="2" class="entropy private-data form-control" placeholder="Accepts either binary, base 6, 6-sided dice, base 10, hexadecimal or cards" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
73 <div class="row filter-warning text-danger hidden">
74 <p class="col-sm-12">
75 <strong>
76 Some characters have been discarded
77 </strong>
78 </p>
79 </div>
80 <div class="row">
81 <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>
82 <div class="crack-time col-sm-3 form-control-static"></div>
83 <label class="col-sm-3 control-label">Event Count</label>
84 <div class="event-count col-sm-3 form-control-static"></div>
85 </div>
86 <div class="row">
87 <label class="col-sm-3 control-label">Entropy Type</label>
88 <div class="type col-sm-3 form-control-static"></div>
89 <label class="col-sm-3 control-label">Avg Bits Per Event</label>
90 <div class="bits-per-event col-sm-3 form-control-static"></div>
91 </div>
92 <div class="row">
93 <label class="col-sm-3 control-label">Raw Entropy Words</label>
94 <div class="word-count col-sm-3 form-control-static"></div>
95 <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>
96 <div class="bits col-sm-3 form-control-static"></div>
97 </div>
98 <label class="col-sm-3 control-label">Filtered Entropy</label>
99 <div class="filtered private-data col-sm-9 form-control-static"></div>
100 <label class="col-sm-3 control-label">Raw Binary</label>
101 <div class="binary private-data col-sm-9 form-control-static"></div>
102 <label class="col-sm-3 control-label">Binary Checksum</label>
103 <div class="checksum private-data col-sm-9 form-control-static">&nbsp;</div>
104 <label class="col-sm-3 control-label">Word Indexes</label>
105 <div class="word-indexes private-data col-sm-9 form-control-static">&nbsp;</div>
106 <label class="col-sm-3 control-label">Mnemonic Length</label>
107 <div class="col-sm-9">
108 <select class="mnemonic-length form-control">
109 <option value="raw" selected>Use Raw Entropy (3 words per 32 bits)</option>
110 <option value="12">12 <span>Words</span></option>
111 <option value="15">15 <span>Words</span></option>
112 <option value="18">18 <span>Words</span></option>
113 <option value="21">21 <span>Words</span></option>
114 <option value="24">24 <span>Words</span></option>
115 </select>
116 <p class="weak-entropy-override-warning hidden">
117 <span class="text-danger">
118 The mnemonic will appear more secure than it really is.
119 </span>
120 </p>
121 </div>
122 </div>
123 <div class="col-sm-3">
124 <p>Valid entropy values include:</p>
125 <ul>
126 <li>
127 <label>
128 <input type="radio" name="entropy-type" value="binary">
129 <strong>Binary</strong> [0-1]<br>101010011
130 </label>
131 </li>
132 <li>
133 <label>
134 <input type="radio" name="entropy-type" value="base 6">
135 <strong>Base 6</strong> [0-5]<br>123434014
136 </label>
137 </li>
138 <li>
139 <label>
140 <input type="radio" name="entropy-type" value="dice">
141 <strong>Dice</strong> [1-6]<br>62535634
142 </label>
143 </li>
144 <li>
145 <label>
146 <input type="radio" name="entropy-type" value="base 10">
147 <strong>Base 10</strong> [0-9]<br>90834528
148 </label>
149 </li>
150 <li>
151 <label>
152 <input type="radio" name="entropy-type" value="hexadecimal" checked>
153 <strong>Hex</strong> [0-9A-F]<br>4187a8bfd9
154 </label>
155 </li>
156 <li>
157 <label>
158 <input type="radio" name="entropy-type" value="card">
159 <strong>Card</strong> [A2-9TJQK][CDHS]<br>ahqs9dtc
160 </label>
161 </li>
162 </ul>
163 </div>
164 </div>
165 </div>
166 <div class="form-group">
167 <div class="col-sm-2"></div>
168 <div class="col-sm-10 checkbox">
169 <label>
170 <input type="checkbox" class="use-entropy">
171 <span>Show entropy details</span>
172 </label>
173 </div>
174 </div>
175 <div class="form-group">
176 <div class="col-sm-2"></div>
177 <div class="col-sm-10 checkbox">
178 <label>
179 <input type="checkbox" class="privacy-screen-toggle">
180 <span>Hide all private info</span>
181 </label>
182 </div>
183 </div>
184 <div class="form-group">
185 <label class="col-sm-2 control-label">Mnemonic Language</label>
186 <div class="col-sm-10 languages">
187 <div class="form-control no-border">
188 <a href="#english">English</a>
189 <a href="#japanese" title="Japanese">日本語</a>
190 <a href="#spanish" title="Spanish">Español</a>
191 <a href="#chinese_simplified" title="Chinese (Simplified)">中文(简体)</a>
192 <a href="#chinese_traditional" title="Chinese (Traditional)">中文(繁體)</a>
193 <a href="#french" title="French">Français</a>
194 <a href="#italian" title="Italian">Italiano</a>
195 <a href="#korean" title="Korean">한국어</a>
196 <a href="#czech" title="Czech">Čeština</a>
197 <a href="#portuguese" title="Portuguese">Português</a>
198 </div>
199 </div>
200 </div>
201 <div class="form-group">
202 <label for="phrase" class="col-sm-2 control-label">BIP39 Mnemonic</label>
203 <div class="col-sm-10">
204 <textarea id="phrase" class="phrase private-data form-control" data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
205 </div>
206 </div>
207 <div class="form-group">
208 <div class="splitMnemonic hidden">
209 <label for="phrase" class="col-sm-2 control-label">BIP39 Split Mnemonic</label>
210 <div class="col-sm-10">
211 <textarea id="phraseSplit" class="phraseSplit private-data form-control" title="Only 2 of 3 cards needed to recover." rows="3"></textarea>
212 <p class="help-block">
213 <span id="phraseSplitWarn" class="phraseSplitWarn"></span>
214 </p>
215 </div>
216 </div>
217 <div class="col-sm-2">
218 </div>
219 <div class="col-sm-10">
220 <label class="control-label text-weight-normal">
221 <input type="checkbox" class="showSplitMnemonic">
222 Show split mnemonic cards
223 </label>
224 </div>
225 </div>
226 <div class="form-group">
227 <label for="passphrase" class="col-sm-2 control-label">BIP39 Passphrase (optional)</label>
228 <div class="col-sm-10">
229 <textarea id="passphrase" class="passphrase private-data form-control" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
230 </div>
231 </div>
232 <div class="form-group">
233 <label for="seed" class="col-sm-2 control-label">BIP39 Seed</label>
234 <div class="col-sm-10">
235 <textarea id="seed" class="seed private-data form-control" data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
236 </div>
237 </div>
238 <div class="form-group">
239 <label for="network-phrase" class="col-sm-2 control-label">Coin</label>
240 <div class="col-sm-10">
241 <select id="network-phrase" class="network form-control">
242 <!-- populated by javascript -->
243 </select>
244 </div>
245 </div>
246 <div class="form-group">
247 <label for="root-key" class="col-sm-2 control-label">BIP32 Root Key</label>
248 <div class="col-sm-10">
249 <textarea id="root-key" class="root-key private-data form-control" data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
250 </div>
251 </div>
252
253 <div class="form-group">
254 <div class="col-sm-2"></div>
255 <div class="col-sm-10">
256 <label class="control-label text-weight-normal">
257 <input type="checkbox" class="showBip85" />
258 Show BIP85
259 </label>
260 </div>
261 </div>
262
263 <div class="form-group bip85 hidden">
264 <div class="form-group text-danger">
265 <label class="col-sm-2 control-label">Warning</label>
266 <div class="col-sm-10 form-control-static">
267 This is an advanced feature and should only be used if you understand what it does.
268 </div>
269 </div>
270 <div class="form-group">
271 <label class="col-sm-2"></label>
272 <div class="col-sm-10">
273 <p>
274 The value of the "BIP85 Child Key" field shown below is not used
275 elsewhere on this page. It can be used as a new key.
276 </p>
277 <p>
278 In case of the BIP39 application, you can paste it into the "BIP39 Mnemonic"
279 field to use it as a new mnemonic.
280 </p>
281 <p>
282 Please read the
283 <a href="https://github.com/bitcoin/bips/blob/master/bip-0085.mediawiki" target="_blank">
284 BIP85 spec
285 </a>
286 for more information.
287 </p>
288 </div>
289 </p>
290 <label for="bip85-application" class="col-sm-2 control-label">BIP85 Application</label>
291 <div class="col-sm-10">
292 <select id="bip85-application" class="form-control">
293 <option value="bip39" selected>BIP39</option>
294 <option value="wif">WIF</option>
295 <option value="xprv">Xprv</option>
296 <option value="hex">Hex</option>
297 </select>
298 </div>
299 </div>
300
301 <div class="form-group bip85 bip85-mnemonic-language-input hidden">
302 <label for="bip85-mnemonic-language" class="col-sm-2 control-label">BIP85 Mnemonic Language</label>
303 <div class="col-sm-10 languages">
304 <select id="bip85-mnemonic-language" class="strength form-control">
305 <option value="0" selected>English</option>
306 <!--<option value="1">日本語</option>
307 <option value="2">한국어</option>
308 <option value="3">Español</option>
309 <option value="4">中文(简体)</option>
310 <option value="5">中文(繁體)</option>
311 <option value="6">Français</option>
312 <option value="7">Italiano</option>
313 <option value="8">Čeština</option>
314 <option value="9">Português</option>-->
315 </select>
316 </div>
317 </div>
318
319 <div class="form-group bip85 bip85-mnemonic-length-input hidden">
320 <label for="bip85-mnemonic-length" class="col-sm-2 control-label">BIP85 Mnemonic Length</label>
321 <div class="col-sm-10">
322 <select id="bip85-mnemonic-length" class="strength form-control">
323 <option value="12" selected>12</option>
324 <option value="18">18</option>
325 <option value="24">24</option>
326 </select>
327 </div>
328 </div>
329
330 <div class="form-group bip85 hidden">
331 <span class="bip85-bytes-input">
332 <label for="bip85-bytes" class="col-sm-2 control-label">BIP85 Bytes</label>
333 <div class="col-sm-10">
334 <input id="bip85-bytes" type="text" class="change form-control" value="64" />
335 </div>
336 </span>
337 </div>
338
339 <div class="form-group bip85 bip85-index-input hidden">
340 <label for="bip85-index" class="col-sm-2 control-label">BIP85 Index</label>
341 <div class="col-sm-10">
342 <input id="bip85-index" type="text" class="change form-control" value="0" />
343 </div>
344 </div>
345
346 <div class="form-group bip85 hidden">
347 <label for="phrase" class="col-sm-2 control-label">BIP85 Child Key</label>
348 <div class="col-sm-10">
349 <textarea
350 id="bip85Field"
351 data-show-qr
352 class="bip85Field private-data form-control"
353 title="BIP85 Child Key"
354 rows="3"
355 ></textarea>
356 </div>
357 </div>
358
359 <div class="form-group litecoin-ltub-container hidden">
360 <label for="litecoin-use-ltub" class="col-sm-2 control-label">Prefixes</label>
361 <div class="col-sm-10 checkbox">
362 <label>
363 <input type="checkbox" id="litecoin-use-ltub" class="litecoin-use-ltub" checked="checked">
364 Use <code>Ltpv / Ltub</code> instead of <code>xprv / xpub</code>
365 </label>
366 </div>
367 </div>
368 </form>
369 </div>
370 </div>
371
372 <hr>
373
374 <div class="row">
375 <div class="col-md-12">
376 <h2>Derivation Path</h2>
377 <ul class="derivation-type nav nav-tabs" role="tablist">
378 <li id="bip32-tab">
379 <a href="#bip32" role="tab" data-toggle="tab">BIP32</a>
380 </li>
381 <li id="bip44-tab" class="active">
382 <a href="#bip44" role="tab" data-toggle="tab">BIP44</a>
383 </li>
384 <li id="bip49-tab">
385 <a href="#bip49" role="tab" data-toggle="tab">BIP49</a>
386 </li>
387 <li id="bip84-tab">
388 <a href="#bip84" role="tab" data-toggle="tab">BIP84</a>
389 </li>
390 <li id="bip141-tab">
391 <a href="#bip141" role="tab" data-toggle="tab">BIP141</a>
392 </li>
393 </ul>
394 <div class="derivation-type tab-content">
395 <div id="bip44" class="tab-pane active">
396 <form class="form-horizontal" role="form">
397 <br>
398 <div class="col-sm-2"></div>
399 <div class="col-sm-10">
400 <p>
401 For more info see the
402 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target="_blank">BIP44 spec</a>.
403 </p>
404 </div>
405 <div class="form-group">
406 <label for="purpose-bip44" class="col-sm-2 control-label">
407 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target="_blank">Purpose</a>
408 </label>
409 <div class="col-sm-10">
410 <input id="purpose-bip44" type="text" class="purpose form-control" value="44" readonly>
411 </div>
412 </div>
413 <div class="form-group">
414 <label for="coin-bip44" class="col-sm-2 control-label">
415 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target="_blank">Coin</a>
416 </label>
417 <div class="col-sm-10">
418 <input id="coin-bip44" type="text" class="coin form-control" value="0" readonly>
419 </div>
420 </div>
421 <div class="form-group">
422 <label for="account-bip44" class="col-sm-2 control-label">
423 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target="_blank">Account</a>
424 </label>
425 <div class="col-sm-10">
426 <input id="account-bip44" type="text" class="account form-control" value="0">
427 </div>
428 </div>
429 <div class="form-group">
430 <label for="change-bip44" class="col-sm-2 control-label">
431 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target="_blank">External / Internal</a>
432 </label>
433 <div class="col-sm-10">
434 <div class="input-group">
435 <input id="change-bip44" type="text" class="change form-control" value="0">
436 <a class="default-bip44-change-value btn btn-primary input-group-addon" role="button">Default</a>
437 </div>
438 </div>
439 </div>
440 <div class="form-group">
441 <label class="col-sm-2 control-label">
442 </label>
443 <div class="col-sm-10">
444 <p>The account extended keys can be used for importing to most BIP44 compatible wallets, such as mycelium or electrum.</p>
445 </div>
446 </div>
447 <div class="form-group">
448 <label for="account-xprv" class="col-sm-2 control-label">
449 <span>Account Extended Private Key</span>
450 </label>
451 <div class="col-sm-10">
452 <textarea id="account-xprv-bip44" type="text" class="account-xprv private-data form-control" readonly data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
453 </div>
454 </div>
455 <div class="form-group">
456 <label for="account-xpub" class="col-sm-2 control-label">
457 <span>Account Extended Public Key</span>
458 </label>
459 <div class="col-sm-10">
460 <textarea id="account-xpub-bip44" type="text" class="account-xpub form-control" readonly data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
461 </div>
462 </div>
463 <div class="form-group">
464 <label class="col-sm-2 control-label">
465 </label>
466 <div class="col-sm-10">
467 <p>The BIP32 derivation path and extended keys are the basis for the derived addresses.</p>
468 </div>
469 </div>
470 <div class="form-group">
471 <label for="bip44-path" class="col-sm-2 control-label">BIP32 Derivation Path</label>
472 <div class="col-sm-10">
473 <input id="bip44-path" type="text" class="path form-control" value="m/44'/0'/0'/0" readonly="readonly">
474 </div>
475 </div>
476 </form>
477 </div>
478 <div id="bip32" class="tab-pane">
479 <form class="form-horizontal" role="form">
480 <br>
481 <div class="col-sm-2"></div>
482 <div class="col-sm-10">
483 <p>
484 For more info see the
485 <a href="https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target="_blank">BIP32 spec</a>
486 </p>
487 </div>
488 <div class="form-group">
489 <label for="bip32-client" class="col-sm-2 control-label">Client</label>
490 <div class="col-sm-10">
491 <select id="bip32-client" class="client form-control">
492 <option value="custom">Custom derivation path</option>
493 <!-- populated by javascript -->
494 </select>
495 </div>
496 </div>
497 <div class="form-group">
498 <label for="bip32-path" class="col-sm-2 control-label">BIP32 Derivation Path</label>
499 <div class="col-sm-10">
500 <input id="bip32-path" type="text" class="path form-control" value="m/0">
501 </div>
502 </div>
503 <div class="form-group">
504 <label for="core-path" class="col-sm-2 control-label">Bitcoin Core</label>
505 <div class="col-sm-10">
506 <p class="form-control no-border">
507 Use path <code>m/0'/0'</code> with hardened addresses.
508 </p>
509 <p class="form-control no-border">
510 For more info see the
511 <a href="https://github.com/bitcoin/bitcoin/pull/8035" target="_blank">Bitcoin Core BIP32 implementation</a>
512 </p>
513 </div>
514 </div>
515 <div class="form-group">
516 <label for="core-path" class="col-sm-2 control-label">Multibit</label>
517 <div class="col-sm-10">
518 <p class="form-control no-border">
519 <span>Use path <code>m/0'/0</code>.</span>
520 <span>For change addresses use path <code>m/0'/1</code>.</span>
521 </p>
522 <p class="form-control no-border">
523 <span>For more info see</span>
524 <a href="https://multibit.org/" target="_blank">MultiBit HD</a>
525 </p>
526 </div>
527 </div>
528 <div class="form-group">
529 <label class="col-sm-2 control-label">Block Explorers</label>
530 <div class="col-sm-10">
531 <p class="form-control no-border">
532 <span>Use path <code>m/44'/0'/0'</code>.</span>
533 <span>Only enter the <code>xpub</code> extended key into block explorer search fields, never the <code>xprv</code> key.</span>
534 </p>
535 <p class="form-control no-border">
536 <span>Can be used with</span>:
537 <a href="https://blockchain.info/" target="_blank">blockchain.info</a>
538 </p>
539 </div>
540 </div>
541 </form>
542 </div>
543 <div id="bip49" class="tab-pane">
544 <form class="form-horizontal" role="form">
545 <br>
546 <div class="unavailable hidden">
547 <div class="form-group">
548 <div class="col-sm-2"></div>
549 <div class="col-sm-10">
550 <p>BIP49 is unavailable for this coin.</p>
551 </div>
552 </div>
553 </div>
554 <div class="available">
555 <div class="col-sm-2"></div>
556 <div class="col-sm-10">
557 <p>
558 For more info see the
559 <a href="https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki" target="_blank">BIP49 spec</a>.
560 </p>
561 </div>
562 <div class="form-group">
563 <label for="purpose-bip49" class="col-sm-2 control-label">
564 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target="_blank">Purpose</a>
565 </label>
566 <div class="col-sm-10">
567 <input id="purpose-bip49" type="text" class="purpose form-control" value="49" readonly>
568 </div>
569 </div>
570 <div class="form-group">
571 <label for="coin-bip49" class="col-sm-2 control-label">
572 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target="_blank">Coin</a>
573 </label>
574 <div class="col-sm-10">
575 <input id="coin-bip49" type="text" class="coin form-control" value="0" readonly>
576 </div>
577 </div>
578 <div class="form-group">
579 <label for="account-bip49" class="col-sm-2 control-label">
580 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target="_blank">Account</a>
581 </label>
582 <div class="col-sm-10">
583 <input id="account-bip49" type="text" class="account form-control" value="0">
584 </div>
585 </div>
586 <div class="form-group">
587 <label for="change-bip49" class="col-sm-2 control-label">
588 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target="_blank">External / Internal</a>
589 </label>
590 <div class="col-sm-10">
591 <input id="change-bip49" type="text" class="change form-control" value="0">
592 </div>
593 </div>
594 <div class="form-group">
595 <label class="col-sm-2 control-label">
596 </label>
597 <div class="col-sm-10">
598 <p>The account extended keys can be used for importing to most BIP49 compatible wallets.</p>
599 </div>
600 </div>
601 <div class="form-group">
602 <label for="account-xprv" class="col-sm-2 control-label">
603 <span>Account Extended Private Key</span>
604 </label>
605 <div class="col-sm-10">
606 <textarea id="account-xprv-bip49" type="text" class="account-xprv private-data form-control" readonly data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
607 </div>
608 </div>
609 <div class="form-group">
610 <label for="account-xpub" class="col-sm-2 control-label">
611 <span>Account Extended Public Key</span>
612 </label>
613 <div class="col-sm-10">
614 <textarea id="account-xpub-bip49" type="text" class="account-xpub form-control" readonly data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
615 </div>
616 </div>
617 <div class="form-group">
618 <label class="col-sm-2 control-label">
619 </label>
620 <div class="col-sm-10">
621 <p>The BIP32 derivation path and extended keys are the basis for the derived addresses.</p>
622 </div>
623 </div>
624 <div class="form-group">
625 <label for="bip49-path" class="col-sm-2 control-label">BIP32 Derivation Path</label>
626 <div class="col-sm-10">
627 <input id="bip49-path" type="text" class="path form-control" value="m/49'/0'/0'/0" readonly="readonly">
628 </div>
629 </div>
630 </div>
631 </form>
632 </div>
633 <div id="bip141" class="tab-pane">
634 <form class="form-horizontal" role="form">
635 <br>
636 <div class="unavailable hidden">
637 <div class="form-group">
638 <div class="col-sm-2"></div>
639 <div class="col-sm-10">
640 <p>BIP141 is unavailable for this coin.</p>
641 </div>
642 </div>
643 </div>
644 <div class="available">
645 <div class="col-sm-2"></div>
646 <div class="col-sm-10">
647 <p>
648 For more info see the
649 <a href="https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki" target="_blank">BIP141 spec</a>
650 </p>
651 </div>
652 <div class="form-group">
653 <label for="bip141-path" class="col-sm-2 control-label">BIP32 Derivation Path</label>
654 <div class="col-sm-10">
655 <input id="bip141-path" type="text" class="bip141-path form-control" value="m/0">
656 </div>
657 </div>
658 <div class="form-group">
659 <label class="col-sm-2 control-label">Script Semantics</label>
660 <div class="col-sm-10">
661 <select class="form-control bip141-semantics">
662 <option value="p2wpkh">P2WPKH</option>
663 <option value="p2wpkh-p2sh" selected>P2WPKH nested in P2SH</option>
664 <option value="p2wsh">P2WSH (1-of-1 multisig)</option>
665 <option value="p2wsh-p2sh">P2WSH nested in P2SH (1-of-1 multisig)</option>
666 </select>
667 </div>
668 </div>
669 </div>
670 </form>
671 </div>
672 <div id="bip84" class="tab-pane">
673 <form class="form-horizontal" role="form">
674 <br>
675 <div class="unavailable hidden">
676 <div class="form-group">
677 <div class="col-sm-2"></div>
678 <div class="col-sm-10">
679 <p>BIP84 is unavailable for this coin.</p>
680 </div>
681 </div>
682 </div>
683 <div class="available">
684 <div class="col-sm-2"></div>
685 <div class="col-sm-10">
686 <p>
687 For more info see the
688 <a href="https://github.com/bitcoin/bips/blob/master/bip-0084.mediawiki" target="_blank">BIP84 spec</a>.
689 </p>
690 </div>
691 <div class="form-group">
692 <label for="purpose-bip84" class="col-sm-2 control-label">
693 Purpose
694 </label>
695 <div class="col-sm-10">
696 <input id="purpose-bip84" type="text" class="purpose form-control" value="84" readonly>
697 </div>
698 </div>
699 <div class="form-group">
700 <label for="coin-bip84" class="col-sm-2 control-label">
701 Coin
702 </label>
703 <div class="col-sm-10">
704 <input id="coin-bip84" type="text" class="coin form-control" value="0" readonly>
705 </div>
706 </div>
707 <div class="form-group">
708 <label for="account-bip84" class="col-sm-2 control-label">
709 Account
710 </label>
711 <div class="col-sm-10">
712 <input id="account-bip84" type="text" class="account form-control" value="0">
713 </div>
714 </div>
715 <div class="form-group">
716 <label for="change-bip84" class="col-sm-2 control-label">
717 External / Internal
718 </label>
719 <div class="col-sm-10">
720 <input id="change-bip84" type="text" class="change form-control" value="0">
721 </div>
722 </div>
723 <div class="form-group">
724 <label class="col-sm-2 control-label">
725 </label>
726 <div class="col-sm-10">
727 <p>The account extended keys can be used for importing to most BIP84 compatible wallets.</p>
728 </div>
729 </div>
730 <div class="form-group">
731 <label for="account-xprv" class="col-sm-2 control-label">
732 <span>Account Extended Private Key</span>
733 </label>
734 <div class="col-sm-10">
735 <textarea id="account-xprv-bip84" type="text" class="account-xprv private-data form-control" readonly data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
736 </div>
737 </div>
738 <div class="form-group">
739 <label for="account-xpub" class="col-sm-2 control-label">
740 <span>Account Extended Public Key</span>
741 </label>
742 <div class="col-sm-10">
743 <textarea id="account-xpub-bip84" type="text" class="account-xpub form-control" readonly data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
744 </div>
745 </div>
746 <div class="form-group">
747 <label class="col-sm-2 control-label">
748 </label>
749 <div class="col-sm-10">
750 <p>The BIP32 derivation path and extended keys are the basis for the derived addresses.</p>
751 </div>
752 </div>
753 <div class="form-group">
754 <label for="bip84-path" class="col-sm-2 control-label">BIP32 Derivation Path</label>
755 <div class="col-sm-10">
756 <input id="bip84-path" type="text" class="path form-control" value="m/84'/0'/0'/0" readonly="readonly">
757 </div>
758 </div>
759 </div>
760 </form>
761 </div>
762 </div>
763 <form class="form-horizontal" role="form">
764 <div class="form-group">
765 <label for="extended-priv-key" class="col-sm-2 control-label">BIP32 Extended Private Key</label>
766 <div class="col-sm-10">
767 <textarea id="extended-priv-key" class="extended-priv-key private-data form-control" readonly="readonly" data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
768 </div>
769 </div>
770 <div class="form-group">
771 <label for="extended-pub-key" class="col-sm-2 control-label">BIP32 Extended Public Key</label>
772 <div class="col-sm-10">
773 <textarea id="extended-pub-key" class="extended-pub-key form-control" readonly="readonly" data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
774 </div>
775 </div>
776 </form>
777 </div>
778 </div>
779
780 <hr>
781
782 <div class="row">
783 <div class="col-md-12">
784 <h2>Derived Addresses</h2>
785 <p>Note these addresses are derived from the BIP32 Extended Key</p>
786 </div>
787 <div class="col-md-12 bch-addr-type-container hidden">
788 <div class="radio">
789 <label>
790 <input type="radio" value="cashaddr" name="bch-addr-type" class="use-bch-cashaddr-addresses" checked="checked">
791 <span>Use CashAddr addresses for Bitcoin Cash (ie starting with 'q' instead of '1')</span>
792 </label>
793 </div>
794 <div class="radio">
795 <label>
796 <input type="radio" value="bitpay" name="bch-addr-type" class="use-bch-bitpay-addresses">
797 <span>Use BitPay-style addresses for Bitcoin Cash (ie starting with 'C' instead of '1')</span>
798 </label>
799 </div>
800 <div class="radio">
801 <label>
802 <input type="radio" value="legacy" name="bch-addr-type" class="use-bch-legacy-addresses">
803 <span>Use legacy addresses for Bitcoin Cash (ie starting with '1')</span>
804 </label>
805 </div>
806 </div>
807 <div class="col-md-12">
808 <div class="checkbox">
809 <label>
810 <input type="checkbox" class="use-bip38">
811 <span>Encrypt private keys using BIP38 and this password:</span>
812 </label>
813 <input class="bip38-password private-data" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
814 <span>Enabling BIP38 means each key will take several minutes to generate.</span>
815 </div>
816 </div>
817 <div class="col-md-12">
818 <div class="checkbox">
819 <label>
820 <input class="hardened-addresses" type="checkbox">
821 <span>Use hardened addresses</span>
822 </label>
823 </div>
824 </div>
825 <ul class="addresses-type nav nav-tabs" role="tablist">
826 <li id="table-tab" class="active">
827 <a href="#table" role="tab" data-toggle="tab">Table</a>
828 </li>
829 <li id="csv-tab">
830 <a href="#csv" role="tab" data-toggle="tab">CSV</a>
831 </li>
832 </ul>
833 <div class="addresses-type tab-content">
834 <div id="table" class="tab-pane active">
835 <div class="col-md-12">
836 <table class="table table-striped">
837 <thead>
838 <th>
839 <div class="input-group">
840 <span>Path</span>&nbsp;&nbsp;
841 <button class="index-toggle">Toggle</button>
842 </div>
843 </th>
844 <th>
845 <div class="input-group">
846 <span>Address</span>&nbsp;&nbsp;
847 <button class="address-toggle">Toggle</button>
848 </div>
849 </th>
850 <th>
851 <div class="input-group">
852 <span>Public Key</span>&nbsp;&nbsp;
853 <button class="public-key-toggle">Toggle</button>
854 </div>
855 </th>
856 <th>
857 <div class="input-group">
858 <span>Private Key</span>&nbsp;&nbsp;
859 <button class="private-key-toggle">Toggle</button>
860 </div>
861 </th>
862 </thead>
863 <tbody class="addresses monospace">
864 <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
865 <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
866 <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
867 <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
868 <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
869 </tbody>
870 </table>
871 </div>
872 </div>
873 <div id="csv" class="tab-pane">
874 <div class="col-md-12">
875 <textarea class="csv form-control" rows="25" readonly autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
876 </div>
877 </div>
878 </div>
879 </div>
880 <span>Show</span>
881 <input type="number" class="rows-to-add" value="20">
882 <button class="more">more rows</button>
883 <span>starting from index</span>
884 <input type="number" class="more-rows-start-index">
885 <span>(leave blank to generate from next index)</span>
886
887 <hr>
888
889 <div class="row">
890 <div class="col-md-12">
891 <h2>More info</h2>
892 <h3>BIP39 <span class="small">Mnemonic code for generating deterministic keys</span></h3>
893 <p>
894 Read more at the
895 <a href="https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki">official BIP39 spec</a>
896 </p>
897 <h3>BIP32 <span class="small">Hierarchical Deterministic Wallets</span></h3>
898 <p>
899 Read more at the
900 <a href="https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target="_blank">official BIP32 spec</a>
901 </p>
902 <p>
903 See the demo at
904 <a href="http://bip32.org/" target="_blank">bip32.org</a>
905 </p>
906 <h3>BIP44 <span class="small">Multi-Account Hierarchy for Deterministic Wallets</span></h3>
907 <p>
908 Read more at the
909 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target="_blank">official BIP44 spec</a>
910 </p>
911 <h3>BIP49 <span class="small">Derivation scheme for P2WPKH-nested-in-P2SH based accounts</span></h3>
912 <p>
913 Read more at the
914 <a href="https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki" target="_blank">official BIP49 spec</a>
915 </p>
916 <h3>BIP85 <span class="small">Deterministic Entropy From BIP32 Keychains</span></h3>
917 <p>
918 Read more at the
919 <a href="https://github.com/bitcoin/bips/blob/master/bip-0085.mediawiki" target="_blank">official BIP85 spec</a>
920 </p>
921 <h3 id="entropy-notes">Entropy</h3>
922 <p>
923 <span>Entropy values should not include the BIP39 checksum. This is automatically added by the tool.</span>
924 </p>
925 <p>
926 <span>
927 Entropy values must be sourced from a
928 <a href="https://en.wikipedia.org/wiki/Random_number_generation" target="_blank">strong source of randomness</a>.
929 </span>
930 <span>This means flipping a fair coin, rolling a fair dice, noise measurements etc.</span>
931 <span>
932 Do <strong>NOT</strong> use phrases from books, lyrics from songs, your birthday or street address,
933 keyboard mashing, or anything you <i>think</i> is random, because chances are overwhelming it isn't
934 random enough for the needs of this tool.
935 </span>
936 </p>
937 <p>
938 <strong><span>Do not store entropy.</span></strong>
939 </p>
940 <p>
941 <span>Storing entropy (such as keeping a deck of cards in a specific shuffled order) is unreliable compared to storing a mnemonic.</span>
942 <span>Instead of storing entropy, store the mnemonic generated from the entropy.</span>
943 <span><a href="https://en.wikipedia.org/wiki/Steganography#Physical" target="_blank">Steganography</a> may be beneficial when storing the mnemonic.</span>
944 </p>
945 <p>
946 <span>
947 The random mnemonic generator on this page uses a
948 <a href="https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues" target="_blank">cryptographically secure random number generator</a>.
949 </span>
950 <span>The built in random generator can generally be trusted more than your own intuition about randomness.</span>
951 <span>If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.</span>
952 <span>In that case you might choose to use your own source of entropy.</span>
953 </p>
954 <p>
955 <a href="https://bitcointalk.org/index.php?topic=311000.msg3345309#msg3345309" target="_blank">You are not a good source of entropy.</a>
956 </p>
957 <p>
958 <span>Card entropy has been implemented assuming cards are replaced, not drawn one after another.</span>
959 <span>A full deck with replacement generates 232 bits of entropy (21 words). A full deck without replacement generates 225 bits of entropy (21 words).</span>
960 <span>Card entropy changed significantly from v0.4.3 to v0.5.0. The old version can be accessed at
961 <a href="https://github.com/iancoleman/bip39/releases/tag/0.4.3">
962 https://github.com/iancoleman/bip39/releases/tag/0.4.3
963 </a>
964 or
965 <a href="https://web.archive.org/web/20201018232020/https://iancoleman.io/bip39/">
966 https://web.archive.org/web/20201018232020/https://iancoleman.io/bip39/
967 </a>
968 </span>
969 </p>
970 <h3>License</h3>
971 <p>
972 <span>Please refer to <a href="https://github.com/iancoleman/bip39/blob/master/LICENSE" target="_blank">the software license</a> for more detail.
973 </span>
974 </p>
975 <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>
976 </div>
977 </div>
978
979 <hr>
980
981 <div class="row">
982 <div class="col-md-12">
983 <h2>Alternative Tools</h2>
984 <p>This tool is interoperable with any BIP39 wallet.</p>
985 <p>Some similar tools to this one (ie not consumer wallets) are</p>
986 <p>
987 <a href="https://bip32jp.github.io/english/">
988 https://bip32jp.github.io/english/
989 </a>
990 </p>
991 </div>
992 </div>
993
994 <hr>
995
996 <div class="row">
997 <div class="col-md-12">
998
999 <h2>Offline Usage</h2>
1000
1001 <p>
1002 You can use this tool without having to be online.
1003 </p>
1004 <p>
1005 In your browser, select file save-as, and save this page
1006 as a file.
1007 </p>
1008 <p>
1009 Double-click that file to open it in a browser
1010 on any offline computer.
1011 </p>
1012 <p>
1013 <span>Alternatively, download the file from the latest GitHub release</span>
1014 -
1015 <a href="https://github.com/iancoleman/bip39/releases/latest/">https://github.com/iancoleman/bip39/releases/latest/</a>
1016 </p>
1017
1018 </div>
1019 </div>
1020
1021 <hr>
1022
1023 <div class="row">
1024 <div class="col-md-12">
1025
1026 <h2>This project is 100% open-source code</h2>
1027
1028 <p>
1029 <span>Get the source code from the repository</span>
1030 -
1031 <a href="https://github.com/iancoleman/bip39" target="_blank">
1032 https://github.com/iancoleman/bip39
1033 </a>
1034 </p>
1035
1036 <h3>Libraries</h3>
1037
1038 <p>
1039 <span>BitcoinJS - </span>
1040 <a href="https://github.com/bitcoinjs/bitcoinjs-lib" target="_blank">
1041 https://github.com/bitcoinjs/bitcoinjs-lib
1042 </a>
1043 </p>
1044
1045 <p>
1046 <span>jsBIP39 - </span>
1047 <a href="https://github.com/iancoleman/jsbip39" target="_blank">
1048 https://github.com/iancoleman/jsbip39
1049 </a>
1050 </p>
1051
1052 <p>
1053 <span>sjcl - </span>
1054 <a href="https://github.com/bitwiseshiftleft/sjcl" target="_blank">
1055 https://github.com/bitwiseshiftleft/sjcl
1056 </a>
1057 </p>
1058
1059 <p>
1060 <span>jQuery - </span>
1061 <a href="https://jquery.com/" target="_blank">
1062 https://jquery.com/
1063 </a>
1064 </p>
1065
1066 <p>
1067 <span>Twitter Bootstrap - </span>
1068 <a href="http://getbootstrap.com/" target="_blank">
1069 http://getbootstrap.com/
1070 </a>
1071 </p>
1072
1073 </div>
1074 </div>
1075
1076 </div>
1077
1078 <div class="qr-container hidden">
1079 <div class="qr-hint bg-primary hidden">Click field to hide QR</div>
1080 <div class="qr-hint bg-primary">Click field to show QR</div>
1081 <div class="qr-hider hidden">
1082 <div class="qr-image"></div>
1083 <div class="qr-warning bg-primary">Caution: Scanner may keep history</div>
1084 </div>
1085 </div>
1086
1087 <div class="feedback-container">
1088 <div class="feedback">Loading...</div>
1089 </div>
1090
1091 <script type="text/template" id="address-row-template">
1092 <tr>
1093 <td class="index"><span></span></td>
1094 <td class="address"><span data-show-qr></span></td>
1095 <td class="pubkey"><span data-show-qr></span></td>
1096 <td class="privkey private-data"><span data-show-qr></span></td>
1097 </tr>
1098 </script>
1099 <script src="js/jquery-3.2.1.js"></script>
1100 <script src="js/bootstrap.js"></script>
1101 <script src="js/bip39-libs.js"></script>
1102 <script src="js/bitcoinjs-extensions.js"></script>
1103 <script src="js/segwit-parameters.js"></script>
1104 <script src="js/ripple-util.js"></script>
1105 <script src="js/jingtum-util.js"></script>
1106 <script src="js/casinocoin-util.js"></script>
1107 <script src="js/cosmos-util.js"></script>
1108 <script src="js/eos-util.js"></script>
1109 <script src="js/fio-util.js"></script>
1110 <script src="js/sjcl-bip39.js"></script>
1111 <script src="js/wordlist_english.js"></script>
1112 <script src="js/wordlist_japanese.js"></script>
1113 <script src="js/wordlist_spanish.js"></script>
1114 <script src="js/wordlist_chinese_simplified.js"></script>
1115 <script src="js/wordlist_chinese_traditional.js"></script>
1116 <script src="js/wordlist_french.js"></script>
1117 <script src="js/wordlist_italian.js"></script>
1118 <script src="js/wordlist_korean.js"></script>
1119 <script src="js/wordlist_czech.js"></script>
1120 <script src="js/wordlist_portuguese.js"></script>
1121 <script src="js/jsbip39.js"></script>
1122 <script src="js/entropy.js"></script>
1123 <script src="js/index.js"></script>
1124 </body>
1125 </html>