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