<p>In case you have a beta7 wallet which is <a href="https://github.com/keepkey/multibit-hd/issues/445" rel="noreferrer">not BIP32 compliant</a> you cannot use the method @chris-j has put forward.</p>

<p>The easiest way for me was to hook into MultiBit HD's signing capabilities and log the private key being used to the console:</p>

<pre><code>diff --git a/mbhd-core/src/main/java/org/multibit/hd/core/managers/WalletManager.java b/mbhd-core/src/main/java/org/multibit/hd/core/managers/WalletManager.java
index 61979a3..e8a0de1 100644
--- a/mbhd-core/src/main/java/org/multibit/hd/core/managers/WalletManager.java
+++ b/mbhd-core/src/main/java/org/multibit/hd/core/managers/WalletManager.java
@@ -1753,6 +1753,8 @@ public enum WalletManager implements WalletEventListener {
           if (signingKey.getKeyCrypter() != null) {
             KeyParameter aesKey = signingKey.getKeyCrypter().deriveKey(walletPassword);
             ECKey decryptedSigningKey = signingKey.decrypt(aesKey);
+            log.info("HACK address: " + signingAddress.toString());
+            log.info("HACK private key: " + decryptedSigningKey.getPrivateKeyAsWiF(networkParameters));

             String signatureBase64 = decryptedSigningKey.signMessage(messageText);
             return new SignMessageResult(Optional.of(signatureBase64), true, CoreMessageKey.SIGN_MESSAGE_SUCCESS, null);
</code></pre>

<p>I have tested this with v0.5 following these steps:</p>

<ol>
<li>Clone the <a href="https://github.com/keepkey/multibit-hd" rel="noreferrer">MultiBit HD Git repository</a></li>
<li>Apply the patch above</li>
<li>Build the project: <code>mvn clean dependency:sources install</code></li>
<li>Start the application: <code>java -jar mbhd-swing/target/multibit-hd.jar</code></li>
<li>Go to Tools -> Sign message and enter a Bitcoin address from your wallet for which you want to recover the private key. Press finish.</li>
<li>Read the Bitcoin address and corresponding private key from the console output</li>
</ol>

CC BY-SA 3.0
2017-02-10T12:11:51.420Z
This might be little too complicated for people who just use bitcoins for business.
Pavel Niedoba
CC BY-SA 3.0
2017-06-12T10:27:06.047Z
You're my saviour, @redee! I used this method successfully in v0.5.1 to extract my private key for importing to Omniwallet so that I could transfer colored coins to a different wallet which supports them properly. 

Line numbers had changed slightly but the same code worked fine :D Oh, and I had to use the "Sign Message" button to get the output rather than just pressing "Finish".
pospi
CC BY-SA 3.0
2017-07-12T01:20:12.960Z
Thanks redee, good instructions -- was able to transfer my money to another wallet (Jaxx), after having Multibit show my transactions as unconfirmed (for 8 months), thus being unable to transfer them anywhere else.
Kem Mason
CC BY-SA 3.0
2017-02-10T00:16:40.907Z
2017-02-10T00:16:40.907Z
redee
<p><strong>WARNING:</strong> While this answer may be a solution to the issue in the question, it involves exposing your wallet seed to a tool on the internet. Please be very careful when doing this!</p>

<hr>

<p>Can't add comments so extend Chris.J's answer:</p>

<p>Here are my notes on how to recover / rebuild / regenerate / extract <strong>ALL</strong> addresses and keys used by MultiBit HD:</p>

<ul>
<li>Go to <a href="https://iancoleman.github.io/bip39/" rel="nofollow noreferrer">https://iancoleman.github.io/bip39/</a></li>
<li>In the field "BIP39 Mnemonic" fill in your 12 wallet generation words</li>
<li>No password</li>
<li>Code: Bitcoin</li>
<li>Under Derivation Path, select the BIP32 tab</li>
<li>Client: Custom derivation path</li>
<li>Derivation path <strong>FOR EXTERNAL (RECEIVING) ADDRESSES</strong> (copy paste this): m/0'/0</li>
<li>Your receiving addresses are now displayed at the end of the page. </li>
<li>Derivation path <strong>FOR INTERNAL (CHANGE) ADDRESSES</strong> (copy paste this): m/0'/1</li>
<li>Your change addresses are now displayed at the end of the page. 
Absolute Happiness ;)</li>
</ul>

<p>(solution found on:<a href="https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" rel="nofollow noreferrer">https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki</a> in "Hierarchical Deterministic Wallets" picture)</p>

CC BY-SA 3.0
2017-09-28T23:36:01.383Z
Nailed it, another guide didn't explain about the change addresses being on a different derivation path. Thank you -this got me access to my Bitcoin Cash that I wanted to 'claim'
HaveAGuess
CC BY-SA 3.0
2017-07-06T07:14:53.953Z
2017-11-19T11:25:45.120Z
2017-11-19T11:25:45.120Z
NXS
<p>Because the private keys and addresses are created deterministically from your wallet words you just need to keep your wallet words safe - there is no need to expose individual private keys. You can use your wallet words to recreate your wallet in either MultiBit HD (use the Restore button on the 'Enter password' screen) or using other tools.</p>

<p>For instance, you can create an offline copy of <a href="https://dcpos.github.io/bip39/" rel="nofollow">https://dcpos.github.io/bip39/</a> and create all your addresses/ private keys if you want to (use the BIP32 tab).</p>

<p>There is no option to export private keys in MultiBit HD because BIP32 wallets create both receiving addresses and change addresses on demand. Exporting and importing private keys won't give you, in general, a complete HD wallet.</p>

CC BY-SA 3.0
2016-09-21T16:11:28.000Z
It is not possible to extract private keys in MultiBit HD, but it can be done in other application?
Pawel
CC BY-SA 3.0
2017-02-10T12:09:43.073Z
Actually there are dozen reasons why we need private keys for single address.
Pavel Niedoba
CC BY-SA 3.0
2017-05-10T08:54:15.823Z
That page seems to create all my receiving addresses, but not the change addresses.
Seppo Enarvi
CC BY-SA 3.0
2017-10-27T02:40:00.463Z
What about when we need to access our private keys for a hard fork?
arviman
CC BY-SA 3.0
2015-09-13T13:02:15.213Z
2015-09-13T13:02:15.213Z
jim618
<p><strong>WARNING:</strong> While this answer may be a solution to the issue in the question, it involves exposing your wallet seed to a tool on the internet. Please be very careful when doing this, since </p>

<ol>
<li>...just DON'T DO IT!</li>
<li>See 1.</li>
<li>You probably don't know the guy behind the web page well enough to trust them with your precious bitcoins.</li>
<li>Even if you do, the site may have been hacked and the keys get into the hands of malicious people spending your bitcoins within seconds. </li>
</ol>

<hr>

<p>Here are my notes on how to recover / rebuild / regenerate / extract the addresses and keys used by MultiBit HD:</p>

<ol>
<li>Go to <a href="https://iancoleman.github.io/bip39/" rel="nofollow noreferrer">https://iancoleman.github.io/bip39/</a></li>
<li>In the field "BIP39 Mnemonic" fill in your 12 wallet generation words</li>
<li>No password </li>
<li>Coin: Bitcoin </li>
<li>Under Derivation Path, select the BIP32
tab </li>
<li>Derivation path (copy paste this): m/0'/0 </li>
<li>Your addresses are now
displayed at the end of the page. Happiness ;)</li>
</ol>

