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