Supposed you create a new wallet and pre-populate it with 100 keys (so you don't need to back it up after each transaction).

How do you know, given an instance of Wallet, which keys have been "used up"? Or, in other words, if you want to use a new key for every transaction, how do you which key to use, given only the wallet state?

Are you supposed to save this information elsewhere?


Wallets contain a pool of 100 unused keys plus every key ever used. You can never run out of unused keys because the client adds new keys to the unused key pool as you use them.

The reason it maintains a pool of unused keys is so that future transactions that happen after a backup can still be recovered.

You should frequently back your wallet.dat up off-site using non-flash media. You should also backup your wallet.dat after every 50 send transactions (receive transactions do not use up unused keys unless you frequently create new addresses to receive coins with, which would also use the key pool up; in that case, every 50 transactions of any kind).

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.