This generator needs JavaScript (runs locally in your browser).
This generator runs entirely in your browser. No data is sent to any server. For real funds, the rule is: save the page offline (Ctrl+S). Disconnect the network, generate the wallet, store keys securely (hardware wallet, paper backup). No warranty, no liability. Code is open source — review yourself or commission an audit.
Entropy: 256 bits · Source: window.crypto.getRandomValues() (CSPRNG)
Advanced: BIP39 passphrase (optional, “25th word”)
Changes all addresses (all chains). There is no “wrong” — but without the exact passphrase the wallets are lost forever. Cleared on reset, never stored.
Note: Seed, private keys, and addresses are only calculated client-side. Nothing leaves your device. For larger amounts use offline and prefer a hardware wallet.
How it works — in 3 steps
A wallet is not an account with a provider. It is pure mathematics: randomness becomes a keychain, the keychain becomes addresses. That is exactly what this tool makes transparent — the same pipeline Ledger, MetaMask & Co. use.
Entropy → Seed Phrase
window.crypto.getRandomValues() generates 256 bits of true randomness (CSPRNG). BIP39 turns them into 24 English words — your seed phrase. Whoever holds it holds everything.
Seed → Master Key
PBKDF2 (2,048 rounds) turns the words into a 512-bit seed. From it, BIP32 derives hierarchically any number of keys — deterministically: same words, same wallets.
Path → Address
BIP44 defines one path per chain (see table). Bitcoin uses secp256k1 + Bech32 (bc1…), Ethereum secp256k1 + hex (0x…), Solana ed25519 + Base58. That is why the same seed imports everywhere.
Derivation paths of this generator
These paths follow standard wallets — import the seed generated here into Sparrow, MetaMask, or Phantom and you will get the same first addresses.
| Chain | Path | Format | Curve |
|---|---|---|---|
| Bitcoin | m/84'/0'/0'/0/0 | Native SegWit (bc1…) | secp256k1 |
| Ethereum | m/44'/60'/0'/0/0 | Hex (0x…) | secp256k1 |
| Solana | m/44'/501'/0'/0' | Base58 | ed25519 |
Deep dive: How a wallet actually works — seeds, derivation paths, and 5 self-custody mistakes. And the bridge to AI agents: What actually happens when AI agents start paying for themselves.
5 mistakes that cost money
- Storing the seed digitally. Screenshot, cloud note, email to yourself — all drained a thousand times over. Paper or steel only, in two separate locations.
- Generating online for real amounts. This tool is for learning and small amounts. For savings: save the page via Ctrl+S, disconnect the network, generate in a fresh browser profile — or use a hardware wallet right away. Offline saving is unreliable on smartphones — use a desktop browser for that.
- Sharing the private key instead of the address. Anyone may see the address (QR code above). The private key and seed must never be seen by anyone — no support, no "verification", no airdrop.
- No test transaction. Send a small amount first, verify receipt, test the backup with a real recovery — then move the rest.
- One backup, no plan. What happens in case of fire, loss, or inheritance? Second medium, clear instructions for family, multisig for larger amounts.
Frequently asked questions
Does my private key leave the browser?
Seed phrase, private key, address — what is what?
Can I use the seed in other wallets?
Suitable for real funds?
What is the optional passphrase for?
What is the zpub (watch-only) for?
Web3 plans? Talk to someone who does both: finance & engineering.
In 2015 I wrote about Bitcoin and monetary theory (Geld 2.0), advised on financings in investment banking, and today build AI and Web3 systems. For custody concepts, payment flows (e.g. agent payments via x402), or a technical review.
Libraries (self-hosted bundle): @scure/bip39, @scure/bip32, ethers, @noble/hashes, @noble/curves, bs58. Source: GitHub.