BitcoinCore 0.13 now supports BIP32 wallets. Documentation states, that if I create a new wallet and encrypt it, it will be an hd wallet. Then I can make a one-time backup of the master secret key.

Imagine that I do all the steps listed above. I start generating addresses and accepting payments. I do not make any backups.

How can I restore my wallet at any time in future (with all keys generated after the initial backup?)?


Correction: I had thought that Bitcoin Core implements BIP44, which it does not. Thus, what I previously wrote about the gap-limit was wrong.

To restore your wallet-backup you place the wallet.dat into the Bitcoin Core data directory as Pieter described.

When Bitcoin Core is started, it will load the wallet.dat. The wallet.dat includes the information up to what blockchain height it was used last. So, Bitcoin Core will now from what blockchain height to search for additional transactions.

Hereby, Bitcoin Core will generate a key pool of, by default 100, unused addresses that it also checks for. Whenever it discovers a transaction corresponding to any of its addresses, it will generate more addresses from the deterministic chain to fill the key pool back up.

To recover addresses beyond the key pool, you can just request new addresses in Bitcoin Core until you have found all your funds. This type of initial backup doesn't allow you to recover meta-data such as notes about the transactions' origins or recipients as they are only stored in the wallet.dat and cannot be recovered from the preceding backup.

  • What's the structure of this deterministic chain (is a tree, or a single chain?)? – Yevhen Aug 31 '16 at 12:02
  • I suppose that this chain is infinite, right? – Yevhen Aug 31 '16 at 12:13
  • @Yevhen: No, there are only 2^256 possible private keys. ;) Seriously, for practical purposes it's sufficiently indistinguishable from infinite though. – Murch Aug 31 '16 at 12:21
  • And one more thing, can you please tell me, what are the paths of the chain keys (according to BIP32)? bc this formula confuses me a bit )). – Yevhen Aug 31 '16 at 12:21
  • @Yevhen: What "paths" are you talking about? Text search doesn't find that either here or in the BIP32 text. – Murch Aug 31 '16 at 12:27

You don't make a backup of the secret key. You make a backup of the wallet.dat file, once.

If you need to restore the wallet, you restore the wallet.dat file into Bitcoin Core's data directory while Bitcoin Core is not running.

  • Ok, so you've made a backup wallet.dat file. And now you start receiving bitcoins to your new addresses. How can you restore all these new addresses later? Your backup is stale, but BIP32 enables you to restore all your addresses from a single root node. How can I do that in BitcoinCore 0.13? – Yevhen Aug 31 '16 at 10:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.