This opinion editorial is by Arman The Paraman, a Bitcoin educator who is passionate about privacy. I have worked with many Bitcoin wallets over the years and mentored many people to keep their private keys safe. “Electrum Desktop Wallet” was my favorite and most versatile wallet. This essay will discuss some of the Electrum’s key features and my personal preferences. This is not a comprehensive guide on how to use it. I won’t be explaining why you should have your own Bitcoin keys. It’s assumed that you already know how to do this. However, if you want to learn more about why it’s important, please see “Six Reasons to Withdraw Your Bitcoin from Exchanges.” “Electrum is for those who are, or aspire to be, a power user. I have personally experienced the Electrum’s idiosyncrasies firsthand and have found solutions. It allows for so much control and because I am familiar with the software, I chose to teach it to most of my students as part my Bitcoin privacy/security mentorship program (although some people may need something simpler). I have had the pleasure of teaching people how to use it. However, it is completely safe to use if they take their time and test it with a limited number of sats. Operating SystemElectrum is compatible with Windows, Mac, Linux, and, for some, ARM-chip computers (i.e. Raspberry Pi’s. You can also install it on a smartphone, but its functionality and connection to nodes is poor. I don’t recommend it. BlueWallet is a good alternative for a phone wallet. BlueWallet is an alternative to a phone wallet. If you have KYC-free bitcoin, you will need to use it for large amounts. This is how you can improve your skills. The EnvironmentElectrum has a problem. If you run it in the most intuitive manner (i.e. The EnvironmentIf you run Electrum in the most intuitive way (i.e. double-click the icon) instead of the command line (with some flags), you will almost certainly be connected to a random Bitcoin Node. This will expose your wallet and all 8.6 billion addresses to that node’s owner. If you feel the need to go on a very important tangent, you can read more about it here. The Electrum Wallet displays your addresses in a clean layout. However, you will need to go to menu and select “show address” to see them. You’ll see a list with your first 20 addresses highlighted in green (you have 4.6billion of these, but not all), and a list with your first 10 addresses highlighted in yellow (again you have 4.6billion of this type). Other software wallets won’t show you a list but only give an address when you ask to send coins to the wallet. To keep things simple, this hides information from the user, but the user is often ignorant because they are not given the chance to learn. Many people use Ledger Live, the Trezor suite or Blue Wallet on their phones and don’t realize that they have unlimited addresses. To enable this, electrum will also show you a list with all your UTXOs. However, you must select “show coins” to enable that. Electrum Server is necessaryElectrum Wallet cannot connect directly to your Bitcoin Core node. This is annoying, but electrum runs faster. It’s much faster. Bitcoin Core is still required, but you will also require software called Electrum Server (of the many varieties, each with its advantages and disadvantages which I won’t discuss here). Some people find installing Bitcoin Core difficult enough. Installing Electrum Server can be a difficult task. You will need to be very tech-savvy. I recommend that people install a node-package such as MyNode (see guide) or Raspiblitz(see guide) for their first node before installing the associated software and nodes on a regular computer. Although these packages have their flaws, they are great to start with. You can install many applications on a Raspberry Pi 4 in one step. The cost of all the equipment is $300 and the software is free. I recommend that you look into more advanced node setups as your skills and interests develop. None of these are expensive. Here are six great reasons to run a node. Eg Electrum, Sparrow, Blue Wallet.Bitcoin wallet – by this, I mean the collection of unique addresses that are created deterministically (and reproducibly) from your mnemonic seed phrase (usually 12 or 24 words) – each seed phrase has 8.6 billion unique addresses that it can access/create.Electrum, by default, creates wallets that are not standard which is very annoying. BIP39 (Bitcoin Improvement Proposal 9) is the most popular protocol that almost all wallets can use. This means that the 12 to 24 words that your BIP39 wallet has created will be compatible and accessible by other BIP39 wallets. If you lose your wallet (or hardware), you can retrieve it by entering your seed words in any compatible BIP39 wallet. It doesn’t need to be the same brand. However, the Electrum developer has his own plans. He believes that the industry standard is unsafe and has an absurdly unrealistic concern about BIP39. Electrum uses its own protocol to create wallets, which are not compatible with BIP39. Unfortunately, if you create an Electrum seed phrase, you can only use that seed phrase with Electrum.Importantly, Electrum will allow you to restore a BIP39 wallet into it, but you have to know how. However, it will not create a BIP39 account for you. There are other ways around this. You can simply load a single address into Electrum and observe its balance – it doesn’t have to be yours. Pay-to-Script-Hash – these addresses all start with ‘3’.Segwit – From 2017 after the Segwit soft fork, you could create “Pay-to-witness-public-key-hash” (also called “Native Segwit”, or “Bech32”). These are the most common. They all begin with “bc1q.”Taproot. This is a new feature that Electrum does not support yet. Taproot was a soft fork by 2021. Addresses begin with “bc1p.” The first three addresses listed have extended keys that are slightly different from each other’s. They begin with xPub (yPub), zPub (zPub), respectively. Taproot is tPub, but I’m still learning about it. You can find more information about Bitcoin public and private keys here. LabelsThis feature isn’t unique but it is very important if you want to keep your privacy through good coin control. You can identify which UTXOs you want to avoid spending with others by labeling them. If you have a KYC-free, mixed coin and you send it to someone, the private coin can be identified to the person who owns the KYC coins (since they could be spent together). Do not do this. You can save the labels to a file so that they can be uploaded to another computer if you have duplicate wallets. Coin SelectionCoin selection is a great function. You can access your address windows and choose the coin you wish to spend. Or, you can group several coins together for spending. Electrum will automatically choose the best coin to spend for your needs if you don’t specify which coin you want. However, the software doesn’t always know the best. It doesn’t know which coins are safe to merge, which are safe from dust attacks, or which are mixed. You know this, because you’ve labeled them, and then you can decide how to manage it.Sending/ReceivingThe process of sending bitcoin payments is very “fine tunable.” It’s possible to keep it simple but I recommend that you learn how to use the advanced button. You can see all the key elements of a Bitcoin transaction. These include inputs (with Tx IDs or addresses), outputs, whether any listed address are found in your wallet (through colour-coding), the min fee and the ability to fine-tune it. The transaction size (in bytes), lock time and replace-by-fee. Although you don’t have to know all of these things immediately, it’s helpful to be familiar with them. You can also go to the address window to select any address to create an invoice. Right-click on the address to open details and a button will appear to create a QR code for the address. Or you can simply copy the address text. Electrum will notify you when a payment has been made to an address and is in the mempool. Electrum allows you to spend unconfirmed coins. If the sender has set a low fee and confirmation takes a while, you may be able to speed up the payment by spending the unconfirmed transaction at another of your addresses. You could also add a mining fee to the second (downstream transaction). A miner would need to include both the first transaction (not lucrative), and the downstream transaction you created. Why? The second transaction is invalid unless the first transaction is valid. This is because you can’t spend coins that don’t exist. This is known as “child pays parent.” RBF (replacement by fee) is another technique that Electrum can use to speed up payments. This is not what the receiver can do with Electrum, as it would be impossible for them to do with “child pays parent.” A receiver who is impatient should ask the sender to perform an RBF. The sender will resend any UTXO that has been “spent”, but not yet mined to blockchain. This UTXO can be used to fund an alternative transaction. It can be sent to the same address or to a different address, and charged a higher mining fee. RBF allows for fraud. The first transaction to be mined will be valid. A receiver (merchant), who accepts an unconfirmed transaction and delivers the goods to the sender, has the opportunity to conduct a RBF transaction. This will take place before the original payment is mined. They would use their address as the recipient of payment and charge a high fee. Once that is done, the original transaction becomes invalid and is dropped by all nodes from the mempool. The balance from the merchant’s account disappears. You’ll notice that Bitcoin exchanges will wait for confirmation on blockchain before crediting your account. You can have cosigners using either hot keys (software wallets), or cold keys (connect-hardware wallets). Multisignature public keys can either be made one at time on different days on different computers (or hardware devices) – this reduces the chance of an attack or failure. It is up to you how far you go in taking precautions. I will also have a guide on how to make these wallets in future. Although the wallet creation process is simple and straightforward, there are some quirks that become less important once you learn about them. Electrum’s handling of partially signed Bitcoin transactions (PSBTs) is something I love. This is an important feature of multisig wallets. You can save the text to a file or a QR code. Or you can copy and paste it into an email. This text can be sent wherever and whenever you wish. If you are so inclined, you can extract the text and send it by email, a physical letter, Morse code, smoke signals, gravitational waves back in time via a black hole, or interpretive dance – that’s up to you.Electrum gives you the ability to extract that text and save it, before it’s signed, after it’s signed, or in a multisignature setting when it’s partially signed.Multisignature is particularly interesting. You can sign a transaction using your computer. If there are 3 key holders, you can extract the Bitcoin transaction and email it (or QR code via a video conference) to another participant. They can then import it, sign it, and send it to the third person for broadcasting. This is not a unique feature of Electrum. I like the way Electrum handles it. It is not intuitive and requires practice.Pay to Many (PayJoin and CoinJoin). There is a hidden feature (search for the menus) that allows you to choose multiple destinations (multiple outputs), when spending. You can send 0.01 bitcoin to 615 employees and take 6.15 bitcoin. This feature allows you create PayJoins manually, something that only a small number of people would understand. However, it’s still cool. Pay to Many also allows for you to create your own manual coinJoins. This guide will explain what this is and how it works. Gap LimitAn important feature not all wallets have, is the ability to set a gap limit. Every wallet is a collection with 8.6 billion addresses. The software wallet must connect with a node to check if an address has Bitcoin associated with it. It won’t check all 8.6 million of them. Electrum requests the first 20 addresses. If the first 20 addresses are not uded, it will request another 20, and so forth. It will continue this until the node returns 20 unutilized addresses in a row. This is to explain that the default gap limit for a node is 20. However, you can change it. Why would you? Sometimes merchants will allow customers to create bitcoin addresses through their payment app (hint-hint). The Electrum wallet will become empty if the first 20 customers create invoices (one per customer, sequentially given by app), and then the 21st generates an invoice. This is because the first 20 addresses are questioned and found to be inactive. Electrum will then stop searching. Electrum allows you to change the gap limit, eg to 500 but there are no instructions, you’d have to research online, or find it right here:You’ll have to first go to the menu: view->show console, and then type this command in the console (of course the “500” can be changed to another number):wallet.change_gap_limit(500)With this command, you’ll see 500 new addresses in the address window.Watching WalletsThese are wallets without private keys, necessary for hardware wallets to connect to. Although most people use the software that came with their hardware wallet, they are not always open-source. Electrum can be used with any hardware device. This computer can be used for checking that the seed phrase that a hardware wallet gives has created the correct addresses. For example, you might purchase a BitBox02 hardware-wallet. It will create a 24 word seed for your computer and then create addresses. The private keys associated with the addresses are hidden from public view. Depending on how paranoid you are and how much bitcoin you store, you might not trust the embedded software. To verify that it is genuine, you will need to restore a different wallet (eg Electrum) and ensure that Electrum generates identical addresses. It’s simple enough. However, you cannot just put the seeds into any computer with Electrum. You can, but it’s not recommended. Malware can extract your keystrokes and steal bitcoin. These devices have an ARM chip that makes it difficult for all software wallets to be compatible. Electrum works beautifully and is easy to use. Here’s how you can make your own. It works in the same way as a seed signer, but it has all the functionality of Electrum. A Bitcoin transaction is a payment that contains a cryptocurrency that was previously “locked” by an account. To unlock the coin, according to the rules of Bitcoin, and allow you to spend it using public/private keys cryptography, you must prove that they have the private key to the address within. You can sign any message using public/private key cryptography. Here is an example of a message that I signed after selecting an address (and its private key). Below is the message, address, and signature (nonsense-looking) that I signed after clicking “sign”. Now you or anyone can take this address, the message and the signature and put them in Electrum (or another software) to verify that it is the correct private key (matching that address). This is the same verification that Bitcoin nodes use for every Bitcoin transaction. To prove verification, I will open another wallet that doesn’t have the private key. I went into the “verify message” window, then entered all the details as you see above, and then clicked Verify:Encrypt/Decrypt A MessageInstead of signing a message with public/private key cryptography, the output can be an encrypted version of the message (i.e. The message can be encrypted using another’s public key/address. The encrypted version can be sent to anyone with the corresponding private keys. This is how you can send me text messages over an insecure communication channel. Only I can read them. This is the magic of public/private cryptography, which is one of the key components that made Bitcoin possible. We should all be grateful that the cypherpunks fought and won against the US government trying to ban it in 1990s. I hope you found this review interesting and want to learn more about it. I will soon release a guide. Arman The Parman contributed this guest post. These opinions are not necessarily those of Bitcoin Magazine or BTC Inc.