Documentation exported from Bitcoin Core 24.0

decodepsbt (24.0.0 RPC)

blockchain

control

mining

network

rawtransactions

signer

util

wallet

zmq

decodepsbt "psbt"

Return a JSON object representing the serialized, base64-encoded partially signed Bitcoin transaction.

Arguments:
1. psbt    (string, required) The PSBT base64 string

Result:
{                                          (json object)
  "tx" : {                                 (json object) The decoded network-serialized unsigned transaction.
    ...                                    The layout is the same as the output of decoderawtransaction.
  },
  "global_xpubs" : [                       (json array)
    {                                      (json object)
      "xpub" : "str",                      (string) The extended public key this path corresponds to
      "master_fingerprint" : "hex",        (string) The fingerprint of the master key
      "path" : "str"                       (string) The path
    },
    ...
  ],
  "psbt_version" : n,                      (numeric) The PSBT version number. Not to be confused with the unsigned transaction version
  "proprietary" : [                        (json array) The global proprietary map
    {                                      (json object)
      "identifier" : "hex",                (string) The hex string for the proprietary identifier
      "subtype" : n,                       (numeric) The number for the subtype
      "key" : "hex",                       (string) The hex for the key
      "value" : "hex"                      (string) The hex for the value
    },
    ...
  ],
  "unknown" : {                            (json object) The unknown global fields
    "key" : "hex",                         (string) (key-value pair) An unknown key-value pair
    ...
  },
  "inputs" : [                             (json array)
    {                                      (json object)
      "non_witness_utxo" : {               (json object, optional) Decoded network transaction for non-witness UTXOs
        ...
      },
      "witness_utxo" : {                   (json object, optional) Transaction output for witness UTXOs
        "amount" : n,                      (numeric) The value in BTC
        "scriptPubKey" : {                 (json object)
          "asm" : "str",                   (string) Disassembly of the public key script
          "desc" : "str",                  (string) Inferred descriptor for the output
          "hex" : "hex",                   (string) The raw public key script bytes, hex-encoded
          "type" : "str",                  (string) The type, eg 'pubkeyhash'
          "address" : "str"                (string, optional) The Bitcoin address (only if a well-defined address exists)
        }
      },
      "partial_signatures" : {             (json object, optional)
        "pubkey" : "str",                  (string) The public key and signature that corresponds to it.
        ...
      },
      "sighash" : "str",                   (string, optional) The sighash type to be used
      "redeem_script" : {                  (json object, optional)
        "asm" : "str",                     (string) Disassembly of the redeem script
        "hex" : "hex",                     (string) The raw redeem script bytes, hex-encoded
        "type" : "str"                     (string) The type, eg 'pubkeyhash'
      },
      "witness_script" : {                 (json object, optional)
        "asm" : "str",                     (string) Disassembly of the witness script
        "hex" : "hex",                     (string) The raw witness script bytes, hex-encoded
        "type" : "str"                     (string) The type, eg 'pubkeyhash'
      },
      "bip32_derivs" : [                   (json array, optional)
        {                                  (json object)
          "pubkey" : "str",                (string) The public key with the derivation path as the value.
          "master_fingerprint" : "str",    (string) The fingerprint of the master key
          "path" : "str"                   (string) The path
        },
        ...
      ],
      "final_scriptSig" : {                (json object, optional)
        "asm" : "str",                     (string) Disassembly of the final signature script
        "hex" : "hex"                      (string) The raw final signature script bytes, hex-encoded
      },
      "final_scriptwitness" : [            (json array, optional)
        "hex",                             (string) hex-encoded witness data (if any)
        ...
      ],
      "ripemd160_preimages" : {            (json object, optional)
        "hash" : "str",                    (string) The hash and preimage that corresponds to it.
        ...
      },
      "sha256_preimages" : {               (json object, optional)
        "hash" : "str",                    (string) The hash and preimage that corresponds to it.
        ...
      },
      "hash160_preimages" : {              (json object, optional)
        "hash" : "str",                    (string) The hash and preimage that corresponds to it.
        ...
      },
      "hash256_preimages" : {              (json object, optional)
        "hash" : "str",                    (string) The hash and preimage that corresponds to it.
        ...
      },
      "taproot_key_path_sig" : "hex",      (string, optional) hex-encoded signature for the Taproot key path spend
      "taproot_script_path_sigs" : [       (json array, optional)
        {                                  (json object, optional) The signature for the pubkey and leaf hash combination
          "pubkey" : "str",                (string) The x-only pubkey for this signature
          "leaf_hash" : "str",             (string) The leaf hash for this signature
          "sig" : "str"                    (string) The signature itself
        },
        ...
      ],
      "taproot_scripts" : [                (json array, optional)
        {                                  (json object)
          "script" : "hex",                (string) A leaf script
          "leaf_ver" : n,                  (numeric) The version number for the leaf script
          "control_blocks" : [             (json array) The control blocks for this script
            "hex",                         (string) A hex-encoded control block for this script
            ...
          ]
        },
        ...
      ],
      "taproot_bip32_derivs" : [           (json array, optional)
        {                                  (json object)
          "pubkey" : "str",                (string) The x-only public key this path corresponds to
          "master_fingerprint" : "str",    (string) The fingerprint of the master key
          "path" : "str",                  (string) The path
          "leaf_hashes" : [                (json array) The hashes of the leaves this pubkey appears in
            "hex",                         (string) The hash of a leaf this pubkey appears in
            ...
          ]
        },
        ...
      ],
      "taproot_internal_key" : "hex",      (string, optional) The hex-encoded Taproot x-only internal key
      "taproot_merkle_root" : "hex",       (string, optional) The hex-encoded Taproot merkle root
      "unknown" : {                        (json object, optional) The unknown input fields
        "key" : "hex",                     (string) (key-value pair) An unknown key-value pair
        ...
      },
      "proprietary" : [                    (json array, optional) The input proprietary map
        {                                  (json object)
          "identifier" : "hex",            (string) The hex string for the proprietary identifier
          "subtype" : n,                   (numeric) The number for the subtype
          "key" : "hex",                   (string) The hex for the key
          "value" : "hex"                  (string) The hex for the value
        },
        ...
      ]
    },
    ...
  ],
  "outputs" : [                            (json array)
    {                                      (json object)
      "redeem_script" : {                  (json object, optional)
        "asm" : "str",                     (string) Disassembly of the redeem script
        "hex" : "hex",                     (string) The raw redeem script bytes, hex-encoded
        "type" : "str"                     (string) The type, eg 'pubkeyhash'
      },
      "witness_script" : {                 (json object, optional)
        "asm" : "str",                     (string) Disassembly of the witness script
        "hex" : "hex",                     (string) The raw witness script bytes, hex-encoded
        "type" : "str"                     (string) The type, eg 'pubkeyhash'
      },
      "bip32_derivs" : [                   (json array, optional)
        {                                  (json object)
          "pubkey" : "str",                (string) The public key this path corresponds to
          "master_fingerprint" : "str",    (string) The fingerprint of the master key
          "path" : "str"                   (string) The path
        },
        ...
      ],
      "taproot_internal_key" : "hex",      (string, optional) The hex-encoded Taproot x-only internal key
      "taproot_tree" : [                   (json array, optional) The tuples that make up the Taproot tree, in depth first search order
        {                                  (json object, optional) A single leaf script in the taproot tree
          "depth" : n,                     (numeric) The depth of this element in the tree
          "leaf_ver" : n,                  (numeric) The version of this leaf
          "script" : "str"                 (string) The hex-encoded script itself
        },
        ...
      ],
      "taproot_bip32_derivs" : [           (json array, optional)
        {                                  (json object)
          "pubkey" : "str",                (string) The x-only public key this path corresponds to
          "master_fingerprint" : "str",    (string) The fingerprint of the master key
          "path" : "str",                  (string) The path
          "leaf_hashes" : [                (json array) The hashes of the leaves this pubkey appears in
            "hex",                         (string) The hash of a leaf this pubkey appears in
            ...
          ]
        },
        ...
      ],
      "unknown" : {                        (json object, optional) The unknown output fields
        "key" : "hex",                     (string) (key-value pair) An unknown key-value pair
        ...
      },
      "proprietary" : [                    (json array, optional) The output proprietary map
        {                                  (json object)
          "identifier" : "hex",            (string) The hex string for the proprietary identifier
          "subtype" : n,                   (numeric) The number for the subtype
          "key" : "hex",                   (string) The hex for the key
          "value" : "hex"                  (string) The hex for the value
        },
        ...
      ]
    },
    ...
  ],
  "fee" : n                                (numeric, optional) The transaction fee paid if all UTXOs slots in the PSBT have been filled.
}

Examples:
> bitcoin-cli decodepsbt "psbt"