What Is a PSBT? Understanding Partially Signed Bitcoin Transactions | XTS Insights

A beginner-friendly guide to how PSBTs coordinate Bitcoin transactions, hardware wallets, multisig signing, and offline approval.

What Is a PSBT?

Introduction

Sending Bitcoin can look simple on a phone: choose a recipient, enter an amount, and press send. Behind that button, however, a transaction may need to move between an online coordinator, a hardware wallet, several multisig signers, or an offline computer before it is ready for the network.

That handoff is where a PSBT, or Partially Signed Bitcoin Transaction, becomes useful.

A PSBT is a structured interchange format for a Bitcoin transaction that is not fully signed yet. It contains the transaction being prepared together with supporting information that helps wallets and signing devices understand the inputs, outputs, scripts, key paths, and signatures already collected.

A PSBT is not a new type of bitcoin, a private key backup, or a completed payment. It is a coordination package. Different pieces of software can pass the package between one another, add their part, and eventually turn it into a final transaction that can be broadcast.

At XTS Insights, we believe PSBTs are an important bridge between Bitcoin’s technical rules and practical security. They make it possible to keep private keys on hardware or offline devices while an online computer prepares and coordinates the transaction. This guide explains the idea in clear language, while keeping the important details accurate for readers who want to go deeper.

The Short Answer

A PSBT is a standardized file or data format that carries an unsigned or partially signed Bitcoin transaction plus the metadata needed to review, sign, combine, finalize, and extract it.

The same PSBT can move through several roles:

A Creator constructs the initial transaction.

An Updater adds information such as previous-output data, scripts, and key origins.

A Signer verifies the transaction and adds one or more signatures.

A Combiner merges information from different copies of the same PSBT.

A Finalizer turns collected signatures into final input scripts or witnesses.

An Extractor removes the final transaction from the completed PSBT.

A Broadcaster sends the final transaction to the Bitcoin network.

One wallet may perform several of these roles. The value of the format is that the transaction can still be handed from one device or person to another in a consistent way.

What Is a Bitcoin Transaction?

Before understanding a PSBT, it helps to separate a Bitcoin transaction into two ideas: the payment itself and the signatures that authorize it.

A transaction identifies the unspent outputs being spent, called UTXOs, and defines new outputs that will receive bitcoin. It also contains information such as the transaction version, locktime, sequences, and fee. The inputs must be authorized according to the locking conditions of the coins being spent.

A fully signed and finalized transaction contains the scripts or witness data needed for network validation. It can then be serialized and broadcast to Bitcoin nodes.

A PSBT carries a transaction in progress. It can include the unsigned transaction, previous-output information, redeem or witness scripts, public keys, key-origin paths, partial signatures, and other fields that help a signer make an informed decision. The PSBT itself is normally not the object broadcast as the final payment.

Keeping these two forms separate creates a safer workflow. An online computer can prepare a transaction without holding the private keys, while a hardware wallet or offline signer can review and authorize it.

Why Was the PSBT Format Created?

Bitcoin transactions often need to cross trust boundaries. A person may want to use an online computer for fee estimation and coin selection but keep signing secrets on a hardware wallet. A company may require two of three signers to approve a payment. A coordinator may need to collect signatures from devices in different locations.

Without a shared interchange format, every wallet would need a custom way to exchange raw transactions and signing data. That would make hardware-wallet and multisig workflows harder to build and easier to misunderstand.

PSBTs address several practical problems:

They let an online coordinator prepare a transaction without receiving private keys.

They give signers the transaction context needed to verify what they are approving.

They allow multiple signers to work on separate copies and combine their signatures later.

They make offline and air-gapped signing workflows easier to coordinate.

They preserve useful metadata, such as key origins and scripts, during the handoff.

They create a common format that different compatible tools can import and export.

The original PSBT specification is BIP 174. BIP 370 defines PSBT version 2, which reorganizes and extends parts of the format. Implementations may support different versions and features, so users should follow the documentation for the wallet and signing devices they actually use.

How Does a PSBT Work?

The exact user interface differs between wallets, but the general workflow can be understood in seven stages.

Step 1: The Creator Builds the Transaction

An online wallet or coordinator selects inputs, chooses recipients, adds a change output when needed, and estimates an appropriate fee. It then creates a PSBT that describes the proposed transaction.

At this point, the coordinator should not need the private keys. It can use public wallet information and UTXO data to construct the proposal.

Step 2: An Updater Adds Supporting Information

The PSBT can be enriched with information that a signer needs to verify the transaction. Depending on the input type, this may include the previous transaction or witness UTXO, redeem and witness scripts, sighash information, public keys, and BIP32 derivation paths.

