<meta content="width=device-width, initial-scale=1.0" name="viewport" />
<meta content="bitcoin mnemonic converter" name="description" />
<meta content="Ian Coleman" name="author" />
+ <link type="image/x-icon" rel="icon" href="data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAAF0lEQVRIx2NgGAWjYBSMglEwCkbBSAcACBAAAeaR9cIAAAAASUVORK5CYII=" />
<style>
body {
.qr-image {
margin: 5px;
}
- .qr-hint {
+ .qr-hint,
+ .qr-warning {
padding: 2px;
+ max-width: 150px;
}
.more-info {
cursor: help;
border-bottom: 1px dashed #000;
text-decoration: none;
}
+ .version {
+ position: absolute;
+ top: 5px;
+ right: 5px;
+ }
</style>
</head>
<body>
<div class="container">
<h1 class="text-center">Mnemonic Code Converter</h1>
+ <p class="version">v0.1.1</p>
<hr>
<div class="row">
<div class="col-md-12">
<div class="col-sm-7">
<textarea id="entropy" rows="2" class="entropy form-control" placeholder="Accepts binary, base 6, 6-sided dice, base 10, hexadecimal, cards" data-translate-placeholder></textarea>
<div class="row">
- <label class="col-sm-3 control-label" data-translate>Strength</label>
- <div class="strength col-sm-3 form-control-static"></div>
+ <label class="col-sm-3 control-label" data-translate><span class="more-info" data-translate-title title="Based on estimates from zxcvbn using Filtered Entropy">Time To Crack</span></label>
+ <div class="crack-time col-sm-3 form-control-static"></div>
<label class="col-sm-3 control-label" data-translate>Event Count</label>
<div class="event-count col-sm-3 form-control-static"></div>
</div>
<div class="bits-per-event col-sm-3 form-control-static"></div>
</div>
<div class="row">
- <label class="col-sm-3 control-label" data-translate>Word Count</label>
+ <label class="col-sm-3 control-label" data-translate>Raw Entropy Words</label>
<div class="word-count col-sm-3 form-control-static"></div>
<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>
<div class="bits col-sm-3 form-control-static"></div>
<label class="col-sm-3 control-label" data-translate>Mnemonic Length</label>
<div class="col-sm-9">
<select class="mnemonic-length form-control">
- <option value="raw" data-translate>From entropy length (3 words per 32 bits)</option>
+ <option value="raw" selected data-translate>Use Raw Entropy (3 words per 32 bits)</option>
<option value="12">12 <span data-translate>Words</span></option>
- <option value="15" selected>15 <span data-translate>Words</option>
+ <option value="15">15 <span data-translate>Words</option>
<option value="18">18 <span data-translate>Words</span></option>
<option value="21">21 <span data-translate>Words</span></option>
<option value="24">24 <span data-translate>Words</span></option>
<a href="https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target="_blank">BIP32 spec</a>
</p>
</div>
+ <div class="form-group">
+ <label for="bip32-client" class="col-sm-2 control-label" data-translate>Client</label>
+ <div class="col-sm-10">
+ <select id="bip32-client" class="client form-control">
+ <option value="custom">Custom derivation path</option>
+ <!-- populated by javascript -->
+ </select>
+ </div>
+ </div>
<div class="form-group">
<label for="bip32-path" class="col-sm-2 control-label" data-translate>BIP32 Derivation Path</label>
<div class="col-sm-10">
</p>
</div>
</div>
+ <div class="form-group">
+ <label for="core-path" class="col-sm-2 control-label" data-translate>Multibit</label>
+ <div class="col-sm-10">
+ <p class="form-control no-border">
+ <span data-translate-html>Use path <code>m/0'/0</code>.</span>
+ </p>
+ <p class="form-control no-border">
+ <span data-translate>For more info see</span>
+ <a href="https://multibit.org/" target="_blank">MultiBit HD</a>
+ </p>
+ </div>
+ </div>
<div class="form-group">
<label class="col-sm-2 control-label" data-translate>Block Explorers</label>
<div class="col-sm-10">
random enough for the needs of this tool.
</span>
</p>
+ <p>
+ <strong><span data-translate>Do not store entropy.</span></strong>
+ </p>
+ <p>
+ <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>
+ <span data-translate>Instead of storing entropy, store the mnemonic generated from the entropy.</span>
+ <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>
+ </p>
<p>
<span data-translate-html>
The random mnemonic generator on this page uses a
</div>
<div class="qr-container hidden">
- <div class="qr-hint bg-primary" data-translate>Click field to hide QR</div>
- <div class="qr-hint bg-primary hidden" data-translate>Click field to show QR</div>
- <div class="qr-image"></div>
+ <div class="qr-hint bg-primary hidden" data-translate>Click field to hide QR</div>
+ <div class="qr-hint bg-primary" data-translate>Click field to show QR</div>
+ <div class="qr-hider hidden">
+ <div class="qr-image"></div>
+ <div class="qr-warning bg-primary" data-translate>Caution: Scanner may keep history</div>
+ </div>
</div>
<div class="feedback-container">
<td class="privkey"><span data-show-qr></span></td>
</tr>
</script>
+ <script src="js/polyfill.es6.js"></script>
+ <script src="js/basex.js"></script>
+ <script src="js/unorm.js"></script>
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/levenshtein.js"></script>
<script src="js/jquery.qrcode.min.js"></script>
<script src="js/bitcoinjs-1-5-7.js"></script>
<script src="js/bitcoinjs-extensions.js"></script>
+ <script src="js/ethereumjs-util.js"></script>
+ <script src="js/ripple-util.js"></script>
<script src="js/sjcl-bip39.js"></script>
<script src="js/translate.js"></script>
<script src="js/phrases_en.js"></script>