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