You are online. For maximum security is better that you clone this page and generate the address in a computer disconnected from the internet.
Javascript is disabled. MindWallet needs javascript to work
MindWallet is a deterministic cryptocurrency address generator, it is a fork of MemWallet which itself is inspired by WarpWallet, but it uses the Argon2 hashing function instead of scrypt. You never have to save or store your private key anywhere. Just pick a really good password - many random words, for example - and never use it for anything else.
Given the same Passphrase and Salt, MindWallet will always generate the same address and private key, so you only need to remember your password to access your funds.
For more information on why this is safer than a regular brainwallet, see WarpWallet's help, MindWallet uses MemWallet's re-implementation of WarpWallet, but with a different hash function algorithm. MemWallet and MindWallet use the same algorithm, so MemWallet and MindWallet will generate the same Bitcoin address for a given Passphrase and salt. However, because MindWallet uses a different algorithm, it will generate a different Bitcoin address. MindWallet comes with a golang implementation largely based on MemWallet so you can double check that the JS version works, it is also much faster to run. Have Fun!
Why a different algorithm? While scrypt is still pretty secure, there are known issues a password hashing competition was held to fix these known issues and the declared winner was argon2 which has been out for more than 4 years now and has been implemented in most languages including the golang standard crypto library used here. The JS version used here is the C version compiled to asm.js and wasm.js thanks to @antelle.
The algorithm behind MindWallet:b | = | 1 for Bitcoin, 2 for Litecoin, 3 for Ethereum and 4 for Monero |
seed1 | = | argon2(key=(passphrase||b), salt=(salt||b), N=218, r=8, p=1, dkLen=32) |
seed2 | = | pbkdf2(key=(passphrase||(b+1)), salt=(salt||(b+1)), c=216, dkLen=32, prf=SHA256) |
wallet | = | generate_wallet(seed=(seed1 ⊕ seed2)) |
MindWallet was made with ♥ By Patrick Aljord shamelessly re-using awesome code by David Bengoa
Source code is in Github, and so is a go implementation of the same algorithm.