Same mnemonic + different passphrase → completely different wallet. Any string is valid; there is no wrong passphrase, only wrong remembering. If you lose it, you lose the wallet permanently.
Security: This page runs entirely in your browser. No data is ever sent to any server. For production wallets, always generate and sign on a trusted offline (air-gapped) machine.
Off: seeds use the browser CSPRNG. On: roll dice or flip coins and the hash becomes your seed.
Don't know which derivation path to use? Just pick any preset that matches your chain. The path is a template you can customize below. To understand what each path segment does, visit the Learn Paths tab or the Blockchain Guide tab.
How encoding works here: All BIP32 keys via ethers.js (loaded once as UMD). EVM / Tron: ethers Wallet + Keccak-256. Bitcoin-family (0/2/3): pure JS using only ethers primitives - sha256, ripemd160, computePublicKey + inline Bech32 - no bitcoinjs-lib, no CDN class bugs. Solana (501): SLIP-0010 via ed25519-hd-key + TweetNaCl global. Brain Wallet uses crypto.subtle, which requires an HTTPS server (blocks on file://). Use a local server for full functionality.
Brute-forces random secp256k1 keypairs until an address matches your pattern. Runs on the main thread in small batches - UI stays responsive, works 100% offline (no CDN needed).
Difficulty grows exponentially: Each extra hex character takes ~16× longer. A 4-char prefix like 0xcafe averages ~65,000 tries; a 6-char prefix averages ~16 million. The key is cryptographically random - as secure as any other key.
Brain wallets are always unsafe for real money. Attackers precompute hashes of billions of phrases: quotes, lyrics, passwords, Bible verses, Wikipedia sentences. Funds on brain wallets are routinely stolen within hours. Even a "strong" passphrase has far less entropy than 12 random BIP39 words.
Use the Derive Keys tab for real wallets. This tab exists solely to demonstrate cryptographic concepts.
Adds another layer: the mnemonic is always the same SHA-256 output, but this extra word changes every derived key.
This is a single static HTML page with no build step. Libraries load from CDN on first visit, then everything runs in your browser. Mnemonics never leave the device unless you copy them. The Derive tab turns a BIP39 phrase + path into addresses for Ethereum, Bitcoin (Legacy/SegWit/Native/Taproot), Solana, Tron, Litecoin, Dogecoin, Cosmos, Sui, and Aptos. Vanity searches for EVM address prefixes. Brain wallet demonstrates why human-chosen entropy is unsafe. The Derive tab also has a Physical entropy lab (roll dice / flip coins to create a seed without software RNG, enable Expert mode to see it), a paper wallet printer, and an HD tree inspector on the Learn Paths tab. The Experiments tab has a Mnemonic diagnostics panel (find typos or the lost last word) and a Path recovery scanner (match a known address to its derivation path). The current seed also shows in the sticky bar above the tabs. The entropy lab, brain wallet, and Solana/Sui/Aptos derivation require an HTTPS server (not available on file://).
Stack: ethers v5 (BIP32 + UTXO crypto); ed25519-hd-key + tweetnacl (Solana, Sui, Aptos); qrcode; browser crypto.subtle (SHA-256 for the entropy lab + brain wallet, SHA3-256 for Aptos). UTXO chains use zero extra libraries - pure inline Bech32 + ethers primitives. Theme stored in localStorage. Download button saves the full page for offline or air-gapped use.
Each row is a common convention. Your wallet might use a different path for recovery - always check its docs.
| Blockchain | Derivation path | Coin type | Notes |
|---|---|---|---|
| Ethereum | m/44'/60'/0'/0/0 | 60 | MetaMask, Trust Wallet, most EVM “account 0” |
| Bitcoin (Native SegWit) | m/84'/0'/0'/0/0 | 0 | bc1q… addresses (BIP84) |
| Bitcoin (Wrapped SegWit) | m/49'/0'/0'/0/0 | 0 | 3… nested SegWit (BIP49) |
| Bitcoin (Legacy) | m/44'/0'/0'/0/0 | 0 | 1… P2PKH (BIP44) |
| Bitcoin (Taproot) | m/86'/0'/0'/0/0 | 0 | bc1p… (BIP86) - experimental on some altcoins |
| Solana | m/44'/501'/0'/0' | 501 | Phantom / Solflare-style; Ed25519 not secp256k1 |
| Polygon | m/44'/60'/0'/0/0 | 60 | Same as Ethereum (EVM) |
| BSC | m/44'/60'/0'/0/0 | 60 | Same as Ethereum (EVM) |
| Avalanche C-Chain | m/44'/60'/0'/0/0 | 60 | Same as Ethereum (EVM) |
| Tron | m/44'/195'/0'/0/0 | 195 | TronLink-style; secp256k1, Base58 T… address |
| Arbitrum | m/44'/60'/0'/0/0 | 60 | Same as Ethereum (EVM) |
| Optimism | m/44'/60'/0'/0/0 | 60 | Same as Ethereum (EVM) |
| Litecoin | m/44'/2'/0'/0/0 | 2 | Legacy; use purpose 84/49 for SegWit-style LTC |
| Dogecoin | m/44'/3'/0'/0/0 | 3 | Legacy-style; SegWit less universal on DOGE |
| Bitcoin Cash | m/44'/145'/0'/0/0 | 145 | Not modeled in this tool - would need BCH params |
| Cardano | m/1852'/1815'/0'/0/0 | 1815 | CIP-1852; different from BIP44-only wallets |
| Cosmos | m/44'/118'/0'/0/0 | 118 | secp256k1 + Bech32 with cosmos HRP (Keplr-style) |
| Sui | m/44'/784'/0'/0' | 784 | Ed25519 (SLIP-0010); address = 0x + 32-byte pubkey hex |
| Aptos | m/44'/637'/0'/0' | 637 | Ed25519 (SLIP-0010); address = 0x + SHA3-256(pubkey) |
coin_type = 60 - the same key yields the same 0x… address on Ethereum, Polygon, BSC, etc. (you still pay gas on the chain you use).cosmos HRP over a raw 20-byte hash160 - not a Bitcoin-style witness version.Walk through the key stages of HD wallet derivation. Each step builds on the previous one.
A mnemonic seed phrase is a human-readable encoding of random entropy. It is the root of your entire wallet tree.
Entropy (128-256 bits)
|
v
BIP39 Checksum (4-8 bits)
|
v
Split into 11-bit chunks - each maps to a word from the 2048-word list
|
v
Mnemonic phrase (12 or 24 words)
|
v
PBKDF2(mnemonic, passphrase, 2048 rounds) - 512-bit seed
Bring your own randomness: By default this tool uses the browser's CSPRNG. If you distrust software RNG, open the Physical entropy lab on the Derive tab (enable Expert mode): roll dice or flip coins, and the SHA-256 hash of your rolls becomes the entropy instead.
A path is a route through a tree of keys. The usual BIP44 layout:
Solana in this tool: m / purpose' / 501' / account' / index' - the extra hardened level replaces change / index so Phantom first account matches account=0, index=0 in the form.
| Level | Symbol | Meaning | Example values |
|---|---|---|---|
| Master | m | Root of the HD tree | Always m |
| Purpose | 44' | Which BIP family | 44, 49, 84, 86... |
| Coin type | 60' | Registered coin index (SLIP-0044) | 0 BTC, 60 ETH, 501 SOL... |
| Account | 0' | Separate accounts | 0, 1, 2... |
| Change | 0 | External (0) vs internal change (1) for UTXO | 0 or 1 - ignored for Solana in this UI |
| Address index | 0 | Nth address in that chain | 0, 1, 2... - for SOL, this field is the last hardened index |
The apostrophe (') means hardened: child keys require the parent private key, not just an xpub.
| Type | Security / UX | Typical use |
|---|---|---|
Hardened (') | Higher isolation; cannot derive from watch-only parent | purpose, coin_type, account; and Solana last segment |
| Normal | Derivable from xpub - good for receiving addresses | change + index on Bitcoin-like chains |
Often increments the final address_index (not account):
m/44'/60'/0'/0/0
m/44'/60'/0'/0/1
m/44'/60'/0'/0/2
Bump account for separation:
m/44'/60'/0'/0/0
m/44'/60'/1'/0/0
Because EVM chains use coin type 60, the same path gives the same 0x address on many networks, but balances and contracts differ per chain.
Coin type 195 and path like m/44'/195'/0'/0/0 give a secp256k1 key. The Keccak-256 of the uncompressed public key (same idea as Ethereum) becomes the 20-byte payload, but Tron shows it as a Base58Check string starting with T, not 0x.
Step 1: click Build tree from current seed below (uses the mnemonic from the Derive tab). Step 2: the root and its first branches appear. Click any node to derive its keys; click a branch node again to expand or collapse its children.
No tree yet. Click "Build tree from current seed" above to start.
Click a tree node on the left to see its derived keys, extended key (xprv/xpub), and EVM address here.
Alpha features. These tools are experimental and may change. They use the mnemonic and BIP39 passphrase from the Derive tab (Step 1).
Find typos or the lost last word of an existing mnemonic. Type your mnemonic in the Derive tab Step 1, then use these tools.
Restored a seed in a new wallet and see no balance? Different wallets use different derivation paths. Paste the address you expect, and this scans ~15 common paths to find the match.
Uses the mnemonic and BIP39 passphrase from Step 1 (Derive tab).