Home › Glossary › PSBT

PSBT

Also called: Partially Signed Bitcoin Transaction, PSBTv2, PSBT v2, PSBT file, .psbt, partially signed transaction.

A PSBT (Partially Signed Bitcoin Transaction) is the standard format, from BIP 174, for passing a not-yet-signed transaction between wallets and signers.

A PSBT, or Partially Signed Bitcoin Transaction, is a standard container for a transaction that isn't fully signed yet. It carries the transaction plus everything a signer needs to check and sign it, so different wallets, hardware devices and co-signers can work on the same payment.

How it works

BIP 174, by Ava Chow, defines the format: the magic bytes psbt and 0xFF, then a global map, one map per input and one per output, each a list of key-value records. Inputs carry the UTXO being spent, scripts and BIP 32 derivation paths, so an offline signer can verify amounts and fees without its own copy of the blockchain.

A PSBT moves through roles, and one program can play several:

  1. Creator makes the unsigned transaction.
  2. Updater adds UTXO data, scripts and key paths.
  3. Signer checks the details and adds partial signatures.
  4. Combiner merges copies signed by different parties.
  5. Input Finalizer builds the final scriptSig and witness.
  6. Transaction Extractor outputs the network-ready transaction.

Binary PSBTs use the .psbt file extension. As text they are Base64 and start with cHNidP8.

Versions and extensions

BIP 370 (PSBT version 2) lets inputs and outputs be added after creation, which helps collaborative transactions (see BIP 174 vs BIP 370). BIP 371 adds Taproot fields and BIP 373 adds MuSig2 fields.

Why it matters

PSBTs make air-gapped hardware wallets, multisig and payjoin practical without exposing private keys. Read the PSBT guide.

BIPs that define PSBT

  • BIP 174 (PSBT): Partially Signed Bitcoin Transaction Format: Deployed. Defines PSBT (Partially Signed Bitcoin Transaction), a standard file format for a transaction that is still collecting signatures. It lets different wallets, hardware devices, and co-signers pass a…
  • BIP 370: PSBT Version 2: Deployed. Updates the Partially Signed Bitcoin Transaction (PSBT) format, a standard file for passing an unfinished transaction between wallets and signing devices. Version 2 allows inputs and outputs to be…
  • BIP 371: Taproot Fields for PSBT: Deployed. Adds Taproot-related information to the Partially Signed Bitcoin Transaction (PSBT) format that wallets use to hand transactions to signers. This lets hardware wallets and other signing tools…
  • BIP 373: MuSig2 PSBT Fields: Complete. Extends the Partially Signed Bitcoin Transaction (PSBT) format so it can carry the data needed for MuSig2, a method where several people jointly produce one ordinary-looking signature. This makes it…

Related terms

  • Multisig: Multisig (multi-signature) locks bitcoin so that M of N chosen keys must sign to spend it, for example any 2 of 3 keys kept in different places.
  • UTXO: A UTXO (unspent transaction output) is an amount of bitcoin locked to a script and not yet spent. A wallet's balance is the sum of its UTXOs.
  • Private key: A private key is a secret 256-bit number that signs Bitcoin transactions. Whoever knows it can spend the coins it controls.
  • MuSig2: MuSig2 is a Schnorr multi-signature scheme (BIP 327): several signers share one aggregate key and produce one ordinary-looking signature.
  • Payjoin: Payjoin is a payment where the receiver adds their own input to the sender's transaction, breaking the assumption that all inputs belong to the payer.

Learn more

Guides