Have your mind on your wallet and your wallet on your mind.

MindWallet allows you to store your bitcoin, ethereum, monero or litecoin wallet's private key in your mind easily and securely, the only way to lose your wallet would be to either lose your mind or if someone spends $5 on a wrench to hurt you but this one applies to other wallets as well.

MindWallet is heavily based on the great MemWallet project itself inspired by WarpWallet whose authors are of keybase.io and okcupid fame.

MindWallet makes use of the argon2 hash function to generate your private keys, argon2 is harder to hack than scrypt which is also pretty secure.

To use offline just clone this page.

Email: [?]

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.