Electrum is one of Bitcoin’s most popular wallets. It uniquely walks the fine line between beginner usability and expert functionality. This guide introduces Electrum with step-by-step examples highlighting the most important beginner features. No previous experience with either Bitcoin or Electrum is needed. Learning Electrum requires practice. This guide will show you how whether you currently own bitcoin or not. It is an excerpt from the upcoming book Electrum for Bitcoin Beginners.
- About Signatures
- Funding Your Wallet
- Testnet Mode
- Receive a Payment
- Monitor Transactions
- Make a Payment
- Sweep a Paper Wallet
- Seeds and Change Addresses
- Make a Backup
- Testing Backup: Delete Your Wallet
- Testing Backup: Restore Your Wallet
Operating system-specific installers and installation instructions are available from the download page.
Installation on Windows
Three versions of Electrum are available for Windows. The one labeled “Windows Installer” is the most convenient.
Installation on Mac
Choose the download marked “Executable for OS X.” A bug prevents the most recent release of Electrum (2.9.3) from running on OSX. The features missing in the 2.9.2 release linked on the front page won’t be used here.
Double-clicking the downloaded file opens a mounted volume. Drag the
Electrum.app icon into your
Applications folder. This appears to the left of the window under Favorites. Open the
Applications folder and double-click the Electrum icon.
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
The Software Center distributes Electrum, but this tends to be an outdated version. The instructions given on the download page should allow you to install the latest release.
There’s a tendency to trust software downloaded from the Internet. However, Bitcoin creates new incentives to deploy malware through downloads. Unless you audit every line of Electrum’s code, you run the risk of installing malware. One way to proceed is to trust Electrum’s lead developer, Thomas Voegtlin who has been building Electrum since 2011. The best way to do this is to verify your package’s signature.
The downloads page provides two links: the first leads to the software package you downloaded and the second leads to a signature file. Using the appropriate software, this signature file can be used to verify the authenticity of the software you downloaded. This step should be considered mandatory for any wallet that will hold significant money. A series of posts will describe how to verify the signature of an Electrum download on Mac, Windows, and Linux systems.
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.
Launch Electrum by double clicking its icon, or some other method. This launches the Install Wizard. Its first question regards your method of connecting to a server. Although you can connect to a trusted server (and this is recommended for secure use), letting Electrum decide on a server is a good beginner option. Click Next.
The next screen prompts you to name your wallet file with the text “This file does not exist.” The Wizard offers the default name
default_wallet. Accept it, then click Next.
The next screen offers a choice of four types of wallet, with the default set to “Standard wallet.” Leave this option selected then click Next.
The next screen asks about the kind of keystore to create. A keystore is the set of signing keys you’ll use to make Bitcoin transactions, and is controlled by a seed. Leave the default option “Create a new seed” selected and click Next.
The next window displays your seed. The words displayed in your window should be different than that those in the figure below. Write your seed on a piece of paper. Don’t print it with a printer.
The next window asks you to type your seed. Click inside the text area and type the words of your seed. When you have entered the correct words, the Next button will become active. Click it.
Electrum can, at your option, encrypt the copy of your seed stored to disk. In the event that your computer is attacked, an intruder obtaining Electrum’s files will be unable to decrypt your seed. You may also encrypt the entire wallet file by selecting the “Encrypt wallet file” option. Doing so encrypts all wallet contents, not just the seed. This protects not only your money, but your privacy in the event of an attack.
Wallets intended for experimentation and learning benefit little from encryption. For now, leave the password fields blank and click “Next.”
Electrum should present its main screen. The circle in the lower-right corner should be green (or blue if you’re connecting through Tor). If it is, you’re ready to start using Electrum. Otherwise, you’ll need to configure your network settings by clicking on the circle.
Funding Your Wallet
If you already keep bitcoin on an exchange or elsewhere, you may now transfer those funds into your Electrum wallet. If you do, a very small transfer is recommended. Expect to make mistakes when learning Electrum, especially if you’re new to Bitcoin. It’s far better to take your lumps when dealing with chump change than when your life savings is on the line.
Unfortunately, the steep rise in transaction fees during 2016-2017 has made experimenting with real bitcoin very expensive. Transactions carrying fees of $1 or more are not uncommon. You’ll need to make several transactions with Electrum before the process begins to feel familiar. Depending on your budget, this may simply be too expensive.
One solution is Testnet. Testnet is a Bitcoin clone (actually the first altcoin) that runs on a different network using a different block chain. Specifically designed for experimentation, Testnet offers beginners a chance to experience using Bitcoin without risking financial security or privacy.
Because they are intended to convey no monetary value, Testnet coins can still be obtained from faucets at no cost. The best option for finding one is to search for the term “bitcoin testnet faucet.” A long-running and reliable faucet is available at Bitcoin TestNet Sandbox.
The remainder of this tutorial will assume that you’re running Testnet. With only minor differences, Electrum works the same in either case.
If you decide to run Mainnet instead, there’s nothing further to do with Electrum. Your next step will be to log into your exchange or wherever your funds are currently stored. When that is done, you can skip the next section.
Those who want to run Testnet will need to put Electrum into Testnet mode.
Although Electrum supports Testnet mode, this feature isn’t available through the graphical user interface. Running Electrum in Testnet mode is not difficult, but the procedure varies by operating system.
Specifically, you’ll create an operating system-specific launcher. This launcher can be placed on your desktop or elsewhere. It will allow you to run Testnet Electrum whenever you double click it.
Before setting up an Testnet Electrum launcher, it’s essential to run Electrum at least once in Mainnet mode. That’s best accomplished by double clicking Electrum’s built-in launcher, or using your system launcher. This step adds essential files that Testnet Electrum will need to run.
Testnet on Windows
Copy the Electrum launcher on the desktop (right click, Copy). Paste a new copy onto the desktop (right click, paste). Rename the copy to “Electrum Testnet.”
Access the launcher’s properties (right click, Properties). Under the “Target” field append the following text: “ --testnet” (a leading space is required, and there are two dashes). Click OK.
Testnet on Mac
The launcher will be created through the Terminal application. Run it by simultaneously pressing the command key (⌘) and spacebar. Then type “terminal.”
Terminal is a tool for entering low level commands. You’ll only need to enter two. First, type
nano ~/Desktop/electrum. A low-level text editor called “Nano” will run. Type the following text.
open -n /Applications/Electrum.app --args --testnet
When you’re done, Nano should look like this:
Save the file by pressing control-x. Nano will ask you if you want to save the buffer. Press “Y” (captial “Y”) followed by the return key. A new file called
electrum will appear on your desktop.
Next, the file needs to be made executable. Type the following command into your terminal:
chmod +x ~/Desktop/electrum.
You should see an icon on your desktop that looks like this:
Double-click the icon. This should start Electrum in Testnet mode after a brief pause.
Testnet on Ubuntu
Begin by opening the terminal application. The easiest way to do this is to click the Ubuntu icon in the upper left of your desktop, then type “Terminal.” At the prompt, type
nano ~/Desktop/electrum.desktop. The Nano editor will start. Enter the following text:
[Desktop Entry] Type=Application Name=Electrum Testnet Exec=electrum --testnet Icon=electrum
Save this file by pressing control-x, followed by uppercase “Y”, then enter. You should see an Icon labeled “Electrum Testnet” on your desktop.
Make the desktop launcher executable by typing the following command at your Terminal prompt:
chmod +x ~/Desktop/electrum.desktop. There should be an icon on your desktop that looks like this:
Double-click the icon. This should start Electrum in Testnet mode.
Verify Testnet Connection
It’s important to verify that you’re actually running Testnet. The easiest way to do that is to examine the Receive tab. The receiving address will begin with an “m” or “n” when running in Testnet mode. Otherwise, addresses will begin with a “1.”
There aren’t very many Electrum Testnet servers. For this reason, you may fail to connect after launching Electrum in Testnet mode. A red circle in the lower-right corner of the main window will be your clue. If this happens, you can to connect to a custom server. See this list of Testnet servers.
Begin by double clicking the red circle to the lower right, which opens the Network configuration panel. Uncheck the box labeled “Select server automatically.” Next, click on the Server tab. Enter the host name and port of the server you’d like to connect to in the two top fields. Be sure this server’s protocol (“Proto”) matches the protocol Electrum uses (SSL or not, available from the Proxy tab) then click Close.
Receive a Payment
To receive a payment, you’ll need an address. Click on the Receive tab to obtain one. You can either scan the QR code or copy the receiving address to the clipboard and paste it into your withdrawal service.
In this example, we’ll accept a payment from a Testnet faucet. Browse to Bitcoin TestNet Sandbox. Paste your receiving address into the form field labeled “Your TestNet Address.” Check the box that reads “I’m not a robot” and click the button labeled “Give me some coins.”
The transaction will initially be marked as “unconfirmed” under the History tab, indicating that it has not yet been added to the block chain. A transaction added to the current block has one confirmation. A transaction added to the preceding block has two confirmations, and so on.
Adding a description to this payment will help you identify it later. To do so, double-click the Description field and add a descriptive label.
Transaction details are available by right-clicking the “unconfirmed” label. A window pops up listing the transaction ID, amount, size, fee, and other details. The transaction identifier can be pasted into a block explorer such as blockchair.com or yogh.io.
As a transaction accrues confirmations, its icon changes. When the transactions has six confirmation, a checkmark appears next to its timestamp.
Currency exchanges such as Localbitcoins and Coinbase 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.
Make a Payment
Payments can be made through the Send tab. Activate it by clicking. The “Pay to” field holds a Bitcoin address of your intended payee, which can be manually entered or pasted from the clipboard. Adding a description will help you identify the payment later.
The total amount of the transaction is the sum of the sent amount and transaction fee. Electrum issues a warning in the form of a red amount if the total transaction amount exceeds the wallet balance. This can be subtle. For example, the screenshot below shows a red amount because available funds are insufficient to cover both the payment and fees.
Bitcoin fees are a complex topic. Briefly, a fee is required to send any transaction. Whereas the banking system charges fees based on the amount being sent, Bitcoin charges fees based on the number of bytes needed to encode a transaction. The fee is the product of two terms: the transaction length, in bytes; and the market fee density. The fee density fluctuates with network transaction volume. A good estimate of the current market fee density is available from estimatefee.com.
Electrum allows the fee density to be adjusted by moving the slider below the transaction amount. Sliding left decreases fee density; sliding right increases it. The higher the fee density, the higher the total fee, and the more likely a transaction will be included within the next block. A transaction of low fee density can be delayed for hours, days, or simply not confirm at all.
A checkbox marked “Replaceable” appears to the right of the fee slider. On Electrum 2.9.3, this box is checked by default. Leaving it checked marks the transaction as replaceable. A replaceable transaction can be re-sent in the event that its fee density causes unwanted delay. Many services will not accept unconfirmed replaceable transactions as payment for goods or services and will require a confirmed transaction instead. In most cases, however, the Replaceable box should be checked.
During times of high or low network traffic, Electrum’s fee slider may cause you to overpay or underpay fees, respectively. A custom fee density can be set by updating preferences. Pull down the Tools menu and select the Preferences item. Under the Fees tab appears a checkbox labeled “Edit fees manually.” Check it and click Close.
You will now be able to set a specific fee for your transaction by entering it into the box to the right of the slider. Be aware that this is an absolute fee, not a fee density. In other words, this is the total fee your transaction will pay. To calculate it, you’ll need to know the transaction’s size in bytes.
One approach to setting fees would be to use the slider to coarse-adjust the fee, then fine-tune it with the fee input box during times of low or high network transaction volume.
I’ve decided to return 1 testnet mBTC (0.001 tBTC) to the faucet I received them from, paying a medium fee density.
It’s a good idea to review your payment before publishing it. Click the Preview button. A popup window shows the amount sent, the transaction length in bytes, the fee and fee density you’re paying, and source/destination addresses.
The lines appearing under the Outputs section are noteworthy. Bitcoin is an electronic cash system in which digital coins are represented as transaction outputs. My transaction creates two outputs even though I’m only paying one entity. Why?
The first output pays the address I entered into the payment form, but the second output pays one of my own addresses. This allows me to collect change (in this case, 0.999897 tBTC) from the transaction.
The transaction can be signed and broadcast from the transaction preview window (click Sign, then Broadcast). Alternatively the window can be closed, and the transaction sent by clicking the Send button from the Send tab.
If you added a password to your wallet, Electrum will ask you for it before the transaction is signed.
After broadcasting your transaction, return to the History tab. From here you can monitor the status of your outbound payment just like you did for your inbound payment. A replaceable transaction receives a yellow triangle warning icon until it’s confirmed.
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. For Bitcoin, this key will consist of 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.
The funds held on a paper wallet can be swept, or transferred into your Electrum wallet. Begin by selecting the “Private keys” item from Wallet menu.
Enter one or more private keys, one per line, in the field labeled “Enter private keys.” The address at the bottom shows the destination of the swept funds. A different address can be chosen by clicking the Address button. The image above sweeps a Testnet private key.
When ready, press Sweep. Electrum requires that any output to be swept must have one or more confirmations.
Seeds and Change Addresses
Electrum manages a deterministic key pool. A deterministic key pool generates a family of key pairs (public/private) from a single master key pair. Electrum’s master private key can be represented as a seed. This is the sequence of words you used when creating your wallet.
To understand the problem that this complexity solves, have a look at the Addresses tab. It will be hidden by default. To reveal it, select Show Addresses item from the View menu. Other advanced tabs can be added from the View menu.
If you’ve been following the tutorial as described, you may be surprised to find that all receiving addresses are empty. The wallet itself shows a non-zero balance, so where did the money go?
The answer is “change.” Scroll to the bottom of the Addresses tab. Open the Change list by clicking on the rightward-pointing triangle. If you’ve made a previous transaction chances are you’ll see one or more change addresses with non-zero balances.
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 it may appear that a transaction merely deducts a certain amount of bitcoin from your wallet, what actually happens is quite different. A coin is selected from your wallet. It has a face value that probably differs from the amount you’re paying. Your transaction creates two new coins: one paying the merchant and one returning change back to you. This change ends up in a change address. For more, see Bitcoin: Think of it as Electronic Cash.
In the payment example above, a 1 tBTC coin was fully spent. Part of this coin (0.0001 tBTC) was sent to the faucet (payee address), and another part was sent to a newly-created change address in my wallet - the one now holding 0.999897 tBTC. The difference (0.000003 tBTC) was claimed by the network as a transaction fee.
This feature can be disabled in electrum, but doing so is not recommended. To understand why, see Who Needs Bitcoin Change Addresses Anyway?. However, if privacy is not a concern, change addresses can be disabled from the Preferences window (choose Preferences from the Tools menu). Electrum exposes a few other transaction settings through the same panel.
Electrum’s seed-based design allows you to reconstruct all of a wallet’s addresses and private keys from a short list of words. The most important benefit is that backups become very easy to create and manage. Secondarily, two wallets using the same seed will remain synchronized with each other. This principle underlies cold storage, a system for protecting bitcoin that is far more secure than the one described here. The last chapter of the book Owning Bitcoin details a complete cold storage system based on Electrum.
Make a Backup
An Electrum seed controls the generation of all addresses and private keys. As such, it’s vital to keep a paper copy of your wallet seed in a safe place. If you followed this tutorial from the beginning, you should have already written your seed on a piece of paper. If not, now would be a good time to create a backup.
Access your wallet’s seed through the seed icon in the lower right of the main screen, or by choosing Seed from the Wallet menu. 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.
Additionally, a backup of your wallet, including any annotations you may have made, can be saved by choosing the Save Copy item from the File menu. This file stores the wallet’s encrypted seed along with any annotations. Restoring this backup will require the wallet password if you added one.
Testing Backup: Delete Your Wallet
The only thing needed to recover funds from an Electrum wallet is its seed. The optional procedure below describes how.
Note that this procedure will erase all of your wallet data. It’s designed to simulate a system failure. Restoring your wallet proves that you can recover from catastrophic system failure without loss of money. If you can’t receover, you’ll lose any money currently stored on your wallet.
Before continuing, verify that your current wallet contains only a small amount of bitcoin (or testnet 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 need to be deleted. Begin by exiting Electrum. Next, locate the program’s data directory based on your computer’s operating system.
Delete Wallet on Windows
- Show hidden files.
- Browse to
- delete all files in the directory.
Delete Wallet on Mac and Linux
- Open the Terminal;
- Type “rm -rf ~/.electrum/“.
If running Electrum Testnet, you’ll need to re-create the Electrum data directory to avoid errors. On Windows, create a folder named
testnet in the Electrum folder. On Mac and Linux, issue the Terminal command
mkdir -p ~/.electrum/testnet.
Testing Backup: Restore Your Wallet
Having cleared the data directory, restart Electrum. The Wizard will once again show itself. On the Keystore screen, choose the option “I already have a seed” and then click Next.
Copy your twelve word seed into the text field, then click Next. If your seed was entered correctly, Electrum will give you the option to add a password for your wallet.
After restoring your wallet, Electrum may list previous transactions as “unverified.” This condition will persist until all Electrum finishes synchronization with its server. You can monitor progress from the Network window. Access it by clicking on the circle to the lower right of the main window. When the block count under “Blockchain” equals the height indicated for the servers you’re connecting to, Electrum will be fully synchronized and all confirmed transactions should be displayed properly under the History tab.
To change the wallet’s password, select the Password option from the Wallet menu, or click the lock icon in the lower right of the main window. Enter and confirm a new secure password.
Should you forget your wallet’s password, all is not lost. Your funds can be restored in their entirety using the recovery procedure described in the previous section.
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. Future posts will introduce them. Advanced use of Electrum, including cold storage, can be found in the e-book Owning Bitcoin.
If you created a Testnet wallet, be sure to return your Testnet bitcoin to the faucet that gave them to you. Doing so helps ensure that another user can enjoy this risk-free introduction to Bitcoin.