Electrum Addresses: Change and Receiving, Types and Creation of New
This article explains the functions of Bitcoin addresses: how to find the current one, why to create new ones for each transaction and what types of addresses exist. Addresses are divided into Receiving and Change, and each has its own purpose to increase security and privacy.
All created public addresses are displayed in the Addresses
tab. It is hidden by default. Enable its display, and you will see all your addresses, their balances and types.
View all addresses in the Addresses tab
Go to menu View
→ Addresses
. The tab with addresses will appear and you will find 30 addresses. They are highlighted in red :
Of these, 20 are unused addresses (Receiving
, in green). The 20 addresses are generated by default. When you use them, Electrum creates an even larger set.
Why So many addresses? It's all about anonymity. It's recommended to use only one address for each online transaction.
All these generated addresses are easily recoverable with one SEED phrase because it is an HD wallet.
Change addresses are shown in yellow. What's the difference?
Change and Receiving addresses
Receiving
– intended for receiving funds.Change
– these are the addresses for change from completed transactions.
Receiving addresses are designed for accepting funds, while change addresses are used to return leftover transaction amounts.
Separating the Receiving and Change addresses helps increase anonymity. Using one address for all transactions allows you to track your entire history. But if the change is returned to a separate Change address, this makes it difficult to track.
Protect your wallet: enable 2FA, use cold storage and encryption to ensure maximum security for your assets! In the main article about Electrum you will find useful tips on how to use the wallet securely.
Remember that an address in Electrum is not just a string of characters used to receive funds to your wallet. Addresses can be frozen, have different types, and much more.
Now it's time to take the next step! Learn how to create new addresses and control the expiration of payment regestions
- these are key skills for effective fund management in Electrum.
How and Why to Generate New Bitcoin Addresses
Additional addresses in Electrum not only increase privacy, but also make it easier to manage funds. Generating new addresses helps organize payments by categories and track each transaction flow efficiently. This minimizes the risk of confusion and errors.
Open the Receive
tab and click the Create new Request
button. On the right, you will see the address format switch: Bitcoin URI
→ Address
→ Lightning
.
A Bitcoin URI
is a link format for addresses that includes additional payment details, for examplebitcoin:bc1q0aa0u4cxzsae09szvwc20ah3pvml4tcsn8yrp3xtawzme8kddsqq42gtne?amount=0.00155328&message=Debt&time=1735912294&exp=86400
Address
– this is a classic address. For examplebc1q0aa0u4cxzsae09szvwc20ah3pvml4tcsn8yrp3xtawzme8kddsqq42gtne
Lightning
is an address for express payments (more on that later).
On the left you will see fields to fill in:
Is it necessary to fill out this tab? The answer is no, you can simply copy the address to send the transaction. But you must be wondering: what are all these fields for?
A simple explanation of the complex system of addresses and payments
The Receive
tab works as a "payment request or receipt (invoice)". It contains 3 fields:
Description
– this is similar to mobile money transfer, where you specify the purpose of the payment.Requested Amount
(Requested amount) – specify how much funds you should receive (in dollars or mBTC).Expiry
(Expiration date) – 24 hours (default).
The expiration date is 24 hours, but this value can be changed in the settings. For example, set Never
so that the payment request remains valid indefinitely.
Expiry: What happens after the expiration date?
After the expiration date, the request is marked as Expired
. This means that you no longer expect to receive payment at this address. However, the address itself remains valid. If the sender transfers funds after the expiration date, they will still arrive in your wallet. If the address itself does not expire, then why do this?
- Convenience. Payment requests help structure transactions by adding a description and the exact amount. This makes it easy to identify each transaction without having to search for it by HashID. This is especially useful for businesses or for regular payments, when it is important to quickly get all the information about the transaction.
- Privacy. Using one address for different transactions reduces the level of privacy, as transactions become easily traceable.
- Speed. The signed payment request is immediately available to the recipient, which speeds up the process. There is no need for lengthy negotiations with the payer - payment information is immediately visible, and the sender receives the data to complete the transaction.
The only step left is to complete the payment for this request.t.
If the time limit has expired, you can simply create a new request with the same address or a new one, depending on your preference.
Read more in the main article: How to send Bitcoin from a specific address - Coin Control.
Address Types from Legacy to SegWit: Choose the Right One
You will learn how to choose the right address format to reduce fees, increase security and avoid compatibility issues.
Electrum supports various address types, but by default it creates Native SegWit
. Example: bc1qwp27jamvcc5zgfd9tpvzjcx32fqvequnqll95p
To use other types of addresses, you need to work in the wallet console. Let's briefly list the main address formats.
- Legacy (P2PKH) is an older address format, but supported by all wallets and services. It does not use modern Bitcoin network improvements such as SegWit, making transactions more expensive and less efficient. The address starts with
167H6DbihEkEM4SuqjULMrdEHw7cwruYjf
- Nested SegWit (P2SH-P2WPKH) is a middle ground between Legacy and native SegWit. These addresses are compatible with older wallets, but still offer lower fees than Legacy addresses. The address starts with 3.
- Native SegWit (P2WPKH, Bech32) is the most efficient and modern format. It minimizes transaction fees and uses blockchain space more efficiently. Example:
bc1qpy3jsp4706kklawtkrc54mxh6gp6q9qkdq45lr
- Taproot (P2TR, Bech32m) is a new format that improves privacy and supports more complex schemes such as multi-signature and custom smart contracts. This is the best option for users who want more functionality and security. Electrum does not support the creation of such addresses. However, sending funds to these addresses is possible. Example:
bc1paedfzzh23esu0u6q6ktytekqs7dgmdz3rq49sl80xctvsmn80pdsrhzhrc
- Multisig (P2SH, P2WSH) — used for multi-signature wallets, where a transaction requires multiple signatures from different participants to complete. Such addresses can be either SegWit or Legacy, depending on which form you use for the multi-signature scheme.
- Lightning Network (1LNBC) is a unique format used in the Lightning Network to make instant and low-cost payments. Example:
lnbc1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdpl2pkx2ctnv5sxxmmwwd5kgetjypeh2ursdae8g6twvus8g6rfwvs8qu n0dfjkxaq8rkx3yf5tcsyz3d73gafnh3cax9rn449d9p5uxz9ezhhypd0elx87sjle52x86fux2ypatgddc6k63n7erqz25le42c4u4ecky03ylcqca784w
To get a Legacy address, read the guide on creating Legacy addresses.
To get a Lightning address, open a payment channel in your wallet.
By default, addresses of the form bc1q
are created - this is a standard that minimizes fees and increases privacy. It is recommended to use this type until Taproot
is fully supported in Electrum..
How to choose the right address: comparison table
Address type (Prefix) |
Main characteristics |
Advantages |
Disadvantages |
Legacy P2PKH (1) |
Old address format that uses traditional transaction scripts. Supports all wallets and services, but transactions are more expensive due to the large data size. |
Universality (supported by all wallets), simplicity. |
High fees, inefficient in terms of using the blockchain space. |
Nested SegWit P2SH (3) |
Bridge between the old and new format. Supports SegWit over P2SH. Allows users to use |
Compatibility with most wallets and services, reduced fees compared to Legacy. |
Less efficient than |
Native SegWit Bech32 (bc1q) |
Uses native SegWit implementation. Offers low fees and compact transactions. |
Minimum fees, highest efficiency, more compact transactions. |
Compatible only with modern wallets, old wallets are not supported. |
Taproot Bech32m (bc1p) |
New address format with Taproot update. Provides better privacy and capabilities for complex smart contracts such as multi-signature. |
Improved privacy, support for complex smart contracts, low transaction fees. |
Cannot be created in Electrum. Less compatibility with existing wallets and services. |
Multisig (3 or bc1q) |
Addresses for multi-signature wallets. Supports various multi-signature schemes, allowing you to require multiple signatures for a transaction. These addresses can use both older formats and newer ones, such as SegWit or Taproot. |
High security, ability to control funds by several people. |
Complexity in setup, high fees for complex transactions. |
Address Freezing Function
Freezing an address prevents it from being used to send bitcoins, but does not block the ability to receive funds.
You can enable the function in the Addresses
menu → right-click and select Freeze
.
In other words, Freeze
prevents certain addresses or small balances of money from being used when sending (UTXO). Some transactions may violate privacy or increase fees. Such payments are called Dust.
What happens when frozen? A frozen address will not be used to send your funds. It will not be offered as an address to receive cryptocurrency via the Create Request
function in the wallet.
However, users will still be able to send transactions to the Freeze
address, and it will receive bitcoins just like a regular address.
Import/export addresses
To get a list of addresses in the console:
Enter the command listaddresses()
Import
Used to add an address to your Electrum wallet without moving funds. This is useful if you want to work with an existing wallet or use a custom vanity
address.
- Go to menu
File
→New/Restore
. - Select
Import Bitcoin addresses or private keys.
- Enter the private key(s) you want to import.
- Set a password and click
Next
. - Your address will be added to the wallet, and you will be able to manage the funds in it, if any.
Important: the private key does not include the seed (mnemonic phrase), so this address will not be recoverable via seed.
Sweep
The Sweep
function is used to transfer bitcoins from an external wallet (such as a paper wallet) to a new Electrum wallet. The process requires an internet connection and a transaction fee.
Example: If you have a wallet created in another application and you want to transfer funds to Electrum, use the Sweep
function.
Go to menu Wallet
→ Private Keys
→ Sweep
Enter the private key along with its prefix and click Sweep
.
Example: p2wpkh:L2QwRs9eNBkNmXCcxsSi6R8DxGAr5KCym3Zkc2sGakiAwBVYRMau
All bitcoins from the original address will be transferred to the new Electrum wallet.
Author's Note:
"For
nested SegWit (P2SH-P2WPKH)
(addresses starting with3
): addp2wpkh-p2sh:
."
The next important step is creating and sending a transaction. Once the funds are available in the wallet, you need to "publish" the transaction to transfer the cryptocurrency. This is done by creating a transaction. The broadcast
button publishes it on the network.
What else do you need to know
Permanent address
All your addresses are permanent - as long as you save your seed phrase.
The Electrum wallet manages all addresses created based on this seed phrase. You can use any of the previously created addresses.
Gap limit
Gap limit in Electrum is the maximum number of unused addresses that the wallet automatically generates (default is 20). Its purpose is to prevent overgeneration and ensure that the wallet is restored taking into account all the addresses created.
Example: If the gap limit
is set to 20, the wallet will generate new addresses. This will continue until 20 consecutive empty addresses are found. Once this limit is reached, the generation of new addresses will stop, preventing further unnecessary "spraying" of addresses.
Recommended Setting: The default gap limit
is often 20, which is sufficient for most users. However, if you expect a large number of transactions and addresses, you may want to increase this limit.
Is it possible to manually generate addresses beyond the limit?
In the console, run the following command:
[wallet.create_new_address(False) for i in range(50)]
Author's experience
Send change to a specific address
"You can set up a transaction to send change to a specific address using the
send to many
function. This will allow you to specify multiple recipients, and the last address will be automatically selected for change. To do this, you need to put an exclamation mark (!) after the last address in the list."
Example:
1xFirstPaymentAddressxxxxxxxx,0.0025
xSecondPaymentAddressxxxxx,0.005
1xSpecificChangeAddressxxxxxx,!
Address Labels for Transaction Organization
The wallet allows you to add labels
to addresses for easy accounting. These labels are saved locally and do not appear on the blockchain.
Labels can be exported as a file, which is useful for accounting or analytics.
Practical use:
Right-click on the address in the Addresses
tab and add a label
.
Export and import address labels if you have multiple wallets:
Watch-only Addresses
The Electrum lightweight client offers a view-only wallet functionality. It is a wallet that only allows you to track your balance and transactions, without the ability to spend funds. It does not contain private keys, so it is impossible to hack.
Read in the main article: how to use watch-only address and cold storage.
Read more in the article: Bitcoin view-only address - what is it and how does it protect against hacking.
Command Line: Managing Addresses
Electrum has a built-in CLI and RPC, allowing you to manage addresses without a GUI.
Generate a new address manually:
getunusedaddress()
Check the balance of a specific address:
getaddressbalance('bc1qnumz5g4a4j08t2lsz87kvgspy4k88hcu4vgqh9')
Get Zpub key:
getmpk()
Console commands are useful for automation. For example, you can integrate Electrum with a payment system, where an address for each client is created automatically.
This guide covers all key aspects of managing addresses in Electrum. Leave comments to become a source of valuable feedback and recommendations.