Bitcoin QT import paper wallet

In typical use, a paper wallet would be retrieved into a client using the importprivkey command, and from there it should be assumed at the paper wallet is completely useless. From the moment the first transaction is made, the paper wallet is empty, this is due to the way to the way that the client handles change.

Lets explore this with an example.

Let's imagine that I send the full contents of my paper wallet (5BTC) to a new address, once I have imported it to bitcoin-qt.

+-------+ | paper | +-------+ | | | V +--------------------+ | destination (5BTC) | +--------------------+ This is the expected behaviour, my paper wallet now contains 0 bitcoin, and the receiving address contains 5BTC.

This time, I am going to send 1BTC to an address from my 5BTC wallet, and keep 4BTC in my paper wallet for later.

+-------+ | paper | +-------+ | +------------------------+ | | V V +--------------------+ +---------------+ | destination (1BTC) | | change (4BTC) | +--------------------+ +---------------+ Unfortunately this isn't how bitcoin works. There is now nothing in my paper wallet, and 4BTC has been moved to a new "change" address. If you wish to keep this amount in an offline address than, you must create a new paper wallet for this change.

The mistake people have made in the past is to import a paper wallet with 100BTC in it, spend one or two, and then assume that the paper wallet still holds 98BTC.

This situation is only an issue if you reimport a wallet and expect the funds to remain on it. This issue doesn't apply if you are using your wallet normally.

Litecoin import paper wallet

Litecoin-qt import wallet

Bitcoin QT export wallet

Bitcoin QT paper wallet

Bitcoin QT import wallet