<p>You've got everything right. The last step (the one you are referring to) is done by brute force. The wallets just try out many many possibilities until they think they've guessed all the derived privKeys that you actually used. For each possible privKey, the wallet calculates the address and checks whether this address exists on the blockchain ( = there are or were coins on this address).</p>

<p>If you use the same wallet for recovering that also created all the addresses, then the derivation process is obviously the same and the wallet knows exactly how to derive the privKeys, to be sure to "guess" all of them.
There are also standards for how to derive the privKeys: </p>

<ul>
<li><a href="https://github.com/bitcoin/bips/blob/master/bip-0043.mediawiki" rel="nofollow noreferrer">https://github.com/bitcoin/bips/blob/master/bip-0043.mediawiki</a></li>
<li><a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" rel="nofollow noreferrer">https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki</a></li>
</ul>

CC BY-SA 3.0
2018-02-26T17:54:00.887Z
Note: the wallet software does not ‘guess all of them’, as a BIP32 seed phrase could generate infinite child keys if needed. Most wallet software will simply follow some logic like *’look ahead 50 addresses, stop if no funded addresses are found. Check another 50 if a funded address is found’*. Wallets also need to follow the same derivation path, or else the wallet may not check the right derivation path.
chytrik
CC BY-SA 3.0
2018-02-27T08:20:00.567Z
Thanks guys for your answers! Now I think I understand how it works :-)
Cristi
CC BY-SA 3.0
2018-02-26T15:29:46.280Z
2018-02-26T15:29:46.280Z
Dalit Sairio
<p>I'm a bit puzzled on how a wallet pairing process works. 
I know you can restore you parent private key from a mnemonic seed phrase. This will give you a parent private key. Using this private key how does a wallet figure out the private/public keys you have derived from this parent key?</p>

<p>Thanks!</p>

<wallet><private-key><wallet-recovery><recover-private-key><mnemonic-seed>
How do wallets (like jaxx) pair with each other using the mnemonic seed phrase?
Cristi
# How do wallets (like jaxx) pair with each other using the mnemonic seed phrase?

(Asked by: username_0 on 2018-02-26)

I'm a bit puzzled on how a wallet pairing process works.
I know you can restore you parent private key from a mnemonic seed phrase. This will give you a parent private key. Using this private key how does a wallet figure out the private/public keys you have derived from this parent key?

Thanks!

**Tags:** wallet, private-key, wallet-recovery, recover-private-key, mnemonic-seed


---

## 1 answers

### Answer by username_1 on 2018-02-26. Score: 1 | Accepted answer

You've got everything right. The last step (the one you are referring to) is done by brute force. The wallets just try out many many possibilities until they think they've guessed all the derived privKeys that you actually used. For each possible privKey, the wallet calculates the address and checks whether this address exists on the blockchain ( = there are or were coins on this address).

If you use the same wallet for recovering that also created all the addresses, then the derivation process is obviously the same and the wallet knows exactly how to derive the privKeys, to be sure to "guess" all of them.
There are also standards for how to derive the privKeys:

* <https://github.com/bitcoin/bips/blob/master/bip-0043.mediawiki>
* <https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki>

> **Comments:**
> **username_2**: Note: the wallet software does not ‘guess all of them’, as a BIP32 seed phrase could generate infinite child keys if needed. Most wallet software will simply follow some logic like *’look ahead 50 addresses, stop if no funded addresses are found. Check another 50 if a funded address is found’*. Wallets also need to follow the same derivation path, or else the wallet may not check the right derivation path.  
> **username_0**: Thanks guys for your answers! Now I think I understand how it works :-)  

---

