Frequently Asked Questions
This page addresses common questions and concerns users have about Electrum Bitcoin Wallet.
Last updated
This page addresses common questions and concerns users have about Electrum Bitcoin Wallet.
Last updated
Electrum prioritizes your security. Your private keys never leave your device, and Electrum verifies all server information using (SPV) for added protection.
Electrum normally connects to about 10 servers. It gets notified about new blocks from all these servers and also regularly asks them for current transaction fees. Except for one server, all the other servers are only used for getting block information and fees. Getting this information from multiple servers helps Electrum spot slow servers, problems in the blockchain, and alternative versions of the blockchain.
One of the servers, arbitrarily, is selected as the “main” server.
The client subscribes to its own addresses (nit: sha256 hashes of scriptPubKeys) so that it would be notified of new transactions touching them. It also synchronizes the existing history of its addresses. This means the server knows all those addresses are linked and likely belong to the same user, making the user less anonymous.
The software uses a method called to make sure the transactions it sees are actually valid and part of the Bitcoin blockchain.
The server is trusted about unconfirmed transactions.
The server isn't completely trustworthy. It could choose to hide certain transactions from the software, even ones that have been confirmed or are waiting to be confirmed.
The software asks all connected servers for transaction fee suggestions, but how it uses those suggestions depends on the "auto-connect" setting. If it's off, only the main server's suggestion is used. If it's on, the middle value of all suggestions is used. In both cases, the software makes sure the suggestions are within reasonable limits.
The software also relies on the main server to send out the user's transactions to the Bitcoin network.
A list of server peers is also requested by the client, to learn about other servers it can use. (There is a list of hardcoded servers in the client to bootstrap)
It's important to note that all the servers the software connects to will see its IP address. This could be the user's real IP address, or the address of a proxy, VPN, or Tor if they are using one.
While Electrum offers quick startup times and minimal resource consumption, this comes at the expense of some privacy, as detailed above. However, the design of the protocol and client prioritizes minimizing reliance on server trust.
Electrum servers can be operated by anyone. If privacy is a top priority, or you require stronger security guarantees than those offered by SPV, setting up your own server is recommended.
The seed is a set of 12-24 words that acts as a master key to your crypto wallet.
Example:
This seed phrase is for demonstration purposes only - never use it for a real wallet, your funds would be at risk! Always generate your own unique seed phrase and keep it a closely guarded secret.
Your wallet can be entirely recovered from its seed. For this, select the “I already have a seed” option in the wizard.
Your Electrum wallet is protected by a 132-bit seed phrase, a sequence of 12 words that acts as a master key to your Bitcoin funds. You might wonder how this relatively short phrase offers the same level of security as a 256-bit Bitcoin private key. The answer lies in the clever mathematics behind elliptic curve cryptography (ECC).
ECC is a powerful form of cryptography used in Bitcoin and many other applications. It relies on the complex properties of elliptic curves to provide strong security with relatively short key lengths. In essence, ECC "compresses" the security of a 256-bit key into a 132-bit seed phrase.
While your wallet password cannot be recovered, you can restore full access using your seed phrase.
Losing both your password and seed phrase means permanent loss of access to your funds. There is no way to recover your money in such a scenario. Therefore, it is crucial to write down your seed phrase on paper and store it in a safe and secure location, separate from any digital devices.
Simply create a new wallet, select your desired wallet type, choose "I already have a seed," and carefully enter your seed phrase. This will regenerate your wallet with all its addresses and balances, allowing you to set a new password.
Electrum displays the current Bitcoin price using data from external providers. You can customize this source to suit your preferences. Please see menubar > Tools > Preferences > Fiat to view the current setting or choose a new one.
For a Bitcoin transaction to be considered "confirmed," it needs to be included in the Bitcoin blockchain by miners. The speed of this confirmation process is primarily determined by the transaction fee you choose. Miners prioritize transactions with higher fees, as these offer greater rewards for their efforts.
To ensure your transactions are confirmed promptly, Electrum employs "dynamic fees." This feature, enabled by default in recent versions, intelligently calculates an appropriate fee based on the current network conditions. This ensures that your transactions are processed quickly without overpaying.
If you have made a transaction that is unconfirmed, you can:
Patience: The simplest approach is to wait. Your transaction will eventually be confirmed or canceled, though this could take several days.
Increase the Fee (Replace-by-Fee): This option is only available for "replaceable" transactions, which Electrum creates by default (except for Lightning channel operations).
Look for "Replace by Fee: True" in the transaction details screen to confirm it's replaceable.
Right-click the unconfirmed transaction in the history tab and select "Increase Fee."
Set an appropriate fee, click "OK," sign the transaction, and broadcast it.
Child Pays for Parent (CPFP): This method involves creating a new transaction (the "child") with a high fee to incentivize miners to process its parent transaction. It can be initiated by the recipient or the sender if the transaction includes a change output. - Right-click the unconfirmed transaction in the history tab and choose "Child pays for parent." - Set a suitable fee, click "OK," sign the transaction, and broadcast it.
Cancellation (Double-Spend): This option is only available for "replaceable" transactions. It involves creating a new transaction that spends the same coins as the unconfirmed one but sends them to a different address (usually your own). - Ensure the transaction is replaceable by checking for "Replace by Fee: True" in the details. - Right-click the unconfirmed transaction in the history tab and select "Cancel (double-spend)." - Set an appropriate fee, click "OK," sign the transaction, and broadcast it.
Freezing an address in Electrum prevents you from spending the bitcoins associated with that address. Think of it as temporarily locking those funds.
When you freeze an address:
The funds in that address are excluded from your available balance for sending transactions.
You can still receive bitcoins to a frozen address.
You can easily unfreeze the address later to regain access to the funds.
Electrum uses two separate levels of encryption:
Seed and Private Key Encryption (AES-256-CBC):
Your seed and private keys are encrypted using the strong AES-256-CBC algorithm.
On-demand decryption: Private keys are only decrypted briefly when you need to sign a transaction, requiring your password.
Minimized exposure: This approach minimizes the time your sensitive information remains decrypted in your computer's memory, reducing vulnerability.
Wallet File Encryption (ECIES):
Optionally, your entire wallet file can be encrypted on disk.
Asymmetric encryption (ECIES): This advanced method allows Electrum to save the encrypted wallet without retaining the password in memory, enhancing security.
Password prompt: You'll be prompted for your password each time you open the encrypted wallet file.
Since version 2.8, Electrum automatically encrypts your wallet file to enhance your privacy and prevent unwanted Bitcoin requests to addresses you don't control.
Yes, Electrum supports cold wallets. This means you can use Electrum in conjunction with a hardware wallet or an offline computer to enhance the security of your Bitcoin.
Electrum facilitates cold wallet setups through its "watch-only" wallets. This feature allows you to monitor addresses and balances without needing the corresponding private keys on your online machine. You can create transactions on the offline device and then import them into Electrum on your online computer for signing and broadcasting.
Electrum 2.0 and later versions do not allow you to directly import private keys into a wallet that is already managed by a seed phrase.
To import private keys into Electrum without sweeping them, you'll need to create a wallet without a seed phrase. Here's how:
Create a new wallet.
Select "Restore."
Instead of entering your seed phrase, provide a list of private keys. This will create a wallet where you control the imported keys.
Alternatively, you can provide a list of addresses to create a watching-only wallet. This allows you to monitor the addresses' activity without having spending authority.
Remember, wallets without a seed phrase cannot be recovered if lost. Keep your private keys secure and backed up.
You will need to back up this wallet, because it cannot be recovered from a seed.
Sweeping allows you to transfer all bitcoins controlled by specific private keys into an existing address within your Electrum wallet. This process doesn't import the private keys into your wallet; instead, it simply moves the funds they control.
How to sweep private keys:
Navigate to Wallet > Private Keys > Sweep.
Enter the private keys you want to sweep in the designated field.
Leave the "Address" field unchanged. This field automatically displays a destination address derived from your Electrum wallet's seed.
Click "Sweep".
Confirm the transaction details, including the fee, on the "Send" tab.
Click "Send" to transfer the coins to your Electrum wallet.
This process ensures the bitcoins are moved securely into your Electrum wallet while leaving the original private keys untouched. Remember, always double-check the destination address and transaction details before confirming.
The data directory of Electrum is where wallet files, config settings, logs, blockchain headers, etc are stored.
On Windows:
Show hidden files
Go to C:\Users\%USERNAME%\%APPDATA%\Electrum\
On Mac:
Open Finder
Go to folder (shift+cmd+G) and type ~/.electrum
On Linux:
Home Folder
Go -> Location and type ~/.electrum
When you first launch Electrum, a default wallet file named "default_wallet" is automatically created. This file is stored within the wallets folder, which is located inside your Electrum data directory.
The exact location of the data directory varies depending on your operating system.
Electrum offers two ways to enable debug logging:
1. Logging to File (Linux/Windows/macOS):
Using the GUI:
Go to Menu Bar > Tools > Preferences > Misc.
Check the box next to "Write logs to file."
Restart Electrum.
Result: Debug logs will be written to the logs/ folder within your Electrum data directory.
Workaround for Wallet Errors: If you can't access "Preferences" due to an error opening your wallet, create a temporary wallet to enable logging.
Using CLI/RPC:
Run the following command: $ electrum setconfig log_to_file true
2. Logging to Terminal (Standard Error) (Linux/macOS):
Using the Terminal:
Start Electrum from the terminal using the -v flag. For example:
Linux/macOS: $ electrum -v
macOS (official binary): $ /Applications/Electrum.app/Contents/MacOS/run_electrum -v
Result: Debug logs will be displayed directly in the terminal window.
Windows: This option is not available when using the Windows binaries.
Yes, Electrum allows you to make bulk payments by creating a single transaction with multiple outputs.
The amounts you enter in the "Pay to" field are interpreted in the current unit set within your Electrum client. This means you can use BTC, mBTC, bits, or satoshis, as per your preference.
Importing from CSV:
For larger batches of payments, you can streamline the process by importing a CSV file.
Simply click on the folder icon next to the "Pay to" field and select your CSV file.
Ensure your CSV is formatted correctly, with each line containing an address and amount separated by a comma.
Electrum provides a user-friendly way to create and sign raw transactions directly within its interface.
Electrum might freeze when you attempt to send bitcoins, especially if you're dealing with a large number of transaction outputs. This typically occurs when you've accumulated numerous small transactions, similar to having a wallet full of coins.
Why does this happen?
When sending bitcoins, Electrum searches for unspent outputs (UTXOs) in your wallet to create a new transaction. Having a large number of UTXOs, especially small ones, can significantly slow down this process.
Solution:
Consolidating your UTXOs can resolve this issue. This involves sending smaller amounts of bitcoin to another address within your own wallet.
Think of it like exchanging a pocketful of change for a single bill. This consolidation reduces the number of inputs required for future transactions, making the process much smoother and preventing freezing.
The gap limit is a crucial setting in Electrum that determines how many consecutive unused addresses the wallet will scan in your deterministic address sequence. This limit prevents unnecessary searching and improves wallet performance.
Here's how it works:
Electrum wallets generate addresses in a deterministic sequence based on your seed.
When looking for funds or transactions, Electrum scans this sequence.
The gap limit defines the maximum number of consecutive unused addresses Electrum will scan before stopping.
Default Gap Limit:
In Electrum 2.0 and later, the default gap limit is set to 20. This means Electrum will scan your address sequence until it finds 20 consecutive unused addresses.
Why is this important?
Efficiency: The gap limit prevents Electrum from endlessly searching for addresses, especially if you have a long history of transactions.
Privacy: It limits the number of addresses exposed during a scan, enhancing your privacy.
While the default gap limit is generally sufficient, you can adjust it in Electrum's settings if needed.
While Electrum automatically generates new addresses as you use them, reaching the gap limit, you might need to pre-generate addresses for various reasons.
Access the Console: Open Electrum's console by navigating to Tools > Console.
Use the create_new_address command:
To generate a single new address, type:
To generate multiple addresses (e.g., 50), use a for loop:
Important Considerations:
Red Background: Pre-generated addresses beyond the gap limit will appear with a red background in the address tab. This indicates they aren't automatically tracked within the gap.
Manual Recovery: If you need to recover addresses beyond the gap limit, you'll need to either increase the gap limit in Electrum's settings or manually generate new addresses until the used ones are found.
Backup: Ensure you back up your wallet seed to avoid losing access to pre-generated addresses.
Upgrade Process:
Wallet File Compatibility: Your wallet files are stored independently from the Electrum software. You can safely remove the old version if your operating system doesn't automatically do so. However, be aware that some Electrum upgrades might modify the wallet file format.
Downgrading:
It is not recommended to downgrade to an older version of Electrum once you've opened your wallet with a newer version. Older versions might not be able to read the updated wallet file format.
Upgrading from Electrum 1.x to 2.x:
Address Regeneration: Electrum 2.x will regenerate all your addresses during the upgrade. This process might take some time, so be patient.
Wallet File Replacement: Your old Electrum 1.x wallet file will be replaced with an Electrum 2.x wallet. You will no longer be able to use the old version with this wallet.
Initial Address Display: When you first launch Electrum 2.x after the upgrade, the "Addresses" tab might not display any addresses. This is expected. Restart Electrum 2.x, and your addresses should appear.
Offline Electrum: Offline copies of Electrum 2.x won't show addresses initially. To generate addresses offline, type wallet.synchronize() into the console. Restart Electrum 2.x after the synchronization, and your addresses should become available.
It's common for antivirus software to flag Electrum as malware. This is a known issue stemming from how antivirus programs detect threats. They often use heuristics, which can lead to false positives.
What to do about antivirus warnings:
If you trust the Electrum developers: You can safely ignore the warnings. To be extra safe, verify the GPG signature of the binaries downloaded from the official website. This confirms their authenticity.
If you prefer not to rely on pre-built binaries: You can build Electrum from the source code yourself, giving you complete control over the process.
For maximum security: Consider using an operating system that doesn't rely heavily on antivirus software.
Electrum requires a recent version of Python, which might not be available in your Linux distribution's default repositories. Here are several ways to address this:
Use the AppImage:
This is the simplest option. Download the Electrum AppImage from the official website, make it executable (chmod +x electrum*.AppImage
), and run it. AppImages are self-contained and include all necessary dependencies, making them compatible with most Linux distributions.
Note: Currently, only the x86_64 (amd64) architecture is supported for AppImages.
Backports:
Some distributions offer backports repositories containing newer packages for older releases. For example, Debian users can check the stable-backports repository for a newer Python version.
Upgrade Your Distribution:
Consider upgrading to a newer release of your Linux distribution, which typically includes updated packages like Python. For example, you could switch from Debian stable to Debian testing.
Compile Python Yourself:
You can compile a recent Python version from source and then install PyQt5 using pip. However, note that pip might only offer PyQt5 packages for x86/x86_64 architectures. Other architectures might require manually building Qt and PyQt.
To install PyQt5 for your user: python3 -m pip install --user pyqt5
Virtual Machine:
Set up a virtual machine running a Linux distribution with newer packages, including Python. This allows you to run Electrum in a separate environment without affecting your main system.
Remember to always download Electrum from the official website and verify the GPG signature before running it. Choose the method that best suits your technical expertise and system configuration.
Electrum utilizes a client-server model where communication occurs via the Electrum protocol, which is based on JSON-RPC.
Communication Stacks:
Electrum clients support two main communication stacks:
JSON-RPC over SSL/TLS over TCP
JSON-RPC over TCP (prior to version 3.1)
Important Note: Electrum does not use HTTP for client-server communication.
SSL/TLS Encryption:
For security, all client-server connections are encrypted using SSL/TLS. Plaintext TCP connections are not permitted.
Authentication Mechanisms:
Electrum clients accept both CA-signed and self-signed SSL certificates:
Self-Signed Certificates: Electrum employs Trust-on-First-Use (TOFU) for self-signed certificates. This means the client will remember and trust the certificate presented on the first connection to a server. However, this approach is susceptible to man-in-the-middle attacks during the initial connection.
CA-Signed Certificates: Electrum accepts CA-signed certificates, which rely on trusted Certificate Authorities for validation. While generally more secure, this method requires placing trust in the Certificate Authorities.
Choosing the Right Certificate for Your Server:
Self-Signed: Easier to set up but carries a risk of MITM attacks during the first connection.
CA-Signed: More secure but requires trusting the Certificate Authority.
Electrum exclusively supports Bitcoin. It does not offer support for any other cryptocurrencies (altcoins).
Electrum Forks:
While Electrum itself is Bitcoin-only, its free and open-source nature allows others to create forks of the software. Many such forks exist, each tailored to support a specific altcoin.
Important Note: These forks are independent projects with their own developers and maintainers. The Electrum team does not review their code or endorse them. If you choose to use an Electrum fork for an altcoin, please direct any support requests to the respective project's maintainers, not the Electrum team.
Electrum's focus remains solely on providing a secure and reliable Bitcoin wallet experience.
Install the Latest Version: Download and install the from the official website. The installation process will vary depending on your operating system.
Remember: Always from the official website to minimize the risk of downloading compromised files.