CC BY-SA 3.0
2016-11-03T10:22:34.227Z
2017-11-20T00:07:28.393Z
2017-11-20T00:07:28.393Z
Chris.J
<p>Restore your wallet in electrum and then use that to extract the private keys. To learn how to restore your wallet in electrum <a href="https://bitcoinelectrum.com/restoring-your-multibithd-wallet-in-electrum/" rel="nofollow noreferrer">see this page</a></p>
<p>If you just want the private keys for specific addresses then bring the addresses tab into view via the view menu and then right click on each address to get the option to view its private key. If you want to export all the keys then use wallet menu &gt; private keys &gt; export.</p>

CC BY-SA 4.0
2021-04-19T18:46:10.490Z
The video link is dead now.
Manu
CC BY-SA 4.0
2021-04-28T19:32:17.963Z
@Manu edited it with a textual guide instead.
Abdussamad
CC BY-SA 4.0
2017-11-20T07:37:34.107Z
2021-04-28T19:30:53.783Z
2021-04-28T19:30:53.783Z
Abdussamad
<p><a href="https://multibit.org/en/help/v0.5/help_exportingPrivateKeys.html" rel="noreferrer">It was possible in MultiBit Classic</a>, but I can't find it in MultiBit HD. </p>

CC BY-SA 3.0
2017-06-30T17:34:07.020Z
Would it be possible to write a more detailed explanation of redee`s answer? Could someone explain how to apply the patch and build the project? I have tried lots of other options, but nothing else seems to work for me. Thank you in advance.
PythonBeginner1337
<multibit><private-key-export><private-key-import>
How can you extract private keys from MultiBit HD?
Pavel Niedoba
# How can you extract private keys from MultiBit HD?

(Asked by: username_0 on 2015-09-12)

[It was possible in MultiBit Classic](https://multibit.org/en/help/v0.5/help_exportingPrivateKeys.html), but I can't find it in MultiBit HD.

**Tags:** multibit, private-key-export, private-key-import

> **Comments:**
> **username_1**: Would it be possible to write a more detailed explanation of username_2`s answer? Could someone explain how to apply the patch and build the project? I have tried lots of other options, but nothing else seems to work for me. Thank you in advance.  

