A Beginner's Guide to the Electrum Bitcoin Wallet
Electrum is a Bitcoin wallet built for speed and convenience. A streamlined design and rich feature set make this software a popular choice for beginners and experts alike.
This guide introduces Electrum with step-by-step examples highlighting the most important features. It is intended for Bitcoin and Electrum beginners - little previous experience with either is needed. Owning some bitcoin will make the examples much clearer and is encouraged.
Operating system-specific installer files are available from the downloads page. “Signature” and “md5” refer to security features that will be discussed in a future advanced Electrum post.
Installation on Windows
Three versions of Electrum are available for Windows. Download and run the one labeled “Windows Installer”.
Installation on Mac
Choose the download marked “executable file”. Double click on the file, and drag the “Electrum” icon into your “Applications” folder.
On Mavericks, you may receive an error message stating that Electrum “can't be opened because it is from an unidentified developer.” Should this happen, locate Electrum in your Applications folder then control-click on it. Select “Open” from the menu, then click the “Open” button on the popup.
Installation on Ubuntu Linux
Using the Terminal application, run the following commands:
sudo apt-get install python-qt4 python-pip python-slowaes
Ubuntu 14.04 makes it possible to install Electrum through the Software Center. Click the briefcase icon to the left of the Ubuntu desktop. Then enter “electrum” into the search box of the Software Center window.
Electrum gathers configuration data from a wizard when run for the first time. For more on the concepts behind this process, skip to the later sections of this guide discussing backups, security, and addresses.
The first screen displays a notice stating that no existing wallet can be found. Choose the default option, “Create new wallet”. Click “Next” to continue.
The next window displays something called a “wallet generation seed”. The text displayed in your window should be different than that shown in the figure below. For now, select and copy all twelve words to the system clipboard.
The next window asks you to type your seed. Click inside the text area and press control-V (or ⌘-V on Mac) to paste the words you copied from the previous step. Click “Next”.
A password optionally secures your your wallet against unauthorized access. Adding a memorable, strong password now improves the security of your wallet by encrypting your seed from the beginning. Waiving encryption at this point by not selecting a password risks potential theft of funds later, however unlikely the threat may be.
Electrum can be configured to run using a custom server, which is the topic of the next screen. The exercises in this guide use the default server configuration. Click “Next” to continue.
Receive a Payment
You may own bitcoin stored on another software wallet or exchange such as Localbitcoins. Funds can be transferred from these source into the Electrum wallet through one of its receiving addresses.
Locate a receiving address by first clicking on the “Receive” tab. Double-click the first “Receiving” address, then copy it to the clipboard by selecting the “Copy to clipboard” menu item.
Next, transfer funds from the software or service currently hosting your funded wallet into your unfunded Electrum wallet. For example, if you're using Localbitcoins, browse to your wallet there. Then paste your Electrum receiving address into the field marked “Receiving bitcoin address”. Next, fill in the amount. For this example, transfer 0.001 (1 mBTC, or about $0.63 at the current exchange rate). Enter your Localbitcoins password and click “Send from wallet”.
Exchanges like Localbitcoins don't always send funds immediately. Delays of a few minutes are to be expected because transfers are often batched together to save on fees. In my tests, the delay on Localbitcoins averaged about ten minutes.
The “History” tab lists all current and pending transactions. An entry appears soon after a transaction is made into a wallet address. Initially, this transaction will be marked as “pending”.
As the Bitcoin network processes a new transaction, its status updates in the wallet listing. The network sends confirmations roughly every ten minutes. When one is received, a colored clock indicator to the left of the “Date” field updates.
Electrum considers transactions fully processed after receiving six confirmations. These processed transactions are denoted with a green checkmark.
To view additional transaction details, double-click on the date, then select the “Details” menu option.
Make a Payment
To make a payment, begin by clicking the “Send” tab. The “Pay to” field holds a Bitcoin address, which can be entered manually or pasted from the clipboard. In this example, I'll make a donation to Sean's Outpost (Pensacola Homeless Outreach).
The total amount of the transaction is the sum of the sent amount and transaction fee. Electrum issues a warning if the total transaction amount exceeds the wallet balance.
Electrum calculates a default transaction fee that in most cases works out to a flat rate of 0.2 mBTC. This rate can be reduced to 0.1 mBTC or even lower. However, doing so is not recommended without fully understanding how Bitcoin transaction fees work.
I've decided to make a donation of 1 mBTC with a transaction fee of 0.2 mBTC. The note added in the description field will help me identify the transaction later.
After clicking the Send button, Electrum will ask for a password. Enter the secure, memorable password you selected when setting up the wallet.
Sweep a Paper Wallet
You may have received a paper wallet as a gift from another Bitcoin user. Funds are swept from a paper wallet by first importing its private key, a long sequence of characters starting with the number “5” or the letters “K” or “L”. The example below displays a vertically-oriented private key right of center.
Funds from paper wallets are swept into an Electrum Wallet through a three step process: (1) Import the private key; (2) transfer bitcoin from the Paper Wallet address into an Electrum wallet address; and (3) delete the Paper Wallet Address.
Begin by selecting the Wallet > Private Keys > Import main menu option. A warning will state that “Imported keys are not recoverable from seed.” At this point, it's not essential to understand what this warning means. Click “Yes” to continue.
Paste the private key from your Paper Wallet into the text area as shown below, then click “Import”. If you mis-typed the private key, a warning stating that “The following inputs could not be imported” appears.
The newly-imported address is now visible from the “Receive” tab. Your wallet's total balance, appearing in the lower left, should now reflect the sum of your previous balance and the balance on the newly-imported paper wallet.
Electrum treats imported paper wallets differently from those it generates itself. For example, paper wallet addresses are not recoverable through the wallet seed. This and other security risks can be avoided by deleting the paper wallet after import.
Before proceeding, transfer the funds in the paper wallet to an Electrum Receiving address by creating an internal transaction. From the “Receive” tab, copy the first Receiving address to the clipboard by double clicking and selecting the “Copy to clipboard” menu item. Next, double click the imported address and select the “Send from” menu item.
In this example, the paper wallet contained 1 mBTC. Notice that the entire amount can't be moved because Electrum adds a default transaction fee of 0.2 mBTC. This leaves 0.8 mBTC as the amount to be transferred. When ready, click “Send”.
The progress of this new transaction can be monitored from the “History” tab.
After one confirmation (approximately ten minutes), it is safe to remove the spent paper wallet address. When ready, click on the “Receive” tab. Double click on the imported address and choose the “Remove from wallet option”.
Seeds and Change Addresses
Electrum’s wallet design and workflow are based on a concept called a “wallet generation seed”. This seed is a unique, randomly-selected list of twelve words. An Electrum wallet uses its seed as a template for generating addresses.
To understand the problem that seeds solve, browse to the Electrum “Receive” tab. Next, open the collapsible entry marked “Change”.
Notice that all receiving addresses are now empty. Moreover, the entire wallet balance is now contained in a “Change” address. Where did these new change addresses come from and why does the first one now hold all of the wallet's funds?
Bitcoin is an electronic cash system, meaning that it shares much in common with the process of using paper banknotes. Although some cash payments involve exact change, many do not. You tend to “overpay” when using cash, and expect to receive the difference as change.
Perhaps surprisingly, this is how Bitcoin transactions work as well. Although a balance can be calculated for an address, what's really going on is that a certain number of electronic coins with fixed face values can be used by the owner of an address. An address balance is found by totalling the face value of all spendable coins. For more, see Bitcoin: Think of it as Electronic Cash.
When I made the payment to Sean‘s Outpost, a 1.8 mBTC coin was fully spent. Part of this coin (1.0 mBTC) was sent to the Sean’s Outpost address (payee address), another part was sent to a newly-created change address in my wallet - the one now holding 0.6 mBTC. The 0.2 mBTC difference was claimed by the network as a transaction fee.
Change can also be returned to the sending address, although doing so enables a third party to reconstruct your transaction history. This is not advised. For more, see Who Needs Bitcoin Change Addresses Anyway?. However, if privacy is not a concern, change addresses can be disabled via the Tools > Electrum preferences menu option.
Two wallets might start out sharing the same initial set of addresses. However, randomly-generated change addresses would mean that a spending transaction in one wallet would generate a change address not present in the other. Worse, the common address in both wallets would be empty, yielding two different balances on each wallet.
Electrum solves this problem with seeds. Through some clever math, a given seed will always generate the same set of addresses in the same order, regardless of hardware. As a result, two wallets sharing the same seed will always generate the same receiving and change addresses.
The same principle that enables seeds to solve the synchronization problem on two different devices also provides the solution to the backup and recovery problem.
Make a Backup
In Electrum, a seed is a complete backup of all addresses and transactions. Access your wallet's seed through the seed icon in the lower right of the main screen, or the main menu option Wallet > Seed. When prompted, enter the secure password you chose when setting up the Electrum wallet.
Hand-copy the twelve words found in the box to a piece of paper and store it in a safe location. Remember, anyone who finds your seed can spend all of the funds in your wallet.
Alternatively, a backup file can be saved through the main menu option File > Save Copy. This file stores the wallet's encrypted seed along with any imported addresses. Restoring this backup will require the wallet password.
Restoring A Backup
The only thing needed to recover an Electrum wallet is its seed. The optional procedure below describes how.
Before continuing, verify that your current wallet contains only a small amount of bitcoin that you would not be upset about losing. Also verify that you have access to your seed in written form.
To get Electrum to generate a new wallet, the old wallet data needs to be deleted. Begin by closing Electrum. Next, locate the program‘s data directory based on your computer’s operating system:
- Windows: (1) Show hidden files; (2) Browse to
\Users\YourUserName\AppData\Roaming\Local\Electrum; (3) delete all files in the directory.
- Mac: (1) Open Finder; (2) Select the menu option Go > Go to Folder; (3) type "~/.electrum"; (4) Delete all files in the
- Linux: (1) Open the Home Folder; (2) Select the menu option Go > Go to folder; (3) Delete all files in the
Having cleared the data directory, restart Electrum. A dialog should provide the option to “restore an existing wallet from its seed.” Choose this option and click “Next”.
Next, copy the twelve word seed into the text field.
If your seed was entered correctly, Electrum gives you the option to add a password for your wallet.
After restoring your wallet, Electrum may list previous transactions as unverified. This problem disappears after restarting the program.
To change the wallet's password, select the Wallet > Password option from the main menu, or click on the lock icon in the lower right of the main window. Enter and confirm a new secure password.
Should you forget your wallets' password, all is not lost. Your wallet can be restored in its entirety using the backup procedure described in the previous sections.
Electrum offers a good balance between ease of use and rich feature set. This guide has covered the essential tasks every user should be comfortable with: receiving funds; sending funds; importing a paper wallet; backing up; and restoring a backup.
Electrum and Bitcoin offer many more capabilities than those described here. Read the next post in this series to learn more.
Image Credit: Electrum Project