vanity-eth/index.html
Boris Kubiak 60a8ed7af2 Fix build
2020-10-14 17:33:38 +02:00

200 lines
No EOL
14 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en_US">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Vanity ETH | Ethereum vanity address generator</title>
<meta property="og:title" content="Vanity ETH">
<meta property="og:locale" content="en_US">
<meta name="description" content="Vanity-ETH is an open source generator using your web browser to generate Ethereum
vanity addresses. You can get a custom ETH vanity address right now without the need to install any software.
Vanity-ETH provides an encrypted keystore compatible with MyEtherWallet, MetaMask, Mist, and geth.">
<meta property="og:description" content="Vanity-ETH is an open source generator using your web browser to generate Ethereum
vanity addresses. You can get a custom ETH vanity address right now without the need to install any software.
Vanity-ETH provides an encrypted keystore compatible with MyEtherWallet, MetaMask, Mist, and geth.">
<link rel="canonical" href="https://vanity-eth.tk/">
<meta property="og:url" content="https://vanity-eth.tk/">
<meta property="og:site_name" content="Vanity ETH">
<meta name="google-site-verification" content="DFWJVWz9IRrh-wjBxn0Y8ith5FTqMeJTSUtuJ595BEs">
<link rel="stylesheet" href="dist/style.css">
<link rel="icon" type="image/x-icon" href="dist/favicon.ico">
<script async="" defer="" data-domain="vanity-eth.tk" src="https://metrics.vanity-eth.tk/js/plausible.js"></script>
</head>
<body>
<div id="app" class="remodal-bg prerender remodal-is-closed">
<div id="content" class="container">
<div data-v-105bd278>
<h1 data-v-105bd278>VANITY-ETH</h1>
<p data-v-105bd278>ETH vanity address generator</p>
</div>
<div class="row">
<div class="col-md-12">
<div data-v-e4a11f84 class="panel">
<p data-v-e4a11f84>
Vanity-ETH is an open source tool using your web browser to generate Ethereum vanity addresses.<br data-v-e4a11f84>
Enter a short prefix/suffix of your choice, and click generate to start.
</p>
<div data-v-e4a11f84 class="shortcut"><button data-v-e4a11f84 type="button" class="button-large">Start now</button></div>
<h2 data-v-e4a11f84>What's a vanity address?</h2>
<p data-v-e4a11f84>
A vanity address is an address which part of it is chosen by yourself, making it look less random.<br data-v-e4a11f84>
Examples: <span data-v-e4a11f84 class="monospace">0xc0ffee254729296a45a3885639AC7E10F9d54979</span>, or
<span data-v-e4a11f84 class="monospace">0x999999cf1046e68e36E1aA2E0E07105eDDD1f08E</span></p>
<h2 data-v-e4a11f84>How it works</h2>
<p data-v-e4a11f84>
Enter the prefix/suffix of your choice, and click generate to start. Your browser will generate lots of random
addresses until one matches your input.<br data-v-e4a11f84>
Once an address is found, you can reveal the private key, or click the 'save' button to download
a password-encrypted keystore file.<br data-v-e4a11f84>
You can increase the number of working threads to reach higher speeds, or decrease it if you computer
struggles.<br data-v-e4a11f84></p>
<h2 data-v-e4a11f84>Security</h2>
<p data-v-e4a11f84>
As explained above, everything is computed only in your browser. Nothing ever leaves your machine, or even
your browser tab. There is no database, no server-side code. Everything vanishes when you close your tab.<br data-v-e4a11f84><br data-v-e4a11f84> <b data-v-e4a11f84>Vanity-ETH cannot and will never store your private key</b>, and if you don't trust it, you have 3 ways to ensure
your key remains private:<br data-v-e4a11f84>
&nbsp;-&nbsp;Once the web page is loaded, you can turn off the internet and continue playing, it will work seamlessly<br data-v-e4a11f84>
&nbsp;-&nbsp;You can also download the latest build of Vanity-ETH
<a data-v-e4a11f84 href="https://git.io/veth-dl" target="_blank">here</a> and use it on a completely offline computer<br data-v-e4a11f84>
&nbsp;-&nbsp;The code is 100% open source and available on
<a data-v-e4a11f84 href="https://github.com/bokub/vanity-eth" target="_blank">Github</a>. You can review it as much as you want before using it<br data-v-e4a11f84> <br data-v-e4a11f84>
Vanity-ETH uses a cryptographically secure pseudorandom number generator (CSPRNG) to generate
Ethereum addresses.<br data-v-e4a11f84>
The keystore file is encrypted with a AES-128-CTR cipher using the BKDF2-SHA256 derivation function with 65536 hashing rounds.
</p>
<h2 data-v-e4a11f84>Performance</h2>
<p data-v-e4a11f84>
For some reason, the performance of Vanity-ETH can vary a lot from a browser to another.
Currently, Chrome provides the best results.<br data-v-e4a11f84>
Using Vanity-ETH on your phone or tablet will work, but don't expect to reach the speed of a good old computer.
</p>
<h2 data-v-e4a11f84>Compatibility</h2>
<p data-v-e4a11f84>
Any address generated with Vanity-ETH is ERC-20 compatible, which means you can use it for an ICO, an
airdrop, or just to withdraw your funds from an exchange.<br data-v-e4a11f84>
The keystore file is 100% compatible with MyEtherWallet, MetaMask, Mist, and geth.
</p>
</div>
</div>
</div>
<!---->
<div class="row">
<div class="col-md-6">
<div data-v-9eac7f80 id="input-panel" class="panel">
<form data-v-9eac7f80 class="">
<div data-v-9eac7f80 class="error-text">Numbers and letters from A to F only</div> <input data-v-9eac7f80 type="text" id="input" placeholder="Prefix" class="text-input-large">
<div data-v-9eac7f80 class="row justify-content-center hide-render">
<div data-v-9eac7f80 class="spinner">
<div data-v-9eac7f80></div>
<div data-v-9eac7f80></div>
<div data-v-9eac7f80></div>
<div data-v-9eac7f80></div>
</div>
</div>
<div data-v-9eac7f80 class="example hide-prerender">
E.g.&nbsp;
<span data-v-9eac7f80 class="monospace">
0x<b data-v-9eac7f80></b><span data-v-9eac7f80>f5bB3Ec3CBAe7A838B289CAE55DEd5C0daD22293</span>
<!----></span></div>
<div data-v-9eac7f80 class="row controls hide-prerender">
<div data-v-9eac7f80 class="col-12 col-sm-6 col-md-12 col-lg-6"><label data-v-9eac7f80 class="checkbox"><input data-v-9eac7f80 type="checkbox" name="checkbox" checked="checked"> <i data-v-9eac7f80 class="left"></i>
Case-sensitive
</label></div>
<div data-v-9eac7f80 class="col-12 col-sm-6 col-md-12 col-lg-6"><span data-v-9eac7f80>Prefix</span> <label data-v-9eac7f80 class="switch"><input data-v-9eac7f80 type="checkbox"> <span data-v-9eac7f80 class="slider"></span></label> <span data-v-9eac7f80>Suffix</span></div>
</div>
<div data-v-9eac7f80 class="threads hide-prerender"><input data-v-9eac7f80 type="button" value="-" class="square-btn button-large"> <input data-v-9eac7f80 type="button" value="+" class="square-btn arrow button-large">
<h4 data-v-9eac7f80>4</h4> <span data-v-9eac7f80>threads</span> <span data-v-9eac7f80>(recommended)</span>
</div>
<div data-v-9eac7f80 class="row">
<div data-v-9eac7f80 class="col-lg-6 col-sm-12"><input data-v-9eac7f80 type="button" value="Generate" disabled="disabled" class="button-large hide-render"> <input data-v-9eac7f80 type="button" value="Generate" class="button-large hide-prerender"></div>
<div data-v-9eac7f80 class="col-lg-6 col-sm-12"><input data-v-9eac7f80 type="button" value="Stop" disabled="disabled" class="button-large"></div>
</div>
</form>
</div>
</div>
<div class="col-md-6">
<div data-v-3e599529 class="panel">
<div data-v-3e599529>Difficulty: <span data-v-3e599529 class="output">1</span></div>
<div data-v-3e599529>Generated: <span data-v-3e599529 class="output">0 addresses</span></div>
<div data-v-3e599529>50% probability: <span data-v-3e599529 class="output">0 addresses</span></div>
<div data-v-3e599529>Speed: <span data-v-3e599529 class="output">0 addr/s</span></div>
<div data-v-3e599529>Status: <span data-v-3e599529 class="output">Waiting</span></div>
<div data-v-3e599529 class="probability">
<div data-v-3e599529 class="probability-bar" style="width: 0%;"></div>
</div>
<div data-v-3e599529 class="percentage">
<h4 data-v-3e599529>0%</h4>
<div data-v-3e599529>Probability</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div data-v-043d611f class="panel result">
<div data-v-043d611f class="row">
<div data-v-043d611f id="identicon" class="float-left"></div>
<div data-v-043d611f class="col">
<div data-v-043d611f>Address: <span data-v-043d611f class="output"></span></div>
<div data-v-043d611f>Private key:
<!---->
</div>
</div>
<div data-v-043d611f class="col-lg-2 col-12"><button data-v-043d611f data-remodal-target="modal" disabled="disabled" class="save button-large"><i data-v-043d611f class="icon-lock"></i>&nbsp;&nbsp;&nbsp;Save
</button></div>
</div>
</div>
</div>
</div>
</div>
<footer data-v-8ff20304>
<div data-v-8ff20304 class="container">
<div data-v-8ff20304 class="row">
<div data-v-8ff20304 class="col-12 col-lg-6 address">
Tips:
<a data-v-8ff20304 href="https://etherscan.io/address/0xAceBabe64807cb045505b268ef253D8fC2FeF5Bc#tokentxns" target="_blank">0xAceBabe64807cb045505b268ef253D8fC2FeF5Bc</a></div>
<div data-v-8ff20304 class="col-12 col-lg-6 links"><a data-v-8ff20304 href="https://etherdonation.com/d?to=0xAceBabe64807cb045505b268ef253D8fC2FeF5Bc" target="_blank"><i data-v-8ff20304 class="icon-ethereum"></i>&nbsp;&nbsp;&nbsp;Donate
</a> <a data-v-8ff20304 href="https://github.com/bokub/vanity-eth" target="_blank"><i data-v-8ff20304 class="icon-star"></i>&nbsp;&nbsp;&nbsp;Star&nbsp;me
</a> <a data-v-8ff20304 href="https://github.com/bokub/vanity-eth/wiki/download-Vanity-ETH" target="_blank"><i data-v-8ff20304 class="icon-download"></i>&nbsp;&nbsp;&nbsp;Download
</a></div>
</div>
</div>
</footer> <a data-v-887f6dee href="https://github.com/bokub/vanity-eth" target="_blank" aria-label="View source on Github"><svg data-v-887f6dee width="80" height="80" viewBox="0 0 250 250" aria-hidden="true" style="fill: rgb(21, 21, 19); color: rgb(255, 255, 255); position: absolute; top: 0px; border: 0px; right: 0px;">
<defs data-v-887f6dee>
<mask data-v-887f6dee id="octomask">
<path data-v-887f6dee fill="white" d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path>
<path data-v-887f6dee fill="black" d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" class="octo-arm" style="transform-origin: 130px 106px;"></path>
<path data-v-887f6dee d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="black" class="octo-body"></path>
</mask>
</defs>
<rect data-v-887f6dee fill="white" width="100%" height="100%" mask="url(#octomask)" class="filler"></rect>
</svg></a>
</div>
<script src="dist/index.js"></script>
<div class="remodal-overlay remodal-is-closed" style="display: none;"></div>
<div class="remodal-wrapper remodal-is-closed" style="display: none;">
</div>
<div class="remodal-wrapper remodal-is-closed" style="display: none;">
<div data-remodal-id="modal" data-remodal-options="hashTracking: false" class="remodal remodal-is-initialized remodal-is-closed" tabindex="-1"><button data-remodal-action="close" class="remodal-close"></button>
<h3 class="title">Create encrypted keystore file (UTC / JSON)</h3>
<form>
<div><input type="text" autocomplete="username" class="hidden"> <input type="password" autocomplete="new-password" placeholder="Password" class="text-input-large"></div>
<div><button type="button" disabled="disabled" class="button-large">Download</button></div>
</form>
</div>
</div>
<div class="remodal-wrapper remodal-is-closed" style="display: none;">
<div data-remodal-id="modal" data-remodal-options="hashTracking: false" class="remodal remodal-is-initialized remodal-is-closed" tabindex="-1"><button data-remodal-action="close" class="remodal-close"></button>
<h3 class="title">Create encrypted keystore file (UTC / JSON)</h3>
<form>
<div><input type="text" autocomplete="username" class="hidden"> <input type="password" autocomplete="new-password" placeholder="Password" class="text-input-large"></div>
<div><button type="button" disabled="disabled" class="button-large">Download</button></div>
</form>
</div>
</div>
</body>
</html>