---

## 5 answers

### Answer by username_5 on 2017-07-06. Score: 9

**WARNING:** While this answer may be a solution to the issue in the question, it involves exposing your wallet seed to a tool on the internet. Please be very careful when doing this!

---

Can't add comments so extend username_11's answer:

Here are my notes on how to recover / rebuild / regenerate / extract **ALL** addresses and keys used by MultiBit HD:

* Go to <https://iancoleman.github.io/bip39/>
* In the field "BIP39 Mnemonic" fill in your 12 wallet generation words
* No password
* Code: Bitcoin
* Under Derivation Path, select the BIP32 tab
* Client: Custom derivation path
* Derivation path **FOR EXTERNAL (RECEIVING) ADDRESSES** (copy paste this): m/0'/0
* Your receiving addresses are now displayed at the end of the page.
* Derivation path **FOR INTERNAL (CHANGE) ADDRESSES** (copy paste this): m/0'/1
* Your change addresses are now displayed at the end of the page.
  Absolute Happiness ;)

(solution found on:<https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki> in "Hierarchical Deterministic Wallets" picture)

> **Comments:**
> **username_6**: Nailed it, another guide didn't explain about the change addresses being on a different derivation path. Thank you -this got me access to my Bitcoin Cash that I wanted to 'claim'  

---

### Answer by username_2 on 2017-02-10. Score: 8

