On 2026-01-05 bitcoincore.org put out a notice of a bug in the wallet migration feature in Bitcoin Core versions 30.0 and 30.1 noting: "Under rare circumstances, when the migration of a wallet.dat file fails, all files in the wallet directory may be deleted in the process, potentially resulting in a loss of funds."
Yes. Only the feature to migrate a legacy wallet to a descriptor wallet is affected by this bug.
Bitcoin Core Users
- of a Bitcoin Core legacy wallet
- that use an unnamed wallet.dat file
- that had not previously migrated their wallet to a descriptor wallet
- who attempt a migration using either of these versions
- and if the migration process failed
have their wallet directory deleted, potentially resulting in a loss of funds.
Yes. The fix is in a release candidate, being tested for a 30.2 release.
Any bug that allows for loss of funds is terrible. More information on this incident will be forthcoming.
GitHub user jestory opened an issue on 2025-12-20 outlining the bug. This user was impacted by the bug, but had backups of their wallet files. Bitcoin Core contributors worked to be able to recreate the conditions to reproduce the bug and a PR to fix it was drafted and since merged.
No. One of the conditions for the bug is that the legacy wallet is unnamed.
No.
The goal of migration is replacing the old wallet file with one in the new file format, but holding the same information (keys, addresses, transactions, ...), and with the same file name. The first step is making a backup of the old file, which is normally left in place after migration, such that if anything were to go wrong with the migration process (disk space exhaustion, filesystem errors, unexpected shutdown, or inability to load the file afterwards), the process can be reverted by deleting the faulty migrated wallet file, and restoring the backup. Typically, wallet files reside in their own directory, and this restoration operation would delete the faulty migrated wallet's directory. However, old "unnamed" wallet.dat files can reside in the root of the wallets directory, rather than in their own wallet-specific directory. In this case, when migration failure occurs, the restoration operation would delete the directory containing it - which happens to be the directory that contains all wallets, including the created backup.
This was an error-prone approach, and the upcoming 30.2 release changes it such that only individual files which were created during the failed migration process are deleted - not whole directories without regard for their contents.
Then you are fine. Just do not attempt additional migrations with these versions.
No, but out of caution they were moved to a new url (https://bitcoincore.org/bin/insecure-wallet-deletion/) so existing links to them would be broken.
Unnamed wallets refer to the plain wallet.dat file usually located in the top-level /wallets/ directory. These are different from named wallets, which are wallet.dat files residing in their own directory.
Bitcoin Core 0.21 which was released January 2021 included #15454 which stopped creating these by default.
Was Bitcoin Core aware of this bug before the version 30 was released? Was this bug reported before version 30 was released?
No. There is no evidence for this claim.
To your last point: https://x.com/GregTonoski/status/2008505693255684169?s=20