Skip to main content
added 154 characters in body
Source Link
Michael Folkson
  • 15.8k
  • 3
  • 21
  • 58

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 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 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 on the bitcoin-dev mailing list.

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 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 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 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 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 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 on the bitcoin-dev mailing list.

added 31 characters in body
Source Link
Michael Folkson
  • 15.8k
  • 3
  • 21
  • 58

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 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 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)

To do: GeneratingYou can import a private key, importingtr(xprv/insert_xpriv_here) descriptor so that your descriptor wallet has the private key to thespend from it.

To do: Send signet Bitcoin to this descriptor wallet, calculating the x-only pubkey, spend from the Taproot descriptorback to a SegWit v0 address (sendtoaddress, send back to original SegWit v0 address) Include generation of xprv?

TBC

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 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 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)

To do: Generating a private key, importing the private key to the descriptor wallet, calculating the x-only pubkey, spend from the Taproot descriptor to a SegWit v0 address (sendtoaddress, send back to original SegWit v0 address)

TBC

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 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 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

added 2 characters in body
Source Link
Michael Folkson
  • 15.8k
  • 3
  • 21
  • 58

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 getnewaddress:

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

returns

error code: -8 12
error message: Legacy wallets cannot
Error: provideNo 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:

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)

To do: Generating a private key, importing the private key to the descriptor wallet, calculating the x-only pubkey, spend from the Taproot descriptor to a SegWit v0 address (sendtoaddress, send back to original SegWit v0 address)

TBC

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 getnewaddress:

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

returns

error code: -8 error message: Legacy wallets cannot provide bech32m addresses

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

An example 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)

To do: Generating a private key, importing the private key to the descriptor wallet, calculating the x-only pubkey, spend from the Taproot descriptor to a SegWit v0 address (sendtoaddress, send back to original SegWit v0 address)

TBC

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 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 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)

To do: Generating a private key, importing the private key to the descriptor wallet, calculating the x-only pubkey, spend from the Taproot descriptor to a SegWit v0 address (sendtoaddress, send back to original SegWit v0 address)

TBC

added 2 characters in body
Source Link
Michael Folkson
  • 15.8k
  • 3
  • 21
  • 58
Loading
added 1 character in body
Source Link
Michael Folkson
  • 15.8k
  • 3
  • 21
  • 58
Loading
added 11 characters in body
Source Link
Michael Folkson
  • 15.8k
  • 3
  • 21
  • 58
Loading
added 106 characters in body
Source Link
Michael Folkson
  • 15.8k
  • 3
  • 21
  • 58
Loading
added 106 characters in body
Source Link
Michael Folkson
  • 15.8k
  • 3
  • 21
  • 58
Loading
added 274 characters in body
Source Link
Michael Folkson
  • 15.8k
  • 3
  • 21
  • 58
Loading
Source Link
Michael Folkson
  • 15.8k
  • 3
  • 21
  • 58
Loading