<p>Yes.</p>

<p>As a plan B if that fails, you should be able to use piped bitcoin explorer <a href="https://github.com/libbitcoin/libbitcoin-explorer/wiki" rel="nofollow noreferrer"><strong>bx</strong></a> commands offline. This is because Electrum v2.0 and above uses the same BIP 32 Hierarchical Deterministic (HD) technology that bx supports.  </p>

<p>However, the Electrum HD paths are different from the BIP 44 convention. See <a href="https://bitcoin.stackexchange.com/questions/36839/electrum-2-0-non-bip39-32-standardisation-complicates-matters-immensely-why?noredirect=1&amp;lq=1">It appears Electrum uses: <strong>m/0/0</strong> for wallet addresses and <strong>m/1/0</strong> for change addresses.</a> Additionally, the <a href="https://github.com/monero-project/monero/blob/master/src/mnemonics/english.h#L53" rel="nofollow noreferrer"><strong>English Electrum Seed Word List</strong></a> is quite different from the newer <a href="https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt" rel="nofollow noreferrer"><strong>English BIP 39 Seed Word List</strong></a>, and I don't believe Electrum uses a <em>PBKDF2</em> stretching function that is not invertible. See <a href="https://bitcoin.stackexchange.com/questions/61412/why-is-hmac-sha512-used-on-root-the-root-seed-to-create-master-private-key-and-c/76996#76996"><strong>stretch->passlib.pbkdf2</strong></a> for high level details for what <strong>bx mnemonic-to-seed</strong> is doing. Unlike BIP 39, an Electrum private key should be invertible to a group of Electrum seed words.</p>

<p>For the synthesis of BIP 44 paths for Bitcoin <strong>m/44'/0'/0'/0/0</strong> private key and <strong>M/44'/0'/0'/0/0</strong> public address using bx, see <a href="https://github.com/libbitcoin/libbitcoin/wiki/Altcoin-Version-Mappings#7-bitcoin-btc-bip-3944-technology-examples" rel="nofollow noreferrer"><strong>Example 7</strong></a>. See BIP 44 <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#path-levels" rel="nofollow noreferrer"><strong>path-levels</strong></a>.  The <strong><em>change</em></strong> level is set to 0 for external addresses that you share with others to receive funds. The <strong><em>change</em></strong> level is set to 1 for a wallet's internal return addresses. </p>

<p>If the information above is too pedantic, read <a href="https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch05.asciidoc" rel="nofollow noreferrer">Chapter 5</a> of the <strong>Mastering Bitcoin Book</strong>. Albeit, details about Electrum are scarce.</p>

CC BY-SA 4.0
2018-07-28T05:17:07.833Z
Thank you so much for your input and the valuable information you've shared with me.
cpe871
CC BY-SA 4.0
2018-07-27T19:27:00.160Z
2018-07-28T13:48:37.733Z
2018-07-28T13:48:37.733Z
skaht
<p>Yes. This is the way HD wallets work - the "deterministic" part means that you will get the same exact keys when you run it again. For verification purposes, you can try it yourself and see before you deposit any money.</p>

CC BY-SA 4.0
2018-07-27T18:10:42.947Z
@cpe871 Note however that electrum doesn't handle such large wallets very well. You may want to create multiple wallets if you want a lot of addresses. File > new/restore, enter a unique filename and proceed with on-screen instructions to create a new wallet. file > open will let you switch between them.
Abdussamad
CC BY-SA 4.0
2018-07-28T05:17:29.573Z
Thank you so much for your input and the valuable information you've shared with me. Do you think someone who played around with the source code would be able to generate large datasets of public keys that are identical and circumvent electron's inability to handle such massive sets? I would like to generate at least one million public keys for one address. Do you know of any other services capable of this?
cpe871
CC BY-SA 4.0
2018-07-27T17:07:58.283Z
2018-07-27T17:07:58.283Z
dionyziz
<p>I used the wallet.change_gap_limit command in the electrum console in order to generate some 20.000 public keys.
Would I be able to recover all of these using my seed after completely removing electrum from my system, reinstalling it and running the change_gap_limit command again?</p>

<electrum><public-key><address-generation>
Can one recover the full list of public keys generated in electrum with the seed/private key?
cpe871
# Can one recover the full list of public keys generated in electrum with the seed/private key?

(Asked by: username_0 on 2018-07-27)

I used the wallet.change\_gap\_limit command in the electrum console in order to generate some 20.000 public keys.
Would I be able to recover all of these using my seed after completely removing electrum from my system, reinstalling it and running the change\_gap\_limit command again?

**Tags:** electrum, public-key, address-generation


---

## 2 answers

### Answer by username_1 on 2018-07-27. Score: 2

Yes.

As a plan B if that fails, you should be able to use piped bitcoin explorer [**bx**](https://github.com/libbitcoin/libbitcoin-explorer/wiki) commands offline. This is because Electrum v2.0 and above uses the same BIP 32 Hierarchical Deterministic (HD) technology that bx supports.

However, the Electrum HD paths are different from the BIP 44 convention. See [It appears Electrum uses: **m/0/0** for wallet addresses and **m/1/0** for change addresses.](https://bitcoin.stackexchange.com/questions/36839/electrum-2-0-non-bip39-32-standardisation-complicates-matters-immensely-why?noredirect=1&lq=1) Additionally, the [**English Electrum Seed Word List**](https://github.com/monero-project/monero/blob/master/src/mnemonics/english.h#L53) is quite different from the newer [**English BIP 39 Seed Word List**](https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt), and I don't believe Electrum uses a *PBKDF2* stretching function that is not invertible. See [**stretch->passlib.pbkdf2**](https://bitcoin.stackexchange.com/questions/61412/why-is-hmac-sha512-used-on-root-the-root-seed-to-create-master-private-key-and-c/76996#76996) for high level details for what **bx mnemonic-to-seed** is doing. Unlike BIP 39, an Electrum private key should be invertible to a group of Electrum seed words.

For the synthesis of BIP 44 paths for Bitcoin **m/44'/0'/0'/0/0** private key and **M/44'/0'/0'/0/0** public address using bx, see [**Example 7**](https://github.com/libbitcoin/libbitcoin/wiki/Altcoin-Version-Mappings#7-bitcoin-btc-bip-3944-technology-examples). See BIP 44 [**path-levels**](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#path-levels). The ***change*** level is set to 0 for external addresses that you share with others to receive funds. The ***change*** level is set to 1 for a wallet's internal return addresses.

If the information above is too pedantic, read [Chapter 5](https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch05.asciidoc) of the **Mastering Bitcoin Book**. Albeit, details about Electrum are scarce.

> **Comments:**
> **username_0**: Thank you so much for your input and the valuable information you've shared with me.  

---

### Answer by username_2 on 2018-07-27. Score: 1

Yes. This is the way HD wallets work - the "deterministic" part means that you will get the same exact keys when you run it again. For verification purposes, you can try it yourself and see before you deposit any money.

> **Comments:**
> **username_3**: @username_0 Note however that electrum doesn't handle such large wallets very well. You may want to create multiple wallets if you want a lot of addresses. File > new/restore, enter a unique filename and proceed with on-screen instructions to create a new wallet. file > open will let you switch between them.  
> **username_0**: Thank you so much for your input and the valuable information you've shared with me. Do you think someone who played around with the source code would be able to generate large datasets of public keys that are identical and circumvent electron's inability to handle such massive sets? I would like to generate at least one million public keys for one address. Do you know of any other services capable of this?  

---

