-
-
Save pinheadmz/2e85bbdd1b21ed2946f84a88d38f172a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# create two default wallets | |
bitcoin-cli -regtest -named createwallet wallet_name=one | |
bitcoin-cli -regtest -named createwallet wallet_name=two | |
# get an xpub from each wallet out of the 'pkh' descriptor | |
bitcoin-cli -regtest -named -rpcwallet=one listdescriptors | |
bitcoin-cli -regtest -named -rpcwallet=two listdescriptors | |
# assemble the 2 xpubs into a multisig descriptor and use rpc to get the checksum | |
bitcoin-cli -regtest -named getdescriptorinfo 'sh(sortedmulti(2, tpubDCpd4MPqQhUPL7bsGJ9dHEZahk7VwWzmEr3T6w7iDBewCKJzfiW8oZc3mnMEFHE3cNCAkyNfCoj993o5MJ4MmjDqaExu3KTy379hKDArGon/0/*, tpubDCQUeudUcL6gdgcteT3o9dG2rAtShF7smCWWavnvZk4Rqx7LEcX86Fph8UyBZWLNHddSBAUQ4PDT62N4Meg5ZffjUg1ozLdHL4Tg2Sov9dP/0/*))' | |
# repeat, for change addresses (incrementing the `0` to `1` in the paths) | |
bitcoin-cli -regtest -named getdescriptorinfo 'sh(sortedmulti(2, tpubDCpd4MPqQhUPL7bsGJ9dHEZahk7VwWzmEr3T6w7iDBewCKJzfiW8oZc3mnMEFHE3cNCAkyNfCoj993o5MJ4MmjDqaExu3KTy379hKDArGon/1/*, tpubDCQUeudUcL6gdgcteT3o9dG2rAtShF7smCWWavnvZk4Rqx7LEcX86Fph8UyBZWLNHddSBAUQ4PDT62N4Meg5ZffjUg1ozLdHL4Tg2Sov9dP/1/*))' | |
# create a blank watch-only wallet for the multisig | |
bitcoin-cli -regtest -named createwallet wallet_name=ms blank=true disable_private_keys=true | |
# import the two multisig descriptors we made, setting "active", "timestamp" and "internal:" | |
bitcoin-cli -regtest -named -rpcwallet=ms importdescriptors '[{"desc":"sh(sortedmulti(2,tpubDCpd4MPqQhUPL7bsGJ9dHEZahk7VwWzmEr3T6w7iDBewCKJzfiW8oZc3mnMEFHE3cNCAkyNfCoj993o5MJ4MmjDqaExu3KTy379hKDArGon/0/*,tpubDCQUeudUcL6gdgcteT3o9dG2rAtShF7smCWWavnvZk4Rqx7LEcX86Fph8UyBZWLNHddSBAUQ4PDT62N4Meg5ZffjUg1ozLdHL4Tg2Sov9dP/0/*))#9anck48k","active":true,"timestamp":"now"}, {"desc":"sh(sortedmulti(2,tpubDCpd4MPqQhUPL7bsGJ9dHEZahk7VwWzmEr3T6w7iDBewCKJzfiW8oZc3mnMEFHE3cNCAkyNfCoj993o5MJ4MmjDqaExu3KTy379hKDArGon/1/*,tpubDCQUeudUcL6gdgcteT3o9dG2rAtShF7smCWWavnvZk4Rqx7LEcX86Fph8UyBZWLNHddSBAUQ4PDT62N4Meg5ZffjUg1ozLdHL4Tg2Sov9dP/1/*))#4l97srdw", "active":true,"internal":true, "timestamp":"now"}]' | |
# generate funds to one of the first wallets | |
bitcoin-cli -regtest -named -rpcwallet=one -generate 110 | |
# get a P2SH address from the multisig wallet | |
bitcoin-cli -regtest -named -rpcwallet=ms getnewaddress '' 'legacy' | |
# send BTC to the multisig address and confirm | |
bitcoin-cli -regtest -named -rpcwallet=one sendtoaddress 2N9dgdMqnFo4vWqjDmch9TobAme36b8faSp 1 | |
bitcoin-cli -regtest -named -rpcwallet=one -generate 1 | |
# create a transaction sending some of that BTC back to the second wallet | |
bitcoin-cli -regtest -named -rpcwallet=two getnewaddress | |
bitcoin-cli -regtest -named -rpcwallet=ms walletcreatefundedpsbt '[]' '[{"bcrt1q342jc7dgxp57mhr38k5nd8l502pxvp3a9zf6en":0.1}]' 0 '{"change_type":"legacy"}' | |
# sign the PSBT with the first wallet | |
bitcoin-cli -regtest -named -rpcwallet=one walletprocesspsbt psbt='cHNidP8BAHICAAAAAe7MUtnaGxiJm98aiSM9/imTH7Rog7J3TKvBdvP97uKfAQAAAAD9////An49XQUAAAAAF6kUCCtt+Rdgl1+Xx2P/QFzYckPIdZ2HgJaYAAAAAAAWABSNVSx5qDBp7dxxPak2n/R6gmYGPQAAAAAAAQBzAgAAAAEotqjljIr7rTJyYSDzF2lv3NEZd3Q07ZDkVbUBrN667QAAAAAA/f///wJqCxAkAQAAABepFB8t2g7IuoIfx3OEDQGmq4Ko51D+hwDh9QUAAAAAF6kUs8FmqVbzIRqblMrNRZ8NAseqyDaHbgAAAAEER1IhAkRJZTtDceJvHx0C55p04eu0MJRWI+MYQ0XK2nHzAtOFIQMpCYbcD8tnBtA9bJDwHp4vLlVG3R87Zws3vklcuUZ4T1KuIgYCREllO0Nx4m8fHQLnmnTh67QwlFYj4xhDRcracfMC04UMXTY9IAAAAAAAAAAAIgYDKQmG3A/LZwbQPWyQ8B6eLy5VRt0fO2cLN75JXLlGeE8M6Gu3GAAAAAAAAAAAAAEAR1IhAgrDxugNazfzRdaCYYZqVLoU63R8KgUs6oY9m2l87otPIQMhEbowMjmfzMT+MtoLCI2Gk7L1i9JgB5CE3Qofwk5I2lKuIgICCsPG6A1rN/NF1oJhhmpUuhTrdHwqBSzqhj2baXzui08M6Gu3GAEAAAAAAAAAIgIDIRG6MDI5n8zE/jLaCwiNhpOy9YvSYAeQhN0KH8JOSNoMXTY9IAEAAAAAAAAAAAA=' | |
# sign the PSBT with the second wallet | |
bitcoin-cli -regtest -named -rpcwallet=two walletprocesspsbt psbt='cHNidP8BAHICAAAAAe7MUtnaGxiJm98aiSM9/imTH7Rog7J3TKvBdvP97uKfAQAAAAD9////An49XQUAAAAAF6kUCCtt+Rdgl1+Xx2P/QFzYckPIdZ2HgJaYAAAAAAAWABSNVSx5qDBp7dxxPak2n/R6gmYGPQAAAAAAAQBzAgAAAAEotqjljIr7rTJyYSDzF2lv3NEZd3Q07ZDkVbUBrN667QAAAAAA/f///wJqCxAkAQAAABepFB8t2g7IuoIfx3OEDQGmq4Ko51D+hwDh9QUAAAAAF6kUs8FmqVbzIRqblMrNRZ8NAseqyDaHbgAAACICAykJhtwPy2cG0D1skPAeni8uVUbdHztnCze+SVy5RnhPRzBEAiBTrA25nT8Gr1xGkiF698IjGgAfgwZYWfWuun2YKZacdgIgBlOJQb8klvvaPCcZv7wk5QdU5HAfHcNN54CE6sxjaiQBAQRHUiECREllO0Nx4m8fHQLnmnTh67QwlFYj4xhDRcracfMC04UhAykJhtwPy2cG0D1skPAeni8uVUbdHztnCze+SVy5RnhPUq4iBgJESWU7Q3Hibx8dAueadOHrtDCUViPjGENFytpx8wLThQxdNj0gAAAAAAAAAAAiBgMpCYbcD8tnBtA9bJDwHp4vLlVG3R87Zws3vklcuUZ4Twzoa7cYAAAAAAAAAAAAAQBHUiECCsPG6A1rN/NF1oJhhmpUuhTrdHwqBSzqhj2baXzui08hAyERujAyOZ/MxP4y2gsIjYaTsvWL0mAHkITdCh/CTkjaUq4iAgIKw8boDWs380XWgmGGalS6FOt0fCoFLOqGPZtpfO6LTwzoa7cYAQAAAAAAAAAiAgMhEbowMjmfzMT+MtoLCI2Gk7L1i9JgB5CE3Qofwk5I2gxdNj0gAQAAAAAAAAAAAA==' | |
# finalize the PSBT | |
bitcoin-cli -regtest -named -rpcwallet=two finalizepsbt psbt='cHNidP8BAHICAAAAAe7MUtnaGxiJm98aiSM9/imTH7Rog7J3TKvBdvP97uKfAQAAAAD9////An49XQUAAAAAF6kUCCtt+Rdgl1+Xx2P/QFzYckPIdZ2HgJaYAAAAAAAWABSNVSx5qDBp7dxxPak2n/R6gmYGPQAAAAAAAQBzAgAAAAEotqjljIr7rTJyYSDzF2lv3NEZd3Q07ZDkVbUBrN667QAAAAAA/f///wJqCxAkAQAAABepFB8t2g7IuoIfx3OEDQGmq4Ko51D+hwDh9QUAAAAAF6kUs8FmqVbzIRqblMrNRZ8NAseqyDaHbgAAAAEH2QBHMEQCICRu0vjuZd5p0gMExxDDCJ9N1FB/tzOzBLYLIBLLmSAeAiBQBJGhXG0n274f5p/qmJQnx7iJKNhMyBlJKmP099f4GQFHMEQCIFOsDbmdPwavXEaSIXr3wiMaAB+DBlhZ9a66fZgplpx2AiAGU4lBvySW+9o8Jxm/vCTlB1TkcB8dw03ngITqzGNqJAFHUiECREllO0Nx4m8fHQLnmnTh67QwlFYj4xhDRcracfMC04UhAykJhtwPy2cG0D1skPAeni8uVUbdHztnCze+SVy5RnhPUq4AAQBHUiECCsPG6A1rN/NF1oJhhmpUuhTrdHwqBSzqhj2baXzui08hAyERujAyOZ/MxP4y2gsIjYaTsvWL0mAHkITdCh/CTkjaUq4iAgIKw8boDWs380XWgmGGalS6FOt0fCoFLOqGPZtpfO6LTwzoa7cYAQAAAAAAAAAiAgMhEbowMjmfzMT+MtoLCI2Gk7L1i9JgB5CE3Qofwk5I2gxdNj0gAQAAAAAAAAAAIgIChcBV1iEQZd7R8Fx/n41OzW63dWwY54s4MZBjceraJt0YJSZqr1QAAIABAACAAAAAgAAAAAAAAAAAAA==' | |
# decode the finalized transaction | |
bitcoin-cli -regtest decoderawtransaction 0200000001eecc52d9da1b18899bdf1a89233dfe29931fb46883b2774cabc176f3fdeee29f01000000d9004730440220246ed2f8ee65de69d20304c710c3089f4dd4507fb733b304b60b2012cb99201e0220500491a15c6d27dbbe1fe69fea989427c7b88928d84cc819492a63f4f7d7f81901473044022053ac0db99d3f06af5c4692217af7c2231a001f83065859f5aeba7d9829969c76022006538941bf2496fbda3c2719bfbc24e50754e4701f1dc34de78084eacc636a2401475221024449653b4371e26f1f1d02e79a74e1ebb430945623e3184345cada71f302d3852103290986dc0fcb6706d03d6c90f01e9e2f2e5546dd1f3b670b37be495cb946784f52aefdffffff027e3d5d050000000017a914082b6df91760975f97c763ff405cd87243c8759d8780969800000000001600148d552c79a83069eddc713da9369ff47a8266063d00000000 | |
# decode the redeemscript from the transaction input | |
bitcoin-cli -regtest decodescript 5221024449653b4371e26f1f1d02e79a74e1ebb430945623e3184345cada71f302d3852103290986dc0fcb6706d03d6c90f01e9e2f2e5546dd1f3b670b37be495cb946784f52ae | |
{ | |
"asm": "2 024449653b4371e26f1f1d02e79a74e1ebb430945623e3184345cada71f302d385 03290986dc0fcb6706d03d6c90f01e9e2f2e5546dd1f3b670b37be495cb946784f 2 OP_CHECKMULTISIG", | |
"desc": "multi(2,024449653b4371e26f1f1d02e79a74e1ebb430945623e3184345cada71f302d385,03290986dc0fcb6706d03d6c90f01e9e2f2e5546dd1f3b670b37be495cb946784f)#s564ne4d", | |
"type": "multisig", | |
"p2sh": "2N9dgdMqnFo4vWqjDmch9TobAme36b8faSp", | |
"segwit": { | |
"asm": "0 30f2a2d0fa8b7f56aba024646bfb1c072b205c8b606f4c9f575e5459ffa51ed8", | |
"desc": "wsh(multi(2,024449653b4371e26f1f1d02e79a74e1ebb430945623e3184345cada71f302d385,03290986dc0fcb6706d03d6c90f01e9e2f2e5546dd1f3b670b37be495cb946784f))#lg9v8u9d", | |
"hex": "002030f2a2d0fa8b7f56aba024646bfb1c072b205c8b606f4c9f575e5459ffa51ed8", | |
"address": "bcrt1qxre295863dl4d2aqy3jxh7cuqu4jqhytvph5e86hte29nla9rmvql3lwvl", | |
"type": "witness_v0_scripthash", | |
"p2sh-segwit": "2NBK9uTnddWeLUUT7nc2RNXJjNG5HGShcmz" | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
It was very useful. Thanks a lot.