ForgotWalletPassword.com

Wallet format · Bitcoin-family coins

wallet.dat — the most-studied wallet file in recovery.

If your coins lived in Bitcoin Core, Bitcoin-Qt, Litecoin Core, Dogecoin Core, Bitcoin Cash, Dash or any classic desktop client, the file is called wallet.dat. It is the same file format across the entire Bitcoin family — and its encryption is public, well documented and, for old wallets, remarkably fast to test.

By Robbert Bink · ~6 min read · Published 6 August 2026 · Last reviewed: 15 August 2026

Short answer

Wallet.dat passwords are among the most recoverable wallet types — especially low-round files. The key derivation uses iterated SHA-512 with a machine-tuned round count stored in the file (original baseline ~25,000; btcrecover’s reference wallets measure ~68k–267k). Fewer rounds means hundreds of guesses per second on a CPU and thousands on a modern GPU; high-round files run ~4× slower per guess.

Which wallets use wallet.dat?

wallet.dat is the wallet file of the entire Bitcoin family of Core clients — not just Bitcoin. The legacy encryption structure and recovery rules are shared across them, so this guide applies to all — with one caveat: the filename does not tell you which database backend is inside (legacy Berkeley DB vs modern SQLite descriptor wallets, depending on wallet type and version):

  • Bitcoin — Bitcoin Core, Bitcoin-Qt (the reference client)
  • Litecoin — Litecoin Core
  • Dogecoin — Dogecoin Core
  • Bitcoin Cash — BCHN, Bitcoin ABC, Bitcoin Unlimited
  • Dash — Dash Core
  • Dozens of older forks (Feathercoin, Viacoin and more) kept the same format

One important detail: a wallet.dat only holds the keys of the coin it was created for. Your Dogecoin wallet.dat is not a Bitcoin wallet — if you used several coins, each client has its own file. See the wallet.dat forks guide for the coin-specific details.

How wallet.dat encryption works

Since Bitcoin Core 0.4.0, wallet.dat encryption works like this:

  • Your password is stretched with iterated SHA-512 (OpenSSL EVP_BytesToKey) using a random salt stored in the file.
  • The result encrypts a randomly generated master key with AES-256-CBC.
  • That master key encrypts your private keys. So a recovery attack only needs to verify the password→master-key step — which is exactly what makes it fast.
  • Iteration counts: stored in the file and chosen when the wallet was encrypted, based on machine speed — the original baseline was ~25,000 rounds. Bitcoin Core 0.21 (released January 2021) introduced SQLite-backed descriptor wallets, but they were experimental — legacy BDB wallets still existed and remained common; from Bitcoin Core 23.0, newly created wallets use descriptor wallets by default unless legacy creation is selected. The rounds count stays machine-tuned and stored in the file. btcrecover’s reference wallets measure 67,908 and 267,488 rounds. Old wallets keep their original settings.

Recovery tools and speeds

Tool How it works Typical speed class*
btcrecover Open-source, purpose-built for wallet.dat (and other Bitcoin-era wallets). Uses token files, masks and passphrase lists. Hundreds of guesses/sec on low-round files (CPU); low hundreds on high-round (~267k) files — GPUs multiply wallet.dat rates roughly 10–25×
hashcat (mode 11300) GPU-accelerated cracking of Bitcoin/Litecoin wallet.dat. Same order-of-magnitude as btcrecover on good GPUs

*Order-of-magnitude estimates on a high-end consumer GPU (e.g. RTX 4090 class). Exact rates vary by hardware and tool version — the category is what matters.

Which iteration count does your wallet have?

The single biggest factor in a wallet.dat case is the era of the file, because it determines the key-derivation cost. Roughly:

EraBitcoin Core versionSHA-512 key-stretching roundsGuess cost
2011–20200.4 – 0.2025,000+ — machine-tuned (reference wallets 68k–267k)Low rounds = fast guesses — the classic recoverable case
2020–present0.21+ (SQLite descriptor wallets; default from 23.0)Machine-tuned, often 200k+ (reference ~267k)~4× slower per guess when rounds are ~4× higher

You can usually tell from the file’s modification date and which wallet version created it. If you don’t know, the wallet’s own header or the software version that last opened it usually tells the story — see how wallet encryption works for reading these settings.

