Before you begin
Bitcoin Pages provides browser tools that help you create BIP38-protected keys, sign transactions, publish them, and optionally anchor a BIP38 string on-chain. They are not a custodial wallet, exchange, bank, or financial advisor.
- What stays in your browser: passwords, BIP38 keys, WIF, and signing. Generate and Recover can work fully offline after you download the page.
- What uses the network: Spend / Sign and Embed fetch UTXOs from mempool.space. Publish sends only signed hex to our relay (and public fallbacks).
- What we never need: your BIP38 password on the Publish page. Do not paste passwords into Publish.
Next: Glossary
Glossary
1 (legacy P2PKH).6P…)Your private key encrypted with a password. Alone it cannot spend. With the password it can.K or L). Anyone with WIF can spend. Treat like cash.Next: Security tips
Security tips checklist
- Use a long, unique password (16+ characters, not reused from email/exchanges).
- Store the password separately from the paper BIP38 (different place / person / vault).
- Never put BIP38 and password in the same photo, chat, cloud note, or email.
- Prefer generating on a clean machine; for maximum caution use the offline download and airplane mode.
- Print or write backups carefully; test that you can read every character of the
6P…string. - Fund with a small test amount first; confirm you can recover or spend before depositing more.
- Double-check destination addresses character by character (clipboard malware exists).
- Only open these tools on
https://bitcoinpages.org— beware lookalike domains. - Recover / WIF: use an offline or highly trusted computer; clear the screen afterward.
- Embed puts BIP38 on the public blockchain forever — password strength is then your only defense for that backup path.
Disclaimer & assumption of risk
- The tools and this guide are provided “AS IS” and “AS AVAILABLE”, without warranties of any kind, express or implied.
- You alone are responsible for passwords, backups, device security, verifying addresses, fees, and all Bitcoin transactions you create or broadcast.
- Bitcoin Pages, its operators, and affiliates are not liable for any loss of bitcoin or data arising from bugs, browser issues, user error, phishing, malware, third-party services (including mempool.space and public broadcast relays), node downtime, forks, or irreversible blockchain outcomes.
- Nothing here is financial, legal, tax, or investment advice. Educational use only.
- You understand that lost passwords, incorrect embeds, or leaked WIF can cause permanent loss.
- If you do not agree, do not use the tools.
Download the wallet page for offline use
Generate and Recover can run without the internet once the HTML file is saved on your computer.
Download
On /wallet click Download for offline use, or use the button in this guide’s header. Save bitcoinpages-bip38-wallet.html.
Open locally
Open the file in a trusted browser (Chrome, Firefox, Safari). Confirm the URL starts with file://.
Go offline (recommended for Generate)
Enable airplane mode or disable Wi‑Fi/Ethernet, then create your wallet.
Know the limits
Spend / Sign, Embed, and Publish need network access and the live site endpoints. Use them later online when you are ready.
Next: Journey 1 — Generate
Journey 1 — Generate a BIP38 wallet
Goal: create a receive address and a password-protected private key you can print and store.
Open Generate
Go to /wallet (or your offline file). Select the Generate tab.
Choose a strong password
Enter it twice. Prefer 16+ random characters. Write it down offline, separate from the BIP38 printout.
Pick entropy
Computer randomness is fine for most users. Physical dice / B6 is for high-paranoia key generation: roll dice to build a 99-character base-6 string (map die face 6→0), then paste it. Follow the on-page dice instructions exactly.
Generate
Click Generate protected wallet. Wait for encryption to finish.
Save the public side
Copy or print the Bitcoin address and QR. This is what you fund.
Save the private side
Copy or print the BIP38 key starting with 6P. Use Print backup for a clean paper layout (mode tabs are hidden when printing).
Clear and test
Use Clear everything when done. Later, verify you can Recover with password on a trusted machine before depositing large amounts. Fund a tiny test first.
Next: Recover or skip to Spend / Sign after funding.
Journey 2 — Recover BIP38 to WIF
Use Recover when you need the raw private key (WIF) for Electrum, Sparrow, or another wallet — or to verify your backup.
Open Recover
On /wallet, choose Recover.
Enter BIP38 + password
Paste the 6P… key and the password used at generation.
Verify the address
Confirm the shown address matches your paper public side before importing WIF anywhere.
Handle WIF like cash
Copy only if required. Prefer offline import. Clear the page afterward.
Next: Spend / Sign
Journey 3a — Spend / Sign
Build a signed transaction in the browser. This tab does not broadcast. It needs network access to load UTXOs from mempool.space.
Open Spend / Sign
On /wallet, select Spend / Sign.
Enter BIP38 + password
The tool decrypts locally to find your address and sign.
Set destination and amount
Paste the destination address. Enter an amount in BTC, or choose sweep-all. Set fee rate (sat/vB).
Create the hex
Review the result: fee, amounts, txid preview, and raw transaction hex.
Copy hex for Publish
Do not broadcast from an untrusted machine if keys were exposed. Continue to /publish.
1… addresses from this generator). Destination can be common address types supported by the tool. If you see “no UTXOs”, the address is empty or the explorer lookup failed.
Next: Publish
Journey 3b — Publish a signed transaction
/publish only accepts raw hex. No private keys belong on this page.
Paste hex
Paste the signed hex from Spend / Sign or Embed.
Publish
Click Publish transaction. We try the BitcoinFlux node first, then public relays if needed.
Save the txid
On success, copy the txid and check it on an explorer (for example mempool.space).
Next: Embed on-chain (optional)
Journey 4a — Fund + embed
On /embed, Fund + embed pays a BIP38 address for the first time and writes that BIP38 string into OP_RETURN in the same transaction.
Target BIP38
Paste the 6P… key that should appear in OP_RETURN.
Password and/or address
Provide the target password (tool derives the address), and/or paste the target address. At least one is required. If both are set, they must match.
Funding key
Enter a compressed WIF (K…/L…) or another BIP38 + password that holds the coins you will spend.
Amount and fee
Set how much to send to the target and the fee rate. Change returns to the funding address.
Build → Publish
Copy the hex and broadcast on /publish.
Next: Self-embed
Journey 4b — Self-embed
Use when the BIP38 address is already funded. The tool spends its UTXOs, writes BIP38 to OP_RETURN, and sends change back to the same address.
Open Self-embed
On /embed, choose Self-embed.
BIP38 + password + fee
Password is required to sign. No separate change address — change stays on the same key.
Publish the hex
Broadcast via /publish.
Next: Lookup
Journey 4c — Lookup embedded BIP38
If you have the address but lost the paper BIP38 (and you previously embedded it), Lookup can find 6P… strings in that address’s OP_RETURN history.
Open Lookup
On /embed, choose Lookup.
Paste the address
No password required for lookup.
Copy BIP38
Results show fund-embed or self-embed style hits with a txid link. You still need the password offline to spend.
Next: Cheat sheets
Recommended workflows (cheat sheets)
Paper cold storage
- Download offline → Generate → print public + BIP38.
- Store password separately.
- Fund the address with a test amount, then more if satisfied.
- Optional: Fund + embed or Self-embed → Publish (on-chain BIP38 backup).
Spend later
- Spend / Sign on /wallet (or Recover → import elsewhere).
- Publish hex on /publish.
- Confirm txid on an explorer.
Lost paper, have address + password (after embed)
- Lookup on /embed → copy BIP38 from OP_RETURN.
- Recover or Spend / Sign with password.
- Publish if spending via this tool.
Next: FAQ
FAQ & troubleshooting
Insufficient funds / dust
You need enough sats for the payment (if any) plus the miner fee, and change must stay above the dust limit when change is created. Lower the amount or raise the balance.
Publish says BitcoinFlux timed out but then succeeded
The tool tries your primary relay first, then public fallbacks. Success may show mempool.space or another relay — the tx is still valid.
Offline file won’t Spend or Publish
Expected. Those features need live APIs. Generate/Recover work offline; use the website for Spend/Embed/Publish.
Fund + embed address mismatch
If both password and address are provided, they must refer to the same key. Fix the paste or leave one field empty.
Print still shows Generate / Recover / Spend
Use the in-app Print backup button after Generate. Print CSS hides the mode switch and other chrome.
Is embedding safe?
Only if the password is extremely strong and never leaked. On-chain BIP38 is public forever. Prefer embedding as an extra backup, not your only password strategy.