<p>Such a policy would have to be described using a <a href="https://bitcoin.sipa.be/miniscript/" rel="nofollow noreferrer">Miniscript</a> Output Descriptor, which i believe the Sparrow wallet does not support yet (as of August 2023).</p>
<p>A simpler k-of-N multisig policy can however be described using a non-Miniscript Output Descriptor (<code>multi</code> or <code>sortedmulti</code>), which are supported by the Sparrow wallet.</p>
<p>If you want to use the Miniscript Descriptor, you could import it on a Bitcoin Core wallet (starting with version 25.0 for full support) until Sparrow supports Miniscript.</p>

CC BY-SA 4.0
2023-08-15T21:59:38.587Z
Could the same thing be achieved using a simple 3 of 4 wallet with keys AABC? This would result in key A always being required for a withdrawal and at least one of B and C?
Guru Josh
CC BY-SA 4.0
2023-08-16T06:48:08.820Z
Yes, but you'd have to derive another key from the same xpub (or duplicate the key, but that's worse).
Antoine Poinsot
CC BY-SA 4.0
2023-08-15T15:07:13.570Z
2023-08-15T15:07:13.570Z
Antoine Poinsot
<p>Further to the following question:</p>
<p><a href="https://bitcoin.stackexchange.com/questions/119261/can-the-same-set-of-private-keys-be-used-multiple-times-in-a-multisig-wallet">Can the same set of private keys be used multiple times in a multisig wallet?</a></p>
<p>I tried to create a multisig wallet with keys (A and (B or C)) in Sparrow wallet using the policy suggested by @Vojtěch Strnad. However, it threw an &quot;invalid output descriptor&quot; error. If I try to create a simple 2 of 4 multisig wallet, Sparrow wallet generates the following descriptor:</p>
<p>wsh(sortedmulti(2,Keystore1,Keystore2,Keystore3,Keystore4))</p>
<p>This appears to be a different notation. What should the descriptor be in Sparrow wallet for a multisig wallet supporting keys (A and (B or C)) ? The Sparrow wallet GUI doesn't seem to provide options to create more complex wallets such as this.</p>

CC BY-SA 4.0
2023-08-15T13:46:01.997Z
Have you tried putting `wsh(...)` around the miniscript compiler output? It can only be used inside P2WSH for now.
Pieter Wuille
CC BY-SA 4.0
2023-08-15T13:54:47.270Z
So overall it'd be `wsh(and_v(or_c(pk(B),v:pk(C)),pk(A)))`, possibly replacing the A/B/C with the kind of key expressions that Sparrow uses (which I'm unfamiliar with).
Pieter Wuille
<wallet><multi-signature><sparrow-wallet>
Create a multisig wallet using Sparrow wallet with keys (A and (B or C))
Guru Josh
# Create a multisig wallet using Sparrow wallet with keys (A and (B or C))

(Asked by: username_0 on 2023-08-15)

Further to the following question:

[Can the same set of private keys be used multiple times in a multisig wallet?](https://bitcoin.stackexchange.com/questions/119261/can-the-same-set-of-private-keys-be-used-multiple-times-in-a-multisig-wallet)

I tried to create a multisig wallet with keys (A and (B or C)) in Sparrow wallet using the policy suggested by @Vojtěch Strnad. However, it threw an "invalid output descriptor" error. If I try to create a simple 2 of 4 multisig wallet, Sparrow wallet generates the following descriptor:

wsh(sortedmulti(2,Keystore1,Keystore2,Keystore3,Keystore4))

This appears to be a different notation. What should the descriptor be in Sparrow wallet for a multisig wallet supporting keys (A and (B or C)) ? The Sparrow wallet GUI doesn't seem to provide options to create more complex wallets such as this.

**Tags:** wallet, multi-signature, sparrow-wallet

> **Comments:**
> **username_1**: Have you tried putting `wsh(...)` around the miniscript compiler output? It can only be used inside P2WSH for now.  
> **username_1**: So overall it'd be `wsh(and_v(or_c(pk(B),v:pk(C)),pk(A)))`, possibly replacing the A/B/C with the kind of key expressions that Sparrow uses (which I'm unfamiliar with).  

---

## 1 answers

### Answer by username_2 on 2023-08-15. Score: 1

Such a policy would have to be described using a [Miniscript](https://bitcoin.sipa.be/miniscript/) Output Descriptor, which i believe the Sparrow wallet does not support yet (as of August 2023).

A simpler k-of-N multisig policy can however be described using a non-Miniscript Output Descriptor (`multi` or `sortedmulti`), which are supported by the Sparrow wallet.

If you want to use the Miniscript Descriptor, you could import it on a Bitcoin Core wallet (starting with version 25.0 for full support) until Sparrow supports Miniscript.

> **Comments:**
> **username_0**: Could the same thing be achieved using a simple 3 of 4 wallet with keys AABC? This would result in key A always being required for a withdrawal and at least one of B and C?  
> **username_2**: Yes, but you'd have to derive another key from the same xpub (or duplicate the key, but that's worse).  

---

