A PSBT starts with the magic bytes psbt and 0xff (70736274ff, base64 cHNidP8) and contains key–value maps: a global map (the unsigned transaction in v0; version, counts and locktimes in v2), one map per input (UTXO data, sighash type, derivation paths, partial signatures, Taproot fields) and one per output. Roles are creator, updater, signer, combiner, finalizer and extractor.
Hardware wallets verify inputs and outputs from the PSBT data before signing, so the coordinator must supply full previous transactions or witness UTXOs and BIP-32 derivation paths for change detection. Attacks target what a signer is shown, for example disguised change outputs or misleading fee data. The PSBT inspector decodes a PSBT and flags missing or inconsistent fields.