PSBT

What is a PSBT?

A Partially Signed Bitcoin Transaction (PSBT) is a Bitcoin standard that facilitates portability of unsigned transactions, which allows multiple parties to easily sign the same transaction. This is most useful when multiple parties wish to add inputs to the same transaction. PSBT was introduced by BIP 174, and allows users to more easily sign transactions on a cold storage device and then broadcast the signed transaction from a device connected to the internet.

How does a PSBT work?

Partially Signed Bitcoin Transactions (PSBTs) are a data format that allows wallets and other tools to exchange information about a Bitcoin transaction and the signatures necessary to complete it.

A PSBT can be created that identifies a set of UTXOs to spend and a set of outputs to receive that spent value. Then information about each UTXO that’s necessary to generate a signature for it can added, possibly by a separate tool, such as the UTXO’s script or its precise bitcoin value.

The PSBT can then be copied by any means to a program that can sign it. For multi-sig wallets or cases where different wallets control different inputs, this last step can be repeated multiple times by different programs on different copies of the PSBT.

Multiple PSBTs, each with one or more necessary signatures, can be integrated into a single PSBT later. Finally, that fully signed PSBT can be converted into a complete ready-to-broadcast transaction.

Manual CoinJoin Workflow

2-of-3 Multisig Workflow

What are PSBT Used For?

Partially Signed Bitcoin Transactions offer several advantages to the Bitcoin community, and makes previously complicated transaction protocols simpler and more easily verifiable.

  • Interoperability: PSBTs were originally designed to enhance interoperability between wallets and other Bitcoin software, making transactions more portable between wallets and nodes. PSBT has succeeded to a large extent in gaining industry adoption by all major wallet providers and node softwares.

  • Offline Signing: The PSBT format provides useful metadata to assist cold devices in verifying the addresses and amounts being sent in the transaction they are signing. This makes signing a transaction from cold storage more secure, and makes it easier to craft a transaction using a watch-only wallet, sign it using a cold wallet, and broadcast it with a Bitcoin node.

  • Multi-Signature Signing: Because PSBT makes a partially signed transaction portable and recognizable, a transaction can be signed by multiple parties or devices easily and securely, making multisig more usable. User friendly multisig will have second-order benefits for the Bitcoin community, including superior privacy, security, and loss prevention.

  • Multi-party Transactions: PSBT is particularly useful for coordinating between parties who wish to sign the same transaction. For example, CoinJoin, CoinSwap, and PayJoin protocols require multiple different parties to all sign the same transaction. The PSBT format provides a method for constructing a transaction, passing it between the different signers, and then assembling the final transaction to be broadcast.

Last updated