Assemble a joint Bitcoin proposal from disjoint inputs
In a regtest coordination exercise, two participants can contribute independently prepared unsigned transactions to a single proposal before anyone signs.
Join proposals before collecting signatures
Assign the unsigned base64 packets to LEFT and RIGHT. Each must spend different outpoints. Feed the returned packet into the decoder and inspect the resulting transaction.
parts=$(jq -cn --arg a "$LEFT" --arg b "$RIGHT" '[$a,$b]')
joint=$(bitcoin-cli joinpsbts "$parts")
bitcoin-cli decodepsbt "$joint" | jq '.tx | {vin, vout}'
Check participant contributions
A repeated input would spend the same coin twice, so Core rejects overlapping proposals. After a successful join, reconcile the combined inputs and all outputs with the participants' agreements. Each participant reviews and signs the resulting joint transaction, whose contents differ from either starting proposal.