Skip to content

Add PSBT creator, signer and finalizer roles for BIP-322 - #75

Open
aagbotemi wants to merge 17 commits into
rust-bitcoin:masterfrom
aagbotemi:feat/psbt-multiparty-signing
Open

Add PSBT creator, signer and finalizer roles for BIP-322#75
aagbotemi wants to merge 17 commits into
rust-bitcoin:masterfrom
aagbotemi:feat/psbt-multiparty-signing

Conversation

@aagbotemi

Copy link
Copy Markdown
Contributor

Summary

Implement BIP-322's multi-party PSBT workflow, a creator builds an unsigned signing request, independent signers add partial signatures after detecting the request, and a finalizer assembles and encodes the result.

Rebased on #73

Changes

  • Add detect_bip322_psbt to check the detection properties.
  • Add Bip322Psbt to carry the detected message and challenge for signers.
  • Add create_bip322_psbt to build an unsigned PSBT with the message, UTXO, and script fields set.
  • Add sign_bip322_psbt_input to detect the request, adds a partial signature (or tap_key_sig for taproot) to the first input.
  • Add finalize_bip322_psbt to assemble signatures per BIP174 and encodes as a ful signature.
  • Split create_to_spend into a script-based create_to_spend_from_script so detection can reconstruct to_spend from a scriptPubKey.

Closes #74

@aagbotemi
aagbotemi force-pushed the feat/psbt-multiparty-signing branch from 10744cf to 4a82844 Compare July 27, 2026 09:22
@aagbotemi
aagbotemi force-pushed the feat/psbt-multiparty-signing branch from 4a82844 to 99e7843 Compare July 27, 2026 10:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement multi-party PSBT signing

1 participant