In case you have a beta7 wallet which is [not BIP32 compliant](https://github.com/keepkey/multibit-hd/issues/445) you cannot use the method @username_11 has put forward.

The easiest way for me was to hook into MultiBit HD's signing capabilities and log the private key being used to the console:

```
diff --git a/mbhd-core/src/main/java/org/multibit/hd/core/managers/WalletManager.java b/mbhd-core/src/main/java/org/multibit/hd/core/managers/WalletManager.java
index 61979a3..e8a0de1 100644
--- a/mbhd-core/src/main/java/org/multibit/hd/core/managers/WalletManager.java
+++ b/mbhd-core/src/main/java/org/multibit/hd/core/managers/WalletManager.java
@@ -1753,6 +1753,8 @@ public enum WalletManager implements WalletEventListener {
           if (signingKey.getKeyCrypter() != null) {
             KeyParameter aesKey = signingKey.getKeyCrypter().deriveKey(walletPassword);
             ECKey decryptedSigningKey = signingKey.decrypt(aesKey);
+            log.info("HACK address: " + signingAddress.toString());
+            log.info("HACK private key: " + decryptedSigningKey.getPrivateKeyAsWiF(networkParameters));

             String signatureBase64 = decryptedSigningKey.signMessage(messageText);
             return new SignMessageResult(Optional.of(signatureBase64), true, CoreMessageKey.SIGN_MESSAGE_SUCCESS, null);

```

I have tested this with v0.5 following these steps:

1. Clone the [MultiBit HD Git repository](https://github.com/keepkey/multibit-hd)
2. Apply the patch above
3. Build the project: `mvn clean dependency:sources install`
4. Start the application: `java -jar mbhd-swing/target/multibit-hd.jar`
5. Go to Tools -> Sign message and enter a Bitcoin address from your wallet for which you want to recover the private key. Press finish.
6. Read the Bitcoin address and corresponding private key from the console output

> **Comments:**
> **username_0**: This might be little too complicated for people who just use bitcoins for business.  
> **username_3**: You're my saviour, @username_2! I used this method successfully in v0.5.1 to extract my private key for importing to Omniwallet so that I could transfer colored coins to a different wallet which supports them properly.   Line numbers had changed slightly but the same code worked fine :D Oh, and I had to use the "Sign Message" button to get the output rather than just pressing "Finish".  
> **username_4**: Thanks username_2, good instructions -- was able to transfer my money to another wallet (Jaxx), after having Multibit show my transactions as unconfirmed (for 8 months), thus being unable to transfer them anywhere else.  

---

### Answer by username_7 on 2015-09-13. Score: 4

Because the private keys and addresses are created deterministically from your wallet words you just need to keep your wallet words safe - there is no need to expose individual private keys. You can use your wallet words to recreate your wallet in either MultiBit HD (use the Restore button on the 'Enter password' screen) or using other tools.

For instance, you can create an offline copy of <https://dcpos.github.io/bip39/> and create all your addresses/ private keys if you want to (use the BIP32 tab).

There is no option to export private keys in MultiBit HD because BIP32 wallets create both receiving addresses and change addresses on demand. Exporting and importing private keys won't give you, in general, a complete HD wallet.

> **Comments:**
> **username_8**: It is not possible to extract private keys in MultiBit HD, but it can be done in other application?  
> **username_0**: Actually there are dozen reasons why we need private keys for single address.  
> **username_9**: That page seems to create all my receiving addresses, but not the change addresses.  
> **username_10**: What about when we need to access our private keys for a hard fork?  

---

### Answer by username_11 on 2016-11-03. Score: 3

**WARNING:** While this answer may be a solution to the issue in the question, it involves exposing your wallet seed to a tool on the internet. Please be very careful when doing this, since

1. ...just DON'T DO IT!
2. See 1.
3. You probably don't know the guy behind the web page well enough to trust them with your precious bitcoins.
4. Even if you do, the site may have been hacked and the keys get into the hands of malicious people spending your bitcoins within seconds.

---

Here are my notes on how to recover / rebuild / regenerate / extract the addresses and keys used by MultiBit HD:

1. Go to <https://iancoleman.github.io/bip39/>
2. In the field "BIP39 Mnemonic" fill in your 12 wallet generation words
3. No password
4. Coin: Bitcoin
5. Under Derivation Path, select the BIP32
   tab
6. Derivation path (copy paste this): m/0'/0
7. Your addresses are now
   displayed at the end of the page. Happiness ;)


---

### Answer by username_12 on 2017-11-20. Score: 0

Restore your wallet in electrum and then use that to extract the private keys. To learn how to restore your wallet in electrum [see this page](https://bitcoinelectrum.com/restoring-your-multibithd-wallet-in-electrum/)

If you just want the private keys for specific addresses then bring the addresses tab into view via the view menu and then right click on each address to get the option to view its private key. If you want to export all the keys then use wallet menu > private keys > export.

> **Comments:**
> **username_13**: The video link is dead now.  
> **username_12**: @username_13 edited it with a textual guide instead.  

---