A realistic wallet.dat attack workflow

  1. 1

    Copy the file, read-only, offline

    Three copies: the original stays untouched, one working copy, one backup. Never open it in a wallet that might migrate it. The five protection steps.

  2. 2

    Run the search checklist first

    The password is often stored somewhere already — 68 places to look before cracking becomes the plan.

  3. 3

    Build your token list from memory

    Names, dates, symbols, substitutions, keyboard patterns — the raw material for btcrecover. How your memory made it.

  4. 4

    Run btcrecover or hashcat on the copy

    Start with your most likely candidates, then widen. Check the math first: realistic cracking times.

  5. 5

    Let the numbers decide

    If your search space is weeks of GPU time, the feasibility math is the arbiter — before you buy hardware or spend any money.

What decides your case

  • Which iteration count — check the wallet version. A 2015-era wallet.dat is dramatically easier than a 2021+ one.
  • What you rememberrebuild your candidate list first; raw brute force rarely wins.
  • Human vs random — a human-chosen password with hints is realistic; a 16-character random one is not (see the feasibility guide).

Never run tools on the original

Always work on a read-only copy, offline, on a machine you trust. Do not open the wallet in newer Bitcoin Core versions that might migrate the file — the protection guide covers this in detail.

Corrupted wallet or forgotten password?

If the client says the wallet is damaged, unreadable or fails to open, the problem may not be the password at all. A wrong password produces a specific wrong-password error (Bitcoin Core: “The wallet passphrase entered was incorrect”); a file that “cannot be read”, is missing data, or was overwritten points to corruption — a different problem with different tools. The preserved copy (see protect your wallet files) is what makes either path possible. If the file itself is damaged, that is data recovery, which is outside this site’s scope.

Related reading

Frequently asked questions

How do I know if my wallet.dat is actually encrypted?

Do not infer encryption from whether Bitcoin Core opens the wallet. An encrypted wallet can load and display information while locked; the passphrase is required for private-key operations such as sending, signing or dumping keys. Check the wallet’s encryption/lock state instead, and only test on a verified copy.

Why does an old wallet.dat crack so much faster than a new one?

The iteration count is stored in the wallet and was chosen when it was encrypted, based on the machine’s speed; the original baseline was ~25,000 rounds, and btcrecover’s reference wallets measure 67,908 to 267,488 rounds. Fewer iterations means more guesses per second — a low-round wallet can test about 4 times faster than a high-round one, but only when it actually has fewer rounds.

I have several wallet.dat backups — which should I work on?

All of them, but always on copies. The right backup is the one holding the keys behind your balance; an old backup may be unencrypted or use far weaker settings, which changes everything. Never work on the originals — see protect your wallet files first.

I remember part of the password — does that actually help?

Enormously. Knowing the structure (“a name + a year + a symbol”), a few fragments, or even the length can shrink the search space from astronomical to realistic. This is the single biggest lever you control — build a hint list from every fragment you can recall before touching any tool. If you only remember part of the password, the partial-memory patterns show how to turn fragments with gaps into a search.

Is my password stored inside the wallet.dat?

No. The file stores an encrypted master key plus a verifier — a derived value that lets software check a candidate password without storing the password itself. That verifier is exactly what tools like btcrecover and hashcat test against, which is why recovery never requires spending or moving any coins.

Can an online “wallet unlocker” service do this faster?

No — and uploading your wallet.dat to one is how wallets get stolen. The same offline tools run at the same speed on your own hardware, and legitimate recovery never needs your file to leave your machine. See offline recovery tools.

Sources & references

  1. Bitcoin Wiki — wallet encryption
  2. hashcat — example hashes (wallet formats & modes)

Cite this page

APA: Bink, R. (2026). wallet.dat — the most-studied wallet file in recovery. ForgotWalletPassword.com. https://forgotwalletpassword.com/wallet-dat-password-recovery

Markdown: [wallet.dat — the most-studied wallet file in recovery.](https://forgotwalletpassword.com/wallet-dat-password-recovery)

Missing something, or spot an error? Tell us — every correction is checked and applied.
Was this guide helpful?

Keep going — it’s all free

Not sure what you lost or what’s possible?

Take the quick diagnosis for a first verdict — it stops early when the answer is already clear — then work the search checklist. Everything here is informative, runs offline, and is free to use.