Storing Bitcoin savings in a paper wallet is one of the simplest ways to hold bitcoin securely, but you should follow some important steps and note some important points. The basic idea is simply to generate a new key pair (public address and private key) and send your coins to it. There are many ways to generate this key-pair, but ensure that you use a reputable program and that it can be run offline - if you're extra paranoid, you can even live boot a fresh OS and create the address from there so you know that there was definitely no mal-ware installed in your system at the time you created your address. Here's some steps you could use to create your paper wallet safely:
Creating the wallet
- Download an ISO file of your favourite Linux distro such as Linux Mint.
- Ensure the checksum of the ISO you downloaded matches the one published on the site
- Make a bootable USB stick or DVD from the ISO file
- Go to bitaddress.org and save the page onto another newly formatted USB stick
- Unplug your computer from the network and reboot into the live OS on the DVD/USB stick (you're now running a perfectly clean system)
- Locate the saved bitaddress.org page and open it (it will open in the default browser in offline mode)
- Select "paper wallet" or "bulk wallet" depending on whether you'd like to store on paper or a USB stick etc
- Select BIP38 encrypt if you want to further lock the key with a passphrase
- Use the compressed version of the address since it uses less fees to transact with
- Click generate to create your new address(es)
- Print the information or store on your backup devices
- Remove the media, reboot the machine normally, and then reconnect to the network
You now have a public address with the corresponding private key that is guaranteed to be secret, the information does not exist anywhere except on your memory stick or paper (depending on the process you used). You can now send coins to the address any time without ever having to access your secret private key from it's safe location on the paper or memory stick.
Accessing the wallet
All wallet software has the ability to import private keys which also contain the public key information. For example in the popular Electrum wallet you go to the "wallet" menu then select "Sweep" from the "Private keys" option. This option removes all the coins from the paper wallet into a new address - this is the best thing to do because even removing just a tiny portion will completely empty the paper wallet with the remainder going into a new "change" address. You can use the bitaddress.org page again to unencrypted your private key and then paste it into the textbox in the Electrum window. Either select an existing address in the wallet or stick with its recommended new address for the coins from the private address to be sent to. You then click "broadcast" for the transfer to be actualised in the network. You may prefer to do the decrypting and sweeping procedure offline.
Another issue confusing many people is the compressed/uncompressed addresses. They are not two representations of the same address, they're completely different addresses so when sending coin to one, you will not see those coins also show up in the other. You can use either address and you have control over both addresses because they both share the same private key. It's recommended to only use compressed addresses though because they use less fees to transact with since the fees are charged per-byte.
To summarise: The easiest and most reliable way to spend from your wallet is to import the whole thing into a normal wallet such as Electrum or Exodus and then spend any amount of money in the usual way, and then create a new paper wallet and send any remaining amount you like into the new wallet.
- If you use a BIP32 (12 word phrase) based wallet then the problem of change addresses is avoided