Electrum’s focus is speed, with low resource usage and
simplifying Bitcoin. Startup times are instant because it
operates in conjunction with high-performance servers that
handle the most complicated parts of the Bitcoin system.

The seed phrase created by Electrum has 132 bits of entropy. This
means that it provides the same level of security as a Bitcoin private
key (of length 256 bits). Indeed, an elliptic curve key of length n
provides n/2 bits of security.

It is not possible to recover your password. However, you can restore
your wallet from its seed phrase and choose a new password.
If you lose both your password and your seed, there is no way
to recover your money. This is why we ask you to save your seed
phrase on paper.

To restore your wallet from its seed phrase, create a new wallet, select
the type, choose “I already have a seed” and proceed to input your seed
phrase.

Bitcoin transactions become “confirmed” when miners accept to write
them in the Bitcoin blockchain. In general, the speed of confirmation
depends on the fee you attach to your transaction; miners prioritize
transactions that pay the highest fees.

Recent versions of Electrum use “dynamic fees” in order to make sure
that the fee you pay with your transaction is adequate. This feature
is enabled by default in recent versions of Electrum.

If you have made a transaction that is unconfirmed, you can:

Wait for a long time. Eventually, your transaction will either be
confirmed or cancelled. This might take several days.

Increase the transaction fee. This is only possible for
“replaceable” transactions. To create this type of transaction,
you must have checked “Replaceable” on the send tab before sending
the transaction. If you’re not seeing the “Replaceable” option on
the send tab go to Tools menu > Preferences > Fees tab and set
“Propose Replace-By-Fee” to “Always”. Transactions that are
replaceable have the word “Replaceable” in the date column on the
history tab. To increase the fee of a replaceable transaction right
click on its entry on the history tab and choose “Increase Fee”.
Set an appropriate fee and click on “OK”. A window will popup with
the unsigned transaction. Click on “Sign” and then “Broadcast”.

Create a “Child Pays for Parent” transaction. A CPFP is a new
transaction that pays a high fee in order to compensate for the
small fee of its parent transaction. It can be done by the
recipient of the funds, or by the sender, if the transaction has a
change output. To create a CPFP transaction right click on the
unconfirmed transaction on the history tab and choose
“Child pays for parent”. Set an appropriate fee and click on “OK”.
A window will popup with the unsigned transaction. Click on “Sign”
and then “Broadcast”.

Your seed and private keys are encrypted using AES-256-CBC. The
private keys are decrypted only briefly, when you need to sign a
transaction; for this you need to enter your password. This is done
in order to minimize the amount of time during which sensitive
information is unencrypted in your computer’s memory.

In addition, your wallet file may be encrypted on disk. Note that
the wallet information will remain unencrypted in the memory of
your computer for the duration of your session. If a wallet is
encrypted, then its password will be required in order to open
it. Note that the password will not be kept in memory; Electrum
does not need it in order to save the wallet on disk, because it
uses asymmetric encryption (ECIES).

Wallet file encryption is activated by default since version 2.8. It
is intended to protect your privacy, but also to prevent you from
requesting bitcoins on a wallet that you do not control.

In Electrum 2.0, you cannot import private keys in a wallet that has a
seed. You should sweep them instead.

If you want to import private keys and not sweep them, you need to
create a special wallet that does not have a seed. For this, create a
new wallet, select “restore”, and instead of typing your seed, type a
list of private keys, or a list of addresses if you want to create a
watching-only wallet.

You will need to back up this wallet, because it cannot be
recovered from a seed.

Sweeping private keys means to send all the bitcoins they control to
an existing address in your wallet. The private keys you sweep do not
become a part of your wallet. Instead, all the bitcoins they control
are sent to an address that has been deterministically generated from
your wallet seed.

To sweep private keys, go to the Wallet menu -> Private Keys ->
Sweep. Enter the private keys in the appropriate field. Leave the
“Address” field unchanged. That is the destination address and it will
be from your existing electrum wallet. Click on “Sweep”. It’ll now take
you to the send tab where you can set an appropriate fee and then click
on “Send” to send the coins to your wallet.

This might happen if you are trying to spend a large number of
transaction outputs (for example, if you have collected hundreds of
donations from a Bitcoin faucet). When you send Bitcoins, Electrum
looks for unspent coins that are in your wallet in order to create a
new transaction. Unspent coins can have different values, much like
physical coins and bills.

If this happens, you should consolidate your transaction inputs by
sending smaller amounts of bitcoins to one of your wallet addresses;
this would be the equivalent of exchanging a stack of nickels for a
dollar bill.

The gap limit is the maximum number of consecutive unused addresses in
your deterministic sequence of addresses. Electrum uses it in order
to stop looking for addresses. In Electrum 2.0, it is set to 20 by
default, so the client will get all addresses until 20 unused
addresses are found.

Electrum will generate new addresses as you use them,
until it hits the gap limit.

If you need to pre-generate more addresses, you can do so by typing
wallet.create_new_address(False) in the console. This command will generate
one new address. Note that the address will be shown with a red
background in the address tab to indicate that it is beyond the gap
limit. The red color will remain until the gap is filled.

WARNING: Addresses beyond the gap limit will not automatically be
recovered from the seed. To recover them will require either increasing
the client’s gap limit or generating new addresses until the used
addresses are found.

If you wish to generate more than one address, you can use a “for”
loop. For example, if you wanted to generate 50 addresses, you could
do this:

To upgrade Electrum, just install the most recent version.
The way to do this will depend on your OS.

Note that your wallet files are stored separately from the
software, so you can safely remove the old version of the
software if your OS does not do it for you.

Some Electrum upgrades will modify the format of your
wallet files.

For this reason, it is not recommended to downgrade
Electrum to an older version once you have opened your
wallet file with the new version. The older version will
not always be able to read the new wallet file.

The following issues should be considered when upgrading
Electrum 1.x wallets to Electrum 2.x:

Electrum 2.x will need to regenerate all of your
addresses during the upgrade process. Please allow it
time to complete, and expect it to take a little longer
than usual for Electrum to be ready.

The contents of your wallet file will be replaced with
an Electrum 2 wallet. This means Electrum 1.x will no
longer be able to use your wallet once the upgrade is
complete.

The “Addresses” tab will not show any addresses the
first time you launch Electrum 2. This is expected
behavior. Restart Electrum 2 after the upgrade is
complete and your addresses will be available.

Offline copies of Electrum will not show the
addresses at all because it cannot synchronize with
the network. You can force an offline generation of a
few addresses by typing the following into the
Console: wallet.synchronize(). When it’s complete,
restart Electrum and your addresses will once again
be available.