My goal
Learn how to send an imported tr(wif) and wpkh() utxo in the same transaction.
What I've tried
I imported a WIF utxo containing a v1 segwit utxo.
bitcoin-cli importdescriptors '[{"desc":"tr(wifkey)#checksum", "timestamp":unixts}]'
I didn't know the checksum, but when importing I got an error that told me what the checksum should be, so I used that.
The balance showed up after import, I assume it was imported correctly.
Learned createrawtransaction
, fundrawtransaction
, signrawtransactionwithwallet
are not acceptable for taproot. This was resulting in "Witness program was passed an empty witness".
It seems psbt commands are more appropriate. However, I couldn't figure out how to successfully sendsign with cli. I kept getting "complete": false
returned.
I then tried bitcoin-qt and attempted to sweep funds to an address as a test. I received this:
While using bitcoin-cli and running bitcoin-cli listunspent
I see:
[
{
"txid": "TX_1",
"vout": x,
"address": "ADDR_1",
"label": "xxx1",
"scriptPubKey": "44_LEGNTH_HEX_STRING",
"amount": xxxxxx.xxxxxx,
"confirmations": xxx,
"spendable": true,
"solvable": true,
"desc": "wpkh([FINGERPRINT/84'/0'/0'/0/0]KEY)#CHECKSUM1",
"parent_descs": [
"wpkh(xpub_key/84'/0'/0'/0/*)#CHECKSUM-parent"
],
"safe": true
},
{
"txid": "TX_2",
"vout": xx,
"address": "ADDR_2",
"label": "xxx2",
"scriptPubKey": "68_LENGTH_HEX_STRING",
"amount": xxxxxx.xxxxxx,
"confirmations": xxxx,
"spendable": true,
"solvable": true,
"desc": "tr([FINGERPRINT2]KEY2)#CHECKSUM2",
"parent_descs": [
"tr(KEY2)#CHECKSUM2"
],
"safe": true
}
]
Output sanitized
Question
- What are the methodical steps starting with an imported WIF/taproot utxo + wpkh utxo and creating a signed tx to send funds?