Recorded fixture result
Observed inspection state: missing-utxo
- MISSING_UTXO
Previous output amount and script are absent; fee and signing prerequisites remain unknown.
- MISSING_SIGNATURES
No partial signatures or final unlocking fields are present; script requirements were not evaluated.
- UNSUPPORTED_SIZE_ESTIMATE
No signed-size estimate for this input script or missing script metadata.
- FEE_UNKNOWN
The fee cannot be calculated without every previous output amount.
- TIMELOCK_UNCHECKED
Locktime/sequence constraints are present. Chain height, median time, and input ages were not checked.
- NOT_VALIDATED
Parsing and metadata inspection only: no signature/script verification, finalizability decision, UTXO-set check, or mempool test.
Independent Bitcoin Core check
Verified 2026-09-11T23:08:08.502Z with Bitcoin Core daemon version v29.0.0 on a fresh, isolated regtest chain. Core signed and finalized a separate funded Workshop split, then accepted it in testmempoolaccept. The Workshop spend was not broadcast. This is local regtest evidence, not a confirmed Signet transaction.
The checks also compare PSBT and raw decoding with Core, preserve an unknown fee when UTXO metadata is absent, and confirm that an overspend fails with bad-txns-in-belowout. This does not establish acceptance for every fixture or script type.
Verification results and software hashes · Exact PSBTs, funding transaction, and Core responses
The failure
A transaction input points to a previous transaction ID and output index. Those bytes alone do not contain the previous output's value. Our broken PSBT preserves the unsigned transaction but omits its UTXO metadata. It is still parseable; that does not make it ready to sign.
Why the fee is unknown
Fee is the sum of input values minus the sum of output values. Outputs are present in the unsigned transaction, but the input side is incomplete. Transaction Doctor therefore reports an unknown fee instead of treating absent amounts as zero or inventing a fee rate from the unsigned size.
What an updater supplies
For the native P2WPKH case, a witness UTXO record supplies the previous output's script and satoshi value. A complete previous transaction can also provide this information. When both are supplied, the Doctor checks that they agree and that the previous transaction matches the referenced transaction ID and output index.
The corrected counterpart
Choose the complete unsigned example in Transaction Doctor. Its UTXO metadata allows the fee to be calculated, but signatures are still missing. Adding metadata and adding authorization are separate PSBT roles. Neither operation changes a recipient silently.
Do not confuse supplied data with chain evidence
Input metadata is information from a file, not proof that the output exists or remains unspent. The Doctor does not validate ownership or query a node during local parsing. A signer must independently establish its prerequisites, and a node must check the eventual transaction against its current UTXO set and policy.
Reproduction artifact
The full collection includes the options, transactions, and expected inspection output. The public source bundle contains the build script and automated checks used to regenerate it.
Download fixture JSON Open this example
Inspect the PSBT bytes
cHNidP8BAFICAAAAARERERERERERERERERERERERERERERERERERERERERERAAAAAAD9////ARwlAAAAAAAAFgAUKioqKioqKioqKioqKioqKioqKiqQ0AMAAAAA
Specifications and implementation
BIP 174: PSBT roles and format; BIP 141: transaction weight; Bitcoin Core v30.0 dust policy; bitcoinjs-lib implementation.