<!doctype html> <html lang="en"> <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</title> <!--CSS--> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-beta/css/bootstrap.min.css"/> <link href="css/stylesheet.css" rel="stylesheet" type="text/css" media="all"/> <!--Fonts--> <link href='https://fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='text/css'> <link href='https://fonts.googleapis.com/css?family=Lato:100,300,400,700,900,100italic,300italic,400italic,700italic,900italic' rel='stylesheet' type='text/css'> </head> <body> <div class="container" id="app"> <div class="header text-center"> <h1>VANITY-ETH</h1> <p>Vanity ETH address generator</p> </div> <div class="row"> <div class="col-md-12"> <div class="panel description"> <p> Vanity-ETH is a browser-based tool to generate vanity Ethereum addresses. </p> <h4>Usage</h4> <p> Enter the prefix of your choice below, then click 'generate' to start.<br> Ethereum addresses are hexadecimal, which means your prefix can only contain numbers and letters from A to F.<br> You can increase the number of threads allocated to address generation to be faster, or decrease it if you computer struggles.<br> </p> <h4>How it works</h4> <p> You browser is going to generate a ton of random addresses until one of them starts with your prefix.<br> Everything is computed by your browser, so you should notice a better speed on a powerful computer.<br> </p> <h4>Security</h4> <p> As explained above, everything is computed in your browser. Nothing ever leaves your machine, or even your browser tab.<br> Once the page is loaded, you can turn off your internet connection and everything will work perfectly fine.<br> Vanity-ETH uses a cryptographically secure pseudorandom number generator (CSPRNG) to generate Ethereum addresses. </p> </div> </div> </div> <div v-if="error" class="row" v-cloak> <div class="col-md-12"> <div class="panel error"> <p v-if="error === 'local_workers_forbidden'"> Your browser disallows multi-thread computation when run from a local file.<br> Please use the online version at <a href="https://git.io/veth">git.io/veth</a>, or use a different browser. </p> <p v-else-if="error === 'workers_unsupported'"> Your browser does not support multi-thread computation.<br> Please use a different browser. </p> <p v-else v-html="error.replace('\n', '<br>')"></p> </div> </div> </div> <div class="row"> <div class="col-md-6"> <div class="panel form"> <form :class="{error: inputError}"> <div class="error-text">Numbers and letters from A to F only</div> <input type="text" placeholder="Prefix" v-model="input.prefix" :disabled="running"> <div class="check"> <label class="checkbox"> <input type="checkbox" name="checkbox" checked="" v-model="input.checksum" :disabled="running"> <i class="left"> </i> Case-sensitive </label> </div> <div class="threads"> <input type="button" class="square-btn" value="-" @click="threads--" :disabled="running || threads <= 1"> <input type="button" class="square-btn arrow" value="+" @click="threads++" :disabled="running"> <h4 v-text="threads"></h4> <span v-cloak>threads</span> <span v-if="threads === cores" v-cloak>(recommended)</span> </div> <div class="row"> <div class="col-lg-6 col-sm-12"> <input type="button" value="Generate" @click="startGen" :disabled="running || inputError || error"> </div> <div class="col-lg-6 col-sm-12"> <input type="button" value="Stop" @click="stopGen" :disabled="!running"> </div> </div> </form> </div> </div> <div class="col-md-6"> <div class="panel statistics"> <div>Difficulty: <span class="output" v-text="difficulty">1</span></div> <div>Generated: <span class="output" v-text="count + (count === 1 ? ' address' : ' addresses')">0 addresses</span></div> <div>Speed: <span class="output" v-text="speed">0 addr/s</span></div> <div>Status: <span class="output" v-text="status">Waiting</span></div> <!--Probability:--> <div class="probability"> <div class="probability-bar" :style="'width:' + probability + '%'"></div> </div> <div class="percentage"> <h5 v-text="probability + '%'">0%</h5> <div>Probability</div> </div> </div> </div> </div> <div class="row"> <div class="col-md-12"> <div class="panel result"> <div>Address: <span class="output" v-text="result.address"></span></div> <div>Private key: <span class="output" v-text="result.privateKey"></span></div> </div> </div> </div> </div> <!--JS--> <script src="https://unpkg.com/vue/dist/vue.min.js"></script> <script src="js/index.js" type="text/javascript"></script> </body> </html>