1

Creating an unsigned PSBT:


{
    "jsonrpc": "1.0",
    "id": "curltest",
    "method": "walletcreatefundedpsbt",
    "params": [
        [
            {
                "txid": "8b7e8c1898d473fe0229d1adf58aca6299df781e0ff77622a6d6f73273322942",
                "vout": 1
            }
        ],
        [
            {
                "tb1qv49u5nkg3y3nma4jmhp8ppl5mj4vyyattlhfyh": 0.005
            }
        ],
        0,
        {
            "includeWatching": true,
            "changeAddress": "tb1q3lkrtkwnt0txka5te0gt02vuk47trssaaxvhml",
            "feeRate": 0.0001
        },
        true
    ]
}

Result:


{
    "result": {
        "psbt": "cHNidP8BAHECAAAAAUIpMnMy99amInb3Dx5435liyor1rdEpAv5z1JgYjH6LAQAAAAD/////AjaaBwAAAAAAFgAUj+w12dNb1mt2i8vQt6mctXyxwh0goQcAAAAAABYAFGVLyk7IiSM99rLdwnCH9NyqwhOrAAAAAAABAP0hAQIAAAAFLYKKRQsSgx1v3UqETLYL4JCJWenWEn1pB7w/Tz96TdMAAAAAAP3///8tgopFCxKDHW/dSoRMtgvgkIlZ6dYSfWkHvD9PP3pN0wIAAAAA/f///1v4E5Wd/iNzkoNsZsQFQPAj2iRHlmxxmnjaPdEa7TEtAQAAAAD9////LYKKRQsSgx1v3UqETLYL4JCJWenWEn1pB7w/Tz96TdMBAAAAAP3///8pCFtwy3cF4hAMEihbDo3FVncbOKOTqx/LaoVTo1y9hwEAAAAA/f///wLOgi4AAAAAABYAFAv2sYJ4ALY+wb56YP2cI99/Y5biQEIPAAAAAAAiACBdKDYRhxYlihF1dZCM7Kobi25NNKylHThp1cWjEjTxDnsVHQABAStAQg8AAAAAACIAIF0oNhGHFiWKEXV1kIzsqhuLbk00rKUdOGnVxaMSNPEOAQVpUiEDe68lJzJ5hEVUKScCjod3qtntXQ9gMg4qa6g2LDMwhVQhAlKXOTSX1IxzZ37WAglDONf6o41uMvUm2k/Oniqutlu6IQNs3xVmKT6xvTJLTc4jB+JwmQmnPSZFCX6JMkA+neL4Q1OuIgYCUpc5NJfUjHNnftYCCUM41/qjjW4y9SbaT86eKq62W7oEN8HtHCIGA2zfFWYpPrG9MktNziMH4nCZCac9JkUJfokyQD6d4vhDBCnQwHAiBgN7ryUnMnmERVQpJwKOh3eq2e1dD2AyDiprqDYsMzCFVARbIBXQACICAuNOa3WDX2adJy31UOYgFUi2M79B12ijzcvzjVTG0mbsEJGMV+YAAACAAAAAgAcAAIAAAA==",
        "fee": 0.00001770,
        "changepos": 0
    },
    "error": null,
    "id": "curltest"
}

The UTXO that I am trying to spend is 2 of 3 multisig address: tb1qt55rvyv8zcjc5yt4wkggem92rw9kunf54jj36wrf6hz6xy357y8qgpk8xa

I created multisig with this request:


{
    "jsonrpc": "1.0",
    "id": "curltest",
    "method": "createmultisig",
    "params": [
        2,
        [
            "037baf252732798445542927028e8777aad9ed5d0f60320e2a6ba8362c33308554",
            "025297393497d48c73677ed602094338d7faa38d6e32f526da4fce9e2aaeb65bba",
            "036cdf1566293eb1bd324b4dce2307e2709909a73d2645097e8932403e9de2f843"
        ]
    ]
}

Address was added to wallet using this request:


{
    "jsonrpc": "1.0",
    "id": "curltest",
    "method": "importmulti",
    "params": [
        [
            {
                "desc": "sh(multi(2,037baf252732798445542927028e8777aad9ed5d0f60320e2a6ba8362c33308554,025297393497d48c73677ed602094338d7faa38d6e32f526da4fce9e2aaeb65bba,036cdf1566293eb1bd324b4dce2307e2709909a73d2645097e8932403e9de2f843))#t9xkhn5c",
                "timestamp": "now",
                "label": "gg1936",
                "watchonly": true
            }
        ]
    ]
}

Now I want to use the unsigned PSBT and sign it. Which RPC call should be used for it and what should I mention in arguments?

1 Answer 1

1

The command you want to use is walletprocesspsbt. The only argument you need is the PSBT itself.

3
  • How will you do it if the 3 public keys are in different wallets? Will the same command be used 2 times in 2 different wallets?
    – percy-g2
    Commented Jan 27, 2021 at 14:16
  • Yes. For each wallet, you use the same RPC. Just each time use the PSBT given by the previous wallet.
    – Ava Chow
    Commented Jan 27, 2021 at 17:38
  • @percy-g2 did it work for you?
    – Meglio
    Commented Mar 29, 2023 at 9:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.