PSBT v2 is the BIP 370 format for exchanging an unfinished Bitcoin transaction and signing information. Its number identifies the PSBT envelope version, not automatically the transaction version or a new network validation method.
BIP 174 PSBT v0 contains a global unsigned transaction. BIP 370 moves its construction data into separate fields. Participants can therefore add inputs and outputs after creating the envelope, subject to the rules. This neither permits arbitrary changes to signed parts nor makes the file itself a payment. [BIP 370 — PSBT Version 2] [BIP 174 — Partially Signed Bitcoin Transaction Format]
PSBT_GLOBAL_VERSION must be 2 and PSBT_GLOBAL_UNSIGNED_TX must be absent. Required PSBT_GLOBAL_TX_VERSION independently specifies the transaction version; the global map also includes input and output counts. Merely changing the version number in an old file does not create valid PSBT v2. [BIP 370 — PSBT Version 2]
An input must identify the previous TXID and the index of the output spent. An output must contain its amount in satoshi and scriptPubKey; adding one also updates the corresponding global count. An omitted input sequence means 0xffffffff. Construction data does not replace verification of UTXO information or other material the signing device needs. [BIP 370 — PSBT Version 2]
In PSBT_GLOBAL_TX_MODIFIABLE, bit 0 permits input changes and bit 1 output changes. Bit 2 warns of a SIGHASH_SINGLE signature: its input and output must remain paired at the corresponding index. The constructor must examine actual signatures; an enabled flag alone cannot make an otherwise invalid change safe. [BIP 370 — PSBT Version 2]
For nLockTime, choose a requirement type compatible with all inputs and its highest value. If both types are possible, block height takes precedence; an incompatible input cannot be added. Without input requirements use the global fallback, or zero. A new input must not change nLockTime when signatures already exist. [BIP 370 — PSBT Version 2]
The signer updates flags according to SIGHASH. Without SIGHASH_ANYONECANPAY it disables input changes; without SIGHASH_NONE it disables output changes and with SIGHASH_SINGLE marks the required pairing. After finalization the extractor assembles the network transaction from fields. Broadcasting and network acceptance are further steps, not properties of the transferred envelope. [BIP 370 — PSBT Version 2] [BIP 174 — Partially Signed Bitcoin Transaction Format] [Bitcoin Core — PSBT workflow]
PSBT v0 and v2 are not directly interchangeable. Conversion to v0 requires constructing the unsigned transaction and observing that version’s field rules. BIP 371 separately defines Taproot information for both versions. Supporting PSBT or Taproot alone therefore does not prove a wallet can import, sign and export PSBT v2. [BIP 370 — PSBT Version 2] [BIP 371 — Taproot Fields for PSBT]
On a trusted device compare recipients, amounts, your change output and the fee with your original intention. Verify UTXO information, scripts and the SIGHASH used; key derivation metadata alone does not prove output ownership. A trial through the specific coordinator and device checks compatibility, not the safety of every future transaction. [BIP 174 — Partially Signed Bitcoin Transaction Format] [Bitcoin Core — PSBT workflow]
For the clearest picture, read this entry together with PSBT, Hardware Wallet, Multisig, Taproot.