sign_btc_multisig_psbt
Adds a Ledger hardware signature to a multisignature Bitcoin PSBT after verifying each input and output on-device, ensuring the user confirms the transaction details before signing.
Instructions
Co-signer flow — adds OUR Ledger signature to a multi-sig PSBT produced by an external initiator (Sparrow / Specter / Caravan / a peer running this server). Looks up the registered wallet by name, decodes the PSBT, validates every input carries a bip32_derivation entry for our master fingerprint (defense against being tricked into signing for a foreign tx), forwards to the Ledger device for the on-device output walkthrough (the user MUST verify every output address + amount on-device matches the chat-side verification block before approving), splices our partial signature(s) into the PSBT, returns the partial PSBT for the user to share back to the coordinator. We do NOT finalize or broadcast — that's the initiator's job once they have all M signatures. Phase 2 scope: P2WSH wallets registered via register_btc_multisig_wallet.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| walletName | Yes | Name of a previously-registered multi-sig wallet (matches the `name` passed to `register_btc_multisig_wallet`). Refused if no wallet is registered under this name. | |
| psbtBase64 | Yes | Base64-encoded PSBT v0 from the initiator. Every input must carry a `bip32_derivation` entry for our master fingerprint, or we refuse to forward to the device. The Ledger app then walks every output (address + amount) on-device and asks for confirmation; the user MUST verify the on-device walk matches the chat-side verification block before approving. Cap of ~200 KB to bound transport buffer + on-device parsing time. |