For outputs, the PSBT may contain derivation information that helps a wallet identify its own change output. Metadata is not a substitute for careful review, but it makes independent verification more practical.

Step 3: A Signer Reviews and Adds a Signature

A hardware wallet, offline signer, or software wallet imports the PSBT. It checks the input data, destination outputs, fee, network, and wallet policy. If the proposal is acceptable, the signer uses its private key to add a partial signature for the inputs it controls.

The private key should remain inside the signing environment. The PSBT receives the signature, not the secret key.

Step 4: Signatures Are Combined

In a multisig or collaborative workflow, different signers may receive the same transaction and produce separate signed copies. A combiner can merge the compatible information into one PSBT for the same underlying transaction.

Combining does not mean the transaction is automatically valid. The result still needs to satisfy the wallet’s signing policy and the script’s threshold.

Step 5: The PSBT Is Finalized

Once enough signatures are present, a finalizer constructs the final scriptSig or witness data for each input. Finalization depends on the script type and the rules of the transaction.

Some PSBTs remain non-final because they are missing signatures, scripts, or other required data. A wallet should explain what remains before anyone assumes that the payment is ready.

Step 6: The Final Transaction Is Extracted

An extractor converts the finalized PSBT into the complete serialized Bitcoin transaction. This is the transaction that nodes can validate as a candidate payment.

The extracted transaction should be inspected again when the workflow or software supports it. Extraction is a technical step, not a replacement for checking the intended recipient and fee.

Step 7: The Transaction Is Broadcast

Only after finalization and extraction does the transaction move into the normal broadcast process. A node or wallet sends the final transaction to the Bitcoin network, where nodes verify it and miners may eventually include it in a block.

The Main Roles in a PSBT Workflow

The role names are useful because they show what each stage is trying to accomplish.

Creator

The Creator makes the initial transaction proposal. This may be a desktop wallet, a coordinator service, or a Bitcoin Core wallet.

Updater

The Updater adds missing transaction context. It may look up previous outputs, attach scripts, add key origins, or include other information that a signer needs.

Signer

The Signer verifies the proposal and adds signatures for the keys it controls. A hardware wallet is commonly used in this role.

Combiner

The Combiner merges partial signatures and metadata from multiple PSBT copies that represent the same transaction. This is especially useful for multisig wallets.

Finalizer

The Finalizer assembles the input-specific scripts or witnesses once the required signatures and data are available.

Extractor

The Extractor produces the final network-ready transaction from the finalized PSBT.

Broadcaster

The Broadcaster sends the final transaction to one or more Bitcoin nodes. In practice, the same wallet may perform this role as well.

What Information Can a PSBT Contain?

PSBTs use maps of key-value records. You do not need to memorize the binary format to understand why the fields matter, but the broad categories are useful.

Global Information

Global fields describe the transaction as a whole. They can include transaction version information, locktime, input and output counts, PSBT version, and flags describing whether parts of the transaction can be modified.

Per-Input Information

Input maps can include the previous transaction or the relevant witness UTXO, redeem and witness scripts, sighash type, partial signatures, public-key derivation paths, and other input-specific data.

This information helps a signer prove what coin is being spent and understand which key and script rules apply.

Per-Output Information

Output maps can include key-origin and derivation information for wallet-owned outputs, especially change. This helps a wallet distinguish its own change from an external recipient and supports accurate address tracking.

Proprietary or Implementation-Specific Fields

Some tools use proprietary fields for application-specific information. Compatibility is not guaranteed just because two applications both claim PSBT support. Before moving a PSBT between products, check what fields and transaction types both sides understand.

PSBT and Hardware Wallets

Hardware wallets are one of the clearest examples of why PSBTs matter.

An online computer can create the transaction and prepare the PSBT. The user can then move it to a hardware wallet using a file, QR code, USB connection, or another supported method. The hardware wallet verifies the relevant details and asks the user to approve the transaction on its trusted display.

After signing, the hardware wallet returns the PSBT with a partial signature. The online computer can import that result, finalize it when appropriate, and broadcast the completed transaction.

This separation provides important security benefits:

Private keys stay in the hardware wallet.

The online computer can handle network access and transaction coordination.

The signer can display destination and amount information for human review.

The workflow can be adapted for offline or air-gapped environments.

Hardware signing is not automatically safe. Users should compare the address and amount shown on the trusted signing device with the intended payment. Malware on an online computer may try to replace a recipient address or alter a fee, so the signer must be treated as an independent verification point.

PSBT and Multisig Wallets

