Free bip39 generator and bip39 mnemonic generator: create cryptographically secure seed phrases of 12, 15, 18, 21 or 24 words for bitcoin, ethereum and any crypto wallet — plus a mnemonic phrase validator, bip39 checksum validator, official bip39 wordlist and passphrase seed derivation. Everything below runs offline in your browser: zero network requests, zero servers.
⚠️ Read this before you generate anything
For testing & education only. Do not use phrases generated on this page for real funds. A browser on a general-purpose computer is not a safe place to create keys that guard real money.
100% client-side. No server, no database, no analytics on your phrase — nothing you generate or paste ever leaves this browser tab. You can verify this in DevTools → Network (zero requests).
Anyone who asks for your seed phrase is a scammer. No legitimate wallet, support agent or exchange will ever ask for it.
For real wallets, generate your phrase on a hardware wallet or an air-gapped device, and back it up on paper or metal — never in a photo, cloud note or email.
Entropy comes from your browser’s cryptographically secure random number generator (crypto.getRandomValues), then words are picked per the BIP39 spec with a SHA-256 checksum.
Entropy: 128 bitsChecksum: 4 bits
Entropy (hex):
Wordlist integrity: checking…
Seed Phrase Validator (checksum + wordlist check)
Paste any 12–24 word phrase to verify it against the official BIP39 English wordlist and recompute its SHA-256 checksum. Tip: never paste a phrase that guards real funds into any website.
BIP39 Passphrase → 512-bit Seed
Derives the 64-byte seed with PBKDF2-HMAC-SHA512, 2048 rounds (salt “mnemonic” + passphrase) — exactly as wallets do. Computed locally with the WebCrypto API.
Worked Examples: Official BIP39 Test Vectors
These entropy → phrase pairs come straight from the official BIP39 test vectors. Each row is re-verified in your browser on page load
Random entropy. Generate ENT bits of randomness — 128 bits for a 12 word seed phrase, 256 bits for a 24 word seed phrase (160/192/224 bits give 15/18/21 words). This page uses crypto.getRandomValues(), the browser’s CSPRNG.
Checksum. Hash the entropy with SHA-256 and append the first ENT/32 bits (4 bits for 12 words, 8 bits for 24). This is what the bip39 checksum validator above recomputes.
Word mapping. Split the entropy+checksum bit string into 11-bit chunks. Each chunk (0–2047) indexes the official bip39 wordlist of 2048 English words — embedded below and integrity-checked on every page load.
Seed derivation. Optionally, the phrase plus a bip39 passphrase is stretched through PBKDF2-HMAC-SHA512 (2048 rounds) into a 512-bit seed — the actual master secret wallets derive keys from.
Frequently Asked Questions
What is BIP39?
BIP39 (Bitcoin Improvement Proposal 39) is the standard that turns cryptographically secure random entropy into a human-readable mnemonic seed phrase of 12, 15, 18, 21 or 24 words drawn from a fixed 2048-word list. The final word encodes a SHA-256 checksum so wallets can detect typos. The phrase is stretched with PBKDF2 into a 512-bit seed, from which all private keys and addresses are derived deterministically (BIP32/BIP44).
Is it safe to generate a seed phrase in a browser?
For testing and education, yes — this page runs 100% client-side: no server, no network requests, and nothing you type ever leaves your browser. For real funds, no: browsers run on general-purpose devices exposed to malware, malicious extensions and clipboard stealers. Real wallets belong on a hardware wallet or an air-gapped device. Never paste a real seed phrase into any website, including this one.
What is the difference between a seed phrase and a private key?
A seed phrase is the master secret: one phrase deterministically generates an unlimited tree of private keys and addresses (BIP32/BIP44). A private key controls a single address. Lose a private key and you lose one address; lose the seed phrase and you lose the whole wallet. That is why the seed phrase — not individual keys — is what you back up on paper or metal.
Should I use 12 or 24 words for my seed phrase?
12 words encode 128 bits of entropy and 24 words encode 256 bits. Both are far beyond brute force on classical computers — 2^128 operations is physically infeasible. 12-word phrases are the default in most wallets and easier to back up; 24 words give a larger security margin, sometimes chosen for long-term cold storage. The word count does not change how the phrase works, only the entropy strength behind it.
What is a BIP39 passphrase (the “25th word”)?
An optional user-chosen password mixed into the PBKDF2 seed derivation. The same mnemonic with a different passphrase produces a completely different wallet — it also gives plausible deniability, because the no-passphrase wallet still opens and looks valid. Warning: the passphrase is never stored anywhere; forget it or mistype it and the funds are unrecoverable. Back it up with the same care as the phrase itself.
How does the BIP39 checksum work?
Take ENT bits of entropy (128–256). Compute SHA-256 of the entropy and append the first ENT/32 bits as a checksum — 4 bits for a 12-word phrase, 8 bits for 24 words. Split the result into 11-bit groups; each group is an index into the 2048-word list. Because the final word carries checksum bits, a single wrong word is detected with overwhelming probability. The validator above recomputes this checksum for any phrase you paste.
How do I validate an existing seed phrase?
Paste it into the checksum validator above. It checks three things in order: the word count is 12, 15, 18, 21 or 24; every word exists in the official 2048-word English list (with typo suggestions based on unique 4-letter prefixes); and the SHA-256 checksum embedded in the final word is correct. A phrase is reported valid only if all three checks hold.
We use cookies and third-party services (including Google AdSense) to personalize content, analyze traffic, and serve relevant ads. By clicking "Accept", you consent to our use of cookies as described in our Privacy Policy.
Report an issue
2 taps, no typing needed — diagnostics are sent automatically.