<p>This is a draft answer (incomplete).</p>
<p>To get set up on Signet ie sync the Signet chain and claim some Signet Bitcoin, follow <a href="https://bitcoin.stackexchange.com/questions/98553/how-do-i-get-set-up-on-signet">these instructions</a>. (You can run a Signet node in parallel with your mainnet node, ie same hardware)</p>
<p>You now have funds at a non-P2TR (i.e. SegWit v0, bech32) Signet address. Now you need to generate a P2TR address to send funds to so you have funds at a P2TR address (so you can spend from it).</p>
<p>You can't generate a P2TR (SegWit v1, bech32m) address in the wallet using <code>getnewaddress</code>:</p>
<pre><code>./bitcoin-cli -signet -rpcwallet=insert_wallet_name getnewaddress &quot;&quot; &quot;bech32m&quot;
</code></pre>
<p>returns</p>
<pre><code>error code: -12
error message:
Error: No bech32m addresses available.
</code></pre>
<p>So you need to construct a Taproot descriptor manually and then import it into your descriptor wallet.</p>
<p>An <a href="https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md" rel="nofollow noreferrer">example</a> Taproot descriptor is:</p>
<pre><code>tr(c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5,{pk(fff97bd5755eeea420453a14355235d382f6472f8568a18b2f057a1460297556),pk(e493dbf1c10d80f3581e4904930b1404cc6c13900ee0758474fa94abe8c4cd13)}) 
</code></pre>
<p>which describes a P2TR output with the <code>c6...</code> x-only pubkey as internal key and two script paths.</p>
<p>If you only want to do a key path spend you only need the equivalent of:</p>
<pre><code>tr(c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5)
</code></pre>
<p>You can import a <code>tr(xprv/insert_xpriv_here)</code> descriptor so that your descriptor wallet has the private key to spend from it.</p>
<p>To do: Send signet Bitcoin to this descriptor wallet, spend back to a SegWit v0 address (sendtoaddress) Include generation of xprv?</p>
<p>TBC</p>
<p>This was also <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-October/019533.html" rel="nofollow noreferrer">discussed</a> on the bitcoin-dev mailing list.</p>

CC BY-SA 4.0
2021-10-07T08:17:21.473Z
Can you add an example for how to import the descriptor? I'm trying `importdescriptors "tr(c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5)"` (in the console of Bitcoin Core 22.0) but I always get `Error parsing JSON`.
Andreas
CC BY-SA 4.0
2021-10-10T12:57:51.587Z
@Andreas: Let me know if "Import a taproot descriptor (of the form "tr(KEY)"), as active descriptor (with active=true), where KEY can be a tprv.../* or any other supported key expression." from Pieter's mailing list post resolves your problem. Thanks
Michael Folkson
CC BY-SA 4.0
2021-10-10T13:59:24.397Z
The `importdescriptors` RPC takes as argument a *list* of objects, each with a decriptor and a few other parameters. Look at the RPC help (`help importdescriptors`) and the examples there.
Pieter Wuille
CC BY-SA 4.0
2021-07-07T10:32:38.130Z
2021-10-10T12:56:01.070Z
2021-10-10T12:56:01.070Z
Michael Folkson
<p>Apparently (credit <a href="https://x0f.org/@0xb10c/106538694483691589" rel="noreferrer">0xB10C</a>) there are only 20 key-path and 5 script-path spends of P2TR outputs on the Signet blockchain today (July 7th 2021). How can I increase this number today with say the Bitcoin Core wallet in the upcoming 22.0 release? If there are multiple ways (of varying levels of complexity) please outline them all.</p>

<wallet><taproot><signet><p2tr>
How can I spend from a P2TR address on Signet with the Bitcoin Core wallet in 22.0?
Michael Folkson
# How can I spend from a P2TR address on Signet with the Bitcoin Core wallet in 22.0?

(Asked by: username_0 on 2021-07-07)

Apparently (credit [0xB10C](https://x0f.org/@0xb10c/106538694483691589)) there are only 20 key-path and 5 script-path spends of P2TR outputs on the Signet blockchain today (July 7th 2021). How can I increase this number today with say the Bitcoin Core wallet in the upcoming 22.0 release? If there are multiple ways (of varying levels of complexity) please outline them all.

**Tags:** wallet, taproot, signet, p2tr


---

## 1 answers

### Answer by username_0 on 2021-07-07. Score: 4

This is a draft answer (incomplete).

To get set up on Signet ie sync the Signet chain and claim some Signet Bitcoin, follow [these instructions](https://bitcoin.stackexchange.com/questions/98553/how-do-i-get-set-up-on-signet). (You can run a Signet node in parallel with your mainnet node, ie same hardware)

You now have funds at a non-P2TR (i.e. SegWit v0, bech32) Signet address. Now you need to generate a P2TR address to send funds to so you have funds at a P2TR address (so you can spend from it).

You can't generate a P2TR (SegWit v1, bech32m) address in the wallet using `getnewaddress`:

```
./bitcoin-cli -signet -rpcwallet=insert_wallet_name getnewaddress "" "bech32m"

```

returns

```
error code: -12
error message:
Error: No bech32m addresses available.

```

So you need to construct a Taproot descriptor manually and then import it into your descriptor wallet.

An [example](https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md) Taproot descriptor is:

```
tr(c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5,{pk(fff97bd5755eeea420453a14355235d382f6472f8568a18b2f057a1460297556),pk(e493dbf1c10d80f3581e4904930b1404cc6c13900ee0758474fa94abe8c4cd13)}) 

```

which describes a P2TR output with the `c6...` x-only pubkey as internal key and two script paths.

If you only want to do a key path spend you only need the equivalent of:

```
tr(c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5)

```

You can import a `tr(xprv/insert_xpriv_here)` descriptor so that your descriptor wallet has the private key to spend from it.

To do: Send signet Bitcoin to this descriptor wallet, spend back to a SegWit v0 address (sendtoaddress) Include generation of xprv?

TBC

This was also [discussed](https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-October/019533.html) on the bitcoin-dev mailing list.

> **Comments:**
> **username_1**: Can you add an example for how to import the descriptor? I'm trying `importdescriptors "tr(c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5)"` (in the console of Bitcoin Core 22.0) but I always get `Error parsing JSON`.  
> **username_0**: @username_1: Let me know if "Import a taproot descriptor (of the form "tr(KEY)"), as active descriptor (with active=true), where KEY can be a tprv.../* or any other supported key expression." from username_2's mailing list post resolves your problem. Thanks  
> **username_2**: The `importdescriptors` RPC takes as argument a *list* of objects, each with a decriptor and a few other parameters. Look at the RPC help (`help importdescriptors`) and the examples there.  

---

