Apparently (credit 0xB10C) 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.
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. (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
./bitcoin-cli -signet -rpcwallet=insert_wallet_name getnewaddress "" "bech32m"
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 Taproot descriptor is:
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:
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?
This was also discussed on the bitcoin-dev mailing list.