Combine two signatures for the same Bitcoin proposal

Two cosigners can sign separate copies of one multisignature proposal. The coordinator needs to merge their metadata while preserving the shared unsigned transaction.

Send an array of signed copies

Set ALICE_PSBT and BOB_PSBT to base64 packets returned for the very same proposal. jq constructs the JSON array accepted by Bitcoin Core. Capture the combined packet for inspection.

copies=$(jq -cn --arg a "$ALICE_PSBT" --arg b "$BOB_PSBT" '[$a,$b]')
merged=$(bitcoin-cli combinepsbt "$copies")
bitcoin-cli analyzepsbt "$merged"

Recognize incompatible proposals

Changing even the payment amount produces a different unsigned transaction. Treat a mismatch as a proposal-version problem and determine what each participant approved. If the merger succeeds, the analysis may still request a signer when the spending policy needs an additional signature.

bitcoincore.org combinepsbt · bitcoincore.org analyzepsbt