{
    "meta": {
        "title": "D-Central — Bitcoin PSBT Key-Type Reference",
        "description": "The complete PSBT key-type registry (58 rows: global, per-input and per-output maps). BIP-174/370/371 fields verified against the raw spec texts; the 13 fields registered by BIPs 127/322/353/373/375/376 carry their official registry name and hex, graded \"registry\" (semantics not spec-verified here).",
        "generated": "2026-07-26T06:10:38+00:00",
        "version": "1.0",
        "as_of": "2026-07-26",
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "license_name": "CC BY 4.0",
        "source": "https://d-central.tech/bitcoin-psbt-reference/",
        "method": "Extracted from raw bip-0174.mediawiki, bip-0370.mediawiki, bip-0371.mediawiki and the official bip-0174/type-registry.mediawiki (bitcoin/bips master, fetched 2026-07-26). Value descriptions for BIP-174/370/371 fields are faithful one-sentence paraphrases of the spec tables. Rows graded \"registry\" transcribe only the officially registered name/hex/scope — read the defining BIP for their semantics.",
        "provenance": "bitcoin/bips: BIP-0174 (Deployed), BIP-0370 (Deployed), BIP-0371 (Deployed) + the BIP-174 type registry.",
        "record_count": 58
    },
    "rows": [
        {
            "keytype": "PSBT_GLOBAL_UNSIGNED_TX",
            "hex": "0x00",
            "scope": "global",
            "version": "v0 (required; MUST be excluded in v2)",
            "value": "The transaction in (pre-segwit) network serialization with empty scriptSigs and witnesses.",
            "bip": "174",
            "source": "spec"
        },
        {
            "keytype": "PSBT_GLOBAL_XPUB",
            "hex": "0x01",
            "scope": "global",
            "version": "both",
            "value": "Keydata is a 78-byte BIP-32 xpub; value is the 4-byte master fingerprint plus the 32-bit LE derivation path indexes for keys used in this transaction.",
            "bip": "174",
            "source": "spec"
        },
        {
            "keytype": "PSBT_GLOBAL_TX_VERSION",
            "hex": "0x02",
            "scope": "global",
            "version": "v2 (required; excluded in v0)",
            "value": "32-bit LE signed integer: version number of the transaction being created (not the PSBT version).",
            "bip": "370",
            "source": "spec"
        },
        {
            "keytype": "PSBT_GLOBAL_FALLBACK_LOCKTIME",
            "hex": "0x03",
            "scope": "global",
            "version": "v2 only (excluded in v0)",
            "value": "32-bit LE unsigned locktime to use if no input specifies a required locktime.",
            "bip": "370",
            "source": "spec"
        },
        {
            "keytype": "PSBT_GLOBAL_INPUT_COUNT",
            "hex": "0x04",
            "scope": "global",
            "version": "v2 (required; excluded in v0)",
            "value": "Compact size uint: number of inputs in this PSBT.",
            "bip": "370",
            "source": "spec"
        },
        {
            "keytype": "PSBT_GLOBAL_OUTPUT_COUNT",
            "hex": "0x05",
            "scope": "global",
            "version": "v2 (required; excluded in v0)",
            "value": "Compact size uint: number of outputs in this PSBT.",
            "bip": "370",
            "source": "spec"
        },
        {
            "keytype": "PSBT_GLOBAL_TX_MODIFIABLE",
            "hex": "0x06",
            "scope": "global",
            "version": "v2 only (excluded in v0)",
            "value": "8-bit bitfield: bit 0 = inputs modifiable, bit 1 = outputs modifiable, bit 2 = has SIGHASH_SINGLE signature whose input/output pairing must be preserved.",
            "bip": "370",
            "source": "spec"
        },
        {
            "keytype": "PSBT_GLOBAL_SP_ECDH_SHARE",
            "hex": "0x07",
            "scope": "global",
            "version": "per BIP-375",
            "value": "Silent Payment Global ECDH Share (official registry name; semantics defined in BIP-375, not transcribed here).",
            "bip": "375",
            "source": "registry"
        },
        {
            "keytype": "PSBT_GLOBAL_SP_DLEQ",
            "hex": "0x08",
            "scope": "global",
            "version": "per BIP-375",
            "value": "Silent Payment Global DLEQ Proof (official registry name; semantics defined in BIP-375, not transcribed here).",
            "bip": "375",
            "source": "registry"
        },
        {
            "keytype": "PSBT_GLOBAL_GENERIC_SIGNED_MESSAGE",
            "hex": "0x09",
            "scope": "global",
            "version": "per BIP-322",
            "value": "Generic Signed Message (official registry name; semantics defined in BIP-322, not transcribed here).",
            "bip": "322",
            "source": "registry"
        },
        {
            "keytype": "PSBT_GLOBAL_VERSION",
            "hex": "0xFB",
            "scope": "global",
            "version": "both (required and set to 2 in v2; 0 if omitted — version 1 was deliberately skipped)",
            "value": "32-bit LE unsigned PSBT version number.",
            "bip": "174",
            "source": "spec"
        },
        {
            "keytype": "PSBT_GLOBAL_PROPRIETARY",
            "hex": "0xFC",
            "scope": "global",
            "version": "both",
            "value": "Keydata: compact-size identifier length, identifier, compact-size subtype, subkeydata; value: any data defined by the proprietary user.",
            "bip": "174",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_NON_WITNESS_UTXO",
            "hex": "0x00",
            "scope": "input",
            "version": "both",
            "value": "Full previous transaction in network serialization; should be present for non-segwit spends, may coexist with WITNESS_UTXO.",
            "bip": "174",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_WITNESS_UTXO",
            "hex": "0x01",
            "scope": "input",
            "version": "both",
            "value": "The spent transaction output (64-bit LE amount + scriptPubKey) for segwit spends, including P2SH-embedded ones.",
            "bip": "174",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_PARTIAL_SIG",
            "hex": "0x02",
            "scope": "input",
            "version": "both",
            "value": "Keydata is the pubkey; value is a valid ECDSA signature as it would be pushed to the stack.",
            "bip": "174",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_SIGHASH_TYPE",
            "hex": "0x03",
            "scope": "input",
            "version": "both",
            "value": "32-bit LE uint sighash type this input's signatures must use; finalizers must reject mismatching signatures.",
            "bip": "174",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_REDEEM_SCRIPT",
            "hex": "0x04",
            "scope": "input",
            "version": "both",
            "value": "The redeemScript for this input if it has one.",
            "bip": "174",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_WITNESS_SCRIPT",
            "hex": "0x05",
            "scope": "input",
            "version": "both",
            "value": "The witnessScript for this input if it has one.",
            "bip": "174",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_BIP32_DERIVATION",
            "hex": "0x06",
            "scope": "input",
            "version": "both",
            "value": "Keydata is a pubkey needed to sign this input; value is master fingerprint + 32-bit LE path indexes.",
            "bip": "174",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_FINAL_SCRIPTSIG",
            "hex": "0x07",
            "scope": "input",
            "version": "both",
            "value": "Fully constructed scriptSig with signatures and scripts needed for validation.",
            "bip": "174",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_FINAL_SCRIPTWITNESS",
            "hex": "0x08",
            "scope": "input",
            "version": "both",
            "value": "Fully constructed scriptWitness with signatures and scripts needed for validation.",
            "bip": "174",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_POR_COMMITMENT",
            "hex": "0x09",
            "scope": "input",
            "version": "per BIP-127",
            "value": "Proof-of-reserves commitment (official registry name; semantics defined in BIP-127, not transcribed here).",
            "bip": "127",
            "source": "registry"
        },
        {
            "keytype": "PSBT_IN_RIPEMD160",
            "hex": "0x0a",
            "scope": "input",
            "version": "both",
            "value": "Keydata is the 20-byte hash; value is the preimage hashing to it under RIPEMD160.",
            "bip": "174",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_SHA256",
            "hex": "0x0b",
            "scope": "input",
            "version": "both",
            "value": "Keydata is the 32-byte hash; value is the preimage hashing to it under SHA256.",
            "bip": "174",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_HASH160",
            "hex": "0x0c",
            "scope": "input",
            "version": "both",
            "value": "Keydata is the 20-byte hash; value is the preimage under SHA256 then RIPEMD160.",
            "bip": "174",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_HASH256",
            "hex": "0x0d",
            "scope": "input",
            "version": "both",
            "value": "Keydata is the 32-byte hash; value is the preimage under double-SHA256.",
            "bip": "174",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_PREVIOUS_TXID",
            "hex": "0x0e",
            "scope": "input",
            "version": "v2 (required; excluded in v0)",
            "value": "32-byte txid (standard byte order, not display order) of the transaction whose output is being spent.",
            "bip": "370",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_OUTPUT_INDEX",
            "hex": "0x0f",
            "scope": "input",
            "version": "v2 (required; excluded in v0)",
            "value": "32-bit LE index of the output being spent in the PSBT_IN_PREVIOUS_TXID transaction.",
            "bip": "370",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_SEQUENCE",
            "hex": "0x10",
            "scope": "input",
            "version": "v2 only (excluded in v0)",
            "value": "32-bit LE sequence number; assumed final (0xffffffff) if omitted.",
            "bip": "370",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_REQUIRED_TIME_LOCKTIME",
            "hex": "0x11",
            "scope": "input",
            "version": "v2 only (excluded in v0)",
            "value": "32-bit LE uint >= 500000000: minimum Unix timestamp this input requires as the transaction locktime.",
            "bip": "370",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_REQUIRED_HEIGHT_LOCKTIME",
            "hex": "0x12",
            "scope": "input",
            "version": "v2 only (excluded in v0)",
            "value": "32-bit LE uint > 0 and < 500000000: minimum block height this input requires as the transaction locktime.",
            "bip": "370",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_TAP_KEY_SIG",
            "hex": "0x13",
            "scope": "input",
            "version": "both",
            "value": "64 or 65 byte Schnorr signature for key-path spending a taproot output (no keydata).",
            "bip": "371",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_TAP_SCRIPT_SIG",
            "hex": "0x14",
            "scope": "input",
            "version": "both",
            "value": "Keydata is x-only pubkey + 32-byte leaf hash; value is the 64/65-byte Schnorr signature for that pubkey-and-leaf combination.",
            "bip": "371",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_TAP_LEAF_SCRIPT",
            "hex": "0x15",
            "scope": "input",
            "version": "both",
            "value": "Keydata is the BIP-341 control block (merkle path); value is the leaf script followed by its single-byte leaf version.",
            "bip": "371",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_TAP_BIP32_DERIVATION",
            "hex": "0x16",
            "scope": "input",
            "version": "both",
            "value": "Keydata is a 32-byte x-only pubkey; value is a compact-size count of leaf hashes, the leaf hashes, then fingerprint + 32-bit LE path (internal key uses count 0).",
            "bip": "371",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_TAP_INTERNAL_KEY",
            "hex": "0x17",
            "scope": "input",
            "version": "both",
            "value": "The x-only pubkey used as the taproot internal key of the spent output.",
            "bip": "371",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_TAP_MERKLE_ROOT",
            "hex": "0x18",
            "scope": "input",
            "version": "both",
            "value": "The 32-byte taproot merkle root hash.",
            "bip": "371",
            "source": "spec"
        },
        {
            "keytype": "PSBT_IN_MUSIG2_PARTICIPANT_PUBKEYS",
            "hex": "0x1a",
            "scope": "input",
            "version": "per BIP-373",
            "value": "MuSig2 Participant Public Keys (official registry name; semantics defined in BIP-373, not transcribed here).",
            "bip": "373",
            "source": "registry"
        },
        {
            "keytype": "PSBT_IN_MUSIG2_PUB_NONCE",
            "hex": "0x1b",
            "scope": "input",
            "version": "per BIP-373",
            "value": "MuSig2 Public Nonce (official registry name; semantics defined in BIP-373, not transcribed here).",
            "bip": "373",
            "source": "registry"
        },
        {
            "keytype": "PSBT_IN_MUSIG2_PARTIAL_SIG",
            "hex": "0x1c",
            "scope": "input",
            "version": "per BIP-373",
            "value": "MuSig2 Participant Partial Signature (official registry name; semantics defined in BIP-373, not transcribed here).",
            "bip": "373",
            "source": "registry"
        },
        {
            "keytype": "PSBT_IN_SP_ECDH_SHARE",
            "hex": "0x1d",
            "scope": "input",
            "version": "per BIP-375",
            "value": "Silent Payment Input ECDH Share (official registry name; semantics defined in BIP-375, not transcribed here).",
            "bip": "375",
            "source": "registry"
        },
        {
            "keytype": "PSBT_IN_SP_DLEQ",
            "hex": "0x1e",
            "scope": "input",
            "version": "per BIP-375",
            "value": "Silent Payment Input DLEQ Proof (official registry name; semantics defined in BIP-375, not transcribed here).",
            "bip": "375",
            "source": "registry"
        },
        {
            "keytype": "PSBT_IN_SP_SPEND_BIP32_DERIVATION",
            "hex": "0x1f",
            "scope": "input",
            "version": "per BIP-376",
            "value": "Silent Payment Spend Key BIP-32 Derivation Path (official registry name; semantics defined in BIP-376, not transcribed here).",
            "bip": "376",
            "source": "registry"
        },
        {
            "keytype": "PSBT_IN_SP_TWEAK",
            "hex": "0x20",
            "scope": "input",
            "version": "per BIP-376",
            "value": "Silent Payment Tweak (official registry name; semantics defined in BIP-376, not transcribed here).",
            "bip": "376",
            "source": "registry"
        },
        {
            "keytype": "PSBT_IN_PROPRIETARY",
            "hex": "0xFC",
            "scope": "input",
            "version": "both",
            "value": "Proprietary use: identifier + subtype keydata, arbitrary value data.",
            "bip": "174",
            "source": "spec"
        },
        {
            "keytype": "PSBT_OUT_REDEEM_SCRIPT",
            "hex": "0x00",
            "scope": "output",
            "version": "both",
            "value": "The redeemScript for this output if it has one.",
            "bip": "174",
            "source": "spec"
        },
        {
            "keytype": "PSBT_OUT_WITNESS_SCRIPT",
            "hex": "0x01",
            "scope": "output",
            "version": "both",
            "value": "The witnessScript for this output if it has one.",
            "bip": "174",
            "source": "spec"
        },
        {
            "keytype": "PSBT_OUT_BIP32_DERIVATION",
            "hex": "0x02",
            "scope": "output",
            "version": "both",
            "value": "Keydata is a pubkey needed to spend this output; value is master fingerprint + 32-bit LE path indexes.",
            "bip": "174",
            "source": "spec"
        },
        {
            "keytype": "PSBT_OUT_AMOUNT",
            "hex": "0x03",
            "scope": "output",
            "version": "v2 (required; excluded in v0)",
            "value": "64-bit signed LE integer: the output amount in satoshis.",
            "bip": "370",
            "source": "spec"
        },
        {
            "keytype": "PSBT_OUT_SCRIPT",
            "hex": "0x04",
            "scope": "output",
            "version": "v2 (required; excluded in v0)",
            "value": "The output script (scriptPubKey).",
            "bip": "370",
            "source": "spec"
        },
        {
            "keytype": "PSBT_OUT_TAP_INTERNAL_KEY",
            "hex": "0x05",
            "scope": "output",
            "version": "both",
            "value": "The x-only pubkey used as the taproot internal key of this output.",
            "bip": "371",
            "source": "spec"
        },
        {
            "keytype": "PSBT_OUT_TAP_TREE",
            "hex": "0x06",
            "scope": "output",
            "version": "both",
            "value": "Tuples of (8-bit depth, 8-bit leaf version, compact-size script length, script) in depth-first order, reconstructing the whole taproot tree.",
            "bip": "371",
            "source": "spec"
        },
        {
            "keytype": "PSBT_OUT_TAP_BIP32_DERIVATION",
            "hex": "0x07",
            "scope": "output",
            "version": "both",
            "value": "Keydata is a 32-byte x-only pubkey involved in this output; value is leaf-hash count, leaf hashes, then fingerprint + 32-bit LE path.",
            "bip": "371",
            "source": "spec"
        },
        {
            "keytype": "PSBT_OUT_MUSIG2_PARTICIPANT_PUBKEYS",
            "hex": "0x08",
            "scope": "output",
            "version": "per BIP-373",
            "value": "MuSig2 Participant Public Keys (official registry name; semantics defined in BIP-373, not transcribed here).",
            "bip": "373",
            "source": "registry"
        },
        {
            "keytype": "PSBT_OUT_SP_V0_INFO",
            "hex": "0x09",
            "scope": "output",
            "version": "per BIP-375",
            "value": "Silent Payment Data (official registry name; semantics defined in BIP-375, not transcribed here).",
            "bip": "375",
            "source": "registry"
        },
        {
            "keytype": "PSBT_OUT_SP_V0_LABEL",
            "hex": "0x0a",
            "scope": "output",
            "version": "per BIP-375",
            "value": "Silent Payment Label (official registry name; semantics defined in BIP-375, not transcribed here).",
            "bip": "375",
            "source": "registry"
        },
        {
            "keytype": "PSBT_OUT_DNSSEC_PROOF",
            "hex": "0x35",
            "scope": "output",
            "version": "per BIP-353",
            "value": "BIP-353 DNSSEC proof (official registry name; semantics defined in BIP-353, not transcribed here).",
            "bip": "353",
            "source": "registry"
        },
        {
            "keytype": "PSBT_OUT_PROPRIETARY",
            "hex": "0xFC",
            "scope": "output",
            "version": "both",
            "value": "Proprietary use: identifier + subtype keydata, arbitrary value data.",
            "bip": "174",
            "source": "spec"
        }
    ]
}