Creating a Cold Storage wallet in Electrum

A cold storage wallet is one where the wallet with the seed remains on a permanently offline device. The idea is that any malware couldn’t possibly infect the machine because it is always offline.  Electrum supports offline signing enabling you to spend your bitcoin without taking the cold storage device online.

The first step is of course to install electrum on the offline device. You can shuttle the installation files to the devices via  a removable drive such as a flash drive or you can temporarily go online to download electrum and then never go online again. The key being that you never go online once the seed has been generated. Make sure you only download electrum from electrum.org. Installing a malware version of electrum from a fake site will not be helpful.

Then you create an electrum wallet as per the normal process on the offline device. Then on an online machine you create a watch only wallet. A watch only wallet will let you view transactions relevant to your wallet, get receive addresses to hand out to payers and craft unsigned spending transactions which you sign with the offline wallet. To create a watch only wallet follow the guide for deterministic watch only wallets here.

To craft an unsigned transaction you open the watch only wallet on the online machine and enter the recipient’s address and amounts on the send tab and click pay. A window will popup with the fee slider. Set a suitable fee and then click on “preview” to view the advanced transaction preview window:

 

Click on “Share” and “Save to file” to save the unsigned transaction to a USB drive. Shuttle that to the offline device and open electrum on that device. Go to tools menu > load transaction > from file and open the unsigned transaction.

A transaction preview window will appear with all the details like inputs and outputs of the transaction. Check that the transaction spends the right amount to the right address and once you are satisfied click on sign to sign the transaction. Use the share button to save it to file again. Save it to the USB drive and shuttle it to the online machine.

On the online machine you again load the transaction via the tools menu and this time you click on broadcast to broadcast the transaction. In this manner you can spend your bitcoin without exposing your private keys to an internet connected device.