<p>This isn't really possible, short of brute force.</p>
<p>An address contains no information about how it was derived, if it relates to any mnemonic at all, or whether it followed a standard path system.</p>
<p>Absolutely nothing prevents you from deriving a p2pkh address using a segwit derivation path.</p>
<p>Many wallets do have mechanisms to try various derivation paths up to the wallet's gap limit for the selected address type, but searching for a specific address is a fool's errand unless you already know it belongs to a certain mnemonic, and have some vague idea of what derivation path it would fall under (or a lot of patience to try several billion combinations). In those scenarios, you'd usually be better suites to writing your own script to do it under the constraints specific to your case.</p>

CC BY-SA 4.0
2020-08-10T15:01:49.590Z
2020-08-10T15:01:49.590Z
Raghav Sood
<blockquote>
<p>Has anyone written an utility or something able to search/identify which Derivation Path an Address belongs?</p>
</blockquote>
<p>Hi, developer of the <a href="https://github.com/Coding-Enthusiast/FinderOuter" rel="nofollow noreferrer">FinderOuter</a> here, I have some ideas but haven't implemented them yet. The biggest challenge is that I haven't seen any examples of this so I have to guess what the situations are.</p>
<p>One case could be user creating a mnemonic with wallet A and importing it in wallet B and getting a different address. This would be very easy to implement since it requires going through a list of known paths. The only additional work here would be deriving more than one address if the one user has is at an unknown index.</p>
<p>Another possible case could be user modified the path and forgot the modifications. Like password recovery the user would have to reduce the search space by providing additional information otherwise the search space is just too massive to search it by brute force and to make matters worse there are 2 variables: depth and index (depth meaning: m/x or m/x/x or m/x/x/x,...).</p>
<p>Will try releasing these ideas as a new option in version <code>0.5.0</code>.</p>

CC BY-SA 4.0
2020-08-10T15:39:13.027Z
2020-08-10T15:39:13.027Z
Coding Enthusiast
<p>I am working on a Wallet: <a href="https://github.com/Pure-Wallet/crypto" rel="nofollow noreferrer">https://github.com/Pure-Wallet/crypto</a>. It is certainly not ready for production, nor should it be trusted with main net bitcoin. But it does allow you to input a Mnemonic and it stores the path of each key it generates.</p>

CC BY-SA 4.0
2020-08-11T17:51:08.063Z
2020-08-11T17:51:08.063Z
Sachin Meier
<p>Has anyone written an utility or something able to search/identify which Derivation Path an Address belongs? For example, giving a mnemonic like &quot;unaware open elite rabbit grunt spread session exotic legal satoshi trend electric&quot; and Address &quot;12rfNtgHFjLoK1y58S3gHijmGHV8t8iteT&quot;, the program should return its Derivation Path &quot;m/44'/0'/1'/2/6&quot;.</p>

CC BY-SA 4.0
2020-08-10T20:51:53.870Z
Yes, I thought it was obvious that we need to proceed by brute force, possibly limiting the scope (e.g. account={0-9}, index={0-100} or something)... Sorry if I've not specified that.
IlMao
<bip32-hd-wallets>
Search Derivation Path for an Address
user109087
# Search Derivation Path for an Address

(Asked by: username_0 on 2020-08-10)

Has anyone written an utility or something able to search/identify which Derivation Path an Address belongs? For example, giving a mnemonic like "unaware open elite rabbit grunt spread session exotic legal satoshi trend electric" and Address "12rfNtgHFjLoK1y58S3gHijmGHV8t8iteT", the program should return its Derivation Path "m/44'/0'/1'/2/6".

**Tags:** bip32-hd-wallets

> **Comments:**
> **username_1**: Yes, I thought it was obvious that we need to proceed by brute force, possibly limiting the scope (e.g. account={0-9}, index={0-100} or something)... Sorry if I've not specified that.  

---

## 3 answers

### Answer by username_2 on 2020-08-10. Score: 1

This isn't really possible, short of brute force.

An address contains no information about how it was derived, if it relates to any mnemonic at all, or whether it followed a standard path system.

Absolutely nothing prevents you from deriving a p2pkh address using a segwit derivation path.

Many wallets do have mechanisms to try various derivation paths up to the wallet's gap limit for the selected address type, but searching for a specific address is a fool's errand unless you already know it belongs to a certain mnemonic, and have some vague idea of what derivation path it would fall under (or a lot of patience to try several billion combinations). In those scenarios, you'd usually be better suites to writing your own script to do it under the constraints specific to your case.


---

### Answer by username_3 on 2020-08-10. Score: 0

> Has anyone written an utility or something able to search/identify which Derivation Path an Address belongs?

Hi, developer of the [FinderOuter](https://github.com/Coding-Enthusiast/FinderOuter) here, I have some ideas but haven't implemented them yet. The biggest challenge is that I haven't seen any examples of this so I have to guess what the situations are.

One case could be user creating a mnemonic with wallet A and importing it in wallet B and getting a different address. This would be very easy to implement since it requires going through a list of known paths. The only additional work here would be deriving more than one address if the one user has is at an unknown index.

Another possible case could be user modified the path and forgot the modifications. Like password recovery the user would have to reduce the search space by providing additional information otherwise the search space is just too massive to search it by brute force and to make matters worse there are 2 variables: depth and index (depth meaning: m/x or m/x/x or m/x/x/x,...).

Will try releasing these ideas as a new option in version `0.5.0`.


---

### Answer by username_4 on 2020-08-11. Score: -1

I am working on a Wallet: <https://github.com/Pure-Wallet/crypto>. It is certainly not ready for production, nor should it be trusted with main net bitcoin. But it does allow you to input a Mnemonic and it stores the path of each key it generates.


---