Multisig wallets require more than one key according to a policy such as 2-of-3. A PSBT gives each signer a common transaction proposal without requiring every private key to be gathered in one place.

A practical workflow may look like this:

A coordinator creates the PSBT using the multisig wallet policy.

The coordinator sends the PSBT to signer A.

Signer A verifies the proposal and adds one signature.

The PSBT moves to signer B, who performs an independent review and adds another signature.

The coordinator combines the signed copies.

The wallet finalizes and extracts the transaction once the threshold is met.

The final transaction is broadcast and monitored for confirmation.

Every signer should verify the same important details. A valid signature from one device does not prove that another device displayed the correct recipient or fee. The policy, descriptor, key origins, and signer records should be preserved alongside the PSBT workflow so that future recovery remains possible.

PSBT Version 0 and PSBT Version 2

The first widely used PSBT specification is BIP 174, often called PSBT version 0. BIP 370 defines PSBT version 2.

PSBT version 2 changes how some transaction data is represented. One motivation is that version 0 uses a global unsigned transaction, while version 2 allows transaction components such as inputs and outputs to be described in their own maps. This can make certain construction and modification workflows more flexible.

The existence of PSBT version 2 does not mean every wallet or hardware signer should be forced to use it. Compatibility depends on the software versions and transaction features involved. When moving a PSBT between devices, export the format supported by the receiving device and keep the original file until the completed transaction has been safely extracted and broadcast.

Taproot, multisig, and other advanced transaction types can add their own PSBT fields. Users should avoid assuming that a PSBT that works for a simple SegWit payment will work unchanged for every script type.

PSBT Versus Other Bitcoin Objects

PSBT Versus a Final Transaction

A final transaction is ready for validation and broadcast. A PSBT is a coordination container that may still need signatures, scripts, or finalization data.

PSBT Versus a Wallet Descriptor

A descriptor explains how keys and scripts produce wallet outputs. A PSBT describes one proposed spend and the metadata needed to authorize it. Descriptors help a wallet recognize and derive outputs; PSBTs help sign a particular transaction.

PSBT Versus a Seed Phrase

A seed phrase is a human-readable backup for deterministic secret key material. It is not a transaction proposal. A PSBT does not replace a seed phrase, and a seed phrase should not be pasted into an online PSBT tool.

PSBT Versus a Bitcoin Address

An address identifies a destination for an output. A PSBT can contain one or more outputs, but it is much more than an address because it also records the inputs, fee context, scripts, and signing data for a proposed spend.

How to Review a PSBT Safely

Before signing, a user should treat the PSBT as an instruction to spend money, not as a harmless file.

Review the following items:

Confirm that the network is correct, such as mainnet or testnet.

Confirm every recipient address using a trusted source.

Confirm the amount sent to each external recipient.

Identify the change output and make sure it belongs to the expected wallet.

Check the fee and fee rate against the intended policy.

Check which inputs are being spent and whether the coin selection makes sense.

Verify the required signatures and wallet policy.

Make sure the signer understands the script type and input data.

Keep a copy of the original PSBT before signing or combining.

Never sign a file simply because it was sent by a familiar person or device.

A PSBT can improve transparency because it carries more context, but the context still needs to be checked. A malicious coordinator may construct a valid transaction that sends funds to the wrong place. The signer is responsible for approving the actual transaction, not merely the existence of a valid PSBT.

Common PSBT Mistakes

Assuming a PSBT Is Already a Payment

A PSBT may be unsigned or only partly signed. Until it is finalized, extracted, and broadcast, the payment has not been submitted to the network as a completed transaction.

Signing Without Checking the Device Screen

If a hardware wallet shows a different recipient or amount than the computer, stop and investigate. The trusted display is part of the security model.

Mixing Network or Address Formats

A testnet proposal should not be treated as a mainnet payment, and a signer should understand the address and script format being used. Compatibility problems can also arise when one device lacks support for a newer transaction type.

Losing the Metadata

Some wallets need UTXO data, scripts, key origins, or descriptor information to sign and finalize correctly. Do not discard the original PSBT or the wallet policy records simply because one signer has already added a signature.

Combining Different Transactions

PSBT copies can only be combined safely when they represent the same underlying transaction and are compatible. A combiner should reject or clearly report mismatches rather than silently merging unrelated files.

Treating QR or USB Transfer as Proof of Safety

The transport method does not validate the transaction. QR codes and removable media reduce some exposure, but users still need to verify the content on the signing device.

Assuming Every Wallet Supports Every Field

Wallets may support different PSBT versions, script types, proprietary fields, and signing workflows. Follow the documentation for the exact software and hardware combination.

