Bitcoin Core Wallet Encryption: Password Valid for First Change, Invalid for Second
IndeterminateWallet passphrase was unavailable — whether access was ultimately recovered is not known.
In early January 2021, a husband and wife recovered a hard drive containing Bitcoin from mining activity conducted years earlier. On January 1, the husband opened the wallet in Bitcoin Core QT and discovered multiple Bitcoin across different addresses—some from mining, others from a promotional bonus. He encrypted the wallet with a newly created password, made backup copies, and shared the credentials with his wife via WhatsApp screenshots and written notes.
To verify wallet functionality, he sent a small test transaction on January 1 to a friend's address. Bitcoin Core automatically generated a change address within the wallet to return the remainder. On January 7, he sent a second test transaction to an Exodus wallet they owned, which also generated change to a new address. He successfully entered the documented password to authorize this second transaction.
When they later attempted to access the larger amount of Bitcoin that had been returned as change on January 7, the password no longer worked. The same password remained functional for accessing the smaller amount from the January 1 transaction. Multiple password variations were tested; the husband's business partner also attempted the documented password without success. An additional error appeared when trying to transfer the smaller amount: "Can't generate a change address key. No keys in the internal keypool and can't generate any keys."
Forum moderators explained that older wallet software lacked keypool functionality and generated new keys for change outputs on demand. Bitcoin Core, upon reading the legacy wallet file, auto-generated a keypool. Community members ruled out character confusion (uppercase I vs. lowercase l, zero vs. O) and typos. pywallet confirmation showed encrypted keys were present in the wallet file. Moderator jackjack clarified that Bitcoin Core wallet encryption is atomic across all keys—password corruption is not technically possible. Only the correct password grants access to all encrypted keys. The thread provides no indication of final resolution or asset recovery.
| Stress condition | Passphrase unavailable |
| Custody system | Software wallet |
| Outcome | Indeterminate |
| Documentation | Present but ambiguous |
| Year observed | 2021 |
Why passphrases fail years after they are set
The failure mode documented consistently across observed cases is temporal: the passphrase is set with confidence, not used for an extended period, and then cannot be reproduced exactly when needed. A single character difference — different capitalization, an added space, a slightly different special character — produces a different wallet with a zero balance. The holder may be certain they remember the passphrase while being unable to produce the exact string that was originally set.
What makes this particularly difficult is that there is no signal at the moment of failure. A wrong passphrase does not produce an error message. It opens an empty wallet. The holder sees a zero balance and typically concludes the passphrase was wrong — but without knowing which part was wrong, or by how much.
Professional passphrase recovery services can attempt permutations when the holder has partial information: they remember the general structure, typical patterns they use for passwords, the approximate length, or that it included a specific word. Recovery from total non-recollection is not feasible.
The preventive action is to store a passphrase record — not with the seed phrase, which would defeat its security purpose, but in a separate secure location accessible to the holder and potentially a designated recovery person. A passphrase that exists only in memory has a time horizon: it will eventually be forgotten, and the timing is unpredictable.