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