Generate Bitcoin keypairs for testing, development, or educational purposes. All computation happens in your browser. Save this HTML file to use offline.
Random Keypair
Generate a fresh random Bitcoin keypair using window.crypto.getRandomValues.
Reproducible from Passphrase
Same passphrase + salt = same keys every time (great for testing). Uses PBKDF2-SHA512, 100000 rounds.
From Mnemonic (12 or 24 words)
BIP39 standard. Derives a BIP84 native-segwit address at m/84'/0'/0'/0/0.
Paste your own words or use the buttons above. Ctrl+Enter to derive.
Recovery — Try Old Words
Paste 12 or 24 words you remember. Shows the first 5 addresses at each common derivation path so you can check a block explorer (mempool.space, blockstream.info) for any history. 100% offline — words never leave the page.
Validates BIP39 checksum first. If invalid, your old wallet wasn't BIP39 — see btcrecover.
Recovery Results
Paste any address into a block explorer to check for history. If a path shows funds, restore the seed in Electrum / Sparrow and set that derivation path. WIFs are shown so you can also sweep individual addresses directly.
If no path has history, your old wallet probably used a non-BIP39 seed format. Try btcrecover (github.com/3rdIteration/btcrecover) — handles typos and several legacy formats.
Generated Keypair
MNEMONIC (BIP39)
⚠ Write this down and keep it safe.
PRIVATE KEY (WIF)
🔒 Keep this secret — never share it.
PUBLIC ADDRESS (bech32, P2WPKH)
REPRODUCIBILITY METADATA
All keys generated locally — no network requests. Save this HTML file to keep using it offline.
Sign Message — Prove You Own an Address
Sign text with a private key (WIF). The output is BIP137-style — Electrum, Sparrow, and bitcoin-cli verifymessage can all verify it. Works for both legacy "1..." and bech32 "bc1..." addresses.
Signed Proof
ADDRESS (computed from WIF + type)
SIGNATURE (base64, 65-byte BIP137)
PROOF JSON (importable into Verify, server-announce, etc.)
External verify: paste the address, message and signature into Electrum (Tools → Sign/verify message), Sparrow (Tools → Verify message), or bitcoin-cli verifymessage <addr> <sig> <msg>.
Verify Proof
Check that a signature was produced by the holder of a given address. Works for proofs from this tool, Electrum, Sparrow, or bitcoin-cli signmessage.