<p>The <code>/*</code> at he end is not mandatory, but does change the meaning, and dropping it is most probably not what you want.</p>
<p>Conceptually, if you have a <code>m/48'/0'/0'/2'</code> wallet, it means the keys your wallet uses are derived as (with <code>m</code> some master key):</p>
<ul>
<li><code>m/48'/0'/0'/2'/0</code></li>
<li><code>m/48'/0'/0'/2'/1</code></li>
<li><code>m/48'/0'/0'/2'/2</code></li>
<li>...</li>
</ul>
<p>In other words, it denotes a key <em>chain</em> consisting of multiple keys, each with their own derivation path.</p>
<p>The way to write that as a descriptor is as <code>xpubM.../48'/0'/0'/2'/*</code>, where <code>xpubM...</code> is the actual xpub corresponding to the master key <code>m</code>. In practice, you will precompute the xpub for just the derivation part <code>m/48'/0'/0'/2'</code> and just use <code>xpub.../*</code>.</p>
<p>You <em>can</em> just write &quot;xpub...&quot;, but then you have a wallet consisting of just the single key corresponding to <code>m/48'/0'/0'/2'</code> itself, rather than the keys derived from that key. Similarly, you <em>can</em> just use <code>xpub.../0</code>, but then you have a wallet consisting of just the single key correspondong to <code>m/48'/0'/0'/2'/0</code>, which is probably just the first key you want rather than all of them.</p>

CC BY-SA 4.0
2024-08-23T17:03:55.487Z
2024-08-24T18:32:14.777Z
2024-08-24T18:32:14.777Z
Pieter Wuille
<p>I created a multisig wallet with BlueWallet, and I want to convert the config file to a descriptor:</p>
<blockquote>
<p>Name: Multisig Vault
Policy: 2 of 3
Derivation: m/48'/0'/0'/2'
Format: P2WSH</p>
<p>1E74CA69: xpub65........................Qwg1Wd</p>
<p>9F40E694: xpub74hnJ........................cWoEszidc</p>
<p>derivation: m/48'/0'/2'/2'
B5B630B5: xpub6F9A........................Rb1VjK</p>
</blockquote>
<p>I see in the docs that when making a wsh(sortedmulti()) descriptor, the keys usually have trailing pathing (example: [e6807791/44h/1h/0h]tpubDDAfvogaaAxaFJ6c15ht7Tq6ZmiqFYfrSmZsHu7tHXBgnjMZSHAeHSwhvjARNA6Qybon4ksPksjRbPDVp7yXA1KjTjSd5x18KHqbppnXP1s/0/*  ---&gt; Here I am talking about the /0/*). I also saw in the docs that you want to make 2 descriptors; 1 for change addresses and 1 for regular addresses :<code> &quot;Now the multisig is created by importing the external and internal descriptors: wsh(sortedmulti(&lt;M&gt;,XPUB1/0/*,XPUB2/0/*,…,XPUBN/0/*)) and wsh(sortedmulti(&lt;M&gt;,XPUB1/1/*,XPUB2/1/*,…,XPUBN/1/*)) (one descriptor w/ 0 for receiving addresses and another w/ 1 for change).&quot;</code> Is that true? Or can I just ignore completely the trailing pathing and just do:</p>
<blockquote>
<p>wsh(sortedmulti(2,[1E74CA69/48'/0'/0'/2']xpub65........................Qwg1Wd,[9F40E694/48'/0'/0'/2']xpub74hnJ........................cWoEszidc,[B5B630B5/48'/0'/2'/2']xpub6F9A........................Rb1VjK))</p>
</blockquote>

CC BY-SA 4.0
2024-08-23T12:37:25.433Z
Hey Myles, perhaps the second question should be a separate topic, as how to get to descriptors from zpubs seems quite a bit away from whether you want separate descriptors for change and receive addresses. I edited your title to try and capture the gist of your first question. I find that trying to summarize what you are asking for rather than describing the category usually gets more interest—the categorization already happens via the tags anyway.
Murch
CC BY-SA 4.0
2024-08-23T16:17:35.777Z
Thanks. I split up the questions so now it should be a little less cluttered.
Myles Sherman
<multi-signature><xpub><output-script-descriptors><bluewallet>
Is the trailing pathing in multi-sig descriptors necessary?
Myles Sherman
# Is the trailing pathing in multi-sig descriptors necessary?

(Asked by: username_0 on 2024-08-23)

I created a multisig wallet with BlueWallet, and I want to convert the config file to a descriptor:

> Name: Multisig Vault
> Policy: 2 of 3
> Derivation: m/48'/0'/0'/2'
> Format: P2WSH
>
> 1E74CA69: xpub65........................Qwg1Wd
>
> 9F40E694: xpub74hnJ........................cWoEszidc
>
> derivation: m/48'/0'/2'/2'
> B5B630B5: xpub6F9A........................Rb1VjK

I see in the docs that when making a wsh(sortedmulti()) descriptor, the keys usually have trailing pathing (example: [e6807791/44h/1h/0h]tpubDDAfvogaaAxaFJ6c15ht7Tq6ZmiqFYfrSmZsHu7tHXBgnjMZSHAeHSwhvjARNA6Qybon4ksPksjRbPDVp7yXA1KjTjSd5x18KHqbppnXP1s/0/\* ---> Here I am talking about the /0/\*). I also saw in the docs that you want to make 2 descriptors; 1 for change addresses and 1 for regular addresses : `"Now the multisig is created by importing the external and internal descriptors: wsh(sortedmulti(<M>,XPUB1/0/*,XPUB2/0/*,…,XPUBN/0/*)) and wsh(sortedmulti(<M>,XPUB1/1/*,XPUB2/1/*,…,XPUBN/1/*)) (one descriptor w/ 0 for receiving addresses and another w/ 1 for change)."` Is that true? Or can I just ignore completely the trailing pathing and just do:

> wsh(sortedmulti(2,[1E74CA69/48'/0'/0'/2']xpub65........................Qwg1Wd,[9F40E694/48'/0'/0'/2']xpub74hnJ........................cWoEszidc,[B5B630B5/48'/0'/2'/2']xpub6F9A........................Rb1VjK))

**Tags:** multi-signature, xpub, output-script-descriptors, bluewallet

> **Comments:**
> **username_1**: Hey username_0, perhaps the second question should be a separate topic, as how to get to descriptors from zpubs seems quite a bit away from whether you want separate descriptors for change and receive addresses. I edited your title to try and capture the gist of your first question. I find that trying to summarize what you are asking for rather than describing the category usually gets more interest—the categorization already happens via the tags anyway.  
> **username_0**: Thanks. I split up the questions so now it should be a little less cluttered.  

---

## 1 answers

### Answer by username_2 on 2024-08-23. Score: 2 | Accepted answer

The `/*` at he end is not mandatory, but does change the meaning, and dropping it is most probably not what you want.

Conceptually, if you have a `m/48'/0'/0'/2'` wallet, it means the keys your wallet uses are derived as (with `m` some master key):

* `m/48'/0'/0'/2'/0`
* `m/48'/0'/0'/2'/1`
* `m/48'/0'/0'/2'/2`
* ...

In other words, it denotes a key *chain* consisting of multiple keys, each with their own derivation path.

The way to write that as a descriptor is as `xpubM.../48'/0'/0'/2'/*`, where `xpubM...` is the actual xpub corresponding to the master key `m`. In practice, you will precompute the xpub for just the derivation part `m/48'/0'/0'/2'` and just use `xpub.../*`.

You *can* just write "xpub...", but then you have a wallet consisting of just the single key corresponding to `m/48'/0'/0'/2'` itself, rather than the keys derived from that key. Similarly, you *can* just use `xpub.../0`, but then you have a wallet consisting of just the single key correspondong to `m/48'/0'/0'/2'/0`, which is probably just the first key you want rather than all of them.


---

