combinepsbt RPC does not work with P2TR inputs #27219

issue ghost openend this issue on March 7, 2023
  1. ghost commented at 11:14 am on March 7, 2023: none

    combinepsbt allows to distribute identical PSBTs to peers for signature and consolidate the resulting PSBT. However, this does not work with taproot UTXOs for me.

    Expected behavior

    Combined PSBT should return 'complete': True if all inputs are signed in different PSBTs and finalized with finalizepsbt

    Actual behavior

    Unable to finalize the transaction that was combined from multiple signed PSBTs.

    To reproduce

    PSBT 1

    0cHNidP8BAP2uAQIAAAAFx31XtYDPBwcoApG/qyvysMHW1mSKoF8kbyPn7EcUsOIAAAAAAP3///8tdEqDo/vSgTbsEpxTyuKF1wRlLqYaZsIRXLzqNkUWnwEAAAAA/f///4ywsdbrtM1Y3UiwdHkmWhN+iLKmY+ydhXWQMtzPQ5L9AAAAAAD9////ZliKNCp8zVXttzwP9KwaQxax9NophK/7E+2qE8dbrmYBAAAAAP3////rLIyyvsaYUJG/oUCfvasbCcwYt9RZYAK5s1sMQ9KpmwEAAAAA/f///wV4QQ8AAAAAACJRIMWp5VMEe1PO4vb4CmutZuMORkSggAdvQ+oD8E9EQ3OdeEEPAAAAAAAiUSCmUymUNVrg6qi94R9eEOTHPxQLDH4G7x673nJMyaxEcnhBDwAAAAAAIlEgLWHMAQo44IHU+Oaz60NKkUhvvkFjqE35QwCZhvzjJH54QQ8AAAAAACJRIKxKBxMRn+90Tr16E4Pa7SHmzL1JOj1CMCJi669o8EJQeEEPAAAAAAAiUSBxoo82RZw5zBgJJxAqrqJmVltCQ18+8hMUZgE2eUi+/QAAAAAAAQB9AgAAAAHKRUAzcxXq/mW3+qkNncaCNTAgRyTP4PEEC0FDlwj23AAAAAAA/v///wJAQg8AAAAAACJRIH/ARsdmingov+t3LNl2tXXodV43ysMejuJx1ZNPT4+iH7gs41AGAAAWABRXCzdXUGWLm7WNsjPayTxzBhIdGu4GAgABAStAQg8AAAAAACJRIH/ARsdmingov+t3LNl2tXXodV43ysMejuJx1ZNPT4+iIRZe7/5GAivuaLJTVSLb5ncrfaC7taM81gnDea97lthQxxkAdZUHVFYAAIABAACAAAAAgAAAAAAEAAAAARcgXu/+RgIr7miyU1Ui2+Z3K32gu7WjPNYJw3mve5bYUMcAAAAAAAEFILAcbw8LQEAkGSiWShxuylHFMyF3IsYS3/ZubDbo4GiQIQewHG8PC0BAJBkolkocbspRxTMhdyLGEt/2bmw26OBokBkAdZUHVFYAAIABAACAAAAAgAAAAAAJAAAAAAAAAAA=
    

    PSBT 2

    0cHNidP8BAP2uAQIAAAAFx31XtYDPBwcoApG/qyvysMHW1mSKoF8kbyPn7EcUsOIAAAAAAP3///8tdEqDo/vSgTbsEpxTyuKF1wRlLqYaZsIRXLzqNkUWnwEAAAAA/f///4ywsdbrtM1Y3UiwdHkmWhN+iLKmY+ydhXWQMtzPQ5L9AAAAAAD9////ZliKNCp8zVXttzwP9KwaQxax9NophK/7E+2qE8dbrmYBAAAAAP3////rLIyyvsaYUJG/oUCfvasbCcwYt9RZYAK5s1sMQ9KpmwEAAAAA/f///wV4QQ8AAAAAACJRIMWp5VMEe1PO4vb4CmutZuMORkSggAdvQ+oD8E9EQ3OdeEEPAAAAAAAiUSCmUymUNVrg6qi94R9eEOTHPxQLDH4G7x673nJMyaxEcnhBDwAAAAAAIlEgLWHMAQo44IHU+Oaz60NKkUhvvkFjqE35QwCZhvzjJH54QQ8AAAAAACJRIKxKBxMRn+90Tr16E4Pa7SHmzL1JOj1CMCJi669o8EJQeEEPAAAAAAAiUSBxoo82RZw5zBgJJxAqrqJmVltCQ18+8hMUZgE2eUi+/QAAAAAAAAEAfQIAAAABmi/ZOmO+ceWaDRcjYF17mv4J3IDUNL4ODU1ZVZQpHmcAAAAAAP7///8CErPPy0sGAAAWABTL9v31zpXNkDE6wBUkPVdx7VJaO0BCDwAAAAAAIlEgAHWn91tjc8fHgxXaXyOOnY16PHgNkW0ptLZUh0LaXs8DBwIAAQErQEIPAAAAAAAiUSAAdaf3W2Nzx8eDFdpfI46djXo8eA2RbSm0tlSHQtpezyEWCB822hjBvRhj/WQcBZKn1kz3Xx9a/JpPbjPuqrwcT4EZAEwJo79WAACAAQAAgAAAAIAAAAAAAAAAAAEXIAgfNtoYwb0YY/1kHAWSp9ZM918fWvyaT24z7qq8HE+BAAAAAAABBSC/5zVmMu5QUXWjiQnp6W5wien2YQkQDPr4tGkJn0YJOiEHv+c1ZjLuUFF1o4kJ6elucInp9mEJEAz6+LRpCZ9GCToZAEwJo79WAACAAQAAgAAAAIAAAAAABgAAAAAAAAA=
    

    PSBT 3

    0cHNidP8BAP2uAQIAAAAFx31XtYDPBwcoApG/qyvysMHW1mSKoF8kbyPn7EcUsOIAAAAAAP3///8tdEqDo/vSgTbsEpxTyuKF1wRlLqYaZsIRXLzqNkUWnwEAAAAA/f///4ywsdbrtM1Y3UiwdHkmWhN+iLKmY+ydhXWQMtzPQ5L9AAAAAAD9////ZliKNCp8zVXttzwP9KwaQxax9NophK/7E+2qE8dbrmYBAAAAAP3////rLIyyvsaYUJG/oUCfvasbCcwYt9RZYAK5s1sMQ9KpmwEAAAAA/f///wV4QQ8AAAAAACJRIMWp5VMEe1PO4vb4CmutZuMORkSggAdvQ+oD8E9EQ3OdeEEPAAAAAAAiUSCmUymUNVrg6qi94R9eEOTHPxQLDH4G7x673nJMyaxEcnhBDwAAAAAAIlEgLWHMAQo44IHU+Oaz60NKkUhvvkFjqE35QwCZhvzjJH54QQ8AAAAAACJRIKxKBxMRn+90Tr16E4Pa7SHmzL1JOj1CMCJi669o8EJQeEEPAAAAAAAiUSBxoo82RZw5zBgJJxAqrqJmVltCQ18+8hMUZgE2eUi+/QAAAAAAAAABAH0CAAAAAS10SoOj+9KBNuwSnFPK4oXXBGUuphpmwhFcvOo2RRafAAAAAAD+////AkBCDwAAAAAAIlEg2sYPPq2FLNakGFsklrTTapXyLI76SO4/yS/LFWUnOG45cMDLSwYAABYAFI2fNDRsZd5dxGPTd0CeNy7HL348BgcCAAEBK0BCDwAAAAAAIlEg2sYPPq2FLNakGFsklrTTapXyLI76SO4/yS/LFWUnOG4hFtAmISYobXVXpJZsdeaTp3FlQoPKscmSe7N+9PV1U+ayGQCDkOIWVgAAgAEAAIAAAACAAAAAAAAAAAABFyDQJiEmKG11V6SWbHXmk6dxZUKDyrHJknuzfvT1dVPmsgAAAAAAAQUgcwNM44Iu0XlPwYZXx/44z0QyR85LMxye6xg0pL5bhEIhB3MDTOOCLtF5T8GGV8f+OM9EMkfOSzMcnusYNKS+W4RCGQCDkOIWVgAAgAEAAIAAAACAAAAAAAUAAAAAAAA=
    

    PSBT 4

    0cHNidP8BAP2uAQIAAAAFx31XtYDPBwcoApG/qyvysMHW1mSKoF8kbyPn7EcUsOIAAAAAAP3///8tdEqDo/vSgTbsEpxTyuKF1wRlLqYaZsIRXLzqNkUWnwEAAAAA/f///4ywsdbrtM1Y3UiwdHkmWhN+iLKmY+ydhXWQMtzPQ5L9AAAAAAD9////ZliKNCp8zVXttzwP9KwaQxax9NophK/7E+2qE8dbrmYBAAAAAP3////rLIyyvsaYUJG/oUCfvasbCcwYt9RZYAK5s1sMQ9KpmwEAAAAA/f///wV4QQ8AAAAAACJRIMWp5VMEe1PO4vb4CmutZuMORkSggAdvQ+oD8E9EQ3OdeEEPAAAAAAAiUSCmUymUNVrg6qi94R9eEOTHPxQLDH4G7x673nJMyaxEcnhBDwAAAAAAIlEgLWHMAQo44IHU+Oaz60NKkUhvvkFjqE35QwCZhvzjJH54QQ8AAAAAACJRIKxKBxMRn+90Tr16E4Pa7SHmzL1JOj1CMCJi669o8EJQeEEPAAAAAAAiUSBxoo82RZw5zBgJJxAqrqJmVltCQ18+8hMUZgE2eUi+/QAAAAAAAAAAAQB9AgAAAAG16rfxzAeszw9StJcex0oezuDNW1YruB2aEwTCdtnDqwEAAAAA/v///wICWvLxTQYAABYAFLDPbdhCRgRylBt9DqcZeiTll4wqQEIPAAAAAAAiUSAmSvQ1rdcwFopglFoRIDhc9987QzR9mKklxH/UNYC+PAYHAgABAStAQg8AAAAAACJRICZK9DWt1zAWimCUWhEgOFz33ztDNH2YqSXEf9Q1gL48IRZh2doFnDvlWBEd3nX9NrlNeCuFf09qU1LhUQCwcJqK9RkASe9hl1YAAIABAACAAAAAgAAAAAAAAAAAARcgYdnaBZw75VgRHd51/Ta5TXgrhX9PalNS4VEAsHCaivUAAAAAAAEFIDBYe8ub99c+g74GB/BPETOIUnw7Pxv1rQz9wsnNGgEXIQcwWHvLm/fXPoO+BgfwTxEziFJ8Oz8b9a0M/cLJzRoBFxkASe9hl1YAAIABAACAAAAAgAAAAAAFAAAAAAA=
    

    PSBT 5

    0cHNidP8BAP2uAQIAAAAFx31XtYDPBwcoApG/qyvysMHW1mSKoF8kbyPn7EcUsOIAAAAAAP3///8tdEqDo/vSgTbsEpxTyuKF1wRlLqYaZsIRXLzqNkUWnwEAAAAA/f///4ywsdbrtM1Y3UiwdHkmWhN+iLKmY+ydhXWQMtzPQ5L9AAAAAAD9////ZliKNCp8zVXttzwP9KwaQxax9NophK/7E+2qE8dbrmYBAAAAAP3////rLIyyvsaYUJG/oUCfvasbCcwYt9RZYAK5s1sMQ9KpmwEAAAAA/f///wV4QQ8AAAAAACJRIMWp5VMEe1PO4vb4CmutZuMORkSggAdvQ+oD8E9EQ3OdeEEPAAAAAAAiUSCmUymUNVrg6qi94R9eEOTHPxQLDH4G7x673nJMyaxEcnhBDwAAAAAAIlEgLWHMAQo44IHU+Oaz60NKkUhvvkFjqE35QwCZhvzjJH54QQ8AAAAAACJRIKxKBxMRn+90Tr16E4Pa7SHmzL1JOj1CMCJi669o8EJQeEEPAAAAAAAiUSBxoo82RZw5zBgJJxAqrqJmVltCQ18+8hMUZgE2eUi+/QAAAAAAAAAAAAEAfQIAAAAB1Mtzeti7nnHm1MUCyuCYkHG2vMhzrtfqTG0LIxpKoncAAAAAAP7///8C18j8M08GAAAWABRMpGYRRH3BITaPE1QlBae1Q6uIzkBCDwAAAAAAIlEguUlHasK8t/DqSKWaKfQ0p41z6XGcIj/8pahUsWof4QoGBwIAAQErQEIPAAAAAAAiUSC5SUdqwry38OpIpZop9DSnjXPpcZwiP/ylqFSxah/hCiEWNUNLmNec0gQxUpW93wodO77791CyB8eN+h8Nle6rYrgZADPP085WAACAAQAAgAAAAIAAAAAAAAAAAAEXIDVDS5jXnNIEMVKVvd8KHTu++/dQsgfHjfofDZXuq2K4AAAAAAABBSAr++f7ARcmcsQX4L9F3s73ijHxpAblaYbWe0ffhaCPCCEHK/vn+wEXJnLEF+C/Rd7O94ox8aQG5WmG1ntH34WgjwgZADPP085WAACAAQAAgAAAAIAAAAAACgAAAAA=
    

    Combined PSBT:

    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
    

    System information

    Bitcoin Core v24.0.1 and all the above PSBTs are for Signet

  2. unknown added the label Bug on Mar 7, 2023
  3. achow101 commented at 3:59 pm on March 7, 2023: member
    The combined PSBT is correctly combined, there are just no signatures in any of the PSBTs. There’s nothing to finalize, so it cannot be finalized.
  4. ghost commented at 4:20 pm on March 7, 2023: none

    The combined PSBT is correctly combined, there are just no signatures in any of the PSBTs. There’s nothing to finalize, so it cannot be finalized.

    This wasn’t don’t manually, all PSBTs passed through walletprocesspsbt, I used the same code for segwit inputs and it worked. I will re-test everything although fractalenrypt told me this can be fixed with an open PR: https://twitter.com/FractalEncrypt/status/1633073353580859396

  5. achow101 commented at 4:22 pm on March 7, 2023: member
    Yes, it is a bug in signing, not in combining.
  6. fanquake commented at 8:50 am on March 8, 2023: member
    Ok. So this is fixed/closed by #23502 (assume the same for one of the alternate PRs).
  7. maflcko added the label PSBT on Mar 8, 2023
  8. b-l-u-e commented at 6:44 pm on July 24, 2025: none

    I’ve tested this issue with the current Bitcoin Core version 29 and can confirm that the combinepsbt RPC now works correctly with P2TR inputs.

    Test Results:

    I created a test scenario with:

    1. A Taproot address (bcrt1ph7wt8kmwvp87hp0re43vvme8c3y8tyg49ghstkaufxs8qjf6j4hskqejs7)
    2. A PSBT spending a Taproot UTXO
    3. Signed the PSBT using walletprocesspsbt
    4. Combined the signed PSBT using combinepsbt
    5. Finalized the combined PSBT using finalizepsbt

    Key Findings:

    PSBT signing works: walletprocesspsbt returns "complete": true and properly converts Taproot signatures to final_scriptwitness

    PSBT combining works: combinepsbt successfully combines PSBTs with Taproot inputs

    PSBT finalization works: finalizepsbt returns "complete": true and generates valid hex transactions

    Analysis:

    The issue appears to be resolved because the signing process now properly converts Taproot signatures to the final_scriptwitness format, which the PSBTInputSigned function can detect. The decoded PSBT shows:

    0"final_scriptwitness": [
    1  "261ec36113f5c3217aaa174d30b84ba6d56bbb9df025831ad8394bfe28a38c06552ec883cb9f0a85d923c512659aaf5252472ab30882c5708a59b715551eaee0"
    2]
    

    Conclusion:

    Ithink this issue can be closed - the combinepsbt RPC functionality with P2TR inputs is working correctly in the current version. The fix appears to have been implemented as part of the Taproot signing improvements.


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-08-13 12:13 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me