How to Create and Use an Offline Bitcoin Wallet aka Cold Storage with Electrum
If you care about security and don't feel like buying Trezor, you may want to keep your bitcoins in an offline wallet also known as cold storage.
Cold storage is a wallet that isn't connected to any network thus it's not vulnerable to online attacks. It can only be accessed physically which makes it very secure.
To set up one, you need an (old) computer and a wallet software that is able to import, sign and export transactions.
You'll also have to run a "watch-only" wallet on another computer that is only able to view transaction history and outputs (wallet addresses) of the cold storage but can't spend them.
This wallet can be "online" because it doesn't contain any private keys.
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!
How to safely backup your crypto savings
Never lose your coins to a hardware failure or thieves. Protect your bitcoin!
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.
Go to 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?