I created a 2-of-3 multisig taproot handle by following the steps outlined by Pieter Wuille on this submit utilizing importdescriptors
and deriveaddresses
. His steps labored completely, and I used to be in a position to create the handle from 3 pubkeys no downside.
My downside is that I do not know find out how to spend from the funded handle (kinda an enormous deal)
I’m utilizing Bitcoin Core QT Console, 24.0rc2 on Signet.
I’m utilizing 4 completely different wallets I’ve arrange. All are descriptor wallets, however the 4th has Non-public keys Disabled so I can import the taproot descriptors and create the multisig handle.
I used getnewaddress
and getaddressinfo
in every of the three common descriptor wallets to get an handle and the corresponding 66-character hex pubkey.
I used these 3 pubkeys to create the taproot descriptor
0249f48bd0c87f48a3d4d0fd5f0a2571861fd1891b092a41bd3546a93bc6db97ae, 03cde9c66862a392780e6868a7fd245273eff736a516d0f950a4e027d4d83d9194, 02d56baf4e4b77932b2f195598c68b63ee98827f21acb660b34bbf3ebf1862fc2e
Utilizing this format from the above linked submit;
tr(KI,multi_a(2,K1,K2,K3))#12345678
I bought this descriptor;
tr(50929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0,multi_a(2,0249f48bd0c87f48a3d4d0fd5f0a2571861fd1891b092a41bd3546a93bc6db97ae,03cde9c66862a392780e6868a7fd245273eff736a516d0f950a4e027d4d83d9194,02d56baf4e4b77932b2f195598c68b63ee98827f21acb660b34bbf3ebf1862fc2e))#s7q27ueu
For KI I used the unspendable output from BIP341 PW talked about within the above linked submit.
After utilizing importdescriptors
and deriveaddresses
I bought this taproot multisig handle consequently;
tb1p6vzv5za7pc9503fkvexccv4qm43z6600lhpj3k7sem9w3vdh8xjqanz5ld
I funded the handle with a transaction.
txid=071a04111096e77bfb8a5b1518b2ea5dca6adac245d41b4025fb50ed4a740819
I then created a PSBT with this command;
createpsbt
'[{"txid": "071a04111096e77bfb8a5b1518b2ea5dca6adac245d41b4025fb50ed4a740819", "vout": 0, "sequence":1}]'
'{"tb1qlxrmerprf9h2tgnlysltcs2lcc4dj9hjtu9se5": 0.0002}'
This returned a PBST;
cHNidP8BAFICAAAAARkIdErtUPslQBvURcLaaspd6rIYFVuK+3vnlhARBBoHAAAAAAABAAAAASBOAAAAAAAAFgAU+Ye8jCNJbqWifyQ+vEFfxirZFvIAAAAAAAAA
Decoding the PSBT returns;
{
"tx": {
"txid": "52063d0c2ec3f7fc60702e98c0a39e057ee71ae583ddace3d1d68f7a8cb5c125",
"hash": "52063d0c2ec3f7fc60702e98c0a39e057ee71ae583ddace3d1d68f7a8cb5c125",
"model": 2,
"dimension": 82,
"vsize": 82,
"weight": 328,
"locktime": 0,
"vin": [
{
"txid": "071a04111096e77bfb8a5b1518b2ea5dca6adac245d41b4025fb50ed4a740819",
"vout": 0,
"scriptSig": {
"asm": "",
"hex": ""
},
"sequence": 1
}
],
"vout": [
{
"value": 0.00020000,
"n": 0,
"scriptPubKey": {
"asm": "0 f987bc8c23496ea5a27f243ebc415fc62ad916f2",
"desc": "addr(tb1qlxrmerprf9h2tgnlysltcs2lcc4dj9hjtu9se5)#jhwtg3zn",
"hex": "0014f987bc8c23496ea5a27f243ebc415fc62ad916f2",
"address": "tb1qlxrmerprf9h2tgnlysltcs2lcc4dj9hjtu9se5",
"type": "witness_v0_keyhash"
}
}
]
},
"global_xpubs": [
],
"psbt_version": 0,
"proprietary": [
],
"unknown": {
},
"inputs": [
{
}
],
"outputs": [
{
}
]
Now here is the place I run into issues, I open the PSBT in Wallet1 to run walletprocesspsbt
and it returns false, which usually may be tremendous, however the PSBT knowledge is unchanged, so I can inform nothing occurred and it really did not course of;
{
"psbt": "cHNidP8BAFICAAAAARkIdErtUPslQBvURcLaaspd6rIYFVuK+3vnlhARBBoHAAAAAAABAAAAASBOAAAAAAAAFgAU+Ye8jCNJbqWifyQ+vEFfxirZFvIAAAAAAAAA",
"full": false
}
I get the identical ends in Wallet2 and Wallet3. These are the wallets used to create the addresses/pubkeys used within the taproot descriptor.
Then simply to see what occurred, I attempted the identical command within the pockets with disabled personal keys (the pockets I imported the tr descriptor into and created the addresses). As a word, if I run listunspent, I can see the funding tx (the funds I’m making an attempt to spend with the PSBT). This returns a unique PSBT knowledge, however nonetheless false;
{
"psbt": "cHNidP8BAFICAAAAARkIdErtUPslQBvURcLaaspd6rIYFVuK+3vnlhARBBoHAAAAAAABAAAAASBOAAAAAAAAFgAU+Ye8jCNJbqWifyQ+vEFfxirZFvIAAAAAAAEBKxdPAAAAAAAAIlEg0wTKC74OC0fFNmZNjDKg3WItae/9wyjb0M7K6LG3OaQiFcBQkpt0waBJVLeLS2A16XpeB4paDyjsltVHv+6azoA6wGkgSfSL0Mh/SKPU0P1fCiVxhh/RiRsJKkG9NUapO8bbl66sIM3pxmhio5J4Dmhop/0kUnPv9zalFtD5UKTgJ9TYPZGUuiDVa69OS3eTKy8ZVZjGi2PumIJ/Iay2YLNLvz6/GGL8LrpSnMAhFlCSm3TBoElUt4tLYDXpel4HiloPKOyW1Ue/7prOgDrABQB8Rh5dARcgUJKbdMGgSVS3i0tgNel6XgeKWg8o7JbVR7/ums6AOsABGCDt29WnxAqM6dFJQ1DxQsSQgva1MP5WQW1URX0xZXSThwAA",
"full": false
}
Decoding the PSBT offers this end result;
{
"tx": {
"txid": "52063d0c2ec3f7fc60702e98c0a39e057ee71ae583ddace3d1d68f7a8cb5c125",
"hash": "52063d0c2ec3f7fc60702e98c0a39e057ee71ae583ddace3d1d68f7a8cb5c125",
"model": 2,
"dimension": 82,
"vsize": 82,
"weight": 328,
"locktime": 0,
"vin": [
{
"txid": "071a04111096e77bfb8a5b1518b2ea5dca6adac245d41b4025fb50ed4a740819",
"vout": 0,
"scriptSig": {
"asm": "",
"hex": ""
},
"sequence": 1
}
],
"vout": [
{
"value": 0.00020000,
"n": 0,
"scriptPubKey": {
"asm": "0 f987bc8c23496ea5a27f243ebc415fc62ad916f2",
"desc": "addr(tb1qlxrmerprf9h2tgnlysltcs2lcc4dj9hjtu9se5)#jhwtg3zn",
"hex": "0014f987bc8c23496ea5a27f243ebc415fc62ad916f2",
"address": "tb1qlxrmerprf9h2tgnlysltcs2lcc4dj9hjtu9se5",
"type": "witness_v0_keyhash"
}
}
]
},
"global_xpubs": [
],
"psbt_version": 0,
"proprietary": [
],
"unknown": {
},
"inputs": [
{
"witness_utxo": {
"amount": 0.00020247,
"scriptPubKey": {
"asm": "1 d304ca0bbe0e0b47c536664d8c32a0dd622d69effdc328dbd0cecae8b1b739a4",
"desc": "rawtr(d304ca0bbe0e0b47c536664d8c32a0dd622d69effdc328dbd0cecae8b1b739a4)#sn2t4sme",
"hex": "5120d304ca0bbe0e0b47c536664d8c32a0dd622d69effdc328dbd0cecae8b1b739a4",
"address": "tb1p6vzv5za7pc9503fkvexccv4qm43z6600lhpj3k7sem9w3vdh8xjqanz5ld",
"type": "witness_v1_taproot"
}
},
"taproot_scripts": [
{
"script": "2049f48bd0c87f48a3d4d0fd5f0a2571861fd1891b092a41bd3546a93bc6db97aeac20cde9c66862a392780e6868a7fd245273eff736a516d0f950a4e027d4d83d9194ba20d56baf4e4b77932b2f195598c68b63ee98827f21acb660b34bbf3ebf1862fc2eba529c",
"leaf_ver": 192,
"control_blocks": [
"c050929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0"
]
}
],
"taproot_bip32_derivs": [
{
"pubkey": "50929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0",
"master_fingerprint": "7c461e5d",
"path": "m",
"leaf_hashes": [
]
}
],
"taproot_internal_key": "50929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0",
"taproot_merkle_root": "eddbd5a7c40a8ce9d1494350f142c49082f6b530fe56416d54457d3165749387"
}
],
"outputs": [
{
}
],
"payment": 0.00000247
}
I attempted bringing this PSBT into the opposite 3 wallets to see if they may course of this PSBT, however all gave the identical outcomes, false, and the PSBT knowledge was unchanged.
So what ought to I be doing to get PSBTs I can truly mix and finalize?