Bitcoin Core · Basic setup guide
Bitcoin Core Wallet: Basic Setup, Encryption, Backup & Recovery
Learn how to create a Bitcoin Core wallet, protect it with a passphrase, save a backup and restore it. Try the steps on your own computer with an empty practice wallet. Before using real funds, work through the full self-custody curriculum.
Before you begin
- Goal
- Create, encrypt, back up, restore, and verify a disposable Bitcoin Core wallet.
- Difficulty
- Beginner to intermediate
- Estimated time
- 60–90 minutes
- Real bitcoin
- No. This is a disposable practice wallet. Complete the self-custody curriculum before preparing meaningful funds.
- Software version
- Bitcoin Core 31.1
- Operating systems
- The screenshots use macOS; the workflow also applies to Windows and Linux.
- Recommended OS
- For this empty-wallet exercise: your existing Windows, macOS or Linux computer. For serious funds: a dedicated computer with a fresh Linux installation; I recommend Debian Stable.
- Prerequisites
- Bitcoin Core installed from an official source, an empty practice environment, and a separate place for passphrase notes.
- Expected outcome
- A restored practice wallet with the same receiving address and label.
- Last reviewed
- Beginner instructions, GPG backup and recovery: 16 October 2026. The Vault ISO is still in development.
Your progress
0 of 11 steps completed
Prepare a safe practice environment
Begin with no wallet loaded and no meaningful funds at risk.
Install Bitcoin Core from its official website for your operating system and open it. Start without a wallet loaded, as shown in the screenshot. Use a new, empty wallet for this exercise and keep your operating system up to date. Do not proceed if you suspect the computer has malware.
This is a conceptual walkthrough with a disposable wallet, not a complete deployment procedure. Use no real bitcoin here. Before committing meaningful funds, work through the full self-custody curriculum and prepare a dedicated computer with a fresh Linux installation. A practice wallet created on your daily computer should remain a practice wallet.
Create a new wallet
Give the wallet a local, non-identifying name.
Select Create Wallet and enter a local name. The screenshots in this guide use disposable Test Wallet and Tutorial Wallet examples. A wallet name is only a local identifier; it does not need to reveal your identity or the purpose of the funds.
Leave Disable Private Keys, Make Blank Wallet, and External signer unchanged for this basic setup.
Enable wallet encryption
Protect private-key use with a wallet passphrase.
Check Encrypt Wallet. This protects the secret keys that approve payments. You will need your wallet passphrase to use those keys to sign a transaction — in other words, to authorize spending.
Someone with a copy of this wallet can still view its addresses, transaction history and balance. The passphrase protects spending; it does not hide the whole wallet. Step 7 adds GPG encryption for privacy.
Generate and enter a strong passphrase
Use KeePassXC, enter the phrase twice, and keep its recovery record separate.
Download and install KeePassXC for Windows, macOS or Linux, then open it. You can follow this practice exercise on the computer you already use, with an empty test wallet and a passphrase you will never reuse for real funds.
Open Tools → Password Generator → Passphrase. Use the bundled EFF large wordlist, choose lower-case words separated by a single space, and let KeePassXC generate them. Keep the words in their generated order, including any repeats. You do not need to create a password database just to use the generator.
Bitcoin Core’s encryption dialog recommends eight or more words. Eight independently generated random words are a good starting point for this exercise and match the screenshots. Before deciding on eight, more or fewer, try the calculator below to see how the word count changes the estimated effort and cost of guessing the passphrase.
Entropy describes how many possible combinations an attacker has to consider. With randomly generated words, more entropy means more possibilities to try. Brute force means testing those possibilities until one works: more guesses generally mean more computing time and a bigger bill. Entropy is not itself a price tag; the cost also depends on how quickly guesses can be tested and what the computing power costs.
The calculator gives you a rough feel for that relationship. Under its starting assumptions, eight random words imply an enormous guessing cost — and so do seven and even six. Move the slider through six, seven and eight words and compare the numbers yourself. Fewer random words are generally easier to remember but offer less protection against guessing; more words offer more protection but are harder to remember. Explore the trade-off until those numbers mean something to you, rather than choosing a word count without understanding it.
These are illustrations under the displayed assumptions, not a current market quote or a guarantee. Computing power and attack methods improve: an attack that looks prohibitively expensive today may cost less in a year, ten years or thirty years. That is why I leave an extra safety margin instead of choosing only what appears sufficient today. Whatever you choose, keep a separate recovery record rather than relying on memory alone. The calculations apply to independently generated random words, not a sentence you invent. For more detail, see the curriculum’s entropy explanation and attack-economics exercise.
Turn word count into time and cost
Move the slider to get a feel for how hard a random passphrase is to guess.
KeePassXC list · Below Bitcoin Core’s eight-word recommendation
- Average elapsed time
- ≈ 106,
000, 000, 000 yearsone hundred six billion years - Average total GPU rental
- ≈ USD 829,
000, 000, 000, 000eight hundred twenty-nine trillion dollars
For scale, that is roughly
- Houses at USD 1,000,000 each
- ≈ 829,
000, 000 houses - Projects at USD 1,000,000,000 each
- ≈ 829,
000 projects
Average estimates with 1 GPU, each at 32,880 guesses/second and USD 0.89/hour.
Illustrative Core wallet attack, not a guarantee. Only independently generated random words have this entropy.
Preview summary + link
This is the exact text copied by “Copy summary + link”. It updates with your settings.
Settings remembered in this browser across the guide and curriculum.
Change GPU settings or see how this is calculated
Entropy = 6 × log₂(7,772) = 77.54 bits. Each extra random word multiplies the search space by 7,772. The default uses the bundled list verified for this course; the original EFF list is also available.
Choose a whole number from 1 to 1,000,000. Each GPU does the same amount of work per second; they search different candidates.
Electricity-only alternative
For owned hardware, estimate electricity separately. Include the GPU’s share of host-system power. This excludes buying the equipment, cooling and other overheads. Do not add it to rent that already includes electricity.
Starting assumptions: 0.55 kW per GPU including its host share, and USD 0.15 per kWh. These are illustrative inputs, not benchmark measurements.
6 words · 77.54 bits · 1 GPU · 32,880 guesses/second in total.
Average search tries about half the possible phrases; a particular phrase can be found earlier or later. For scale, a house costs USD 1,000,000 (one million dollars) and a project costs USD 1,000,000,000 (one billion dollars) in these hypothetical comparisons. Each equivalent is the average rental cost divided by that price, before rounding. They update with word count, wordlist, guess rate and rent; changing only GPU count leaves them unchanged under ideal scaling.
More GPUs shorten the wait. Doubling the GPU count halves elapsed time and doubles hourly rent. Total GPU-hours, rental cost and electricity use stay the same. Eight words require 60,403,984 times the work of six with this list, adding 25.85 bits.
Use the slider to understand the trade-off, then choose a margin you can store and recover reliably. Bitcoin Core recommends eight or more words; use independently generated random words. An estimated attack cost above your balance is not a guarantee: the guess rate, future hardware and what an attacker already knows all matter.
Compare six and eight words
6 random words
77.54 bits · Recommended default
- Average elapsed time
- ≈ 106,
000, 000, 000 yearsone hundred six billion years - Average total GPU rental
- ≈ USD 829,
000, 000, 000, 000eight hundred twenty-nine trillion dollars
8 random words
103.39 bits · Extra margin
- Average elapsed time
- ≈ 6,
410, 000, 000, 000, 000, 000 yearssix point four one quintillion years - Average total GPU rental
- ≈ USD 50,
000, 000, 000, 000, 000, 000, 000fifty sextillion dollars
The same wordlist, GPU count, rate and rental price apply to both.
Follow the calculation for 6 words
Follow the calculation
- Combine the GPUs
1 × 32,880 guesses/second = 32,880 guesses/second.
- Divide the average work by that speed
Possible phrases = 7,7726. Average seconds = possible phrases ÷ 2 ÷ total guesses per second. Divide seconds by 3,600 for hours.
- Pay for every GPU, for every hour
Total rental = elapsed hours × 1 GPU × USD 0.89 per GPU-hour (zero point eight nine dollars). Total hourly rent: ≈ USD 0.89 (zero point eight nine dollars).
Average means about half the search space, with no repeated guesses. Full search takes twice the average time and cost. A year means 365.25 days. Results are rounded to three significant digits; calculations use unrounded values.
Full search, GPU-hours and electricity
6 random words
- Full-search time
- ≈ 212,
000, 000, 000 yearstwo hundred twelve billion years - Full-search rental cost
- ≈ USD 1,
660, 000, 000, 000, 000one point six six quadrillion dollars - Average total GPU-hours
- ≈ 931,000,000,000,000 GPU-hours
- Average total electricity
- ≈ 512,000,000,000,000 kWh
- Average electricity-only cost
- ≈ USD 76,
800, 000, 000, 000seventy-six point eight trillion dollars
That electricity-only cost equals
- Houses at USD 1,000,000 each
- ≈ 76,
800, 000 housesseventy-six point eight million houses - Projects at USD 1,000,000,000 each
- ≈ 76,
800 projectsseventy-six point eight thousand projects
Average electricity = average elapsed hours × GPU count × kW per GPU. Multiply by USD per kWh for the electricity-only cost. Full-search electricity and costs are twice the averages.
Sources and limits of this model
The verified KeePassXC 2.7.10 bundled list has 7,772 distinct words; the original EFF large list has 7,776. This calculation assumes each selection is independent and equally likely; repeated words are allowed. The attacker knows the wordlist, word count and separator, but no words. Fixed separators add no entropy.
The starting rate is 32,880 guesses/second for one RTX 4090 from a published Hashcat 7.0.0 wallet.dat benchmark (mode 11300, reporting 200,459 iterations). The Runpod headline RTX 4090 price was USD 0.89 per GPU-hour when checked October 14, 2026; prices and availability vary.
This is not a measurement of your wallet. Real speed depends on wallet derivation settings, candidate length, hardware and software; benchmark kernels may have length limits. Ideal scaling assumes no duplicate guesses, coordination overhead or rental minimums. A large GPU count does not imply that fleet is available.
Huge durations and costs are mathematical extrapolations at fixed rates, not predictions or feasible budgets. Future hardware, disclosed words and malware change the situation. Rental excludes storage, taxes and other overheads. This models a Core wallet passphrase, not GPG backup encryption or a KeePassXC database.
Do not invent a memorable sentence.
Use words selected randomly by a password manager instead of a phrase designed to feel clever or familiar.
Do not reuse a password.
A breach of another service must not expose the passphrase that protects your wallet.
Do not include personal information.
Names, dates, quotations, and familiar patterns make a passphrase easier to predict.
Separate the two recovery components.
Keep the real passphrase physically separate from every copy of the wallet backup.
Enter the generated passphrase in both fields. The entries must match exactly. Verify the phrase carefully before continuing, then return it to its separate, deliberate backup location. A real wallet passphrase should not remain in your clipboard or in a screenshot.
Acknowledge Bitcoin Core's warnings
Understand both permanent passphrase loss and the limits of encryption against malware.
Bitcoin Core warns that losing the passphrase means losing the ability to use the encrypted private keys. There is no password reset service. Before meaningful funds are involved, create a deliberate passphrase backup strategy; do not rely on memory as the only copy.
The second warning is about malware: harmful software can steal your passphrase or interfere with a payment while you use the wallet. Encrypting a file does not make an infected computer safe.
Before continuing, choose the environment deliberately. For meaningful amounts, I do not recommend creating or unlocking a wallet on your daily computer. Browsers, extensions, email attachments and everyday software expose that machine to malware. An antivirus or anti-malware scan reporting “clean” does not establish that it is safe to handle wallet secrets. Even after cleanup, that residual risk is too high for serious savings in my view.
Use a dedicated generic computer with a fresh Linux installation. My recommended foundation is Debian Stable and verified Bitcoin Core . For now, practise creating, encrypting, backing up and restoring an empty wallet. The curriculum covers preparing a computer for real funds.
Generate a receiving address
Create and label an address for the recovery test.
Open Receive, add a local label such as Test Transaction, and select Create new receiving address. Bitcoin Core displays the address and a QR code. Labels help you remember an address's purpose; the label itself is not written to the Bitcoin blockchain.
Keep this address unfunded. Its purpose here is to give you something to recognize when you restore the backup.
Back up the encrypted wallet
Save a copy, encrypt it with GPG and keep separate passphrase backups.
Choose File → Backup Wallet and save a copy, for example as practice-wallet.dat. Use a folder that is not automatically uploaded to cloud storage.
The Core passphrase protects the keys that sign payments. Someone who gets this backup can still view the wallet’s addresses, transaction history and balance, but cannot use its locked keys to sign a new payment without the passphrase. My recommendation is to encrypt the entire backup file with GPG as well, using a different passphrase. That keeps the wallet’s contents private.
With one GPG layer, you have three things to keep:
- The GPG-encrypted file — the backup containing your wallet.
- The GPG passphrase — opens that file.
- The Bitcoin Core passphrase — unlocks the wallet’s keys to approve payments.
Keep more than one copy of each, in separate locations. Keep the two passphrases separate from each other and from the encrypted file, so one theft or loss does not expose or destroy everything. Write down how to recover the wallet, and test the instructions.
A random-word passphrase by itself does not say what it unlocks. A GPG file with a neutral name such as backup.gpg keeps the Bitcoin wallet inside it hidden from view. To add another layer, encrypt that GPG file again with a new passphrase. Each extra layer adds one more passphrase to back up separately.
One wallet. Layers around it.
Each GPG layer wraps the entire file inside it, using its own independently generated passphrase. Add a layer to see what changes.
A look inside the layers.
The saved GPG file keeps this content hidden.
Encrypt the wallet file.
Opens with passphrase A.
Separate Core passphrase
Unlocks the wallet’s keys to approve payments.
Open the outer layer first
Use the Core passphrase when you need to sign a payment.
3 things to keep — copies of each
1 final encrypted file + 2 separate passphrases
Keep more than one copy of the final file, passphrase A and the Core passphrase. Keep each passphrase separate from the others and from the file, with copies in different locations.
Start with one GPG layer. Extra layers add extra secrets to protect and recover. Test that you can open every layer using your saved copies.
Follow the GPG steps below, then continue to step 8 to restore your wallet.
Encrypt the whole backup with GPG
GPG puts the whole wallet backup inside an encrypted file. Think of it as a locked envelope: the GPG passphrase opens the envelope, and the separate Core passphrase unlocks the wallet inside for spending. Start with one GPG layer and practise opening it again.
Coming soon: Bitcoin Core Vault on Debian
The upcoming Bitcoin Core Vault Debian ISO is a Linux system being prepared with the tools for this workflow already included. It is intended to guide you through GPG backup encryption and recovery, with extra layers when you need them. It is still in development. You can practise now with the tools below.
Install GPG for an independent practice session
GnuPG is the software behind GPG encryption. Choose the download for your operating system. The macOS option includes a graphical interface; the Terminal instructions below work on all three systems.
- Debian / Ubuntu: open Terminal and install GnuPG:
sudo apt updateFor Debian, see the GnuPG package.
sudo apt install gnupg - Other Linux distributions: install GnuPG using your distribution’s software manager.
- Windows: install Gpg4win from its official website and follow its installer-verification instructions. It includes GnuPG and the Kleopatra interface.
- macOS: for a graphical workflow, I recommend GPG Suite and its GPG Services integration in Finder. Use the password-only steps below. If you prefer Terminal and already use Homebrew, run
brew install gnupgusing the GnuPG formula. Other macOS distributions are listed on the official GnuPG download page.
Choose one method below: Finder on macOS, or Terminal on any of these systems. Both encrypt the same kind of backup file with a passphrase. For this first try, use one layer.
macOS graphical workflow: GPG Suite in Finder
- Install the official GPG Suite release compatible with your macOS version. For file encryption you use GPG Services and MacGPG; GPG Mail is not needed.
- In Finder, select one disposable Core backup file, then choose Services → OpenPGP: Encrypt File. Enable Encrypt with Password, enter and confirm an independent passphrase, and leave recipient keys unselected. Turn off Sign and Add to Recipients so this is password-only encryption. You do not need to create or publish a GPG key.
- Encrypt, then keep the resulting encrypted file separate from its passphrase. For another layer, repeat on that encrypted output with a new passphrase. For this exercise, select just your wallet backup file.
- To recover, choose Services → OpenPGP: Decrypt File on the outer file. Repeat on each recovered inner file in reverse order. Use a separate recovery folder to avoid overwriting originals, check for errors, then restore the recovered wallet in Core.
Keep the original and recovered files outside folders that sync to the cloud. Keep separate records of your passphrases, and test recovery by entering them yourself. Do not rely only on passwords remembered by your Mac.
Official instructions: Finder encryption and decryption.
Terminal option: encrypt and open one GPG layer
Open Terminal, or PowerShell on Windows. Run gpg --version to check the installation. Then open a terminal in the folder where you saved your practice backup. Run each command separately.
- Use the backup from step 7. Create it with Core’s File → Backup Wallet. Keep it outside cloud-synced folders.
- Generate an independent GPG passphrase. Use KeePassXC and the random-word procedure in step 4. Do not reuse the Core wallet passphrase. This method needs a password, not a GPG key pair. Keep a separate backup of each passphrase.
- Encrypt the entire saved file. In the folder containing your disposable backup, substitute its actual name for
practice-wallet.datin this command. Choose a new output filename and enter the secret only in GPG’s passphrase prompt, never as part of the command.gpg --no-symkey-cache --symmetric --cipher-algo AES256 --output backup.gpg practice-wallet.dat - Decrypt into a separate test file. Use a new output name so the original stays intact. If GPG reports an error or warns that the file may be damaged, stop and check it before continuing.
gpg --no-symkey-cache --output recovered-wallet.dat --decrypt backup.gpgYou should now haverecovered-wallet.dat. Continue to step 8 to restore it in Core.
Check before you copy. Encryption creates a new file and leaves the original in place. Copy the encrypted .gpg file to your backup locations, not the original wallet file. Keep your originals until you have proved that recovery works. Deleting a file later does not guarantee that every copy is gone.
Add layers only when you need them
An extra layer is another locked envelope around the first. Encrypt the .gpg file again with a new, independently generated passphrase. To recover, open the last layer first, then the one inside. You need every layer’s passphrase, plus the Core passphrase to approve payments.
Optional: try a second layer in Terminal
For a two-layer practice backup, first create backup.gpgabove, then run this command and supply a new passphrase B:
gpg --no-symkey-cache --symmetric --cipher-algo AES256 --output backup-outer.gpg backup.gpgRecover in reverse order: use B to recover the inner GPG file, then the original passphrase A to recover the wallet. Run each command separately and continue only after it succeeds:
gpg --no-symkey-cache --output recovered-inner.gpg --decrypt backup-outer.gpg
gpg --no-symkey-cache --output recovered-wallet-2.dat --decrypt recovered-inner.gpgKeep more than one copy of every required passphrase, with the layer order written down. Store the passphrases separately from one another and from the encrypted file. For example, two GPG layers mean one final encrypted file and three passphrases to preserve: two for GPG and one for Core.
Back up the final, outermost file. An earlier copy from before the extra layer was added does not have that extra protection. More layers also mean more things to keep track of: losing every copy of just one required passphrase can prevent recovery. Start with one layer until you can reliably complete the whole process.
An additional cloud backup
After testing recovery, I recommend keeping an additional copy of the final GPG-encrypted file in cloud storage. Encrypt it on your computer before uploading it. Keep both passphrases out of that account and retain copies elsewhere, such as on separate USB drives. If you added extra layers, keep all of their passphrases separate too.
Download the cloud copy into a folder that does not sync, open it with GPG, and restore the wallet in Core. That checks the copy you actually uploaded.
Technical references: GnuPG encryption and decryption and GPG encryption options.
Optional: Use a less revealing filename
Name your encrypted file something neutral, such as backup.gpg. Keep the .gpg ending so it is easy to recognize as an encrypted file. GPG protects the contents; changing the filename alone does not encrypt anything.
Optional filename example on macOS
In Finder, use Get Info → Name & Extension to rename a backup copy. If the restore dialog hides the .bin file, change its extension back to .dat before selecting it. These screenshots demonstrate renaming only.
Open Restore Wallet
Start Bitcoin Core's wallet recovery workflow.
First use GPG to open your encrypted backup with its GPG passphrase. If you added more layers, open them in reverse order, last added first. You should end up with the wallet .dat file. In Bitcoin Core, close the original practice wallet with File → Close Wallet, then choose File → Restore Wallet. You will restore the recovered wallet file, not the .gpg file.
Select the backup file
Choose the wallet backup you intend to test, regardless of its filename.
Find the wallet file you recovered from GPG, select it, and choose Open. If you skipped GPG for this practice run, select the copy saved with Backup Wallet. Check the filename and folder so you restore the intended backup. When Core asks for a wallet name, use a new name such as Restored Practice.
Restore and verify the wallet
Check that your receiving address and label are back.
Finish the restore and check that the receiving address and label from step 6 are there. This practice wallet should still have a zero balance. The screenshot uses archive.dat; your file may have a different name. Core may open the wallet without asking for its passphrase. Its keys are still locked for spending.
You have now checked that the backup opens correctly. The next stage is to prove that the restored keys can approve a payment using valueless test coins. Follow that exercise in the self-custody curriculum.
Check what you have learned
Check your backup, your separate passphrase records and your restore result.
Review the checklist below before treating the exercise as complete. A backup strategy is only credible after you have restored it, understood when the passphrase is required, and separated the wallet backup from the passphrase backup.
Later in the curriculum
Private keys stay offline
You do not need a second computer for this practice exercise. Later, the curriculum shows how to use a dedicated offline computer to approve payments, while another computer handles the internet connection.
Optional preview: the two-computer setup
Online
- Ordinary computer reserved for this job
- Debian Stable
- Core node: checks Bitcoin history
- Watch-only wallet: tracks payments
- No private keys for spending savings
- Prepares proposals and sends signed payments
Offline
- Ordinary computer reserved for this job
- Debian Stable
- Bitcoin Core
- Private-key wallet protected by a password
- No blockchain download needed
- Approves payments without a network
Optional offline environment
Tails starts from a verified USB drive on a supported computer. It can reduce what the operating system keeps after a session. Choose it only when that helps with a risk you need to address. Core still signs the payments. Tails cannot make altered hardware trustworthy.
Final check
Before completing this practice
Complete the practice checks, then follow the curriculum before preparing real funds.
Before you commit serious funds
Completing this exercise is a learning milestone. Before deploying meaningful savings, work through the full self-custody curriculum, rehearse recovery and prepare a dedicated computer with a fresh Linux installation. I would not use a daily computer for that job, even if antivirus or anti-malware software says it is clean. A scan cannot establish that wallet secrets will be safe on that machine.
Continue with the self-custody curriculumApply this to your situation
Want to prove your own backup and recovery plan?
Bring one question from this exercise: what to back up, where to keep passphrases, or how to check a restore before using real funds.
Book a 15-minute introduction to outline the question and decide whether a longer session would help. If we arrange one, that session is Value for Value: afterwards, you decide what it was worth. No fixed fee or obligation.
Book a 15-minute introductionPlease keep private keys, passphrases, and wallet files out of the booking form.

Value for value
Did this help you?
Everything I publish here is openly available. If this work has been valuable to you, you can return value in whatever amount feels appropriate. Your support helps me keep Bitcoin education, articles, guides and other resources open and freely available to everyone.
No fixed price. No paywall. No obligation.
Return value