<p>Looking at the <a href="https://github.com/BitGo/BitGoJS/blob/012a9fcd/modules/core/src/v2/coins/abstractUtxoCoin.ts#L924" rel="nofollow noreferrer">BitGoJS code</a> it would appear that the derivation path is <code>m/0/0/derivationChain/*</code>.</p>
<p><a href="https://github.com/BitGo/unspents/blob/master/src/codes.ts#L35-L43" rel="nofollow noreferrer">Looking further</a>, the <code>derivationChain</code> seems to be a code depending on the address type:</p>
<pre><code>    [0, UnspentType.p2sh, Purpose.external],
    [10, UnspentType.p2shP2wsh, Purpose.external],
    [20, UnspentType.p2wsh, Purpose.external],

    [1, UnspentType.p2sh, Purpose.internal],
    [11, UnspentType.p2shP2wsh, Purpose.internal],
    [21, UnspentType.p2wsh, Purpose.internal],
</code></pre>

CC BY-SA 4.0
2021-04-16T18:53:37.607Z
2021-04-16T18:53:37.607Z
esneider
<p>BitGo wallets are based on a 2-of-3 multi-signature, the end user have access to:</p>
<pre><code>- Public key (xpub) of the 3rd signer (as the main wallet xpub)
- Native Segwit (Bech32), bc1... addresses to receive BTC assets
- Private key/seed (BIP39) of the 1st signer (and public key xpub as well)
- Private key/seed (BIP39) of the 2nd signer (and public key xpub as well)
</code></pre>
<p>Seeds can be converted to private key <a href="https://bitwala.github.io/bip39-recovery/" rel="nofollow noreferrer">here</a>, BitGo provide it's own <a href="https://github.com/BitGo/wallet-recovery-wizard/releases" rel="nofollow noreferrer">recovery-tool</a> (it's debug infos can be used to get the xpub keys of the first and second signer).</p>
<p>Public xpub keys can be converted to Zpub (p2wsh) <a href="https://jlopp.github.io/xpub-converter/" rel="nofollow noreferrer">here</a> or with <a href="https://electrum.org/" rel="nofollow noreferrer">Electrum</a> with the command <code>./electrum.AppImage convert_xkey 'xpub...' 'p2wsh' --offline</code> (Electrum and xpub-converter uses <a href="https://github.com/satoshilabs/slips/blob/master/slip-0132.md" rel="nofollow noreferrer">those specs</a> and derivations paths).</p>
<p>While it is possible to import the BitGo wallet into Electrum without error, Electrum never generate the same receiving address as BitGo, Following <a href="https://bitcointalk.org/index.php?topic=5250035.0" rel="nofollow noreferrer">this</a> and <a href="https://translate.google.com/translate?hl=en&amp;sl=de&amp;u=https://bitcointalk.org/index.php%3Ftopic%3D5250032.0&amp;prev=search&amp;pto=aue" rel="nofollow noreferrer">this</a> bitcointalk's forum threads:</p>
<p><strong>1. What is the derivation path used by BitGo Bitcoin wallet?</strong><br />
<strong>2. Is it possible to use BitGo wallet in any other software like Electrum or else?</strong></p>
<p><em>Other related QA: <a href="https://bitcoin.stackexchange.com/questions/77047/how-to-link-a-bitcoin-address-to-a-wallet-address">1</a>, <a href="https://bitcoin.stackexchange.com/questions/69835/how-does-bitgo-multi-sig-work">2</a>, <a href="https://bitcoin.stackexchange.com/questions/58159/how-can-i-import-my-bitgo-wallet-backup-into-electrum">3</a>, (note that I am using Bitgo's wallet through Bitwala)</em></p>

CC BY-SA 4.0
2021-01-17T14:18:09.663Z
may be the answer reside in the source code of [BitGoJS](https://github.com/BitGo/BitGoJS)
intika
CC BY-SA 4.0
2021-01-21T02:21:04.293Z
It may be better to reach out to BitGo directly about this.
Pieter Wuille
CC BY-SA 4.0
2021-01-21T12:46:54.733Z
According to answers given to other users, BitGo's support just redirect users to the recovery tool and does not communicate on such information. This is paradoxal while they claim using a non-custodial wallet and are using opensource softwares (but are not widely transparent on what they do/use)
intika
CC BY-SA 4.0
2021-01-24T15:10:49.357Z
Have you tried using a bigo wallet with some btc in it; importing the 2 signer private keys into your other software; then attempt to spend some of the btc from the wallet in the new software? It's possible that this may still work, if bitgo is simply using a different derived address from the same script (similar to compressed/uncompressed addresses for p2pkh wallets).
Robherc KV5ROB
CC BY-SA 4.0
2021-01-26T08:30:12.743Z
It would probably be easier to figure it out if you sent a transaction from BitGo, then you can see the exact redeem script of the transaction, which will include the public keys and the order they're listed in. Then you just have to figure out the derivation path of those public keys from the zpubs and zprvs you have.
ieatpizza
<private-key><electrum><multi-signature><xpub><bitgo>
Is it possible to use BitGo's wallet with other software (Electrum or else), what is the used derivation path?
intika
# Is it possible to use BitGo's wallet with other software (Electrum or else), what is the used derivation path?

(Asked by: username_0 on 2021-01-17)

BitGo wallets are based on a 2-of-3 multi-signature, the end user have access to:

```
- Public key (xpub) of the 3rd signer (as the main wallet xpub)
- Native Segwit (Bech32), bc1... addresses to receive BTC assets
- Private key/seed (BIP39) of the 1st signer (and public key xpub as well)
- Private key/seed (BIP39) of the 2nd signer (and public key xpub as well)

```

Seeds can be converted to private key [here](https://bitwala.github.io/bip39-recovery/), BitGo provide it's own [recovery-tool](https://github.com/BitGo/wallet-recovery-wizard/releases) (it's debug infos can be used to get the xpub keys of the first and second signer).

Public xpub keys can be converted to Zpub (p2wsh) [here](https://jlopp.github.io/xpub-converter/) or with [Electrum](https://electrum.org/) with the command `./electrum.AppImage convert_xkey 'xpub...' 'p2wsh' --offline` (Electrum and xpub-converter uses [those specs](https://github.com/satoshilabs/slips/blob/master/slip-0132.md) and derivations paths).

While it is possible to import the BitGo wallet into Electrum without error, Electrum never generate the same receiving address as BitGo, Following [this](https://bitcointalk.org/index.php?topic=5250035.0) and [this](https://translate.google.com/translate?hl=en&sl=de&u=https://bitcointalk.org/index.php%3Ftopic%3D5250032.0&prev=search&pto=aue) bitcointalk's forum threads:

**1. What is the derivation path used by BitGo Bitcoin wallet?**  
**2. Is it possible to use BitGo wallet in any other software like Electrum or else?**

*Other related QA: [1](https://bitcoin.stackexchange.com/questions/77047/how-to-link-a-bitcoin-address-to-a-wallet-address), [2](https://bitcoin.stackexchange.com/questions/69835/how-does-bitgo-multi-sig-work), [3](https://bitcoin.stackexchange.com/questions/58159/how-can-i-import-my-bitgo-wallet-backup-into-electrum), (note that I am using Bitgo's wallet through Bitwala)*

**Tags:** private-key, electrum, multi-signature, xpub, bitgo

> **Comments:**
> **username_0**: may be the answer reside in the source code of [BitGoJS](https://github.com/BitGo/BitGoJS)  
> **username_1**: It may be better to reach out to BitGo directly about this.  
> **username_0**: According to answers given to other users, BitGo's support just redirect users to the recovery tool and does not communicate on such information. This is paradoxal while they claim using a non-custodial wallet and are using opensource softwares (but are not widely transparent on what they do/use)  
> **username_2**: Have you tried using a bigo wallet with some btc in it; importing the 2 signer private keys into your other software; then attempt to spend some of the btc from the wallet in the new software? It's possible that this may still work, if bitgo is simply using a different derived address from the same script (similar to compressed/uncompressed addresses for p2pkh wallets).  
> **username_3**: It would probably be easier to figure it out if you sent a transaction from BitGo, then you can see the exact redeem script of the transaction, which will include the public keys and the order they're listed in. Then you just have to figure out the derivation path of those public keys from the zpubs and zprvs you have.  

---

## 1 answers

### Answer by username_4 on 2021-04-16. Score: 1

Looking at the [BitGoJS code](https://github.com/BitGo/BitGoJS/blob/012a9fcd/modules/core/src/v2/coins/abstractUtxoCoin.ts#L924) it would appear that the derivation path is `m/0/0/derivationChain/*`.

[Looking further](https://github.com/BitGo/unspents/blob/master/src/codes.ts#L35-L43), the `derivationChain` seems to be a code depending on the address type:

```
    [0, UnspentType.p2sh, Purpose.external],
    [10, UnspentType.p2shP2wsh, Purpose.external],
    [20, UnspentType.p2wsh, Purpose.external],

    [1, UnspentType.p2sh, Purpose.internal],
    [11, UnspentType.p2shP2wsh, Purpose.internal],
    [21, UnspentType.p2wsh, Purpose.internal],

```


---