Practical PSBT Recovery and Record-Keeping

For important wallets, a reliable process should document more than a single PSBT file. Keep records that allow another compatible operator to understand the policy and reproduce the workflow.

Useful records can include:

The wallet descriptor or policy.

The multisig threshold and signer list.

Key origins and derivation paths.

The network and script type.

The software and hardware versions used.

The procedure for creating, transferring, signing, combining, finalizing, and broadcasting PSBTs.

A small-value test transaction and its outcome.

Instructions for scanning or rescanning historical outputs.

Private keys and seed phrases must be protected separately. A PSBT can contain sensitive information about inputs, outputs, and wallet structure even when it contains no private keys, so it should not be shared publicly.

How XTS Views PSBTs

At XTS, we view PSBTs as a practical security layer for Bitcoin ownership. They make it possible to separate transaction coordination from key custody, which is especially important for hardware wallets, multisig teams, and long-term cold storage.

The technology is useful because it makes responsibilities visible. One computer can prepare the payment, another can verify it, and several independent signers can approve it without ever combining their private keys. That separation does not remove the need for careful review, but it makes a disciplined process easier to design and repeat.

A good Bitcoin workflow should answer three questions before funds move: what is being spent, who is receiving it, and which keys are authorized to approve it. A well-managed PSBT helps connect those answers to the actual transaction.

Frequently Asked Questions

What does PSBT stand for?

PSBT stands for Partially Signed Bitcoin Transaction. It is a standardized interchange format for a transaction that is not fully signed yet, together with metadata used during review and signing.

Is a PSBT a completed Bitcoin transaction?

No. A PSBT may still need signatures, scripts, or finalization. It must be finalized and extracted into a complete transaction before it can be broadcast as a normal Bitcoin payment.

Can a PSBT contain private keys?

The format can support fields defined by the relevant standards and implementations, but an ordinary hardware-wallet or multisig handoff should not require private keys to be exported into the PSBT. Signing secrets should remain protected by the wallet or signing device.

Why do hardware wallets use PSBTs?

PSBTs let an online computer prepare a transaction while a hardware wallet keeps the private keys offline. The hardware wallet can review the transaction and return only the signatures needed to continue.

Can PSBTs be used for multisig?

Yes. Multiple signers can review the same transaction, add their partial signatures, and combine the compatible PSBT copies until the wallet’s signature threshold is met.

What is the difference between PSBT and raw transaction data?

A raw final transaction is ready to be validated and broadcast. A PSBT carries a transaction proposal plus signing metadata and may not yet contain the final input scripts or witnesses.

Is PSBT version 2 always better than version 0?

Not automatically. Version 2 changes the format and can support more flexible construction workflows, but the correct choice depends on the software and devices involved. Compatibility should be checked before exporting.

Can someone steal bitcoin by seeing a PSBT?

A PSBT should not contain the private keys needed to spend funds, but it may reveal transaction details, wallet structure, addresses, and sensitive metadata. Treat it as confidential and verify that it does not direct funds to an unexpected recipient before signing.

Does a PSBT guarantee that a transaction is safe?

No. A PSBT improves coordination and gives signers useful context, but safety still depends on checking the transaction, using compatible software, protecting keys, and testing the recovery process.

Conclusion

A PSBT is a practical format for moving a Bitcoin transaction through a controlled signing process. It carries a proposed transaction and the metadata needed for wallets, hardware devices, and multisig participants to review and contribute their part.

The most important distinction is simple: a PSBT is not the final payment. It is the shared workspace that helps the final payment become correct, authorized, and ready for broadcast. By keeping private keys on protected signers while allowing transaction data to move between devices, PSBTs support a safer separation of duties.

For users managing meaningful amounts of bitcoin, the best process is deliberate: create the PSBT, verify inputs and outputs, sign only with the correct policy, combine compatible signatures, finalize and extract the transaction, then broadcast and monitor the result. Keep the wallet descriptor, signer records, and recovery notes with the process so future operators can understand what the PSBT represents.

Key Takeaways

  • PSBT means Partially Signed Bitcoin Transaction.
  • A PSBT is a coordination format, not a completed payment or private-key backup.
  • PSBTs can carry transaction data, UTXO information, scripts, key origins, and partial signatures.
  • Hardware wallets use PSBTs to sign without exporting private keys.
  • Multisig signers can work on separate copies and combine their signatures later.
  • BIP 174 defines the original PSBT format, while BIP 370 defines PSBT version 2.
  • A PSBT must be finalized and extracted before the completed transaction can be broadcast.
  • Users must verify recipients, amounts, change, fees, network, and policy before signing.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *