In this tutorial, I'll be using the latest Electrum wallet 2.8.2 on both computers.
Create an offline wallet
Open Electrum, click
File -> New/Restore and create a name for the wallet. Let's call it "offline" for the purpose of the tutorial.
Choose the wallet type. We'll use a "Standard wallet" but you can use any type except for "Watch Bitcoin addresses".
Make sure "Create a new seed" is selected and go to the next step.
You'll be presented with a mnemonic code consisting of 12 words.
Write it down on a piece of paper and store it somewhere safe!
Get a FREE e-book: HOW TO SAFELY BACKUP YOUR CRYPTO SAVINGS
In the next step, you'll have to retype the words again. After that, your wallet will be created and ready to be used.
Get a master public key by clicking
Wallet -> Master public keys.
This key will be used to derivate all bitcoin addresses of the offline wallet.
Copy & paste it to a text file and transfer it to the online computer using a USB stick. If you don't have a USB drive you can
If you don't have a USB drive you can click a QR icon in the bottom right corner to view the key's QR code. Scan it with your phone and send it to your online computer.
Create an online wallet
Back on your online computer, start by a creating a watch-only wallet which you can't spend from.
File -> New/Restore, create a new wallet (let's call it "online"), choose the wallet type and select "Use public or private keys".
Paste the master public key from the offline wallet into the form and click "Next".
A new watch-only wallet with all the offline wallet's addresses will be created.
We will use it to create and broadcast a transaction that will be signed on the offline computer.
But before you can start using it you need to load it with some bitcoins. Go to "Receive" tab and send some money to a generated wallet address of the offline wallet.
Create an unsigned transaction
On your watch-only online wallet, go to "Send" tab, fill in transaction details and click "Preview".
A transaction window will pop up with details about the transaction, such as inputs, outputs, the amount and the fee.
Click "Save" and save the "unsigned.txn" file to your USB stick.
Sign the transaction
Now go back to your offline computer and go to
Tools -> Load transaction -> From file and select the file from the USB stick.
The transaction window will pop up again but this time with an option to sign the transaction.
You may be prompted to type in the password if your wallet is secured with one (it's recommended).
Upon signing the transaction have a look at the field "Transaction ID" which changed from "unknown" to a seemingly random string.
The transaction is now ready to be broadcasted on the network.
Click "Save" and save the new file to your USB stick again.
Broadcast the signed transaction
Go back to the online watch-only wallet and open
Tools -> Load transaction -> From file again.
A window with the signed transaction detail will show up again.
Check the corresponding values and if it's alright click "Broadcast". The transaction will then be sent to ever Bitcoin node on the network and eventually mined by a miner.
Running a cold storage may seem like an annoyance and quite difficult to set up. But if you hold a significant amount of bitcoins you don't want to risk getting it stolen.
If you for whatever reason don't want to use Trezor, cold storage may be a good compromise between the convenience of a hardware wallet and the security of a paper wallet.
What is your preferred way of securely storing bitcoins?
Please let me know in the comments section below if you have any questions or you run into any problems.