What is a PSBT in bitcoin?
A PSBT, or partially signed bitcoin transaction, is a standard format that lets wallets, hardware devices and co-signers pass a transaction around to sign it.
A PSBT, short for partially signed bitcoin transaction, is a standard way to package a bitcoin transaction that is not fully signed yet. It lets one program build a payment, another add signatures and a third broadcast it, even if they are made by different companies. Bitcoin Core describes it as an interchange format for transactions that are not fully signed.
What is a PSBT in bitcoin, and why does it exist?
Before PSBTs, each wallet handled unsigned transactions in its own way, which made it hard to move a transaction between different software. BIP 174, written by Ava Chow and created in July 2017, set one common format. Its status is final, and Bitcoin Core added support in version 0.17.
The key idea is that a PSBT holds all the data a signer needs, including details of the coins being spent. The BIP says this lets offline signers, such as air-gapped and hardware wallets, sign without access to the full list of unspent coins.
How does a PSBT work?
BIP 174 splits the job into roles. One piece of software often plays several.
- Creator. Builds the unsigned transaction.
- Updater. Adds information about the inputs, such as the previous outputs and scripts.
- Signer. Checks the transaction and adds its signature.
- Combiner. Merges copies signed separately.
- Input finalizer. Puts signatures into their final form once enough are present.
- Transaction extractor. Produces the finished transaction ready to broadcast.
Bitcoin Core's guide walks through a 2-of-3 multisig wallet. One person creates a funded PSBT and signs it. They pass it to a second person, who checks the inputs, outputs and fee, then signs. Anyone can then finalize and broadcast it. BIP 174 also includes an example for CoinJoin, where several people combine inputs into one transaction.
What is a PSBT file?
A PSBT is binary data that begins with bytes spelling psbt. Software often passes it around as text. Bitcoin Core's RPC commands, for example, take and return a PSBT as a base64-encoded string.
To move one between devices, Spark notes, wallets use files, QR codes, SD cards or NFC. A typical hardware wallet flow is: a desktop app builds the PSBT, you move it to the device, the device shows the details and signs, and the signed PSBT goes back to the app to be broadcast. The Coldcard guide shows this air-gapped setup in practice.
Spark's safety advice is to check the recipient address, amount, change and fee on the signing device's own screen, and not assume an earlier signer already did. A PSBT can also include extended public keys that reveal wallet structure, so it is best shared privately.
What is the difference between PSBT version 0 and version 2?
The original format, now called version 0, wraps one fixed unsigned transaction. BIP 370, merged into the BIP repository in March 2021, defines version 2. A creator can start with zero inputs and outputs, and others can add them later while a flag records whether changes are still allowed.
Spark notes this suits collaborative setups where several parties build one transaction together. It also stores the transaction version, locktime, inputs and outputs directly instead of in one wrapped transaction.
This guide explains how things work. It is not financial, legal or tax advice. Last updated .