dumptxoutset

Argument #1-path

Type: string, Required

Description: Path to the output file. If relative, will be prefixed by datadir.

Result

  {                             (json object)
    "coins_written" : n,        (numeric) the number of coins written in the snapshot
    "base_hash" : "hex",        (string) the hash of the base of the snapshot
    "base_height" : n,          (numeric) the height of the base of the snapshot
    "path" : "str",             (string) the absolute path that the snapshot was written to
    "txoutset_hash" : "hex",    (string) the hash of the UTXO set contents
    "nchaintx" : n              (numeric) the number of transactions in the chain up to and including the base block
  }

getbestblockhash

Argument: none

Result

Type: string (hex)

Description: the block hash, hex-encoded

getblock

If verbosity is 1, returns an Object with information about block 'hash'.

If verbosity is 2, returns an Object with information about block 'hash' and information about each transaction.

If verbosity is 3, returns an Object with information about block 'hash' and information about each transaction, including prevout information for inputs (only for unpruned blocks in the current best chain).

Argument #1-blockhash

Type: string, Required

Description: The block hash

Argument #2-verbosity

Type: number (int), Optional
Default=1

Description: 0 for hex-encoded data, 1 for a JSON object, 2 for JSON object with transaction data, and 3 for JSON object with transaction data including prevout information for inputs

Result---(for verbosity = 0)

Type: string (hex)

Description: A string that is serialized, hex-encoded data for block 'hash'

Result---(for verbosity = 1)

  {                                 (json object)
    "hash" : "hex",                 (string) the block hash (same as provided)
    "confirmations" : n,            (numeric) The number of confirmations, or -1 if the block is not on the main chain
    "size" : n,                     (numeric) The block size
    "strippedsize" : n,             (numeric) The block size excluding witness data
    "weight" : n,                   (numeric) The block weight as defined in BIP 141
    "height" : n,                   (numeric) The block height or index
    "version" : n,                  (numeric) The block version
    "versionHex" : "hex",           (string) The block version formatted in hexadecimal
    "merkleroot" : "hex",           (string) The merkle root
    "tx" : [                        (json array) The transaction ids
      "hex",                        (string) The transaction id
      ...
    ],
    "time" : xxx,                   (numeric) The block time expressed in UNIX epoch time
    "mediantime" : xxx,             (numeric) The median block time expressed in UNIX epoch time
    "nonce" : n,                    (numeric) The nonce
    "bits" : "hex",                 (string) The bits
    "difficulty" : n,               (numeric) The difficulty
    "chainwork" : "hex",            (string) Expected number of hashes required to produce the chain up to this block (in hex)
    "nTx" : n,                      (numeric) The number of transactions in the block
    "previousblockhash" : "hex",    (string, optional) The hash of the previous block (if available)
    "nextblockhash" : "hex"         (string, optional) The hash of the next block (if available)
  }

Result---(for verbosity = 2)

  {                   (json object)
    ...,              Same output as verbosity = 1
    "tx" : [          (json array)
      {               (json object)
        ...,          The transactions in the format of the getrawtransaction RPC. Different from verbosity = 1 "tx" result
        "fee" : n     (numeric) The transaction fee in BTC, omitted if block undo data is not available
      },
      ...
    ]
  }

Result---(for verbosity = 3)

  {                                        (json object)
    ...,                                   Same output as verbosity = 2
    "tx" : [                               (json array)
      {                                    (json object)
        "vin" : [                          (json array)
          {                                (json object)
            ...,                           The same output as verbosity = 2
            "prevout" : {                  (json object) (Only if undo information is available)
              "generated" : true|false,    (boolean) Coinbase or not
              "height" : n,                (numeric) The height of the prevout
              "value" : 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
                "address" : "str",         (string, optional) The Bitcoin address (only if a well-defined address exists)
                "type" : "str"             (string) The type (one of: nonstandard, pubkey, pubkeyhash, scripthash, multisig, nulldata, witness_v0_scripthash, witness_v0_keyhash, witness_v1_taproot, witness_unknown)
              }
            }
          },
          ...
        ]
      },
      ...
    ]
  }

getblockchaininfo

Argument: none

Result

  {                                         (json object)
    "chain" : "str",                        (string) current network name (main, test, signet, regtest)
    "blocks" : n,                           (numeric) the height of the most-work fully-validated chain. The genesis block has height 0
    "headers" : n,                          (numeric) the current number of headers we have validated
    "bestblockhash" : "str",                (string) the hash of the currently best block
    "difficulty" : n,                       (numeric) the current difficulty
    "time" : xxx,                           (numeric) The block time expressed in UNIX epoch time
    "mediantime" : xxx,                     (numeric) The median block time expressed in UNIX epoch time
    "verificationprogress" : n,             (numeric) estimate of verification progress [0..1]
    "initialblockdownload" : true|false,    (boolean) (debug information) estimate of whether this node is in Initial Block Download mode
    "chainwork" : "hex",                    (string) total amount of work in active chain, in hexadecimal
    "size_on_disk" : n,                     (numeric) the estimated size of the block and undo files on disk
    "pruned" : true|false,                  (boolean) if the blocks are subject to pruning
    "pruneheight" : n,                      (numeric, optional) height of the last block pruned, plus one (only present if pruning is enabled)
    "automatic_pruning" : true|false,       (boolean, optional) whether automatic pruning is enabled (only present if pruning is enabled)
    "prune_target_size" : n,                (numeric, optional) the target size used by pruning (only present if automatic pruning is enabled)
    "warnings" : "str"                      (string) any network and blockchain warnings
  }

getblockcount

The genesis block has height 0.

Argument: none

Result

Type: number (int)

Description: The current block count

getblockfilter

Argument #1-blockhash

Type: string, Required

Description: The hash of the block

Argument #2-filtertype

Type: string, Optional
Default="basic"

Description: The type name of the filter

Result

  {                      (json object)
    "filter" : "hex",    (string) the hex-encoded filter data
    "header" : "hex"     (string) the hex-encoded filter header
  }

getblockfrompeer

We must have the header for this block, e.g. using submitheader.

Subsequent calls for the same block may cause the response from the previous peer to be ignored.

Peers generally ignore requests for a stale block that they never fully verified, or one that is more than a month old.

When a peer does not respond with a block, we will disconnect.

Note: The block could be re-pruned as soon as it is received.

Returns an empty JSON object if the request was successfully scheduled.

Argument #1-blockhash

Type: string, Required

Description: The block hash to try to fetch

Argument #2-peer_id

Type: number (int), Required

Description: The peer to fetch it from (see getpeerinfo for peer IDs)

Result

  {}    (empty JSON object)
  
  Examples:
  > bitcoin-cli getblockfrompeer "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09" 0
  > curl --user myusername --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "getblockfrompeer", "params": ["00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09" 0]}' -H 'content-type: text/plain;' http://127.0.0.1:8332/

getblockhash

Argument #1-height

Type: number (int), Required

Description: The height index

Result

Type: string (hex)

Description: The block hash

getblockheader

If verbose is true, returns an Object with information about blockheader 'hash'.

Argument #1-blockhash

Type: string, Required

Description: The block hash

Argument #2-verbose

Type: boolean, Optional
Default=true

Description: true for a json object, false for the hex-encoded data

Result---(for verbose = true)

  {                                 (json object)
    "hash" : "hex",                 (string) the block hash (same as provided)
    "confirmations" : n,            (numeric) The number of confirmations, or -1 if the block is not on the main chain
    "height" : n,                   (numeric) The block height or index
    "version" : n,                  (numeric) The block version
    "versionHex" : "hex",           (string) The block version formatted in hexadecimal
    "merkleroot" : "hex",           (string) The merkle root
    "time" : xxx,                   (numeric) The block time expressed in UNIX epoch time
    "mediantime" : xxx,             (numeric) The median block time expressed in UNIX epoch time
    "nonce" : n,                    (numeric) The nonce
    "bits" : "hex",                 (string) The bits
    "difficulty" : n,               (numeric) The difficulty
    "chainwork" : "hex",            (string) Expected number of hashes required to produce the current chain
    "nTx" : n,                      (numeric) The number of transactions in the block
    "previousblockhash" : "hex",    (string, optional) The hash of the previous block (if available)
    "nextblockhash" : "hex"         (string, optional) The hash of the next block (if available)
  }

Result---(for verbose=false)

Type: string (hex)

Description: A string that is serialized, hex-encoded data for block 'hash'

getblockstats

All amounts are in satoshis.

It won't work for some heights with pruning.

Argument #1-hash_or_height

Type: string or numeric, Required

Description: The block hash or height of the target block

Argument #2-stats

Type: json array, Optional
Default=all values

Description: Values to plot (see result below)

     [
       "height",     (string) Selected statistic
       "time",       (string) Selected statistic
       ...
     ]

Result

  {                                (json object)
    "avgfee" : n,                  (numeric, optional) Average fee in the block
    "avgfeerate" : n,              (numeric, optional) Average feerate (in satoshis per virtual byte)
    "avgtxsize" : n,               (numeric, optional) Average transaction size
    "blockhash" : "hex",           (string, optional) The block hash (to check for potential reorgs)
    "feerate_percentiles" : [      (json array, optional) Feerates at the 10th, 25th, 50th, 75th, and 90th percentile weight unit (in satoshis per virtual byte)
      n,                           (numeric) The 10th percentile feerate
      n,                           (numeric) The 25th percentile feerate
      n,                           (numeric) The 50th percentile feerate
      n,                           (numeric) The 75th percentile feerate
      n                            (numeric) The 90th percentile feerate
    ],
    "height" : n,                  (numeric, optional) The height of the block
    "ins" : n,                     (numeric, optional) The number of inputs (excluding coinbase)
    "maxfee" : n,                  (numeric, optional) Maximum fee in the block
    "maxfeerate" : n,              (numeric, optional) Maximum feerate (in satoshis per virtual byte)
    "maxtxsize" : n,               (numeric, optional) Maximum transaction size
    "medianfee" : n,               (numeric, optional) Truncated median fee in the block
    "mediantime" : n,              (numeric, optional) The block median time past
    "mediantxsize" : n,            (numeric, optional) Truncated median transaction size
    "minfee" : n,                  (numeric, optional) Minimum fee in the block
    "minfeerate" : n,              (numeric, optional) Minimum feerate (in satoshis per virtual byte)
    "mintxsize" : n,               (numeric, optional) Minimum transaction size
    "outs" : n,                    (numeric, optional) The number of outputs
    "subsidy" : n,                 (numeric, optional) The block subsidy
    "swtotal_size" : n,            (numeric, optional) Total size of all segwit transactions
    "swtotal_weight" : n,          (numeric, optional) Total weight of all segwit transactions
    "swtxs" : n,                   (numeric, optional) The number of segwit transactions
    "time" : n,                    (numeric, optional) The block time
    "total_out" : n,               (numeric, optional) Total amount in all outputs (excluding coinbase and thus reward [ie subsidy + totalfee])
    "total_size" : n,              (numeric, optional) Total size of all non-coinbase transactions
    "total_weight" : n,            (numeric, optional) Total weight of all non-coinbase transactions
    "totalfee" : n,                (numeric, optional) The fee total
    "txs" : n,                     (numeric, optional) The number of transactions (including coinbase)
    "utxo_increase" : n,           (numeric, optional) The increase/decrease in the number of unspent outputs (not discounting op_return and similar)
    "utxo_size_inc" : n,           (numeric, optional) The increase/decrease in size for the utxo index (not discounting op_return and similar)
    "utxo_increase_actual" : n,    (numeric, optional) The increase/decrease in the number of unspent outputs, not counting unspendables
    "utxo_size_inc_actual" : n     (numeric, optional) The increase/decrease in size for the utxo index, not counting unspendables
  }

getchainstates

Argument: none

Result

  {                                      (json object)
    "headers" : n,                       (numeric) the number of headers seen so far
    "chainstates" : [                    (json array) list of the chainstates ordered by work, with the most-work (active) chainstate last
      {                                  (json object)
        "blocks" : n,                    (numeric) number of blocks in this chainstate
        "bestblockhash" : "hex",         (string) blockhash of the tip
        "difficulty" : n,                (numeric) difficulty of the tip
        "verificationprogress" : n,      (numeric) progress towards the network tip
        "snapshot_blockhash" : "hex",    (string, optional) the base block of the snapshot this chainstate is based on, if any
        "coins_db_cache_bytes" : n,      (numeric) size of the coinsdb cache
        "coins_tip_cache_bytes" : n,     (numeric) size of the coinstip cache
        "validated" : true|false         (boolean) whether the chainstate is fully validated. True if all blocks in the chainstate were validated, false if the chain is based on a snapshot and the snapshot has not yet been validated.
      },
      ...
    ]
  }

getchaintips

Argument: none

Result

  [                        (json array)
    {                      (json object)
      "height" : n,        (numeric) height of the chain tip
      "hash" : "hex",      (string) block hash of the tip
      "branchlen" : n,     (numeric) zero for main chain, otherwise length of branch connecting the tip to the main chain
      "status" : "str"     (string) status of the chain, "active" for the main chain
                           Possible values for status:
                           1.  "invalid"               This branch contains at least one invalid block
                           2.  "headers-only"          Not all blocks for this branch are available, but the headers are valid
                           3.  "valid-headers"         All blocks are available for this branch, but they were never fully validated
                           4.  "valid-fork"            This branch is not part of the active chain, but is fully validated
                           5.  "active"                This is the tip of the active main chain, which is certainly valid
    },
    ...
  ]

getchaintxstats

Argument #1-nblocks

Type: number (int), Optional
Default=one month

Description: Size of the window in number of blocks

Argument #2-blockhash

Type: string, Optional
Default=chain tip

Description: The hash of the block that ends the window.

Result

  {                                       (json object)
    "time" : xxx,                         (numeric) The timestamp for the final block in the window, expressed in UNIX epoch time
    "txcount" : n,                        (numeric) The total number of transactions in the chain up to that point
    "window_final_block_hash" : "hex",    (string) The hash of the final block in the window
    "window_final_block_height" : n,      (numeric) The height of the final block in the window.
    "window_block_count" : n,             (numeric) Size of the window in number of blocks
    "window_tx_count" : n,                (numeric, optional) The number of transactions in the window. Only returned if "window_block_count" is > 0
    "window_interval" : n,                (numeric, optional) The elapsed time in the window in seconds. Only returned if "window_block_count" is > 0
    "txrate" : n                          (numeric, optional) The average rate of transactions per second in the window. Only returned if "window_interval" is > 0
  }

getdeploymentinfo

Argument #1-blockhash

Type: string, Optional
Default="hash of current chain tip"

Description: The block hash at which to query deployment state

Result

  {                                       (json object)
    "hash" : "str",                       (string) requested block hash (or tip)
    "height" : n,                         (numeric) requested block height (or tip)
    "deployments" : {                     (json object)
      "xxxx" : {                          (json object) name of the deployment
        "type" : "str",                   (string) one of "buried", "bip9"
        "height" : n,                     (numeric, optional) height of the first block which the rules are or will be enforced (only for "buried" type, or "bip9" type with "active" status)
        "active" : true|false,            (boolean) true if the rules are enforced for the mempool and the next block
        "bip9" : {                        (json object, optional) status of bip9 softforks (only for "bip9" type)
          "bit" : n,                      (numeric, optional) the bit (0-28) in the block version field used to signal this softfork (only for "started" and "locked_in" status)
          "start_time" : xxx,             (numeric) the minimum median time past of a block at which the bit gains its meaning
          "timeout" : xxx,                (numeric) the median time past of a block at which the deployment is considered failed if not yet locked in
          "min_activation_height" : n,    (numeric) minimum height of blocks for which the rules may be enforced
          "status" : "str",               (string) status of deployment at specified block (one of "defined", "started", "locked_in", "active", "failed")
          "since" : n,                    (numeric) height of the first block to which the status applies
          "status_next" : "str",          (string) status of deployment at the next block
          "statistics" : {                (json object, optional) numeric statistics about signalling for a softfork (only for "started" and "locked_in" status)
            "period" : n,                 (numeric) the length in blocks of the signalling period
            "threshold" : n,              (numeric, optional) the number of blocks with the version bit set required to activate the feature (only for "started" status)
            "elapsed" : n,                (numeric) the number of blocks elapsed since the beginning of the current period
            "count" : n,                  (numeric) the number of blocks with the version bit set in the current period
            "possible" : true|false       (boolean, optional) returns false if there are not enough blocks left in this period to pass activation threshold (only for "started" status)
          },
          "signalling" : "str"            (string, optional) indicates blocks that signalled with a # and blocks that did not with a -
        }
      },
      ...
    }
  }

getdifficulty

Argument: none

Result

Type: number (int)

Description: the proof-of-work difficulty as a multiple of the minimum difficulty.

getmempoolancestors

Argument #1-txid

Type: string, Required

Description: The transaction id (must be in mempool)

Argument #2-verbose

Type: boolean, Optional
Default=false

Description: True for a json object, false for array of transaction ids

Result---(for verbose = false)

  [           (json array)
    "hex",    (string) The transaction id of an in-mempool ancestor transaction
    ...
  ]

Result---(for verbose = true)

  {                                         (json object)
    "transactionid" : {                     (json object)
      "vsize" : n,                          (numeric) virtual transaction size as defined in BIP 141. This is different from actual serialized size for witness transactions as witness data is discounted.
      "weight" : n,                         (numeric) transaction weight as defined in BIP 141.
      "time" : xxx,                         (numeric) local time transaction entered pool in seconds since 1 Jan 1970 GMT
      "height" : n,                         (numeric) block height when transaction entered pool
      "descendantcount" : n,                (numeric) number of in-mempool descendant transactions (including this one)
      "descendantsize" : n,                 (numeric) virtual transaction size of in-mempool descendants (including this one)
      "ancestorcount" : n,                  (numeric) number of in-mempool ancestor transactions (including this one)
      "ancestorsize" : n,                   (numeric) virtual transaction size of in-mempool ancestors (including this one)
      "wtxid" : "hex",                      (string) hash of serialized transaction, including witness data
      "fees" : {                            (json object)
        "base" : n,                         (numeric) transaction fee, denominated in BTC
        "modified" : n,                     (numeric) transaction fee with fee deltas used for mining priority, denominated in BTC
        "ancestor" : n,                     (numeric) transaction fees of in-mempool ancestors (including this one) with fee deltas used for mining priority, denominated in BTC
        "descendant" : n                    (numeric) transaction fees of in-mempool descendants (including this one) with fee deltas used for mining priority, denominated in BTC
      },
      "depends" : [                         (json array) unconfirmed transactions used as inputs for this transaction
        "hex",                              (string) parent transaction id
        ...
      ],
      "spentby" : [                         (json array) unconfirmed transactions spending outputs from this transaction
        "hex",                              (string) child transaction id
        ...
      ],
      "bip125-replaceable" : true|false,    (boolean) Whether this transaction signals BIP125 replaceability or has an unconfirmed ancestor signaling BIP125 replaceability.
  
      "unbroadcast" : true|false            (boolean) Whether this transaction is currently unbroadcast (initial broadcast not yet acknowledged by any peers)
    },
    ...
  }

getmempooldescendants

Argument #1-txid

Type: string, Required

Description: The transaction id (must be in mempool)

Argument #2-verbose

Type: boolean, Optional
Default=false

Description: True for a json object, false for array of transaction ids

Result---(for verbose = false)

  [           (json array)
    "hex",    (string) The transaction id of an in-mempool descendant transaction
    ...
  ]

Result---(for verbose = true)

  {                                         (json object)
    "transactionid" : {                     (json object)
      "vsize" : n,                          (numeric) virtual transaction size as defined in BIP 141. This is different from actual serialized size for witness transactions as witness data is discounted.
      "weight" : n,                         (numeric) transaction weight as defined in BIP 141.
      "time" : xxx,                         (numeric) local time transaction entered pool in seconds since 1 Jan 1970 GMT
      "height" : n,                         (numeric) block height when transaction entered pool
      "descendantcount" : n,                (numeric) number of in-mempool descendant transactions (including this one)
      "descendantsize" : n,                 (numeric) virtual transaction size of in-mempool descendants (including this one)
      "ancestorcount" : n,                  (numeric) number of in-mempool ancestor transactions (including this one)
      "ancestorsize" : n,                   (numeric) virtual transaction size of in-mempool ancestors (including this one)
      "wtxid" : "hex",                      (string) hash of serialized transaction, including witness data
      "fees" : {                            (json object)
        "base" : n,                         (numeric) transaction fee, denominated in BTC
        "modified" : n,                     (numeric) transaction fee with fee deltas used for mining priority, denominated in BTC
        "ancestor" : n,                     (numeric) transaction fees of in-mempool ancestors (including this one) with fee deltas used for mining priority, denominated in BTC
        "descendant" : n                    (numeric) transaction fees of in-mempool descendants (including this one) with fee deltas used for mining priority, denominated in BTC
      },
      "depends" : [                         (json array) unconfirmed transactions used as inputs for this transaction
        "hex",                              (string) parent transaction id
        ...
      ],
      "spentby" : [                         (json array) unconfirmed transactions spending outputs from this transaction
        "hex",                              (string) child transaction id
        ...
      ],
      "bip125-replaceable" : true|false,    (boolean) Whether this transaction signals BIP125 replaceability or has an unconfirmed ancestor signaling BIP125 replaceability.
  
      "unbroadcast" : true|false            (boolean) Whether this transaction is currently unbroadcast (initial broadcast not yet acknowledged by any peers)
    },
    ...
  }

getmempoolentry

Argument #1-txid

Type: string, Required

Description: The transaction id (must be in mempool)

Result

  {                                       (json object)
    "vsize" : n,                          (numeric) virtual transaction size as defined in BIP 141. This is different from actual serialized size for witness transactions as witness data is discounted.
    "weight" : n,                         (numeric) transaction weight as defined in BIP 141.
    "time" : xxx,                         (numeric) local time transaction entered pool in seconds since 1 Jan 1970 GMT
    "height" : n,                         (numeric) block height when transaction entered pool
    "descendantcount" : n,                (numeric) number of in-mempool descendant transactions (including this one)
    "descendantsize" : n,                 (numeric) virtual transaction size of in-mempool descendants (including this one)
    "ancestorcount" : n,                  (numeric) number of in-mempool ancestor transactions (including this one)
    "ancestorsize" : n,                   (numeric) virtual transaction size of in-mempool ancestors (including this one)
    "wtxid" : "hex",                      (string) hash of serialized transaction, including witness data
    "fees" : {                            (json object)
      "base" : n,                         (numeric) transaction fee, denominated in BTC
      "modified" : n,                     (numeric) transaction fee with fee deltas used for mining priority, denominated in BTC
      "ancestor" : n,                     (numeric) transaction fees of in-mempool ancestors (including this one) with fee deltas used for mining priority, denominated in BTC
      "descendant" : n                    (numeric) transaction fees of in-mempool descendants (including this one) with fee deltas used for mining priority, denominated in BTC
    },
    "depends" : [                         (json array) unconfirmed transactions used as inputs for this transaction
      "hex",                              (string) parent transaction id
      ...
    ],
    "spentby" : [                         (json array) unconfirmed transactions spending outputs from this transaction
      "hex",                              (string) child transaction id
      ...
    ],
    "bip125-replaceable" : true|false,    (boolean) Whether this transaction signals BIP125 replaceability or has an unconfirmed ancestor signaling BIP125 replaceability.
  
    "unbroadcast" : true|false            (boolean) Whether this transaction is currently unbroadcast (initial broadcast not yet acknowledged by any peers)
  }

getmempoolinfo

Argument: none

Result

  {                               (json object)
    "loaded" : true|false,        (boolean) True if the initial load attempt of the persisted mempool finished
    "size" : n,                   (numeric) Current tx count
    "bytes" : n,                  (numeric) Sum of all virtual transaction sizes as defined in BIP 141. Differs from actual serialized size because witness data is discounted
    "usage" : n,                  (numeric) Total memory usage for the mempool
    "total_fee" : n,              (numeric) Total fees for the mempool in BTC, ignoring modified fees through prioritisetransaction
    "maxmempool" : n,             (numeric) Maximum memory usage for the mempool
    "mempoolminfee" : n,          (numeric) Minimum fee rate in BTC/kvB for tx to be accepted. Is the maximum of minrelaytxfee and minimum mempool fee
    "minrelaytxfee" : n,          (numeric) Current minimum relay fee for transactions
    "incrementalrelayfee" : n,    (numeric) minimum fee rate increment for mempool limiting or replacement in BTC/kvB
    "unbroadcastcount" : n,       (numeric) Current number of transactions that haven't passed initial broadcast yet
    "fullrbf" : true|false        (boolean) True if the mempool accepts RBF without replaceability signaling inspection
  }

getrawmempool

Hint: use getmempoolentry to fetch a specific transaction from the mempool.

Argument #1-verbose

Type: boolean, Optional
Default=false

Description: True for a json object, false for array of transaction ids

Argument #2-mempool_sequence

Type: boolean, Optional
Default=false

Description: If verbose=false, returns a json object with transaction list and mempool sequence number attached.

Result---(for verbose = false)

  [           (json array)
    "hex",    (string) The transaction id
    ...
  ]

Result---(for verbose = true)

  {                                         (json object)
    "transactionid" : {                     (json object)
      "vsize" : n,                          (numeric) virtual transaction size as defined in BIP 141. This is different from actual serialized size for witness transactions as witness data is discounted.
      "weight" : n,                         (numeric) transaction weight as defined in BIP 141.
      "time" : xxx,                         (numeric) local time transaction entered pool in seconds since 1 Jan 1970 GMT
      "height" : n,                         (numeric) block height when transaction entered pool
      "descendantcount" : n,                (numeric) number of in-mempool descendant transactions (including this one)
      "descendantsize" : n,                 (numeric) virtual transaction size of in-mempool descendants (including this one)
      "ancestorcount" : n,                  (numeric) number of in-mempool ancestor transactions (including this one)
      "ancestorsize" : n,                   (numeric) virtual transaction size of in-mempool ancestors (including this one)
      "wtxid" : "hex",                      (string) hash of serialized transaction, including witness data
      "fees" : {                            (json object)
        "base" : n,                         (numeric) transaction fee, denominated in BTC
        "modified" : n,                     (numeric) transaction fee with fee deltas used for mining priority, denominated in BTC
        "ancestor" : n,                     (numeric) transaction fees of in-mempool ancestors (including this one) with fee deltas used for mining priority, denominated in BTC
        "descendant" : n                    (numeric) transaction fees of in-mempool descendants (including this one) with fee deltas used for mining priority, denominated in BTC
      },
      "depends" : [                         (json array) unconfirmed transactions used as inputs for this transaction
        "hex",                              (string) parent transaction id
        ...
      ],
      "spentby" : [                         (json array) unconfirmed transactions spending outputs from this transaction
        "hex",                              (string) child transaction id
        ...
      ],
      "bip125-replaceable" : true|false,    (boolean) Whether this transaction signals BIP125 replaceability or has an unconfirmed ancestor signaling BIP125 replaceability.
  
      "unbroadcast" : true|false            (boolean) Whether this transaction is currently unbroadcast (initial broadcast not yet acknowledged by any peers)
    },
    ...
  }

Result---(for verbose = false and mempool_sequence = true)

  {                            (json object)
    "txids" : [                (json array)
      "hex",                   (string) The transaction id
      ...
    ],
    "mempool_sequence" : n     (numeric) The mempool sequence value.
  }

gettxout

Argument #1-txid

Type: string, Required

Description: The transaction id

Argument #2-n

Type: number (int), Required

Description: vout number

Argument #3-include_mempool

Type: boolean, Optional
Default=true

Description: Whether to include the mempool. Note that an unspent output that is spent in the mempool won't appear.

Result---(If the UTXO was not found)

  null    (json null)

Result---(Otherwise)

  {                             (json object)
    "bestblock" : "hex",        (string) The hash of the block at the tip of the chain
    "confirmations" : n,        (numeric) The number of confirmations
    "value" : n,                (numeric) The transaction 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)
    },
    "coinbase" : true|false     (boolean) Coinbase or not
  }

gettxoutproof

NOTE: By default this function only works sometimes. This is when there is an unspent output in the utxo for this transaction. To make it always work, you need to maintain a transaction index, using the -txindex command line option or specify the block in which the transaction is included manually (by blockhash).

Argument #1-txids

Type: json array, Required

Description: The txids to filter

     [
       "txid",    (string) A transaction hash
       ...
     ]

Argument #2-blockhash

Type: string, Optional

Description: If specified, looks for txid in the block with this hash

Result

Type: string (hex)

Description: A string that is a serialized, hex-encoded data for the proof.

gettxoutsetinfo

Note this call may take some time if you are not using coinstatsindex.

Argument #1-hash_type

Type: string, Optional
Default="hash_serialized_3"

Description: Which UTXO set hash should be calculated. Options: 'hash_serialized_3' (the legacy algorithm), 'muhash', 'none'.

Argument #2-hash_or_height

Type: string or numeric, Optional
Default=the current best block

Description: The block hash or height of the target height (only available with coinstatsindex).

Argument #3-use_index

Type: boolean, Optional
Default=true

Description: Use coinstatsindex, if available.

Result

  {                                     (json object)
    "height" : n,                       (numeric) The block height (index) of the returned statistics
    "bestblock" : "hex",                (string) The hash of the block at which these statistics are calculated
    "txouts" : n,                       (numeric) The number of unspent transaction outputs
    "bogosize" : n,                     (numeric) Database-independent, meaningless metric indicating the UTXO set size
    "hash_serialized_3" : "hex",        (string, optional) The serialized hash (only present if 'hash_serialized_3' hash_type is chosen)
    "muhash" : "hex",                   (string, optional) The serialized hash (only present if 'muhash' hash_type is chosen)
    "transactions" : n,                 (numeric, optional) The number of transactions with unspent outputs (not available when coinstatsindex is used)
    "disk_size" : n,                    (numeric, optional) The estimated size of the chainstate on disk (not available when coinstatsindex is used)
    "total_amount" : n,                 (numeric) The total amount of coins in the UTXO set
    "total_unspendable_amount" : n,     (numeric, optional) The total amount of coins permanently excluded from the UTXO set (only available if coinstatsindex is used)
    "block_info" : {                    (json object, optional) Info on amounts in the block at this block height (only available if coinstatsindex is used)
      "prevout_spent" : n,              (numeric) Total amount of all prevouts spent in this block
      "coinbase" : n,                   (numeric) Coinbase subsidy amount of this block
      "new_outputs_ex_coinbase" : n,    (numeric) Total amount of new outputs created by this block
      "unspendable" : n,                (numeric) Total amount of unspendable outputs created in this block
      "unspendables" : {                (json object) Detailed view of the unspendable categories
        "genesis_block" : n,            (numeric) The unspendable amount of the Genesis block subsidy
        "bip30" : n,                    (numeric) Transactions overridden by duplicates (no longer possible with BIP30)
        "scripts" : n,                  (numeric) Amounts sent to scripts that are unspendable (for example OP_RETURN outputs)
        "unclaimed_rewards" : n         (numeric) Fee rewards that miners did not claim in their coinbase transaction
      }
    }
  }

gettxspendingprevout

Argument #1-outputs

Type: json array, Required

Description: The transaction outputs that we want to check, and within each, the txid (string) vout (numeric).

     [
       {                   (json object)
         "txid": "hex",    (string, required) The transaction id
         "vout": n,        (numeric, required) The output number
       },
       ...
     ]

Result

  [                              (json array)
    {                            (json object)
      "txid" : "hex",            (string) the transaction id of the checked output
      "vout" : n,                (numeric) the vout value of the checked output
      "spendingtxid" : "hex"     (string, optional) the transaction id of the mempool transaction spending this output (omitted if unspent)
    },
    ...
  ]

importmempool

at file and attempt to add its contents to the mempool.

Warning: Importing untrusted files is dangerous, especially if metadata from the file is taken over.

Argument #1-filepath

Type: string, Required

Description: The mempool file

Argument #2-options

Type: json object, Optional

Description: Options object that can be used to pass named arguments, listed below. Warning: Importing untrusted metadata may lead to unexpected issues and undesirable behavior. It will be added to any existing fee deltas. The fee delta can be set by the prioritisetransaction RPC. Warning: Importing untrusted metadata may lead to unexpected issues and undesirable behavior. Only set this bool if you understand what it does. Warning: Importing untrusted metadata may lead to unexpected issues and undesirable behavior.

Result

  {}    (empty JSON object)
  
  Examples:
  > bitcoin-cli importmempool /path/to/mempool.dat
  > curl --user myusername --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "importmempool", "params": [/path/to/mempool.dat]}' -H 'content-type: text/plain;' http://127.0.0.1:8332/

loadtxoutset

Once this snapshot is loaded, its contents will be deserialized into a second chainstate data structure, which is then used to sync to the network's tip. Meanwhile, the original chainstate will complete the initial block download process in the background, eventually validating up to the block that the snapshot is based upon.

The result is a usable bitcoind instance that is current with the network tip in a matter of minutes rather than hours. UTXO snapshot are typically obtained from third-party sources (HTTP, torrent, etc.) which is reasonable since their contents are always checked by hash.

You can find more information on this process in the assumeutxo design document (https://github.com/bitcoin/bitcoin/blob/master/doc/design/assumeutxo.md).

Argument #1-path

Type: string, Required

Description: path to the snapshot file. If relative, will be prefixed by datadir.

Result

  {                        (json object)
    "coins_loaded" : n,    (numeric) the number of coins loaded from the snapshot
    "tip_hash" : "hex",    (string) the hash of the base of the snapshot
    "base_height" : n,     (numeric) the height of the base of the snapshot
    "path" : "str"         (string) the absolute path that the snapshot was loaded from
  }

preciousblock

A later preciousblock call can override the effect of an earlier one.

The effects of preciousblock are not retained across restarts.

Argument #1-blockhash

Type: string, Required

Description: the hash of the block to mark as precious

Result

  null    (json null)

pruneblockchain

Argument #1-height

Type: number (int), Required

Description: The block height to prune up to. May be set to a discrete height, or to a UNIX epoch time to prune blocks whose block time is at least 2 hours older than the provided timestamp.

Result

Type: number (int)

Description: Height of the last block pruned

savemempool

It will fail until the previous dump is fully loaded.

Argument: none

Result

  {                        (json object)
    "filename" : "str"     (string) the directory and file where the mempool was saved
  }

scanblocks

This call may take several minutes. Make sure to use no RPC timeout (bitcoin-cli -rpcclienttimeout=0)

Argument #1-action

Type: string, Required

Description: The action to execute "start" for starting a scan "abort" for aborting the current scan (returns true when abort was successful) "status" for progress report (in %) of the current scan

Argument #2-scanobjects

Type: json array, Optional

Description: Array of scan objects. Required for "start" action Every scan object is either a string descriptor or an object:

     [
       "descriptor",             (string) An output descriptor
       {                         (json object) An object with output descriptor and metadata
         "desc": "str",          (string, required) An output descriptor
         "range": n or [n,n],    (numeric or array, optional, default=1000) The range of HD chain indexes to explore (either end or [begin,end])
       },
       ...
     ]

Argument #3-start_height

Type: number (int), Optional
Default=0

Description: Height to start to scan from

Argument #4-stop_height

Type: number (int), Optional
Default=chain tip

Description: Height to stop to scan

Argument #5-filtertype

Type: string, Optional
Default="basic"

Description: The type name of the filter

Argument #6-options

Type: json object, Optional

Description: Options object that can be used to pass named arguments, listed below.

Result---(when action=='status' and no scan is in progress - possibly already completed)

  null    (json null)

Result---(When action=='start'; only returns after scan completes)

  {                              (json object)
    "from_height" : n,           (numeric) The height we started the scan from
    "to_height" : n,             (numeric) The height we ended the scan at
    "relevant_blocks" : [        (json array) Blocks that may have matched a scanobject.
      "hex",                     (string) A relevant blockhash
      ...
    ],
    "completed" : true|false     (boolean) true if the scan process was not aborted
  }

Result---(when action=='status' and a scan is currently in progress)

  {                          (json object)
    "progress" : n,          (numeric) Approximate percent complete
    "current_height" : n     (numeric) Height of the block currently being scanned
  }

Result---(when action=='abort')

Type: boolean

Description: True if scan will be aborted (not necessarily before this RPC returns), or false if there is no scan to abort

scantxoutset

Examples of output descriptors are:

addr(<address>)                      Outputs whose scriptPubKey corresponds to the specified address (does not include P2PK)
raw(<hex script>)                    Outputs whose scriptPubKey equals the specified hex scripts
combo(<pubkey>)                      P2PK, P2PKH, P2WPKH, and P2SH-P2WPKH outputs for the given pubkey
pkh(<pubkey>)                        P2PKH outputs for the given pubkey
sh(multi(<n>,<pubkey>,<pubkey>,...)) P2SH-multisig outputs for the given threshold and pubkeys
tr(<pubkey>)                         P2TR
tr(<pubkey>,{pk(<pubkey>)})          P2TR with single fallback pubkey in tapscript
rawtr(<pubkey>)                      P2TR with the specified key as output key rather than inner
wsh(and_v(v:pk(<pubkey>),after(2)))  P2WSH miniscript with mandatory pubkey and a timelock

In the above, either refers to a fixed public key in hexadecimal notation, or to an xpub/xprv optionally followed by one or more path elements separated by "/", and optionally ending in "/" (unhardened), or "/'" or "/*h" (hardened) to specify all unhardened or hardened child keys.

In the latter case, a range needs to be specified by below if different from 1000.

For more information on output descriptors, see the documentation in the doc/descriptors.md file.

Argument #1-action

Type: string, Required

Description: The action to execute "start" for starting a scan "abort" for aborting the current scan (returns true when abort was successful) "status" for progress report (in %) of the current scan

Argument #2-scanobjects

Type: json array, Optional

Description: Array of scan objects. Required for "start" action Every scan object is either a string descriptor or an object:

     [
       "descriptor",             (string) An output descriptor
       {                         (json object) An object with output descriptor and metadata
         "desc": "str",          (string, required) An output descriptor
         "range": n or [n,n],    (numeric or array, optional, default=1000) The range of HD chain indexes to explore (either end or [begin,end])
       },
       ...
     ]

Result---(when action=='start'; only returns after scan completes)

  {                                 (json object)
    "success" : true|false,         (boolean) Whether the scan was completed
    "txouts" : n,                   (numeric) The number of unspent transaction outputs scanned
    "height" : n,                   (numeric) The current block height (index)
    "bestblock" : "hex",            (string) The hash of the block at the tip of the chain
    "unspents" : [                  (json array)
      {                             (json object)
        "txid" : "hex",             (string) The transaction id
        "vout" : n,                 (numeric) The vout value
        "scriptPubKey" : "hex",     (string) The script key
        "desc" : "str",             (string) A specialized descriptor for the matched scriptPubKey
        "amount" : n,               (numeric) The total amount in BTC of the unspent output
        "coinbase" : true|false,    (boolean) Whether this is a coinbase output
        "height" : n                (numeric) Height of the unspent transaction output
      },
      ...
    ],
    "total_amount" : n              (numeric) The total amount of all found unspent outputs in BTC
  }

Result---(when action=='abort')

Type: boolean

Description: True if scan will be aborted (not necessarily before this RPC returns), or false if there is no scan to abort

Result---(when action=='status' and a scan is currently in progress)

  {                    (json object)
    "progress" : n     (numeric) Approximate percent complete
  }

Result---(when action=='status' and no scan is in progress - possibly already completed)

  null    (json null)

verifychain

Argument #1-checklevel

Type: number (int), Optional

Description: How thorough the block verification is: - level 0 reads the blocks from disk - level 1 verifies block validity - level 2 verifies undo data - level 3 checks disconnection of tip blocks - level 4 tries to reconnect the blocks - each level includes the checks of the previous levels

Argument #2-nblocks

Type: number (int), Optional

Description: The number of blocks to check.

Result

Type: boolean

Description: Verification finished successfully. If false, check debug.log for reason.

verifytxoutproof

Argument #1-proof

Type: string, Required

Description: The hex-encoded proof generated by gettxoutproof

Result

  [           (json array)
    "hex",    (string) The txid(s) which the proof commits to, or empty array if the proof cannot be validated.
    ...
  ]

getmemoryinfo

Argument #1-mode

Type: string, Optional
Default="stats"

Description: determines what kind of information is returned. - "stats" returns general statistics about memory usage in the daemon. - "mallocinfo" returns an XML string describing low-level heap state (only available if compiled with glibc).

Result---(mode "stats")

  {                         (json object)
    "locked" : {            (json object) Information about locked memory manager
      "used" : n,           (numeric) Number of bytes used
      "free" : n,           (numeric) Number of bytes available in current arenas
      "total" : n,          (numeric) Total number of bytes managed
      "locked" : n,         (numeric) Amount of bytes that succeeded locking. If this number is smaller than total, locking pages failed at some point and key data could be swapped to disk.
      "chunks_used" : n,    (numeric) Number allocated chunks
      "chunks_free" : n     (numeric) Number unused chunks
    }
  }

Result---(mode "mallocinfo")

Type: string (hex)

Description: "..."

getrpcinfo

Argument: none

Result

  {                          (json object)
    "active_commands" : [    (json array) All active commands
      {                      (json object) Information about an active command
        "method" : "str",    (string) The name of the RPC command
        "duration" : n       (numeric) The running time in microseconds
      },
      ...
    ],
    "logpath" : "str"        (string) The complete file path to the debug log
  }

help

Argument #1-command

Type: string, Optional
Default=all commands

Description: The command to get help on

Result

Type: string (hex)

Description: The help text

logging

When called without an argument, returns the list of categories with status that are currently being debug logged or not.

When called with arguments, adds or removes categories from debug logging and return the lists above.

The arguments are evaluated in order "include", "exclude".

If an item is both included and excluded, it will thus end up being excluded.

The valid logging categories are: addrman, bench, blockstorage, cmpctblock, coindb, estimatefee, http, i2p, ipc, leveldb, libevent, mempool, mempoolrej, net, proxy, prune, qt, rand, reindex, rpc, scan, selectcoins, tor, txpackages, txreconciliation, util, validation, walletdb, zmq In addition, the following are available as category names with special meanings:

  • "all", "1" : represent all logging categories.

  • "none", "0" : even if other logging categories are specified, ignore all of them.

Argument #1-include

Type: json array, Optional

Description: The categories to add to debug logging

     [
       "include_category",    (string) the valid logging category
       ...
     ]

Argument #2-exclude

Type: json array, Optional

Description: The categories to remove from debug logging

     [
       "exclude_category",    (string) the valid logging category
       ...
     ]

Result

  {                             (json object) keys are the logging categories, and values indicates its status
    "category" : true|false,    (boolean) if being debug logged or not. false:inactive, true:active
    ...
  }

stop

Argument: none

Result

Type: string (hex)

Description: A string with the content 'Bitcoin Core stopping'

uptime

Argument: none

Result

Type: number (int)

Description: The number of seconds that the server has been running

getblocktemplate

It returns data needed to construct a block to work on.

For full specification, see BIPs 22, 23, 9, and 145:

https://github.com/bitcoin/bips/blob/master/bip-0022.mediawiki
https://github.com/bitcoin/bips/blob/master/bip-0023.mediawiki
https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki#getblocktemplate_changes
https://github.com/bitcoin/bips/blob/master/bip-0145.mediawiki

Argument #1-template_request

Type: json object, Required

Description: Format of the template "rules": [ (json array, required) A list of strings "segwit", (string, required) (literal) indicates client side segwit support "str", (string) other client side supported softfork deployment ... ], "longpollid": "str", (string, optional) delay processing request until the result would vary significantly from the "longpollid" of a prior template "data": "hex", (string, optional) proposed block data to check, encoded in hexadecimal; valid only for mode="proposal" }

     {
       "mode": "str",          (string, optional) This must be set to "template", "proposal" (see BIP 23), or omitted
       "capabilities": [       (json array, optional) A list of strings
         "str",                (string) client side supported feature, 'longpoll', 'coinbasevalue', 'proposal', 'serverlist', 'workid'
         ...
       ],

Result---(If the proposal was accepted with mode=='proposal')

  null    (json null)

Result---(If the proposal was not accepted with mode=='proposal')

Type: string (hex)

Description: According to BIP22

Result---(Otherwise)

  {                                          (json object)
    "version" : n,                           (numeric) The preferred block version
    "rules" : [                              (json array) specific block rules that are to be enforced
      "str",                                 (string) name of a rule the client must understand to some extent; see BIP 9 for format
      ...
    ],
    "vbavailable" : {                        (json object) set of pending, supported versionbit (BIP 9) softfork deployments
      "rulename" : n,                        (numeric) identifies the bit number as indicating acceptance and readiness for the named softfork rule
      ...
    },
    "capabilities" : [                       (json array)
      "str",                                 (string) A supported feature, for example 'proposal'
      ...
    ],
    "vbrequired" : n,                        (numeric) bit mask of versionbits the server requires set in submissions
    "previousblockhash" : "str",             (string) The hash of current highest block
    "transactions" : [                       (json array) contents of non-coinbase transactions that should be included in the next block
      {                                      (json object)
        "data" : "hex",                      (string) transaction data encoded in hexadecimal (byte-for-byte)
        "txid" : "hex",                      (string) transaction id encoded in little-endian hexadecimal
        "hash" : "hex",                      (string) hash encoded in little-endian hexadecimal (including witness data)
        "depends" : [                        (json array) array of numbers
          n,                                 (numeric) transactions before this one (by 1-based index in 'transactions' list) that must be present in the final block if this one is
          ...
        ],
        "fee" : n,                           (numeric) difference in value between transaction inputs and outputs (in satoshis); for coinbase transactions, this is a negative Number of the total collected block fees (ie, not including the block subsidy); if key is not present, fee is unknown and clients MUST NOT assume there isn't one
        "sigops" : n,                        (numeric) total SigOps cost, as counted for purposes of block limits; if key is not present, sigop cost is unknown and clients MUST NOT assume it is zero
        "weight" : n                         (numeric) total transaction weight, as counted for purposes of block limits
      },
      ...
    ],
    "coinbaseaux" : {                        (json object) data that should be included in the coinbase's scriptSig content
      "key" : "hex",                         (string) values must be in the coinbase (keys may be ignored)
      ...
    },
    "coinbasevalue" : n,                     (numeric) maximum allowable input to coinbase transaction, including the generation award and transaction fees (in satoshis)
    "longpollid" : "str",                    (string) an id to include with a request to longpoll on an update to this template
    "target" : "str",                        (string) The hash target
    "mintime" : xxx,                         (numeric) The minimum timestamp appropriate for the next block time, expressed in UNIX epoch time
    "mutable" : [                            (json array) list of ways the block template may be changed
      "str",                                 (string) A way the block template may be changed, e.g. 'time', 'transactions', 'prevblock'
      ...
    ],
    "noncerange" : "hex",                    (string) A range of valid nonces
    "sigoplimit" : n,                        (numeric) limit of sigops in blocks
    "sizelimit" : n,                         (numeric) limit of block size
    "weightlimit" : n,                       (numeric, optional) limit of block weight
    "curtime" : xxx,                         (numeric) current timestamp in UNIX epoch time
    "bits" : "str",                          (string) compressed target of next block
    "height" : n,                            (numeric) The height of the next block
    "signet_challenge" : "hex",              (string, optional) Only on signet
    "default_witness_commitment" : "hex"     (string, optional) a valid witness commitment for the unmodified block template
  }

getmininginfo

Argument: none

Result

  {                              (json object)
    "blocks" : n,                (numeric) The current block
    "currentblockweight" : n,    (numeric, optional) The block weight of the last assembled block (only present if a block was ever assembled)
    "currentblocktx" : n,        (numeric, optional) The number of block transactions of the last assembled block (only present if a block was ever assembled)
    "difficulty" : n,            (numeric) The current difficulty
    "networkhashps" : n,         (numeric) The network hashes per second
    "pooledtx" : n,              (numeric) The size of the mempool
    "chain" : "str",             (string) current network name (main, test, signet, regtest)
    "warnings" : "str"           (string) any network and blockchain warnings
  }

getnetworkhashps

Pass in [blocks] to override # of blocks, -1 specifies since last difficulty change.

Pass in [height] to estimate the network speed at the time when a certain block was found.

Argument #1-nblocks

Type: number (int), Optional
Default=120

Description: The number of previous blocks to calculate estimate from, or -1 for blocks since last difficulty change.

Argument #2-height

Type: number (int), Optional
Default=-1

Description: To estimate at the time of the given height.

Result

Type: number (int)

Description: Hashes per second estimated

getprioritisedtransactions

Argument: none

Result

  {                                 (json object) prioritisation keyed by txid
    "<transactionid>" : {           (json object)
      "fee_delta" : n,              (numeric) transaction fee delta in satoshis
      "in_mempool" : true|false,    (boolean) whether this transaction is currently in mempool
      "modified_fee" : n            (numeric, optional) modified fee in satoshis. Only returned if in_mempool=true
    },
    ...
  }

prioritisetransaction

Argument #1-txid

Type: string, Required

Description: The transaction id.

Argument #2-dummy

Type: number (int), Optional

Description: API-Compatibility for previous API. Must be zero or null. DEPRECATED. For forward compatibility use named arguments and omit this parameter.

Argument #3-fee_delta

Type: number (int), Required

Description: The fee value (in satoshis) to add (or subtract, if negative). Note, that this value is not a fee rate. It is a value to modify absolute fee of the TX. The fee is not actually paid, only the algorithm for selecting transactions into a block considers the transaction as it would have paid a higher (or lower) fee.

Result

Type: boolean

Description: Returns true

submitblock

See https://en.bitcoin.it/wiki/BIP_0022 for full specification.

Argument #1-hexdata

Type: string, Required

Description: the hex-encoded block data to submit

Argument #2-dummy

Type: string, Optional
Default=ignored

Description: dummy value, for compatibility with BIP22. This value is ignored.

Result---(If the block was accepted)

  null    (json null)

Result---(Otherwise)

Type: string (hex)

Description: According to BIP22

submitheader

Throws when the header is invalid.

Argument #1-hexdata

Type: string, Required

Description: the hex-encoded block header data

Result

Type: json null

Description: None

addnode

Or try a connection to a node once.

Nodes added using addnode (or -connect) are protected from DoS disconnection and are not required to be full nodes/support SegWit as other outbound peers are (though such peers will not be synced from).

Addnode connections are limited to 8 at a time and are counted separately from the -maxconnections limit.

Argument #1-node

Type: string, Required

Description: The address of the peer to connect to

Argument #2-command

Type: string, Required

Description: 'add' to add a node to the list, 'remove' to remove a node from the list, 'onetry' to try a connection to the node once

Argument #3-v2transport

Type: boolean, Optional
Default=set by -v2transport

Description: Attempt to connect using BIP324 v2 transport protocol (ignored for 'remove' command)

Result

  null    (json null)

clearbanned

Argument: none

Result

  null    (json null)

disconnectnode

Strictly one out of 'address' and 'nodeid' can be provided to identify the node.

To disconnect by nodeid, either set 'address' to the empty string, or call using the named 'nodeid' argument only.

Argument #1-address

Type: string, Optional
Default=fallback to nodeid

Description: The IP address/port of the node

Argument #2-nodeid

Type: number (int), Optional
Default=fallback to address

Description: The node ID (see getpeerinfo for node IDs)

Result

  null    (json null)

getaddednodeinfo

Argument #1-node

Type: string, Optional
Default=all nodes

Description: If provided, return information about this specific node, otherwise all nodes are returned.

Result

  [                                (json array)
    {                              (json object)
      "addednode" : "str",         (string) The node IP address or name (as provided to addnode)
      "connected" : true|false,    (boolean) If connected
      "addresses" : [              (json array) Only when connected = true
        {                          (json object)
          "address" : "str",       (string) The bitcoin server IP and port we're connected to
          "connected" : "str"      (string) connection, inbound or outbound
        },
        ...
      ]
    },
    ...
  ]

getaddrmaninfo

Argument: none

Result

  {                   (json object) json object with network type as keys
    "network" : {     (json object) the network (ipv4, ipv6, onion, i2p, cjdns, all_networks)
      "new" : n,      (numeric) number of addresses in the new table, which represent potential peers the node has discovered but hasn't yet successfully connected to.
      "tried" : n,    (numeric) number of addresses in the tried table, which represent peers the node has successfully connected to in the past.
      "total" : n     (numeric) total number of addresses in both new/tried tables
    },
    ...
  }

getconnectioncount

Argument: none

Result

Type: number (int)

Description: The connection count

getnettotals

Argument: none

Result

  {                                              (json object)
    "totalbytesrecv" : n,                        (numeric) Total bytes received
    "totalbytessent" : n,                        (numeric) Total bytes sent
    "timemillis" : xxx,                          (numeric) Current system UNIX epoch time in milliseconds
    "uploadtarget" : {                           (json object)
      "timeframe" : n,                           (numeric) Length of the measuring timeframe in seconds
      "target" : n,                              (numeric) Target in bytes
      "target_reached" : true|false,             (boolean) True if target is reached
      "serve_historical_blocks" : true|false,    (boolean) True if serving historical blocks
      "bytes_left_in_cycle" : n,                 (numeric) Bytes left in current time cycle
      "time_left_in_cycle" : n                   (numeric) Seconds left in current time cycle
    }
  }

getnetworkinfo

Argument: none

Result

  {                                                    (json object)
    "version" : n,                                     (numeric) the server version
    "subversion" : "str",                              (string) the server subversion string
    "protocolversion" : n,                             (numeric) the protocol version
    "localservices" : "hex",                           (string) the services we offer to the network
    "localservicesnames" : [                           (json array) the services we offer to the network, in human-readable form
      "str",                                           (string) the service name
      ...
    ],
    "localrelay" : true|false,                         (boolean) true if transaction relay is requested from peers
    "timeoffset" : n,                                  (numeric) the time offset
    "connections" : n,                                 (numeric) the total number of connections
    "connections_in" : n,                              (numeric) the number of inbound connections
    "connections_out" : n,                             (numeric) the number of outbound connections
    "networkactive" : true|false,                      (boolean) whether p2p networking is enabled
    "networks" : [                                     (json array) information per network
      {                                                (json object)
        "name" : "str",                                (string) network (ipv4, ipv6, onion, i2p, cjdns)
        "limited" : true|false,                        (boolean) is the network limited using -onlynet?
        "reachable" : true|false,                      (boolean) is the network reachable?
        "proxy" : "str",                               (string) ("host:port") the proxy that is used for this network, or empty if none
        "proxy_randomize_credentials" : true|false     (boolean) Whether randomized credentials are used
      },
      ...
    ],
    "relayfee" : n,                                    (numeric) minimum relay fee rate for transactions in BTC/kvB
    "incrementalfee" : n,                              (numeric) minimum fee rate increment for mempool limiting or replacement in BTC/kvB
    "localaddresses" : [                               (json array) list of local addresses
      {                                                (json object)
        "address" : "str",                             (string) network address
        "port" : n,                                    (numeric) network port
        "score" : n                                    (numeric) relative score
      },
      ...
    ],
    "warnings" : "str"                                 (string) any network and blockchain warnings
  }

getnodeaddresses

These can potentially be used to find new peers in the network.

The total number of addresses known to the node may be higher.

Argument #1-count

Type: number (int), Optional
Default=1

Description: The maximum number of addresses to return. Specify 0 to return all known addresses.

Argument #2-network

Type: string, Optional
Default=all networks

Description: Return only addresses of the specified network. Can be one of: ipv4, ipv6, onion, i2p, cjdns.

Result

  [                         (json array)
    {                       (json object)
      "time" : xxx,         (numeric) The UNIX epoch time when the node was last seen
      "services" : n,       (numeric) The services offered by the node
      "address" : "str",    (string) The address of the node
      "port" : n,           (numeric) The port number of the node
      "network" : "str"     (string) The network (ipv4, ipv6, onion, i2p, cjdns) the node connected through
    },
    ...
  ]

getpeerinfo

Argument: none

Result

  [                                         (json array)
    {                                       (json object)
      "id" : n,                             (numeric) Peer index
      "addr" : "str",                       (string) (host:port) The IP address and port of the peer
      "addrbind" : "str",                   (string, optional) (ip:port) Bind address of the connection to the peer
      "addrlocal" : "str",                  (string, optional) (ip:port) Local address as reported by the peer
      "network" : "str",                    (string) Network (ipv4, ipv6, onion, i2p, cjdns, not_publicly_routable)
      "mapped_as" : n,                      (numeric, optional) The AS in the BGP route to the peer used for diversifying
                                            peer selection (only available if the asmap config flag is set)
      "services" : "hex",                   (string) The services offered
      "servicesnames" : [                   (json array) the services offered, in human-readable form
        "str",                              (string) the service name if it is recognised
        ...
      ],
      "relaytxes" : true|false,             (boolean) Whether we relay transactions to this peer
      "lastsend" : xxx,                     (numeric) The UNIX epoch time of the last send
      "lastrecv" : xxx,                     (numeric) The UNIX epoch time of the last receive
      "last_transaction" : xxx,             (numeric) The UNIX epoch time of the last valid transaction received from this peer
      "last_block" : xxx,                   (numeric) The UNIX epoch time of the last block received from this peer
      "bytessent" : n,                      (numeric) The total bytes sent
      "bytesrecv" : n,                      (numeric) The total bytes received
      "conntime" : xxx,                     (numeric) The UNIX epoch time of the connection
      "timeoffset" : n,                     (numeric) The time offset in seconds
      "pingtime" : n,                       (numeric, optional) The last ping time in milliseconds (ms), if any
      "minping" : n,                        (numeric, optional) The minimum observed ping time in milliseconds (ms), if any
      "pingwait" : n,                       (numeric, optional) The duration in milliseconds (ms) of an outstanding ping (if non-zero)
      "version" : n,                        (numeric) The peer version, such as 70001
      "subver" : "str",                     (string) The string version
      "inbound" : true|false,               (boolean) Inbound (true) or Outbound (false)
      "bip152_hb_to" : true|false,          (boolean) Whether we selected peer as (compact blocks) high-bandwidth peer
      "bip152_hb_from" : true|false,        (boolean) Whether peer selected us as (compact blocks) high-bandwidth peer
      "startingheight" : n,                 (numeric) The starting height (block) of the peer
      "presynced_headers" : n,              (numeric) The current height of header pre-synchronization with this peer, or -1 if no low-work sync is in progress
      "synced_headers" : n,                 (numeric) The last header we have in common with this peer
      "synced_blocks" : n,                  (numeric) The last block we have in common with this peer
      "inflight" : [                        (json array)
        n,                                  (numeric) The heights of blocks we're currently asking from this peer
        ...
      ],
      "addr_relay_enabled" : true|false,    (boolean) Whether we participate in address relay with this peer
      "addr_processed" : n,                 (numeric) The total number of addresses processed, excluding those dropped due to rate limiting
      "addr_rate_limited" : n,              (numeric) The total number of addresses dropped due to rate limiting
      "permissions" : [                     (json array) Any special permissions that have been granted to this peer
        "str",                              (string) bloomfilter (allow requesting BIP37 filtered blocks and transactions),
                                            noban (do not ban for misbehavior; implies download),
                                            forcerelay (relay transactions that are already in the mempool; implies relay),
                                            relay (relay even in -blocksonly mode, and unlimited transaction announcements),
                                            mempool (allow requesting BIP35 mempool contents),
                                            download (allow getheaders during IBD, no disconnect after maxuploadtarget limit),
                                            addr (responses to GETADDR avoid hitting the cache and contain random records with the most up-to-date info).
  
        ...
      ],
      "minfeefilter" : n,                   (numeric) The minimum fee rate for transactions this peer accepts
      "bytessent_per_msg" : {               (json object)
        "msg" : n,                          (numeric) The total bytes sent aggregated by message type
                                            When a message type is not listed in this json object, the bytes sent are 0.
                                            Only known message types can appear as keys in the object.
        ...
      },
      "bytesrecv_per_msg" : {               (json object)
        "msg" : n,                          (numeric) The total bytes received aggregated by message type
                                            When a message type is not listed in this json object, the bytes received are 0.
                                            Only known message types can appear as keys in the object and all bytes received
                                            of unknown message types are listed under '*other*'.
        ...
      },
      "connection_type" : "str",            (string) Type of connection:
                                            outbound-full-relay (default automatic connections),
                                            block-relay-only (does not relay transactions or addresses),
                                            inbound (initiated by the peer),
                                            manual (added via addnode RPC or -addnode/-connect configuration options),
                                            addr-fetch (short-lived automatic connection for soliciting addresses),
                                            feeler (short-lived automatic connection for testing addresses).
                                            Please note this output is unlikely to be stable in upcoming releases as we iterate to
                                            best capture connection behaviors.
      "transport_protocol_type" : "str",    (string) Type of transport protocol:
                                            detecting (peer could be v1 or v2),
                                            v1 (plaintext transport protocol),
                                            v2 (BIP324 encrypted transport protocol).
  
      "session_id" : "str"                  (string) The session ID for this connection, or "" if there is none ("v2" transport protocol only).
  
    },
    ...
  ]

listbanned

Argument: none

Result

  [                              (json array)
    {                            (json object)
      "address" : "str",         (string) The IP/Subnet of the banned node
      "ban_created" : xxx,       (numeric) The UNIX epoch time the ban was created
      "banned_until" : xxx,      (numeric) The UNIX epoch time the ban expires
      "ban_duration" : xxx,      (numeric) The ban duration, in seconds
      "time_remaining" : xxx     (numeric) The time remaining until the ban expires, in seconds
    },
    ...
  ]

ping

Results provided in getpeerinfo, pingtime and pingwait fields are decimal seconds.

Ping command is handled in queue with all other commands, so it measures processing backlog, not just network ping.

Argument: none

Result

  null    (json null)

setban

Argument #1-subnet

Type: string, Required

Description: The IP/Subnet (see getpeerinfo for nodes IP) with an optional netmask (default is /32 = single IP)

Argument #2-command

Type: string, Required

Description: 'add' to add an IP/Subnet to the list, 'remove' to remove an IP/Subnet from the list

Argument #3-bantime

Type: number (int), Optional
Default=0

Description: time in seconds how long (or until when if [absolute] is set) the IP is banned (0 or empty means using the default time of 24h which can also be overwritten by the -bantime startup argument)

Argument #4-absolute

Type: boolean, Optional
Default=false

Description: If set, the bantime must be an absolute timestamp expressed in UNIX epoch time

Result

  null    (json null)

setnetworkactive

Argument #1-state

Type: boolean, Required

Description: true to enable networking, false to disable

Result

Type: boolean

Description: The value that was passed in

analyzepsbt

Argument #1-psbt

Type: string, Required

Description: A base64 string of a PSBT

Result

  {                                   (json object)
    "inputs" : [                      (json array, optional)
      {                               (json object)
        "has_utxo" : true|false,      (boolean) Whether a UTXO is provided
        "is_final" : true|false,      (boolean) Whether the input is finalized
        "missing" : {                 (json object, optional) Things that are missing that are required to complete this input
          "pubkeys" : [               (json array, optional)
            "hex",                    (string) Public key ID, hash160 of the public key, of a public key whose BIP 32 derivation path is missing
            ...
          ],
          "signatures" : [            (json array, optional)
            "hex",                    (string) Public key ID, hash160 of the public key, of a public key whose signature is missing
            ...
          ],
          "redeemscript" : "hex",     (string, optional) Hash160 of the redeemScript that is missing
          "witnessscript" : "hex"     (string, optional) SHA256 of the witnessScript that is missing
        },
        "next" : "str"                (string, optional) Role of the next person that this input needs to go to
      },
      ...
    ],
    "estimated_vsize" : n,            (numeric, optional) Estimated vsize of the final signed transaction
    "estimated_feerate" : n,          (numeric, optional) Estimated feerate of the final signed transaction in BTC/kvB. Shown only if all UTXO slots in the PSBT have been filled
    "fee" : n,                        (numeric, optional) The transaction fee paid. Shown only if all UTXO slots in the PSBT have been filled
    "next" : "str",                   (string) Role of the next person that this psbt needs to go to
    "error" : "str"                   (string, optional) Error message (if there is one)
  }

combinepsbt

Implements the Combiner role.

Argument #1-txs

Type: json array, Required

Description: The base64 strings of partially signed transactions

     [
       "psbt",    (string) A base64 string of a PSBT
       ...
     ]

Result

Type: string (hex)

Description: The base64-encoded partially signed transaction

combinerawtransaction

The combined transaction may be another partially signed transaction or a fully signed transaction.

Argument #1-txs

Type: json array, Required

Description: The hex strings of partially signed transactions

     [
       "hexstring",    (string) A hex-encoded raw transaction
       ...
     ]

Result

Type: string (hex)

Description: The hex-encoded raw transaction with signature(s)

converttopsbt

This should be used only with createrawtransaction and fundrawtransaction createpsbt and walletcreatefundedpsbt should be used for new applications.

Argument #1-hexstring

Type: string, Required

Description: The hex string of a raw transaction

Argument #2-permitsigdata

Type: boolean, Optional
Default=false

Description: If true, any signatures in the input will be discarded and conversion will continue. If false, RPC will fail if any signatures are present.

Argument #3-iswitness

Type: boolean, Optional
Default=depends on heuristic tests

Description: Whether the transaction hex is a serialized witness transaction. If iswitness is not present, heuristic tests will be used in decoding. If true, only witness deserialization will be tried. If false, only non-witness deserialization will be tried. This boolean should reflect whether the transaction has inputs (e.g. fully valid, or on-chain transactions), if known by the caller.

Result

Type: string (hex)

Description: The resulting raw transaction (base64-encoded string)

createpsbt

Implements the Creator role.

Argument #1-inputs

Type: json array, Required

Description: The inputs

     [
       {                       (json object)
         "txid": "hex",        (string, required) The transaction id
         "vout": n,            (numeric, required) The output number
         "sequence": n,        (numeric, optional, default=depends on the value of the 'replaceable' and 'locktime' arguments) The sequence number
       },
       ...
     ]

Argument #2-outputs

Type: json array, Required

Description: The outputs specified as key-value pairs. Each key may only appear once, i.e. there can only be one 'data' output, and no address may be duplicated. At least one output of either type must be specified. For compatibility reasons, a dictionary, which holds the key-value pairs directly, is also accepted as second parameter.

     [
       {                       (json object)
         "address": amount,    (numeric or string, required) A key-value pair. The key (string) is the bitcoin address, the value (float or string) is the amount in BTC
         ...
       },
       {                       (json object)
         "data": "hex",        (string, required) A key-value pair. The key must be "data", the value is hex-encoded data
       },
       ...
     ]

Argument #3-locktime

Type: number (int), Optional
Default=0

Description: Raw locktime. Non-0 value also locktime-activates inputs

Argument #4-replaceable

Type: boolean, Optional
Default=true

Description: Marks this transaction as BIP125-replaceable. Allows this transaction to be replaced by a transaction with higher fees. If provided, it is an error if explicit sequence numbers are incompatible.

Result

Type: string (hex)

Description: The resulting raw transaction (base64-encoded string)

createrawtransaction

Outputs can be addresses or data.

Returns hex-encoded raw transaction.

Note that the transaction's inputs are not signed, and it is not stored in the wallet or transmitted to the network.

Argument #1-inputs

Type: json array, Required

Description: The inputs

     [
       {                       (json object)
         "txid": "hex",        (string, required) The transaction id
         "vout": n,            (numeric, required) The output number
         "sequence": n,        (numeric, optional, default=depends on the value of the 'replaceable' and 'locktime' arguments) The sequence number
       },
       ...
     ]

Argument #2-outputs

Type: json array, Required

Description: The outputs specified as key-value pairs. Each key may only appear once, i.e. there can only be one 'data' output, and no address may be duplicated. At least one output of either type must be specified. For compatibility reasons, a dictionary, which holds the key-value pairs directly, is also accepted as second parameter.

     [
       {                       (json object)
         "address": amount,    (numeric or string, required) A key-value pair. The key (string) is the bitcoin address, the value (float or string) is the amount in BTC
         ...
       },
       {                       (json object)
         "data": "hex",        (string, required) A key-value pair. The key must be "data", the value is hex-encoded data
       },
       ...
     ]

Argument #3-locktime

Type: number (int), Optional
Default=0

Description: Raw locktime. Non-0 value also locktime-activates inputs

Argument #4-replaceable

Type: boolean, Optional
Default=true

Description: Marks this transaction as BIP125-replaceable. Allows this transaction to be replaced by a transaction with higher fees. If provided, it is an error if explicit sequence numbers are incompatible.

Result

Type: string (hex)

Description: hex string of the transaction

decodepsbt

Argument #1-psbt

Type: string, Required

Description: 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.
  }

decoderawtransaction

Argument #1-hexstring

Type: string, Required

Description: The transaction hex string

Argument #2-iswitness

Type: boolean, Optional
Default=depends on heuristic tests

Description: Whether the transaction hex is a serialized witness transaction. If iswitness is not present, heuristic tests will be used in decoding. If true, only witness deserialization will be tried. If false, only non-witness deserialization will be tried. This boolean should reflect whether the transaction has inputs (e.g. fully valid, or on-chain transactions), if known by the caller.

Result

  {                             (json object)
    "txid" : "hex",             (string) The transaction id
    "hash" : "hex",             (string) The transaction hash (differs from txid for witness transactions)
    "size" : n,                 (numeric) The serialized transaction size
    "vsize" : n,                (numeric) The virtual transaction size (differs from size for witness transactions)
    "weight" : n,               (numeric) The transaction's weight (between vsize*4-3 and vsize*4)
    "version" : n,              (numeric) The version
    "locktime" : xxx,           (numeric) The lock time
    "vin" : [                   (json array)
      {                         (json object)
        "coinbase" : "hex",     (string, optional) The coinbase value (only if coinbase transaction)
        "txid" : "hex",         (string, optional) The transaction id (if not coinbase transaction)
        "vout" : n,             (numeric, optional) The output number (if not coinbase transaction)
        "scriptSig" : {         (json object, optional) The script (if not coinbase transaction)
          "asm" : "str",        (string) Disassembly of the signature script
          "hex" : "hex"         (string) The raw signature script bytes, hex-encoded
        },
        "txinwitness" : [       (json array, optional)
          "hex",                (string) hex-encoded witness data (if any)
          ...
        ],
        "sequence" : n          (numeric) The script sequence number
      },
      ...
    ],
    "vout" : [                  (json array)
      {                         (json object)
        "value" : n,            (numeric) The value in BTC
        "n" : n,                (numeric) index
        "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
          "address" : "str",    (string, optional) The Bitcoin address (only if a well-defined address exists)
          "type" : "str"        (string) The type (one of: nonstandard, pubkey, pubkeyhash, scripthash, multisig, nulldata, witness_v0_scripthash, witness_v0_keyhash, witness_v1_taproot, witness_unknown)
        }
      },
      ...
    ]
  }

decodescript

Argument #1-hexstring

Type: string, Required

Description: the hex-encoded script

Result

  {                             (json object)
    "asm" : "str",              (string) Script public key
    "desc" : "str",             (string) Inferred descriptor for the script
    "type" : "str",             (string) The output type (e.g. nonstandard, pubkey, pubkeyhash, scripthash, multisig, nulldata, witness_v0_scripthash, witness_v0_keyhash, witness_v1_taproot, witness_unknown)
    "address" : "str",          (string, optional) The Bitcoin address (only if a well-defined address exists)
    "p2sh" : "str",             (string, optional) address of P2SH script wrapping this redeem script (not returned for types that should not be wrapped)
    "segwit" : {                (json object, optional) Result of a witness script public key wrapping this redeem script (not returned for types that should not be wrapped)
      "asm" : "str",            (string) String representation of the script public key
      "hex" : "hex",            (string) Hex string of the script public key
      "type" : "str",           (string) The type of the script public key (e.g. witness_v0_keyhash or witness_v0_scripthash)
      "address" : "str",        (string, optional) The Bitcoin address (only if a well-defined address exists)
      "desc" : "str",           (string) Inferred descriptor for the script
      "p2sh-segwit" : "str"     (string) address of the P2SH script wrapping this witness redeem script
    }
  }

descriptorprocesspsbt

Then, sign the inputs we are able to with information from the output descriptors.

Argument #1-psbt

Type: string, Required

Description: The transaction base64 string

Argument #2-descriptors

Type: json array, Required

Description: An array of either strings or objects

     [
       "",                       (string) An output descriptor
       {                         (json object) An object with an output descriptor and extra information
         "desc": "str",          (string, required) An output descriptor
         "range": n or [n,n],    (numeric or array, optional, default=1000) Up to what index HD chains should be explored (either end or [begin,end])
       },
       ...
     ]

Argument #3-sighashtype

Type: string, Optional

Description: The signature hash type to sign with if not specified by the PSBT. Must be one of "DEFAULT" "ALL" "NONE" "SINGLE" "ALL|ANYONECANPAY" "NONE|ANYONECANPAY" "SINGLE|ANYONECANPAY"

Argument #4-bip32derivs

Type: boolean, Optional
Default=true

Description: Include BIP 32 derivation paths for public keys if we know them

Argument #5-finalize

Type: boolean, Optional
Default=true

Description: Also finalize inputs if possible

Result

  {                             (json object)
    "psbt" : "str",             (string) The base64-encoded partially signed transaction
    "complete" : true|false,    (boolean) If the transaction has a complete set of signatures
    "hex" : "hex"               (string, optional) The hex-encoded network transaction if complete
  }

finalizepsbt

If the transaction is fully signed, it will produce a network serialized transaction which can be broadcast with sendrawtransaction. Otherwise a PSBT will be created which has the final_scriptSig and final_scriptWitness fields filled for inputs that are complete.

Implements the Finalizer and Extractor roles.

Argument #1-psbt

Type: string, Required

Description: A base64 string of a PSBT

Argument #2-extract

Type: boolean, Optional
Default=true

Description: If true and the transaction is complete, extract and return the complete transaction in normal network serialization instead of the PSBT.

Result

  {                             (json object)
    "psbt" : "str",             (string, optional) The base64-encoded partially signed transaction if not extracted
    "hex" : "hex",              (string, optional) The hex-encoded network transaction if extracted
    "complete" : true|false     (boolean) If the transaction has a complete set of signatures
  }

fundrawtransaction

It will add at most one change output to the outputs.

No existing outputs will be modified unless "subtractFeeFromOutputs" is specified.

Note that inputs which were signed may need to be resigned after completion since in/outputs have been added.

The inputs added will not be signed, use signrawtransactionwithkey or signrawtransactionwithwallet for that.

All existing inputs must either have their previous output transaction be in the wallet or be in the UTXO set. Solving data must be provided for non-wallet inputs.

Note that all inputs selected must be of standard form and P2SH scripts must be in the wallet using importaddress or addmultisigaddress (to calculate fees).

You can see whether this is the case by checking the "solvable" field in the listunspent output.

Only pay-to-pubkey, multisig, and P2SH versions thereof are currently supported for watch-only

Argument #1-hexstring

Type: string, Required

Description: The hex string of the raw transaction

Argument #2-options

Type: json object, Optional

Description: Options object that can be used to pass named arguments, listed below. For backward compatibility: passing in a true instead of an object will result in {"includeWatching":true}

Argument #3-iswitness

Type: boolean, Optional
Default=depends on heuristic tests

Description: Whether the transaction hex is a serialized witness transaction. If iswitness is not present, heuristic tests will be used in decoding. If true, only witness deserialization will be tried. If false, only non-witness deserialization will be tried. This boolean should reflect whether the transaction has inputs (e.g. fully valid, or on-chain transactions), if known by the caller. Warning: the resulting transaction may become invalid if one of the unsafe inputs disappears. If that happens, you will need to fund the transaction with different inputs and republish it. Only solvable inputs can be used. Watch-only destinations are solvable if the public key and/or output script was imported, e.g. with 'importpubkey' or 'importmulti' with the 'pubkeys' or 'desc' field. The fee will be equally deducted from the amount of each specified output. Those recipients will receive less bitcoins than you enter in their corresponding amount field. If no outputs are specified here, the sender pays the fee. "unset" "economical" "conservative" Allows this transaction to be replaced by a transaction with higher fees Used for fee estimation during coin selection. "scripts": [ (json array, optional, default=[]) Scripts involved in this transaction. "script", (string) A script ... ], "descriptors": [ (json array, optional, default=[]) Descriptors that provide solving data for this transaction. "descriptor", (string) A descriptor ... ], }

     {
       "pubkeys": [        (json array, optional, default=[]) Public keys involved in this transaction.
         "pubkey",         (string) A public key
         ...
       ],

Result

  {                     (json object)
    "hex" : "hex",      (string) The resulting raw transaction (hex-encoded string)
    "fee" : n,          (numeric) Fee in BTC the resulting transaction pays
    "changepos" : n     (numeric) The position of the added change output, or -1
  }

getrawtransaction

If -txindex is enabled and no blockhash argument is passed, it will return the transaction if it is in the mempool or any block.

If a blockhash argument is passed, it will return the transaction if the specified block is available and the transaction is in that block.

Hint: Use gettransaction for wallet transactions.

If verbosity is 0 or omitted, returns the serialized transaction as a hex-encoded string.

If verbosity is 1, returns a JSON Object with information about the transaction.

If verbosity is 2, returns a JSON Object with information about the transaction, including fee and prevout information.

Argument #1-txid

Type: string, Required

Description: The transaction id

Argument #2-verbosity

Type: number (int), Optional
Default=0

Description: 0 for hex-encoded data, 1 for a JSON object, and 2 for JSON object with fee and prevout

Argument #3-blockhash

Type: string, Optional

Description: The block in which to look for the transaction

Result---(if verbosity is not set or set to 0)

Type: string (hex)

Description: The serialized transaction as a hex-encoded string for 'txid'

Result---(if verbosity is set to 1)

  {                                    (json object)
    "in_active_chain" : true|false,    (boolean, optional) Whether specified block is in the active chain or not (only present with explicit "blockhash" argument)
    "blockhash" : "hex",               (string, optional) the block hash
    "confirmations" : n,               (numeric, optional) The confirmations
    "blocktime" : xxx,                 (numeric, optional) The block time expressed in UNIX epoch time
    "time" : n,                        (numeric, optional) Same as "blocktime"
    "hex" : "hex",                     (string) The serialized, hex-encoded data for 'txid'
    "txid" : "hex",                    (string) The transaction id (same as provided)
    "hash" : "hex",                    (string) The transaction hash (differs from txid for witness transactions)
    "size" : n,                        (numeric) The serialized transaction size
    "vsize" : n,                       (numeric) The virtual transaction size (differs from size for witness transactions)
    "weight" : n,                      (numeric) The transaction's weight (between vsize*4-3 and vsize*4)
    "version" : n,                     (numeric) The version
    "locktime" : xxx,                  (numeric) The lock time
    "vin" : [                          (json array)
      {                                (json object)
        "coinbase" : "hex",            (string, optional) The coinbase value (only if coinbase transaction)
        "txid" : "hex",                (string, optional) The transaction id (if not coinbase transaction)
        "vout" : n,                    (numeric, optional) The output number (if not coinbase transaction)
        "scriptSig" : {                (json object, optional) The script (if not coinbase transaction)
          "asm" : "str",               (string) Disassembly of the signature script
          "hex" : "hex"                (string) The raw signature script bytes, hex-encoded
        },
        "txinwitness" : [              (json array, optional)
          "hex",                       (string) hex-encoded witness data (if any)
          ...
        ],
        "sequence" : n                 (numeric) The script sequence number
      },
      ...
    ],
    "vout" : [                         (json array)
      {                                (json object)
        "value" : n,                   (numeric) The value in BTC
        "n" : n,                       (numeric) index
        "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
          "address" : "str",           (string, optional) The Bitcoin address (only if a well-defined address exists)
          "type" : "str"               (string) The type (one of: nonstandard, pubkey, pubkeyhash, scripthash, multisig, nulldata, witness_v0_scripthash, witness_v0_keyhash, witness_v1_taproot, witness_unknown)
        }
      },
      ...
    ]
  }

Result---(for verbosity = 2)

  {                                    (json object)
    ...,                               Same output as verbosity = 1
    "fee" : n,                         (numeric, optional) transaction fee in BTC, omitted if block undo data is not available
    "vin" : [                          (json array)
      {                                (json object) utxo being spent
        ...,                           Same output as verbosity = 1
        "prevout" : {                  (json object, optional) The previous output, omitted if block undo data is not available
          "generated" : true|false,    (boolean) Coinbase or not
          "height" : n,                (numeric) The height of the prevout
          "value" : 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
            "address" : "str",         (string, optional) The Bitcoin address (only if a well-defined address exists)
            "type" : "str"             (string) The type (one of: nonstandard, pubkey, pubkeyhash, scripthash, multisig, nulldata, witness_v0_scripthash, witness_v0_keyhash, witness_v1_taproot, witness_unknown)
          }
        }
      },
      ...
    ]
  }

joinpsbts

Argument #1-txs

Type: json array, Required

Description: The base64 strings of partially signed transactions

     [
       "psbt",    (string, required) A base64 string of a PSBT
       ...
     ]

Result

Type: string (hex)

Description: The base64-encoded partially signed transaction

sendrawtransaction

The transaction will be sent unconditionally to all peers, so using sendrawtransaction for manual rebroadcast may degrade privacy by leaking the transaction's origin, as nodes will normally not rebroadcast non-wallet transactions already in their mempool.

A specific exception, RPC_TRANSACTION_ALREADY_IN_CHAIN, may throw if the transaction cannot be added to the mempool.

Related RPCs: createrawtransaction, signrawtransactionwithkey

Argument #1-hexstring

Type: string, Required

Description: The hex string of the raw transaction

Argument #2-maxfeerate

Type: numeric or string, Optional
Default="0.10"

Description: Reject transactions whose fee rate is higher than the specified value, expressed in BTC/kvB. Fee rates larger than 1BTC/kvB are rejected. Set to 0 to accept any fee rate.

Argument #3-maxburnamount

Type: numeric or string, Optional
Default="0.00"

Description: Reject transactions with provably unspendable outputs (e.g. 'datacarrier' outputs that use the OP_RETURN opcode) greater than the specified value, expressed in BTC. If burning funds through unspendable outputs is desired, increase this value. This check is based on heuristics and does not guarantee spendability of outputs.

Result

Type: string (hex)

Description: The transaction hash in hex

signrawtransactionwithkey

The second argument is an array of base58-encoded private keys that will be the only keys used to sign the transaction.

The third optional argument (may be null) is an array of previous transaction outputs that this transaction depends on but may not yet be in the block chain.

Argument #1-hexstring

Type: string, Required

Description: The transaction hex string

Argument #2-privkeys

Type: json array, Required

Description: The base58-encoded private keys for signing

     [
       "privatekey",                (string) private key in base58-encoding
       ...
     ]

Argument #3-prevtxs

Type: json array, Optional

Description: The previous dependent transaction outputs

     [
       {                            (json object)
         "txid": "hex",             (string, required) The transaction id
         "vout": n,                 (numeric, required) The output number
         "scriptPubKey": "hex",     (string, required) script key
         "redeemScript": "hex",     (string, optional) (required for P2SH) redeem script
         "witnessScript": "hex",    (string, optional) (required for P2WSH or P2SH-P2WSH) witness script
         "amount": amount,          (numeric or string, optional) (required for Segwit inputs) the amount spent
       },
       ...
     ]

Argument #4-sighashtype

Type: string, Optional

Description: The signature hash type. Must be one of: "DEFAULT" "ALL" "NONE" "SINGLE" "ALL|ANYONECANPAY" "NONE|ANYONECANPAY" "SINGLE|ANYONECANPAY"

Result

  {                             (json object)
    "hex" : "hex",              (string) The hex-encoded raw transaction with signature(s)
    "complete" : true|false,    (boolean) If the transaction has a complete set of signatures
    "errors" : [                (json array, optional) Script verification errors (if there are any)
      {                         (json object)
        "txid" : "hex",         (string) The hash of the referenced, previous transaction
        "vout" : n,             (numeric) The index of the output to spent and used as input
        "witness" : [           (json array)
          "hex",                (string)
          ...
        ],
        "scriptSig" : "hex",    (string) The hex-encoded signature script
        "sequence" : n,         (numeric) Script sequence number
        "error" : "str"         (string) Verification or signing error related to the input
      },
      ...
    ]
  }

submitpackage

The package must consist of a child with its parents, and none of the parents may depend on one another.

The package will be validated according to consensus and mempool policy rules. If any transaction passes, it will be accepted to mempool.

This RPC is experimental and the interface may be unstable. Refer to doc/policy/packages.md for documentation on package policies.

Warning: successful submission does not mean the transactions will propagate throughout the network.

Argument #1-package

Type: json array, Required

Description: An array of raw transactions.

     [
       "rawtx",    (string)
       ...
     ]

Result

  {                                   (json object)
    "package_msg" : "str",            (string) The transaction package result message. "success" indicates all transactions were accepted into or are already in the mempool.
    "tx-results" : {                  (json object) transaction results keyed by wtxid
      "wtxid" : {                     (json object) transaction wtxid
        "txid" : "hex",               (string) The transaction hash in hex
        "other-wtxid" : "hex",        (string, optional) The wtxid of a different transaction with the same txid but different witness found in the mempool. This means the submitted transaction was ignored.
        "vsize" : n,                  (numeric, optional) Sigops-adjusted virtual transaction size.
        "fees" : {                    (json object, optional) Transaction fees
          "base" : n,                 (numeric) transaction fee in BTC
          "effective-feerate" : n,    (numeric, optional) if the transaction was not already in the mempool, the effective feerate in BTC per KvB. For example, the package feerate and/or feerate with modified fees from prioritisetransaction.
          "effective-includes" : [    (json array, optional) if effective-feerate is provided, the wtxids of the transactions whose fees and vsizes are included in effective-feerate.
            "hex",                    (string) transaction wtxid in hex
            ...
          ]
        },
        "error" : "str"               (string, optional) The transaction error string, if it was rejected by the mempool
      },
      ...
    },
    "replaced-transactions" : [       (json array, optional) List of txids of replaced transactions
      "hex",                          (string) The transaction id
      ...
    ]
  }

testmempoolaccept

If multiple transactions are passed in, parents must come before children and package policies apply: the transactions cannot conflict with any mempool transactions or each other.

If one transaction fails, other transactions may not be fully validated (the 'allowed' key will be blank).

The maximum number of transactions allowed is 25.

This checks if transactions violate the consensus or policy rules.

See sendrawtransaction call.

Argument #1-rawtxs

Type: json array, Required

Description: An array of hex strings of raw transactions.

     [
       "rawtx",    (string)
       ...
     ]

Argument #2-maxfeerate

Type: numeric or string, Optional
Default="0.10"

Description: Reject transactions whose fee rate is higher than the specified value, expressed in BTC/kvB. Fee rates larger than 1BTC/kvB are rejected. Set to 0 to accept any fee rate.

Result

  [                                 (json array) The result of the mempool acceptance test for each raw transaction in the input array.
                                    Returns results for each transaction in the same order they were passed in.
                                    Transactions that cannot be fully validated due to failures in other transactions will not contain an 'allowed' result.
  
    {                               (json object)
      "txid" : "hex",               (string) The transaction hash in hex
      "wtxid" : "hex",              (string) The transaction witness hash in hex
      "package-error" : "str",      (string, optional) Package validation error, if any (only possible if rawtxs had more than 1 transaction).
      "allowed" : true|false,       (boolean, optional) Whether this tx would be accepted to the mempool and pass client-specified maxfeerate. If not present, the tx was not fully validated due to a failure in another tx in the list.
      "vsize" : n,                  (numeric, optional) Virtual transaction size as defined in BIP 141. This is different from actual serialized size for witness transactions as witness data is discounted (only present when 'allowed' is true)
      "fees" : {                    (json object, optional) Transaction fees (only present if 'allowed' is true)
        "base" : n,                 (numeric) transaction fee in BTC
        "effective-feerate" : n,    (numeric) the effective feerate in BTC per KvB. May differ from the base feerate if, for example, there are modified fees from prioritisetransaction or a package feerate was used.
        "effective-includes" : [    (json array) transactions whose fees and vsizes are included in effective-feerate.
          "hex",                    (string) transaction wtxid in hex
          ...
        ]
      },
      "reject-reason" : "str"       (string, optional) Rejection string (only present when 'allowed' is false)
    },
    ...
  ]

utxoupdatepsbt

Argument #1-psbt

Type: string, Required

Description: A base64 string of a PSBT

Argument #2-descriptors

Type: json array, Optional

Description: An array of either strings or objects

     [
       "",                       (string) An output descriptor
       {                         (json object) An object with an output descriptor and extra information
         "desc": "str",          (string, required) An output descriptor
         "range": n or [n,n],    (numeric or array, optional, default=1000) Up to what index HD chains should be explored (either end or [begin,end])
       },
       ...
     ]

Result

Type: string (hex)

Description: The base64-encoded partially signed transaction with inputs updated

enumeratesigners

Argument: none

Result

  {                               (json object)
    "signers" : [                 (json array)
      {                           (json object)
        "fingerprint" : "hex",    (string) Master key fingerprint
        "name" : "str"            (string) Device name
      },
      ...
    ]
  }

createmultisig

It returns a json object with the address and redeemScript.

Argument #1-nrequired

Type: number (int), Required

Description: The number of required signatures out of the n keys.

Argument #2-keys

Type: json array, Required

Description: The hex-encoded public keys.

     [
       "key",      (string) The hex-encoded public key
       ...
     ]

Argument #3-address_type

Type: string, Optional
Default="legacy"

Description: The address type to use. Options are "legacy", "p2sh-segwit", and "bech32".

Result

  {                            (json object)
    "address" : "str",         (string) The value of the new multisig address.
    "redeemScript" : "hex",    (string) The string value of the hex-encoded redemption script.
    "descriptor" : "str",      (string) The descriptor for this multisig
    "warnings" : [             (json array, optional) Any warnings resulting from the creation of this multisig
      "str",                   (string)
      ...
    ]
  }

deriveaddresses

Examples of output descriptors are:

pkh(<pubkey>)                                     P2PKH outputs for the given pubkey
wpkh(<pubkey>)                                    Native segwit P2PKH outputs for the given pubkey
sh(multi(<n>,<pubkey>,<pubkey>,...))              P2SH-multisig outputs for the given threshold and pubkeys
raw(<hex script>)                                 Outputs whose scriptPubKey equals the specified hex scripts
tr(<pubkey>,multi_a(<n>,<pubkey>,<pubkey>,...))   P2TR-multisig outputs for the given threshold and pubkeys

In the above, either refers to a fixed public key in hexadecimal notation, or to an xpub/xprv optionally followed by one or more path elements separated by "/", where "h" represents a hardened child key.

For more information on output descriptors, see the documentation in the doc/descriptors.md file.

Argument #1-descriptor

Type: string, Required

Description: The descriptor.

Argument #2-range

Type: numeric or array, Optional

Description: If a ranged descriptor is used, this specifies the end or the range (in [begin,end] notation) to derive.

Result

  [           (json array)
    "str",    (string) the derived addresses
    ...
  ]

estimatesmartfee

Uses virtual transaction size as defined in BIP 141 (witness data is discounted).

Argument #1-conf_target

Type: number (int), Required

Description: Confirmation target in blocks (1 - 1008)

Argument #2-estimate_mode

Type: string, Optional
Default="conservative"

Description: The fee estimate mode. Whether to return a more conservative estimate which also satisfies a longer history. A conservative estimate potentially returns a higher feerate and is more likely to be sufficient for the desired target, but is not as responsive to short term drops in the prevailing fee market. Must be one of (case insensitive): "unset" "economical" "conservative"

Result

  {                   (json object)
    "feerate" : n,    (numeric, optional) estimate fee rate in BTC/kvB (only present if no errors were encountered)
    "errors" : [      (json array, optional) Errors encountered during processing (if there are any)
      "str",          (string) error
      ...
    ],
    "blocks" : n      (numeric) block number where estimate was found
                      The request target will be clamped between 2 and the highest target
                      fee estimation is able to return based on how long it has been running.
                      An error is returned if not enough transactions and blocks
                      have been observed to make an estimate for any number of blocks.
  }

getdescriptorinfo

Argument #1-descriptor

Type: string, Required

Description: The descriptor.

Result

  {                                   (json object)
    "descriptor" : "str",             (string) The descriptor in canonical form, without private keys
    "checksum" : "str",               (string) The checksum for the input descriptor
    "isrange" : true|false,           (boolean) Whether the descriptor is ranged
    "issolvable" : true|false,        (boolean) Whether the descriptor is solvable
    "hasprivatekeys" : true|false     (boolean) Whether the input descriptor contained at least one private key
  }

getindexinfo

Argument #1-index_name

Type: string, Optional

Description: Filter results for an index with a specific name.

Result

  {                               (json object)
    "name" : {                    (json object) The name of the index
      "synced" : true|false,      (boolean) Whether the index is synced or not
      "best_block_height" : n     (numeric) The block height to which the index is synced
    },
    ...
  }

signmessagewithprivkey

Argument #1-privkey

Type: string, Required

Description: The private key to sign the message with.

Argument #2-message

Type: string, Required

Description: The message to create a signature of.

Result

Type: string (hex)

Description: The signature of the message encoded in base 64

validateaddress

Argument #1-address

Type: string, Required

Description: The bitcoin address to validate

Result

  {                               (json object)
    "isvalid" : true|false,       (boolean) If the address is valid or not
    "address" : "str",            (string, optional) The bitcoin address validated
    "scriptPubKey" : "hex",       (string, optional) The hex-encoded scriptPubKey generated by the address
    "isscript" : true|false,      (boolean, optional) If the key is a script
    "iswitness" : true|false,     (boolean, optional) If the address is a witness address
    "witness_version" : n,        (numeric, optional) The version number of the witness program
    "witness_program" : "hex",    (string, optional) The hex value of the witness program
    "error" : "str",              (string, optional) Error message, if any
    "error_locations" : [         (json array, optional) Indices of likely error locations in address, if known (e.g. Bech32 errors)
      n,                          (numeric) index of a potential error
      ...
    ]
  }

verifymessage

Argument #1-address

Type: string, Required

Description: The bitcoin address to use for the signature.

Argument #2-signature

Type: string, Required

Description: The signature provided by the signer in base 64 encoding (see signmessage).

Argument #3-message

Type: string, Required

Description: The message that was signed.

Result

Type: boolean

Description: If the signature is verified or not.

abandontransaction

It can be used to replace "stuck" or evicted transactions.

It only works on transactions which are not included in a block and are not currently in the mempool.

It has no effect on transactions which are already abandoned.

Argument #1-txid

Type: string, Required

Description: The transaction id

Result

  null    (json null)

abortrescan

. by an importprivkey call.

Note: Use "getwalletinfo" to query the scanning progress.

Argument: none

Result

Type: boolean

Description: Whether the abort was successful

addmultisigaddress

Requires a new wallet backup.

Each key is a Bitcoin address or hex-encoded public key.

This functionality is only intended for use with non-watchonly addresses.

See importaddress for watchonly p2sh address support.

If 'label' is specified, assign address to that label.

Note: This command is only compatible with legacy wallets.

Argument #1-nrequired

Type: number (int), Required

Description: The number of required signatures out of the n keys or addresses.

Argument #2-keys

Type: json array, Required

Description: The bitcoin addresses or hex-encoded public keys

     [
       "key",      (string) bitcoin address or hex-encoded public key
       ...
     ]

Argument #3-label

Type: string, Optional

Description: A label to assign the addresses to.

Argument #4-address_type

Type: string, Optional
Default=set by -addresstype

Description: The address type to use. Options are "legacy", "p2sh-segwit", and "bech32".

Result

  {                            (json object)
    "address" : "str",         (string) The value of the new multisig address
    "redeemScript" : "hex",    (string) The string value of the hex-encoded redemption script
    "descriptor" : "str",      (string) The descriptor for this multisig
    "warnings" : [             (json array, optional) Any warnings resulting from the creation of this multisig
      "str",                   (string)
      ...
    ]
  }

backupwallet

Argument #1-destination

Type: string, Required

Description: The destination directory or file

Result

  null    (json null)

bumpfee

An opt-in RBF transaction with the given txid must be in the wallet.

The command will pay the additional fee by reducing change outputs or adding inputs when necessary.

It may add a new change output if one does not already exist.

All inputs in the original transaction will be included in the replacement transaction.

The command will fail if the wallet or mempool contains a transaction that spends one of T's outputs.

By default, the new fee will be calculated automatically using the estimatesmartfee RPC.

The user can specify a confirmation target for estimatesmartfee.

Alternatively, the user can specify a fee rate in sat/vB for the new transaction.

At a minimum, the new fee rate must be high enough to pay an additional new relay fee (incrementalfee returned by getnetworkinfo) to enter the node's mempool.

  • WARNING: before version 0.21, fee_rate was in BTC/kvB. As of 0.21, fee_rate is in sat/vB. *

Argument #1-txid

Type: string, Required

Description: The txid to be bumped

Argument #2-options

Type: json object, Optional

Description: Options object that can be used to pass named arguments, listed below.

   Specify a fee rate in sat/vB instead of relying on the built-in fee estimator.
   Must be at least 1.000 sat/vB higher than the current transaction fee rate.
   WARNING: before version 0.21, fee_rate was in BTC/kvB. As of 0.21, fee_rate is in sat/vB.
   
   marked bip-125 replaceable. If true, the sequence numbers in the transaction will
   be left unchanged from the original. If false, any input sequence numbers in the
   original transaction that were less than 0xfffffffe will be increased to 0xfffffffe
   so the new transaction will not be explicitly bip-125 replaceable (though it may
   still be replaceable in practice, for example if it has unconfirmed ancestors which
   are replaceable).
   
   "unset"
   "economical"
   "conservative"
   Each key may only appear once, i.e. there can only be one 'data' output, and no address may be duplicated.
   At least one output of either type must be specified.
   Cannot be provided if 'original_change_index' is specified.
     [
       {                       (json object)
         "address": amount,    (numeric or string, required) A key-value pair. The key (string) is the bitcoin address,
                               the value (float or string) is the amount in BTC
         ...
       },
       {                       (json object)
         "data": "hex",        (string, required) A key-value pair. The key must be "data", the value is hex-encoded data
       },
       ...
     ]

Result

  {                    (json object)
    "txid" : "hex",    (string) The id of the new transaction.
    "origfee" : n,     (numeric) The fee of the replaced transaction.
    "fee" : n,         (numeric) The fee of the new transaction.
    "errors" : [       (json array) Errors encountered during processing (may be empty).
      "str",           (string)
      ...
    ]
  }

createwallet

Argument #1-wallet_name

Type: string, Required

Description: The name for the new wallet. If this is a path, the wallet will be created at the path location.

Argument #2-disable_private_keys

Type: boolean, Optional
Default=false

Description: Disable the possibility of private keys (only watchonlys are possible in this mode).

Argument #3-blank

Type: boolean, Optional
Default=false

Description: Create a blank wallet. A blank wallet has no keys or HD seed. One can be set using sethdseed.

Argument #4-passphrase

Type: string, Optional

Description: Encrypt the wallet with this passphrase.

Argument #5-avoid_reuse

Type: boolean, Optional
Default=false

Description: Keep track of coin reuse, and treat dirty and clean coins differently with privacy considerations in mind.

Argument #6-descriptors

Type: boolean, Optional
Default=true

Description: Create a native descriptor wallet. The wallet will use descriptors internally to handle address creation. Setting to "false" will create a legacy wallet; This is only possible with the -deprecatedrpc=create_bdb setting because, the legacy wallet type is being deprecated and support for creating and opening legacy wallets will be removed in the future.

Argument #7-load_on_startup

Type: boolean, Optional

Description: Save wallet name to persistent settings and load on startup. True to add wallet to startup list, false to remove, null to leave unchanged.

Argument #8-external_signer

Type: boolean, Optional
Default=false

Description: Use an external signer such as a hardware wallet. Requires -signer to be configured. Wallet creation will fail if keys cannot be fetched. Requires disable_private_keys and descriptors set to true.

Result

  {                    (json object)
    "name" : "str",    (string) The wallet name if created successfully. If the wallet was created using a full path, the wallet_name will be the full path.
    "warnings" : [     (json array, optional) Warning messages, if any, related to creating and loading the wallet.
      "str",           (string)
      ...
    ]
  }

dumpprivkey

Then the importprivkey can be used with this output Note: This command is only compatible with legacy wallets.

Argument #1-address

Type: string, Required

Description: The bitcoin address for the private key

Result

Type: string (hex)

Description: The private key

dumpwallet

This does not allow overwriting existing files.

Imported scripts are included in the dumpfile, but corresponding BIP173 addresses, etc. may not be added automatically by importwallet.

Note that if your wallet contains keys which are not derived from your HD seed (e.g. imported keys), these are not covered by only backing up the seed itself, and must be backed up too (e.g. ensure you back up the whole dumpfile).

Note: This command is only compatible with legacy wallets.

Argument #1-filename

Type: string, Required

Description: The filename with path (absolute path recommended)

Result

  {                        (json object)
    "filename" : "str"     (string) The filename with full absolute path
  }

encryptwallet

This is for first time encryption.

After this, any calls that interact with private keys such as sending or signing will require the passphrase to be set prior the making these calls.

Use the walletpassphrase call for this, and then walletlock call.

If the wallet is already encrypted, use the walletpassphrasechange call.

** IMPORTANT ** For security reasons, the encryption process will generate a new HD seed, resulting in the creation of a fresh set of active descriptors. Therefore, it is crucial to securely back up the newly generated wallet file using the backupwallet RPC.

Argument #1-passphrase

Type: string, Required

Description: The pass phrase to encrypt the wallet with. It must be at least 1 character, but should be long.

Result

Type: string (hex)

Description: A string with further instructions

getaddressesbylabel

Argument #1-label

Type: string, Required

Description: The label.

Result

  {                         (json object) json object with addresses as keys
    "address" : {           (json object) json object with information about address
      "purpose" : "str"     (string) Purpose of address ("send" for sending address, "receive" for receiving address)
    },
    ...
  }

getaddressinfo

Some of the information will only be present if the address is in the active wallet.

Argument #1-address

Type: string, Required

Description: The bitcoin address for which to get information.

Result

  {                                   (json object)
    "address" : "str",                (string) The bitcoin address validated.
    "scriptPubKey" : "hex",           (string) The hex-encoded scriptPubKey generated by the address.
    "ismine" : true|false,            (boolean) If the address is yours.
    "iswatchonly" : true|false,       (boolean) If the address is watchonly.
    "solvable" : true|false,          (boolean) If we know how to spend coins sent to this address, ignoring the possible lack of private keys.
    "desc" : "str",                   (string, optional) A descriptor for spending coins sent to this address (only when solvable).
    "parent_desc" : "str",            (string, optional) The descriptor used to derive this address if this is a descriptor wallet
    "isscript" : true|false,          (boolean) If the key is a script.
    "ischange" : true|false,          (boolean) If the address was used for change output.
    "iswitness" : true|false,         (boolean) If the address is a witness address.
    "witness_version" : n,            (numeric, optional) The version number of the witness program.
    "witness_program" : "hex",        (string, optional) The hex value of the witness program.
    "script" : "str",                 (string, optional) The output script type. Only if isscript is true and the redeemscript is known. Possible
                                      types: nonstandard, pubkey, pubkeyhash, scripthash, multisig, nulldata, witness_v0_keyhash,
                                      witness_v0_scripthash, witness_unknown.
    "hex" : "hex",                    (string, optional) The redeemscript for the p2sh address.
    "pubkeys" : [                     (json array, optional) Array of pubkeys associated with the known redeemscript (only if script is multisig).
      "str",                          (string)
      ...
    ],
    "sigsrequired" : n,               (numeric, optional) The number of signatures required to spend multisig output (only if script is multisig).
    "pubkey" : "hex",                 (string, optional) The hex value of the raw public key for single-key addresses (possibly embedded in P2SH or P2WSH).
    "embedded" : {                    (json object, optional) Information about the address embedded in P2SH or P2WSH, if relevant and known.
      ...                             Includes all getaddressinfo output fields for the embedded address, excluding metadata (timestamp, hdkeypath, hdseedid)
                                      and relation to the wallet (ismine, iswatchonly).
    },
    "iscompressed" : true|false,      (boolean, optional) If the pubkey is compressed.
    "timestamp" : xxx,                (numeric, optional) The creation time of the key, if available, expressed in UNIX epoch time.
    "hdkeypath" : "str",              (string, optional) The HD keypath, if the key is HD and available.
    "hdseedid" : "hex",               (string, optional) The Hash160 of the HD seed.
    "hdmasterfingerprint" : "hex",    (string, optional) The fingerprint of the master key.
    "labels" : [                      (json array) Array of labels associated with the address. Currently limited to one label but returned
                                      as an array to keep the API stable if multiple labels are enabled in the future.
      "str",                          (string) Label name (defaults to "").
      ...
    ]
  }

getbalance

The available balance is what the wallet considers currently spendable, and is thus affected by options which limit spendability such as -spendzeroconfchange.

Argument #1-dummy

Type: string, Optional

Description: Remains for backward compatibility. Must be excluded or set to "*".

Argument #2-minconf

Type: number (int), Optional
Default=0

Description: Only include transactions confirmed at least this many times.

Argument #3-include_watchonly

Type: boolean, Optional

Description: Also include balance in watch-only addresses (see 'importaddress')

Argument #4-avoid_reuse

Type: boolean, Optional
Default=true

Description: (only available if avoid_reuse wallet flag is set) Do not include balance in dirty outputs; addresses are considered dirty if they have previously been used in a transaction.

Result

Type: number (int)

Description: The total amount in BTC received for this wallet.

getbalances

Argument: none

Result

  {                               (json object)
    "mine" : {                    (json object) balances from outputs that the wallet can sign
      "trusted" : n,              (numeric) trusted balance (outputs created by the wallet or confirmed outputs)
      "untrusted_pending" : n,    (numeric) untrusted pending balance (outputs created by others that are in the mempool)
      "immature" : n,             (numeric) balance from immature coinbase outputs
      "used" : n                  (numeric, optional) (only present if avoid_reuse is set) balance from coins sent to addresses that were previously spent from (potentially privacy violating)
    },
    "watchonly" : {               (json object, optional) watchonly balances (not present if wallet does not watch anything)
      "trusted" : n,              (numeric) trusted balance (outputs created by the wallet or confirmed outputs)
      "untrusted_pending" : n,    (numeric) untrusted pending balance (outputs created by others that are in the mempool)
      "immature" : n              (numeric) balance from immature coinbase outputs
    },
    "lastprocessedblock" : {      (json object) hash and height of the block this information was generated on
      "hash" : "hex",             (string) hash of the block this information was generated on
      "height" : n                (numeric) height of the block this information was generated on
    }
  }

getnewaddress

If 'label' is specified, it is added to the address book so payments received with the address will be associated with 'label'.

Argument #1-label

Type: string, Optional
Default=""

Description: The label name for the address to be linked to. It can also be set to the empty string "" to represent the default label. The label does not need to exist, it will be created if there is no label by the given name.

Argument #2-address_type

Type: string, Optional
Default=set by -addresstype

Description: The address type to use. Options are "legacy", "p2sh-segwit", "bech32", and "bech32m".

Result

Type: string (hex)

Description: The new bitcoin address

getrawchangeaddress

This is for use with raw transactions, NOT normal use.

Argument #1-address_type

Type: string, Optional
Default=set by -changetype

Description: The address type to use. Options are "legacy", "p2sh-segwit", "bech32", and "bech32m".

Result

Type: string (hex)

Description: The address

getreceivedbyaddress

Argument #1-address

Type: string, Required

Description: The bitcoin address for transactions.

Argument #2-minconf

Type: number (int), Optional
Default=1

Description: Only include transactions confirmed at least this many times.

Argument #3-include_immature_coinbase

Type: boolean, Optional
Default=false

Description: Include immature coinbase transactions.

Result

Type: number (int)

Description: The total amount in BTC received at this address.

getreceivedbylabel

Argument #1-label

Type: string, Required

Description: The selected label, may be the default label using "".

Argument #2-minconf

Type: number (int), Optional
Default=1

Description: Only include transactions confirmed at least this many times.

Argument #3-include_immature_coinbase

Type: boolean, Optional
Default=false

Description: Include immature coinbase transactions.

Result

Type: number (int)

Description: The total amount in BTC received for this label.

gettransaction

Argument #1-txid

Type: string, Required

Description: The transaction id

Argument #2-include_watchonly

Type: boolean, Optional

Description: Whether to include watch-only addresses in balance calculation and details[]

Argument #3-verbose

Type: boolean, Optional
Default=false

Description: Whether to include a decoded field containing the decoded transaction (equivalent to RPC decoderawtransaction)

Result

  {                                          (json object)
    "amount" : n,                            (numeric) The amount in BTC
    "fee" : n,                               (numeric, optional) The amount of the fee in BTC. This is negative and only available for the
                                             'send' category of transactions.
    "confirmations" : n,                     (numeric) The number of confirmations for the transaction. Negative confirmations means the
                                             transaction conflicted that many blocks ago.
    "generated" : true|false,                (boolean, optional) Only present if the transaction's only input is a coinbase one.
    "trusted" : true|false,                  (boolean, optional) Whether we consider the transaction to be trusted and safe to spend from.
                                             Only present when the transaction has 0 confirmations (or negative confirmations, if conflicted).
    "blockhash" : "hex",                     (string, optional) The block hash containing the transaction.
    "blockheight" : n,                       (numeric, optional) The block height containing the transaction.
    "blockindex" : n,                        (numeric, optional) The index of the transaction in the block that includes it.
    "blocktime" : xxx,                       (numeric, optional) The block time expressed in UNIX epoch time.
    "txid" : "hex",                          (string) The transaction id.
    "wtxid" : "hex",                         (string) The hash of serialized transaction, including witness data.
    "walletconflicts" : [                    (json array) Conflicting transaction ids.
      "hex",                                 (string) The transaction id.
      ...
    ],
    "replaced_by_txid" : "hex",              (string, optional) Only if 'category' is 'send'. The txid if this tx was replaced.
    "replaces_txid" : "hex",                 (string, optional) Only if 'category' is 'send'. The txid if this tx replaces another.
    "to" : "str",                            (string, optional) If a comment to is associated with the transaction.
    "time" : xxx,                            (numeric) The transaction time expressed in UNIX epoch time.
    "timereceived" : xxx,                    (numeric) The time received expressed in UNIX epoch time.
    "comment" : "str",                       (string, optional) If a comment is associated with the transaction, only present if not empty.
    "bip125-replaceable" : "str",            (string) ("yes|no|unknown") Whether this transaction signals BIP125 replaceability or has an unconfirmed ancestor signaling BIP125 replaceability.
                                             May be unknown for unconfirmed transactions not in the mempool because their unconfirmed ancestors are unknown.
    "parent_descs" : [                       (json array, optional) Only if 'category' is 'received'. List of parent descriptors for the scriptPubKey of this coin.
      "str",                                 (string) The descriptor string.
      ...
    ],
    "details" : [                            (json array)
      {                                      (json object)
        "involvesWatchonly" : true|false,    (boolean, optional) Only returns true if imported addresses were involved in transaction.
        "address" : "str",                   (string, optional) The bitcoin address involved in the transaction.
        "category" : "str",                  (string) The transaction category.
                                             "send"                  Transactions sent.
                                             "receive"               Non-coinbase transactions received.
                                             "generate"              Coinbase transactions received with more than 100 confirmations.
                                             "immature"              Coinbase transactions received with 100 or fewer confirmations.
                                             "orphan"                Orphaned coinbase transactions received.
        "amount" : n,                        (numeric) The amount in BTC
        "label" : "str",                     (string, optional) A comment for the address/transaction, if any
        "vout" : n,                          (numeric) the vout value
        "fee" : n,                           (numeric, optional) The amount of the fee in BTC. This is negative and only available for the
                                             'send' category of transactions.
        "abandoned" : true|false,            (boolean) 'true' if the transaction has been abandoned (inputs are respendable).
        "parent_descs" : [                   (json array, optional) Only if 'category' is 'received'. List of parent descriptors for the scriptPubKey of this coin.
          "str",                             (string) The descriptor string.
          ...
        ]
      },
      ...
    ],
    "hex" : "hex",                           (string) Raw data for transaction
    "decoded" : {                            (json object, optional) The decoded transaction (only present when `verbose` is passed)
      ...                                    Equivalent to the RPC decoderawtransaction method, or the RPC getrawtransaction method when `verbose` is passed.
    },
    "lastprocessedblock" : {                 (json object) hash and height of the block this information was generated on
      "hash" : "hex",                        (string) hash of the block this information was generated on
      "height" : n                           (numeric) height of the block this information was generated on
    }
  }

getunconfirmedbalance

ine.untrusted_pending

Argument: none

Result

Type: number (int)

Description: The balance

getwalletinfo

Argument: none

Result

  {                                         (json object)
    "walletname" : "str",                   (string) the wallet name
    "walletversion" : n,                    (numeric) the wallet version
    "format" : "str",                       (string) the database format (bdb or sqlite)
    "balance" : n,                          (numeric) DEPRECATED. Identical to getbalances().mine.trusted
    "unconfirmed_balance" : n,              (numeric) DEPRECATED. Identical to getbalances().mine.untrusted_pending
    "immature_balance" : n,                 (numeric) DEPRECATED. Identical to getbalances().mine.immature
    "txcount" : n,                          (numeric) the total number of transactions in the wallet
    "keypoololdest" : xxx,                  (numeric, optional) the UNIX epoch time of the oldest pre-generated key in the key pool. Legacy wallets only.
    "keypoolsize" : n,                      (numeric) how many new keys are pre-generated (only counts external keys)
    "keypoolsize_hd_internal" : n,          (numeric, optional) how many new keys are pre-generated for internal use (used for change outputs, only appears if the wallet is using this feature, otherwise external keys are used)
    "unlocked_until" : xxx,                 (numeric, optional) the UNIX epoch time until which the wallet is unlocked for transfers, or 0 if the wallet is locked (only present for passphrase-encrypted wallets)
    "paytxfee" : n,                         (numeric) the transaction fee configuration, set in BTC/kvB
    "hdseedid" : "hex",                     (string, optional) the Hash160 of the HD seed (only present when HD is enabled)
    "private_keys_enabled" : true|false,    (boolean) false if privatekeys are disabled for this wallet (enforced watch-only wallet)
    "avoid_reuse" : true|false,             (boolean) whether this wallet tracks clean/dirty coins in terms of reuse
    "scanning" : {                          (json object) current scanning details, or false if no scan is in progress
      "duration" : n,                       (numeric) elapsed seconds since scan start
      "progress" : n                        (numeric) scanning progress percentage [0.0, 1.0]
    },
    "descriptors" : true|false,             (boolean) whether this wallet uses descriptors for scriptPubKey management
    "external_signer" : true|false,         (boolean) whether this wallet is configured to use an external signer such as a hardware wallet
    "blank" : true|false,                   (boolean) Whether this wallet intentionally does not contain any keys, scripts, or descriptors
    "birthtime" : xxx,                      (numeric, optional) The start time for blocks scanning. It could be modified by (re)importing any descriptor with an earlier timestamp.
    "lastprocessedblock" : {                (json object) hash and height of the block this information was generated on
      "hash" : "hex",                       (string) hash of the block this information was generated on
      "height" : n                          (numeric) height of the block this information was generated on
    }
  }

importaddress

Requires a new wallet backup.

Note: This call can take over an hour to complete if rescan is true, during that time, other rpc calls may report that the imported address exists but related transactions are still missing, leading to temporarily incorrect/bogus balances and unspent outputs until rescan completes.

The rescan parameter can be set to false if the key was never used to create transactions. If it is set to false, but the key was used to create transactions, rescanblockchain needs to be called with the appropriate block range.

If you have the full public key, you should call importpubkey instead of this.

Hint: use importmulti to import more than one address.

Note: If you import a non-standard raw script in hex form, outputs sending to it will be treated as change, and not show up in many RPCs.

Note: Use "getwalletinfo" to query the scanning progress.

Note: This command is only compatible with legacy wallets. Use "importdescriptors" for descriptor wallets.

Argument #1-address

Type: string, Required

Description: The Bitcoin address (or hex-encoded script)

Argument #2-label

Type: string, Optional
Default=""

Description: An optional label

Argument #3-rescan

Type: boolean, Optional
Default=true

Description: Scan the chain and mempool for wallet transactions.

Argument #4-p2sh

Type: boolean, Optional
Default=false

Description: Add the P2SH version of the script as well

Result

  null    (json null)

importdescriptors

This will trigger a rescan of the blockchain based on the earliest timestamp of all descriptors being imported. Requires a new wallet backup.

Note: This call can take over an hour to complete if using an early timestamp; during that time, other rpc calls may report that the imported keys, addresses or scripts exist but related transactions are still missing.

The rescan is significantly faster if block filters are available (using startup option "-blockfilterindex=1").

Argument #1-requests

Type: json array, Required

Description: Data to be imported

     [
       {                                    (json object)
         "desc": "str",                     (string, required) Descriptor to import.
         "active": bool,                    (boolean, optional, default=false) Set this descriptor to be the active descriptor for the corresponding output type/externality
         "range": n or [n,n],               (numeric or array, optional) If a ranged descriptor is used, this specifies the end or the range (in the form [begin,end]) to import
         "next_index": n,                   (numeric, optional) If a ranged descriptor is set to active, this specifies the next index to generate addresses from
         "timestamp": timestamp | "now",    (integer / string, required) Time from which to start rescanning the blockchain for this descriptor, in UNIX epoch time
                                            Use the string "now" to substitute the current synced blockchain time.
                                            "now" can be specified to bypass scanning, for outputs which are known to never have been used, and
                                            0 can be specified to scan the entire blockchain. Blocks up to 2 hours before the earliest timestamp
                                            of all descriptors being imported will be scanned as well as the mempool.
         "internal": bool,                  (boolean, optional, default=false) Whether matching outputs should be treated as not incoming payments (e.g. change)
         "label": "str",                    (string, optional, default="") Label to assign to the address, only allowed with internal=false. Disabled for ranged descriptors
       },
       ...
     ]

Result

  [                              (json array) Response is an array with the same size as the input that has the execution result
    {                            (json object)
      "success" : true|false,    (boolean)
      "warnings" : [             (json array, optional)
        "str",                   (string)
        ...
      ],
      "error" : {                (json object, optional)
        ...                      JSONRPC error
      }
    },
    ...
  ]

importmulti

Requires a new wallet backup.

If an address/script is imported without all of the private keys required to spend from that address, it will be watchonly. The 'watchonly' option must be set to true in this case or a warning will be returned.

Conversely, if all the private keys are provided and the address/script is spendable, the watchonly option must be set to false, or a warning will be returned.

Note: This call can take over an hour to complete if rescan is true, during that time, other rpc calls may report that the imported keys, addresses or scripts exist but related transactions are still missing.

The rescan parameter can be set to false if the key was never used to create transactions. If it is set to false, but the key was used to create transactions, rescanblockchain needs to be called with the appropriate block range.

Note: Use "getwalletinfo" to query the scanning progress.

Note: This command is only compatible with legacy wallets. Use "importdescriptors" for descriptor wallets.

Argument #1-requests

Type: json array, Required

Description: Data to be imported "range": n or [n,n], (numeric or array, optional) If a ranged descriptor is used, this specifies the end or the range (in the form [begin,end]) to import "internal": bool, (boolean, optional, default=false) Stating whether matching outputs should be treated as not incoming payments (also known as change) "watchonly": bool, (boolean, optional, default=false) Stating whether matching outputs should be considered watchonly. "label": "str", (string, optional, default="") Label to assign to the address, only allowed with internal=false "keypool": bool, (boolean, optional, default=false) Stating whether imported public keys should be added to the keypool for when users request new addresses. Only allowed when wallet private keys are disabled }, ... ]

     [
       {                                                            (json object)
         "desc": "str",                                             (string, optional) Descriptor to import. If using descriptor, do not also provide address/scriptPubKey, scripts, or pubkeys
         "scriptPubKey": "<script>" | { "address":"<address>" },    (string / json, required) Type of scriptPubKey (string for script, json for address). Should not be provided if using a descriptor
         "timestamp": timestamp | "now",                            (integer / string, required) Creation time of the key expressed in UNIX epoch time,
                                                                    or the string "now" to substitute the current synced blockchain time. The timestamp of the oldest
                                                                    key will determine how far back blockchain rescans need to begin for missing wallet transactions.
                                                                    "now" can be specified to bypass scanning, for keys which are known to never have been used, and
                                                                    0 can be specified to scan the entire blockchain. Blocks up to 2 hours before the earliest key
                                                                    creation time of all keys being imported by the importmulti call will be scanned.
         "redeemscript": "str",                                     (string, optional) Allowed only if the scriptPubKey is a P2SH or P2SH-P2WSH address/scriptPubKey
         "witnessscript": "str",                                    (string, optional) Allowed only if the scriptPubKey is a P2SH-P2WSH or P2WSH address/scriptPubKey
         "pubkeys": [                                               (json array, optional, default=[]) Array of strings giving pubkeys to import. They must occur in P2PKH or P2WPKH scripts. They are not required when the private key is also provided (see the "keys" argument).
           "pubKey",                                                (string)
           ...
         ],
         "keys": [                                                  (json array, optional, default=[]) Array of strings giving private keys to import. The corresponding public keys must occur in the output or redeemscript.
           "key",                                                   (string)
           ...
         ],

Argument #2-options

Type: json object, Optional

Description: Options object that can be used to pass named arguments, listed below.

Result

  [                              (json array) Response is an array with the same size as the input that has the execution result
    {                            (json object)
      "success" : true|false,    (boolean)
      "warnings" : [             (json array, optional)
        "str",                   (string)
        ...
      ],
      "error" : {                (json object, optional)
        ...                      JSONRPC error
      }
    },
    ...
  ]

importprivkey

Requires a new wallet backup.

Hint: use importmulti to import more than one private key.

Note: This call can take over an hour to complete if rescan is true, during that time, other rpc calls may report that the imported key exists but related transactions are still missing, leading to temporarily incorrect/bogus balances and unspent outputs until rescan completes.

The rescan parameter can be set to false if the key was never used to create transactions. If it is set to false, but the key was used to create transactions, rescanblockchain needs to be called with the appropriate block range.

Note: Use "getwalletinfo" to query the scanning progress.

Note: This command is only compatible with legacy wallets. Use "importdescriptors" with "combo(X)" for descriptor wallets.

Argument #1-privkey

Type: string, Required

Description: The private key (see dumpprivkey)

Argument #2-label

Type: string, Optional

Description: An optional label

Argument #3-rescan

Type: boolean, Optional
Default=true

Description: Scan the chain and mempool for wallet transactions.

Result

  null    (json null)

importprunedfunds

Corresponding address or script must previously be included in wallet. Aimed towards pruned wallets. The end-user is responsible to import additional transactions that subsequently spend the imported outputs or rescan after the point in the blockchain the transaction is included.

Argument #1-rawtransaction

Type: string, Required

Description: A raw transaction in hex funding an already-existing address in wallet

Argument #2-txoutproof

Type: string, Required

Description: The hex output from gettxoutproof that contains the transaction

Result

  null    (json null)

importpubkey

Requires a new wallet backup.

Hint: use importmulti to import more than one public key.

Note: This call can take over an hour to complete if rescan is true, during that time, other rpc calls may report that the imported pubkey exists but related transactions are still missing, leading to temporarily incorrect/bogus balances and unspent outputs until rescan completes.

The rescan parameter can be set to false if the key was never used to create transactions. If it is set to false, but the key was used to create transactions, rescanblockchain needs to be called with the appropriate block range.

Note: Use "getwalletinfo" to query the scanning progress.

Note: This command is only compatible with legacy wallets. Use "importdescriptors" with "combo(X)" for descriptor wallets.

Argument #1-pubkey

Type: string, Required

Description: The hex-encoded public key

Argument #2-label

Type: string, Optional
Default=""

Description: An optional label

Argument #3-rescan

Type: boolean, Optional
Default=true

Description: Scan the chain and mempool for wallet transactions.

Result

  null    (json null)

importwallet

Requires a new wallet backup to include imported keys.

Note: Blockchain and Mempool will be rescanned after a successful import. Use "getwalletinfo" to query the scanning progress.

Note: This command is only compatible with legacy wallets.

Argument #1-filename

Type: string, Required

Description: The wallet file

Result

  null    (json null)

keypoolrefill

Requires wallet passphrase to be set with walletpassphrase call if wallet is encrypted.

Argument #1-newsize

Type: number (int), Optional

Description: The new keypool size

Result

  null    (json null)

listaddressgroupings

Argument: none

Result

  [               (json array)
    [             (json array)
      [           (json array)
        "str",    (string) The bitcoin address
        n,        (numeric) The amount in BTC
        "str"     (string, optional) The label
      ],
      ...
    ],
    ...
  ]

listdescriptors

Argument #1-private

Type: boolean, Optional
Default=false

Description: Show private descriptors.

Result

  {                                 (json object)
    "wallet_name" : "str",          (string) Name of wallet this operation was performed on
    "descriptors" : [               (json array) Array of descriptor objects (sorted by descriptor string representation)
      {                             (json object)
        "desc" : "str",             (string) Descriptor string representation
        "timestamp" : n,            (numeric) The creation time of the descriptor
        "active" : true|false,      (boolean) Whether this descriptor is currently used to generate new addresses
        "internal" : true|false,    (boolean, optional) True if this descriptor is used to generate change addresses. False if this descriptor is used to generate receiving addresses; defined only for active descriptors
        "range" : [                 (json array, optional) Defined only for ranged descriptors
          n,                        (numeric) Range start inclusive
          n                         (numeric) Range end inclusive
        ],
        "next" : n,                 (numeric, optional) Same as next_index field. Kept for compatibility reason.
        "next_index" : n            (numeric, optional) The next index to generate addresses from; defined only for ranged descriptors
      },
      ...
    ]
  }

listlabels

Argument #1-purpose

Type: string, Optional

Description: Address purpose to list labels for ('send','receive'). An empty string is the same as not providing this argument.

Result

  [           (json array)
    "str",    (string) Label name
    ...
  ]

listlockunspent

See the lockunspent call to lock and unlock transactions for spending.

Argument: none

Result

  [                      (json array)
    {                    (json object)
      "txid" : "hex",    (string) The transaction id locked
      "vout" : n         (numeric) The vout value
    },
    ...
  ]

listreceivedbyaddress

Argument #1-minconf

Type: number (int), Optional
Default=1

Description: The minimum number of confirmations before payments are included.

Argument #2-include_empty

Type: boolean, Optional
Default=false

Description: Whether to include addresses that haven't received any payments.

Argument #3-include_watchonly

Type: boolean, Optional

Description: Whether to include watch-only addresses (see 'importaddress')

Argument #4-address_filter

Type: string, Optional

Description: If present and non-empty, only return information on this address.

Argument #5-include_immature_coinbase

Type: boolean, Optional
Default=false

Description: Include immature coinbase transactions.

Result

  [                                        (json array)
    {                                      (json object)
      "involvesWatchonly" : true|false,    (boolean, optional) Only returns true if imported addresses were involved in transaction
      "address" : "str",                   (string) The receiving address
      "amount" : n,                        (numeric) The total amount in BTC received by the address
      "confirmations" : n,                 (numeric) The number of confirmations of the most recent transaction included
      "label" : "str",                     (string) The label of the receiving address. The default label is ""
      "txids" : [                          (json array)
        "hex",                             (string) The ids of transactions received with the address
        ...
      ]
    },
    ...
  ]

listreceivedbylabel

Argument #1-minconf

Type: number (int), Optional
Default=1

Description: The minimum number of confirmations before payments are included.

Argument #2-include_empty

Type: boolean, Optional
Default=false

Description: Whether to include labels that haven't received any payments.

Argument #3-include_watchonly

Type: boolean, Optional

Description: Whether to include watch-only addresses (see 'importaddress')

Argument #4-include_immature_coinbase

Type: boolean, Optional
Default=false

Description: Include immature coinbase transactions.

Result

  [                                        (json array)
    {                                      (json object)
      "involvesWatchonly" : true|false,    (boolean, optional) Only returns true if imported addresses were involved in transaction
      "amount" : n,                        (numeric) The total amount received by addresses with this label
      "confirmations" : n,                 (numeric) The number of confirmations of the most recent transaction included
      "label" : "str"                      (string) The label of the receiving address. The default label is ""
    },
    ...
  ]

listsinceblock

If "blockhash" is no longer a part of the main chain, transactions from the fork point onward are included.

Additionally, if include_removed is set, transactions affecting the wallet which were removed are returned in the "removed" array.

Argument #1-blockhash

Type: string, Optional

Description: If set, the block hash to list transactions since, otherwise list all transactions.

Argument #2-target_confirmations

Type: number (int), Optional
Default=1

Description: Return the nth block hash from the main chain. e.g. 1 would mean the best block hash. Note: this is not used as a filter, but only affects [lastblock] in the return value

Argument #3-include_watchonly

Type: boolean, Optional

Description: Include transactions to watch-only addresses (see 'importaddress')

Argument #4-include_removed

Type: boolean, Optional
Default=true

Description: Show transactions that were removed due to a reorg in the "removed" array (not guaranteed to work on pruned nodes)

Argument #5-include_change

Type: boolean, Optional
Default=false

Description: Also add entries for change outputs.

Argument #6-label

Type: string, Optional

Description: Return only incoming transactions paying to addresses with the specified label.

Result

  {                                          (json object)
    "transactions" : [                       (json array)
      {                                      (json object)
        "involvesWatchonly" : true|false,    (boolean, optional) Only returns true if imported addresses were involved in transaction.
        "address" : "str",                   (string, optional) The bitcoin address of the transaction (not returned if the output does not have an address, e.g. OP_RETURN null data).
        "category" : "str",                  (string) The transaction category.
                                             "send"                  Transactions sent.
                                             "receive"               Non-coinbase transactions received.
                                             "generate"              Coinbase transactions received with more than 100 confirmations.
                                             "immature"              Coinbase transactions received with 100 or fewer confirmations.
                                             "orphan"                Orphaned coinbase transactions received.
        "amount" : n,                        (numeric) The amount in BTC. This is negative for the 'send' category, and is positive
                                             for all other categories
        "vout" : n,                          (numeric) the vout value
        "fee" : n,                           (numeric, optional) The amount of the fee in BTC. This is negative and only available for the
                                             'send' category of transactions.
        "confirmations" : n,                 (numeric) The number of confirmations for the transaction. Negative confirmations means the
                                             transaction conflicted that many blocks ago.
        "generated" : true|false,            (boolean, optional) Only present if the transaction's only input is a coinbase one.
        "trusted" : true|false,              (boolean, optional) Whether we consider the transaction to be trusted and safe to spend from.
                                             Only present when the transaction has 0 confirmations (or negative confirmations, if conflicted).
        "blockhash" : "hex",                 (string, optional) The block hash containing the transaction.
        "blockheight" : n,                   (numeric, optional) The block height containing the transaction.
        "blockindex" : n,                    (numeric, optional) The index of the transaction in the block that includes it.
        "blocktime" : xxx,                   (numeric, optional) The block time expressed in UNIX epoch time.
        "txid" : "hex",                      (string) The transaction id.
        "wtxid" : "hex",                     (string) The hash of serialized transaction, including witness data.
        "walletconflicts" : [                (json array) Conflicting transaction ids.
          "hex",                             (string) The transaction id.
          ...
        ],
        "replaced_by_txid" : "hex",          (string, optional) Only if 'category' is 'send'. The txid if this tx was replaced.
        "replaces_txid" : "hex",             (string, optional) Only if 'category' is 'send'. The txid if this tx replaces another.
        "to" : "str",                        (string, optional) If a comment to is associated with the transaction.
        "time" : xxx,                        (numeric) The transaction time expressed in UNIX epoch time.
        "timereceived" : xxx,                (numeric) The time received expressed in UNIX epoch time.
        "comment" : "str",                   (string, optional) If a comment is associated with the transaction, only present if not empty.
        "bip125-replaceable" : "str",        (string) ("yes|no|unknown") Whether this transaction signals BIP125 replaceability or has an unconfirmed ancestor signaling BIP125 replaceability.
                                             May be unknown for unconfirmed transactions not in the mempool because their unconfirmed ancestors are unknown.
        "parent_descs" : [                   (json array, optional) Only if 'category' is 'received'. List of parent descriptors for the scriptPubKey of this coin.
          "str",                             (string) The descriptor string.
          ...
        ],
        "abandoned" : true|false,            (boolean) 'true' if the transaction has been abandoned (inputs are respendable).
        "label" : "str"                      (string, optional) A comment for the address/transaction, if any
      },
      ...
    ],
    "removed" : [                            (json array, optional) <structure is the same as "transactions" above, only present if include_removed=true>
                                             Note: transactions that were re-added in the active chain will appear as-is in this array, and may thus have a positive confirmation count.
      ...
    ],
    "lastblock" : "hex"                      (string) The hash of the block (target_confirmations-1) from the best block on the main chain, or the genesis hash if the referenced block does not exist yet. This is typically used to feed back into listsinceblock the next time you call it. So you would generally use a target_confirmations of say 6, so you will be continually re-notified of transactions until they've reached 6 confirmations plus any new ones
  }

listtransactions

Returns up to 'count' most recent transactions skipping the first 'from' transactions.

Argument #1-label

Type: string, Optional

Description: If set, should be a valid label name to return only incoming transactions with the specified label, or "*" to disable filtering and return all transactions.

Argument #2-count

Type: number (int), Optional
Default=10

Description: The number of transactions to return

Argument #3-skip

Type: number (int), Optional
Default=0

Description: The number of transactions to skip

Argument #4-include_watchonly

Type: boolean, Optional

Description: Include transactions to watch-only addresses (see 'importaddress')

Result

  [                                        (json array)
    {                                      (json object)
      "involvesWatchonly" : true|false,    (boolean, optional) Only returns true if imported addresses were involved in transaction.
      "address" : "str",                   (string, optional) The bitcoin address of the transaction (not returned if the output does not have an address, e.g. OP_RETURN null data).
      "category" : "str",                  (string) The transaction category.
                                           "send"                  Transactions sent.
                                           "receive"               Non-coinbase transactions received.
                                           "generate"              Coinbase transactions received with more than 100 confirmations.
                                           "immature"              Coinbase transactions received with 100 or fewer confirmations.
                                           "orphan"                Orphaned coinbase transactions received.
      "amount" : n,                        (numeric) The amount in BTC. This is negative for the 'send' category, and is positive
                                           for all other categories
      "label" : "str",                     (string, optional) A comment for the address/transaction, if any
      "vout" : n,                          (numeric) the vout value
      "fee" : n,                           (numeric, optional) The amount of the fee in BTC. This is negative and only available for the
                                           'send' category of transactions.
      "confirmations" : n,                 (numeric) The number of confirmations for the transaction. Negative confirmations means the
                                           transaction conflicted that many blocks ago.
      "generated" : true|false,            (boolean, optional) Only present if the transaction's only input is a coinbase one.
      "trusted" : true|false,              (boolean, optional) Whether we consider the transaction to be trusted and safe to spend from.
                                           Only present when the transaction has 0 confirmations (or negative confirmations, if conflicted).
      "blockhash" : "hex",                 (string, optional) The block hash containing the transaction.
      "blockheight" : n,                   (numeric, optional) The block height containing the transaction.
      "blockindex" : n,                    (numeric, optional) The index of the transaction in the block that includes it.
      "blocktime" : xxx,                   (numeric, optional) The block time expressed in UNIX epoch time.
      "txid" : "hex",                      (string) The transaction id.
      "wtxid" : "hex",                     (string) The hash of serialized transaction, including witness data.
      "walletconflicts" : [                (json array) Conflicting transaction ids.
        "hex",                             (string) The transaction id.
        ...
      ],
      "replaced_by_txid" : "hex",          (string, optional) Only if 'category' is 'send'. The txid if this tx was replaced.
      "replaces_txid" : "hex",             (string, optional) Only if 'category' is 'send'. The txid if this tx replaces another.
      "to" : "str",                        (string, optional) If a comment to is associated with the transaction.
      "time" : xxx,                        (numeric) The transaction time expressed in UNIX epoch time.
      "timereceived" : xxx,                (numeric) The time received expressed in UNIX epoch time.
      "comment" : "str",                   (string, optional) If a comment is associated with the transaction, only present if not empty.
      "bip125-replaceable" : "str",        (string) ("yes|no|unknown") Whether this transaction signals BIP125 replaceability or has an unconfirmed ancestor signaling BIP125 replaceability.
                                           May be unknown for unconfirmed transactions not in the mempool because their unconfirmed ancestors are unknown.
      "parent_descs" : [                   (json array, optional) Only if 'category' is 'received'. List of parent descriptors for the scriptPubKey of this coin.
        "str",                             (string) The descriptor string.
        ...
      ],
      "abandoned" : true|false             (boolean) 'true' if the transaction has been abandoned (inputs are respendable).
    },
    ...
  ]

listunspent

Optionally filter to only include txouts paid to specified addresses.

Argument #1-minconf

Type: number (int), Optional
Default=1

Description: The minimum confirmations to filter

Argument #2-maxconf

Type: number (int), Optional
Default=9999999

Description: The maximum confirmations to filter

Argument #3-addresses

Type: json array, Optional
Default=[]

Description: The bitcoin addresses to filter

     [
       "address",    (string) bitcoin address
       ...
     ]

Argument #4-include_unsafe

Type: boolean, Optional
Default=true

Description: Include outputs that are not safe to spend See description of "safe" attribute below.

Argument #5-query_options

Type: json object, Optional

Description: Options object that can be used to pass named arguments, listed below.

Result

  [                                (json array)
    {                              (json object)
      "txid" : "hex",              (string) the transaction id
      "vout" : n,                  (numeric) the vout value
      "address" : "str",           (string, optional) the bitcoin address
      "label" : "str",             (string, optional) The associated label, or "" for the default label
      "scriptPubKey" : "str",      (string) the script key
      "amount" : n,                (numeric) the transaction output amount in BTC
      "confirmations" : n,         (numeric) The number of confirmations
      "ancestorcount" : n,         (numeric, optional) The number of in-mempool ancestor transactions, including this one (if transaction is in the mempool)
      "ancestorsize" : n,          (numeric, optional) The virtual transaction size of in-mempool ancestors, including this one (if transaction is in the mempool)
      "ancestorfees" : n,          (numeric, optional) The total fees of in-mempool ancestors (including this one) with fee deltas used for mining priority in sat (if transaction is in the mempool)
      "redeemScript" : "hex",      (string, optional) The redeemScript if scriptPubKey is P2SH
      "witnessScript" : "str",     (string, optional) witnessScript if the scriptPubKey is P2WSH or P2SH-P2WSH
      "spendable" : true|false,    (boolean) Whether we have the private keys to spend this output
      "solvable" : true|false,     (boolean) Whether we know how to spend this output, ignoring the lack of keys
      "reused" : true|false,       (boolean, optional) (only present if avoid_reuse is set) Whether this output is reused/dirty (sent to an address that was previously spent from)
      "desc" : "str",              (string, optional) (only when solvable) A descriptor for spending this output
      "parent_descs" : [           (json array) List of parent descriptors for the scriptPubKey of this coin.
        "str",                     (string) The descriptor string.
        ...
      ],
      "safe" : true|false          (boolean) Whether this output is considered safe to spend. Unconfirmed transactions
                                   from outside keys and unconfirmed replacement transactions are considered unsafe
                                   and are not eligible for spending by fundrawtransaction and sendtoaddress.
    },
    ...
  ]

listwalletdir

Argument: none

Result

  {                        (json object)
    "wallets" : [          (json array)
      {                    (json object)
        "name" : "str"     (string) The wallet name
      },
      ...
    ]
  }

listwallets

For full information on the wallet, use "getwalletinfo"

Argument: none

Result

  [           (json array)
    "str",    (string) the wallet name
    ...
  ]

loadwallet

Note that all wallet command-line options used when starting bitcoind will be applied to the new wallet.

Argument #1-filename

Type: string, Required

Description: The wallet directory or .dat file.

Argument #2-load_on_startup

Type: boolean, Optional

Description: Save wallet name to persistent settings and load on startup. True to add wallet to startup list, false to remove, null to leave unchanged.

Result

  {                    (json object)
    "name" : "str",    (string) The wallet name if loaded successfully.
    "warnings" : [     (json array, optional) Warning messages, if any, related to loading the wallet.
      "str",           (string)
      ...
    ]
  }

lockunspent

Temporarily lock (unlock=false) or unlock (unlock=true) specified transaction outputs.

If no transaction outputs are specified when unlocking then all current locked transaction outputs are unlocked.

A locked transaction output will not be chosen by automatic coin selection, when spending bitcoins.

Manually selected coins are automatically unlocked.

Locks are stored in memory only, unless persistent=true, in which case they will be written to the wallet database and loaded on node start. Unwritten (persistent=false) locks are always cleared (by virtue of process exit) when a node stops or fails. Unlocking will clear both persistent and not.

Also see the listunspent call

Argument #1-unlock

Type: boolean, Required

Description: Whether to unlock (true) or lock (false) the specified transactions

Argument #2-transactions

Type: json array, Optional
Default=[]

Description: The transaction outputs and within each, the txid (string) vout (numeric).

     [
       {                   (json object)
         "txid": "hex",    (string, required) The transaction id
         "vout": n,        (numeric, required) The output number
       },
       ...
     ]

Argument #3-persistent

Type: boolean, Optional
Default=false

Description: Whether to write/erase this lock in the wallet database, or keep the change in memory only. Ignored for unlocking.

Result

Type: boolean

Description: Whether the command was successful or not

migratewallet

A new wallet backup will need to be made.

The migration process will create a backup of the wallet before migrating. This backup file will be named -.legacy.bak and can be found in the directory for this wallet. In the event of an incorrect migration, the backup can be restored using restorewallet.

Encrypted wallets must have the passphrase provided as an argument to this call.

This RPC may take a long time to complete. Increasing the RPC client timeout is recommended.

Argument #1-wallet_name

Type: string, Optional
Default=the wallet name from the RPC endpoint

Description: The name of the wallet to migrate. If provided both here and in the RPC endpoint, the two must be identical.

Argument #2-passphrase

Type: string, Optional

Description: The wallet passphrase

Result

  {                              (json object)
    "wallet_name" : "str",       (string) The name of the primary migrated wallet
    "watchonly_name" : "str",    (string, optional) The name of the migrated wallet containing the watchonly scripts
    "solvables_name" : "str",    (string, optional) The name of the migrated wallet containing solvable but not watched scripts
    "backup_path" : "str"        (string) The location of the backup of the original wallet
  }

newkeypool

WARNING: On non-HD wallets, this will require a new backup immediately, to include the new keys.

When restoring a backup of an HD wallet created before the newkeypool command is run, funds received to new addresses may not appear automatically. They have not been lost, but the wallet may not find them.

This can be fixed by running the newkeypool command on the backup and then rescanning, so the wallet re-generates the required keys.

Requires wallet passphrase to be set with walletpassphrase call if wallet is encrypted.

Argument: none

Result

  null    (json null)

psbtbumpfee

Returns a PSBT instead of creating and signing a new transaction.

An opt-in RBF transaction with the given txid must be in the wallet.

The command will pay the additional fee by reducing change outputs or adding inputs when necessary.

It may add a new change output if one does not already exist.

All inputs in the original transaction will be included in the replacement transaction.

The command will fail if the wallet or mempool contains a transaction that spends one of T's outputs.

By default, the new fee will be calculated automatically using the estimatesmartfee RPC.

The user can specify a confirmation target for estimatesmartfee.

Alternatively, the user can specify a fee rate in sat/vB for the new transaction.

At a minimum, the new fee rate must be high enough to pay an additional new relay fee (incrementalfee returned by getnetworkinfo) to enter the node's mempool.

  • WARNING: before version 0.21, fee_rate was in BTC/kvB. As of 0.21, fee_rate is in sat/vB. *

Argument #1-txid

Type: string, Required

Description: The txid to be bumped

Argument #2-options

Type: json object, Optional

Description: Options object that can be used to pass named arguments, listed below.

   Specify a fee rate in sat/vB instead of relying on the built-in fee estimator.
   Must be at least 1.000 sat/vB higher than the current transaction fee rate.
   WARNING: before version 0.21, fee_rate was in BTC/kvB. As of 0.21, fee_rate is in sat/vB.
   
   marked bip-125 replaceable. If true, the sequence numbers in the transaction will
   be left unchanged from the original. If false, any input sequence numbers in the
   original transaction that were less than 0xfffffffe will be increased to 0xfffffffe
   so the new transaction will not be explicitly bip-125 replaceable (though it may
   still be replaceable in practice, for example if it has unconfirmed ancestors which
   are replaceable).
   
   "unset"
   "economical"
   "conservative"
   Each key may only appear once, i.e. there can only be one 'data' output, and no address may be duplicated.
   At least one output of either type must be specified.
   Cannot be provided if 'original_change_index' is specified.
     [
       {                       (json object)
         "address": amount,    (numeric or string, required) A key-value pair. The key (string) is the bitcoin address,
                               the value (float or string) is the amount in BTC
         ...
       },
       {                       (json object)
         "data": "hex",        (string, required) A key-value pair. The key must be "data", the value is hex-encoded data
       },
       ...
     ]

Result

  {                    (json object)
    "psbt" : "str",    (string) The base64-encoded unsigned PSBT of the new transaction.
    "origfee" : n,     (numeric) The fee of the replaced transaction.
    "fee" : n,         (numeric) The fee of the new transaction.
    "errors" : [       (json array) Errors encountered during processing (may be empty).
      "str",           (string)
      ...
    ]
  }

removeprunedfunds

Meant for use with pruned wallets and as a companion to importprunedfunds. This will affect wallet balances.

Argument #1-txid

Type: string, Required

Description: The hex-encoded id of the transaction you are deleting

Result

  null    (json null)

rescanblockchain

Note: Use "getwalletinfo" to query the scanning progress.

The rescan is significantly faster when used on a descriptor wallet and block filters are available (using startup option "-blockfilterindex=1").

Argument #1-start_height

Type: number (int), Optional
Default=0

Description: block height where the rescan should start

Argument #2-stop_height

Type: number (int), Optional

Description: the last block height that should be scanned. If none is provided it will rescan up to the tip at return time of this call.

Result

  {                        (json object)
    "start_height" : n,    (numeric) The block height where the rescan started (the requested height or 0)
    "stop_height" : n      (numeric) The height of the last rescanned block. May be null in rare cases if there was a reorg and the call didn't scan any blocks because they were already scanned in the background.
  }

restorewallet

The rescan is significantly faster if a descriptor wallet is restored and block filters are available (using startup option "-blockfilterindex=1").

Argument #1-wallet_name

Type: string, Required

Description: The name that will be applied to the restored wallet

Argument #2-backup_file

Type: string, Required

Description: The backup file that will be used to restore the wallet.

Argument #3-load_on_startup

Type: boolean, Optional

Description: Save wallet name to persistent settings and load on startup. True to add wallet to startup list, false to remove, null to leave unchanged.

Result

  {                    (json object)
    "name" : "str",    (string) The wallet name if restored successfully.
    "warnings" : [     (json array, optional) Warning messages, if any, related to restoring and loading the wallet.
      "str",           (string)
      ...
    ]
  }

send

Send a transaction.

Argument #1-outputs

Type: json array, Required

Description: The outputs specified as key-value pairs. Each key may only appear once, i.e. there can only be one 'data' output, and no address may be duplicated. At least one output of either type must be specified. For convenience, a dictionary, which holds the key-value pairs directly, is also accepted.

     [
       {                       (json object)
         "address": amount,    (numeric or string, required) A key-value pair. The key (string) is the bitcoin address,
                               the value (float or string) is the amount in BTC
         ...
       },
       {                       (json object)
         "data": "hex",        (string, required) A key-value pair. The key must be "data", the value is hex-encoded data
       },
       ...
     ]

Argument #2-conf_target

Type: number (int), Optional
Default=wallet -txconfirmtarget

Description: Confirmation target in blocks

Argument #3-estimate_mode

Type: string, Optional
Default="unset"

Description: The fee estimate mode, must be one of (case insensitive): "unset" "economical" "conservative"

Argument #4-fee_rate

Type: numeric or string, Optional

Description: Specify a fee rate in sat/vB.

Argument #5-options

Type: json object, Optional

Description: Options object that can be used to pass named arguments, listed below.

   Warning: the resulting transaction may become invalid if one of the unsafe inputs disappears.
   If that happens, you will need to fund the transaction with different inputs and republish it.
   Only solvable inputs can be used. Watch-only destinations are solvable if the public key and/or output script was imported,
   e.g. with 'importpubkey' or 'importmulti' with the 'pubkeys' or 'desc' field.
   The fee will be equally deducted from the amount of each specified output.
   Those recipients will receive less bitcoins than you enter in their corresponding amount field.
   If no outputs are specified here, the sender pays the fee.
   "unset"
   "economical"
   "conservative"
   Allows this transaction to be replaced by a transaction with higher fees
   Used for fee estimation during coin selection.
   "scripts": [          (json array, optional, default=[]) Scripts involved in this transaction.
   "script",           (string) A script
   ...
   ],
   "descriptors": [      (json array, optional, default=[]) Descriptors that provide solving data for this transaction.
   "descriptor",       (string) A descriptor
   ...
   ],
   }
     {
       "pubkeys": [          (json array, optional, default=[]) Public keys involved in this transaction.
         "pubkey",           (string) A public key
         ...
       ],

Result

  {                             (json object)
    "complete" : true|false,    (boolean) If the transaction has a complete set of signatures
    "txid" : "hex",             (string, optional) The transaction id for the send. Only 1 transaction is created regardless of the number of addresses.
    "hex" : "hex",              (string, optional) If add_to_wallet is false, the hex-encoded raw transaction with signature(s)
    "psbt" : "str"              (string, optional) If more signatures are needed, or if add_to_wallet is false, the base64-encoded (partially) signed transaction
  }

sendall

Spend the value of all (or specific) confirmed UTXOs in the wallet to one or more recipients.

Unconfirmed inbound UTXOs and locked UTXOs will not be spent. Sendall will respect the avoid_reuse wallet flag.

If your wallet contains many small inputs, either because it received tiny payments or as a result of accumulating change, consider using send_max to exclude inputs that are worth less than the fees needed to spend them.

Argument #1-recipients

Type: json array, Required

Description: The sendall destinations. Each address may only appear once. Optionally some recipients can be specified with an amount to perform payments, but at least one address must appear without a specified amount.

     [
       "address",              (string, required) A bitcoin address which receives an equal share of the unspecified amount.
       {                       (json object)
         "address": amount,    (numeric or string, required) A key-value pair. The key (string) is the bitcoin address, the value (float or string) is the amount in BTC
         ...
       },
       ...
     ]

Argument #2-conf_target

Type: number (int), Optional
Default=wallet -txconfirmtarget

Description: Confirmation target in blocks

Argument #3-estimate_mode

Type: string, Optional
Default="unset"

Description: The fee estimate mode, must be one of (case insensitive): "unset" "economical" "conservative"

Argument #4-fee_rate

Type: numeric or string, Optional

Description: Specify a fee rate in sat/vB.

Argument #5-options

Type: json object, Optional

Description: Options object that can be used to pass named arguments, listed below. Only solvable inputs can be used. Watch-only destinations are solvable if the public key and/or output script was imported, e.g. with 'importpubkey' or 'importmulti' with the 'pubkeys' or 'desc' field. "unset" "economical" "conservative" Allows this transaction to be replaced by a transaction with higher fees Used for fee estimation during coin selection. "scripts": [ (json array, optional, default=[]) Scripts involved in this transaction. "script", (string) A script ... ], "descriptors": [ (json array, optional, default=[]) Descriptors that provide solving data for this transaction. "descriptor", (string) A descriptor ... ], }

     {
       "pubkeys": [        (json array, optional, default=[]) Public keys involved in this transaction.
         "pubkey",         (string) A public key
         ...
       ],

Result

  {                             (json object)
    "complete" : true|false,    (boolean) If the transaction has a complete set of signatures
    "txid" : "hex",             (string, optional) The transaction id for the send. Only 1 transaction is created regardless of the number of addresses.
    "hex" : "hex",              (string, optional) If add_to_wallet is false, the hex-encoded raw transaction with signature(s)
    "psbt" : "str"              (string, optional) If more signatures are needed, or if add_to_wallet is false, the base64-encoded (partially) signed transaction
  }

sendmany

Amounts are double-precision floating point numbers.

Requires wallet passphrase to be set with walletpassphrase call if wallet is encrypted.

Argument #1-dummy

Type: string, Optional
Default=""""

Description: Must be set to "" for backwards compatibility.

Argument #2-amounts

Type: json object, Required

Description: The addresses and amounts

     {
       "address": amount,    (numeric or string, required) The bitcoin address is the key, the numeric amount (can be string) in BTC is the value
       ...
     }

Argument #3-minconf

Type: number (int), Optional

Description: Ignored dummy value

Argument #4-comment

Type: string, Optional

Description: A comment

Argument #5-subtractfeefrom

Type: json array, Optional

Description: The addresses. The fee will be equally deducted from the amount of each selected address. Those recipients will receive less bitcoins than you enter in their corresponding amount field. If no addresses are specified here, the sender pays the fee.

     [
       "address",            (string) Subtract fee from this address
       ...
     ]

Argument #6-replaceable

Type: boolean, Optional
Default=wallet default

Description: Signal that this transaction can be replaced by a transaction (BIP 125)

Argument #7-conf_target

Type: number (int), Optional
Default=wallet -txconfirmtarget

Description: Confirmation target in blocks

Argument #8-estimate_mode

Type: string, Optional
Default="unset"

Description: The fee estimate mode, must be one of (case insensitive): "unset" "economical" "conservative"

Argument #9-fee_rate

Type: numeric or string, Optional

Description: Specify a fee rate in sat/vB.

Result---(if verbose is not set or set to false)

Type: string (hex)

Description: The transaction id for the send. Only 1 transaction is created regardless of

Result---(if verbose is set to true)

  {                          (json object)
    "txid" : "hex",          (string) The transaction id for the send. Only 1 transaction is created regardless of
                             the number of addresses.
    "fee_reason" : "str"     (string) The transaction fee reason.
  }

sendtoaddress

Requires wallet passphrase to be set with walletpassphrase call if wallet is encrypted.

Argument #1-address

Type: string, Required

Description: The bitcoin address to send to.

Argument #2-amount

Type: numeric or string, Required

Description: The amount in BTC to send. eg 0.1

Argument #3-comment

Type: string, Optional

Description: A comment used to store what the transaction is for. This is not part of the transaction, just kept in your wallet.

Argument #4-comment_to

Type: string, Optional

Description: A comment to store the name of the person or organization to which you're sending the transaction. This is not part of the transaction, just kept in your wallet.

Argument #5-subtractfeefromamount

Type: boolean, Optional
Default=false

Description: The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field.

Argument #6-replaceable

Type: boolean, Optional
Default=wallet default

Description: Signal that this transaction can be replaced by a transaction (BIP 125)

Argument #7-conf_target

Type: number (int), Optional
Default=wallet -txconfirmtarget

Description: Confirmation target in blocks

Argument #8-estimate_mode

Type: string, Optional
Default="unset"

Description: The fee estimate mode, must be one of (case insensitive): "unset" "economical" "conservative"

Argument #9-avoid_reuse

Type: boolean, Optional
Default=true

Description: (only available if avoid_reuse wallet flag is set) Avoid spending from dirty addresses; addresses are considered dirty if they have previously been used in a transaction. If true, this also activates avoidpartialspends, grouping outputs by their addresses.

Result---(if verbose is not set or set to false)

Type: string (hex)

Description: The transaction id.

Result---(if verbose is set to true)

  {                          (json object)
    "txid" : "hex",          (string) The transaction id.
    "fee_reason" : "str"     (string) The transaction fee reason.
  }

sethdseed

Non-HD wallets will not be upgraded to being a HD wallet. Wallets that are already HD will have a new HD seed set so that new keys added to the keypool will be derived from this new seed.

Note that you will need to MAKE A NEW BACKUP of your wallet after setting the HD wallet seed.

Requires wallet passphrase to be set with walletpassphrase call if wallet is encrypted.

Note: This command is only compatible with legacy wallets.

Argument #1-newkeypool

Type: boolean, Optional
Default=true

Description: Whether to flush old unused addresses, including change addresses, from the keypool and regenerate it. If true, the next address from getnewaddress and change address from getrawchangeaddress will be from this new seed. If false, addresses (including change addresses if the wallet already had HD Chain Split enabled) from the existing keypool will be used until it has been depleted.

Argument #2-seed

Type: string, Optional
Default=random seed

Description: The WIF private key to use as the new HD seed. The seed value can be retrieved using the dumpwallet command. It is the private key marked hdseed=1

Result

  null    (json null)

setlabel

Argument #1-address

Type: string, Required

Description: The bitcoin address to be associated with a label.

Argument #2-label

Type: string, Required

Description: The label to assign to the address.

Result

  null    (json null)

settxfee

Overrides the global -paytxfee command line parameter.

Can be deactivated by passing 0 as the fee. In that case automatic fee selection will be used by default.

Argument #1-amount

Type: numeric or string, Required

Description: The transaction fee rate in BTC/kvB

Result

Type: boolean

Description: Returns true if successful

setwalletflag

Argument #1-flag

Type: string, Required

Description: The name of the flag to change. Current available flags: avoid_reuse

Argument #2-value

Type: boolean, Optional
Default=true

Description: The new state.

Result

  {                               (json object)
    "flag_name" : "str",          (string) The name of the flag that was modified
    "flag_state" : true|false,    (boolean) The new state of the flag
    "warnings" : "str"            (string, optional) Any warnings associated with the change
  }

signmessage

Argument #1-address

Type: string, Required

Description: The bitcoin address to use for the private key.

Argument #2-message

Type: string, Required

Description: The message to create a signature of.

Result

Type: string (hex)

Description: The signature of the message encoded in base 64

signrawtransactionwithwallet

The second optional argument (may be null) is an array of previous transaction outputs that this transaction depends on but may not yet be in the block chain.

Requires wallet passphrase to be set with walletpassphrase call if wallet is encrypted.

Argument #1-hexstring

Type: string, Required

Description: The transaction hex string

Argument #2-prevtxs

Type: json array, Optional

Description: The previous dependent transaction outputs

     [
       {                            (json object)
         "txid": "hex",             (string, required) The transaction id
         "vout": n,                 (numeric, required) The output number
         "scriptPubKey": "hex",     (string, required) script key
         "redeemScript": "hex",     (string, optional) (required for P2SH) redeem script
         "witnessScript": "hex",    (string, optional) (required for P2WSH or P2SH-P2WSH) witness script
         "amount": amount,          (numeric or string, optional) (required for Segwit inputs) the amount spent
       },
       ...
     ]

Argument #3-sighashtype

Type: string, Optional

Description: The signature hash type. Must be one of "DEFAULT" "ALL" "NONE" "SINGLE" "ALL|ANYONECANPAY" "NONE|ANYONECANPAY" "SINGLE|ANYONECANPAY"

Result

  {                             (json object)
    "hex" : "hex",              (string) The hex-encoded raw transaction with signature(s)
    "complete" : true|false,    (boolean) If the transaction has a complete set of signatures
    "errors" : [                (json array, optional) Script verification errors (if there are any)
      {                         (json object)
        "txid" : "hex",         (string) The hash of the referenced, previous transaction
        "vout" : n,             (numeric) The index of the output to spent and used as input
        "witness" : [           (json array)
          "hex",                (string)
          ...
        ],
        "scriptSig" : "hex",    (string) The hex-encoded signature script
        "sequence" : n,         (numeric) Script sequence number
        "error" : "str"         (string) Verification or signing error related to the input
      },
      ...
    ]
  }

simulaterawtransaction

Argument #1-rawtxs

Type: json array, Optional

Description: An array of hex strings of raw transactions.

     [
       "rawtx",    (string)
       ...
     ]

Argument #2-options

Type: json object, Optional

Description: Options object that can be used to pass named arguments, listed below.

Result

  {                          (json object)
    "balance_change" : n     (numeric) The wallet balance change (negative means decrease).
  }

unloadwallet

Specifying the wallet name on a wallet endpoint is invalid.

Argument #1-wallet_name

Type: string, Optional
Default=the wallet name from the RPC endpoint

Description: The name of the wallet to unload. If provided both here and in the RPC endpoint, the two must be identical.

Argument #2-load_on_startup

Type: boolean, Optional

Description: Save wallet name to persistent settings and load on startup. True to add wallet to startup list, false to remove, null to leave unchanged.

Result

  {                   (json object)
    "warnings" : [    (json array, optional) Warning messages, if any, related to unloading the wallet.
      "str",          (string)
      ...
    ]
  }

upgradewallet

Upgrades to the latest version if no version number is specified.

New keys may be generated and a new wallet backup will need to be made.

Argument #1-version

Type: number (int), Optional
Default=169900

Description: The version number to upgrade to. Default is the latest wallet version.

Result

  {                            (json object)
    "wallet_name" : "str",     (string) Name of wallet this operation was performed on
    "previous_version" : n,    (numeric) Version of wallet before this operation
    "current_version" : n,     (numeric) Version of wallet after this operation
    "result" : "str",          (string, optional) Description of result, if no error
    "error" : "str"            (string, optional) Error message (if there is one)
  }

walletcreatefundedpsbt

Implements the Creator and Updater roles.

All existing inputs must either have their previous output transaction be in the wallet or be in the UTXO set. Solving data must be provided for non-wallet inputs.

Argument #1-inputs

Type: json array, Optional

Description: Leave empty to add inputs automatically. See add_inputs option.

     [
       {                       (json object)
         "txid": "hex",        (string, required) The transaction id
         "vout": n,            (numeric, required) The output number
         "sequence": n,        (numeric, optional, default=depends on the value of the 'locktime' and 'options.replaceable' arguments) The sequence number
         "weight": n,          (numeric, optional, default=Calculated from wallet and solving data) The maximum weight for this input, including the weight of the outpoint and sequence number. Note that signature sizes are not guaranteed to be consistent, so the maximum DER signatures size of 73 bytes should be used when considering ECDSA signatures.Remember to convert serialized sizes to weight units when necessary.
       },
       ...
     ]

Argument #2-outputs

Type: json array, Required

Description: The outputs specified as key-value pairs. Each key may only appear once, i.e. there can only be one 'data' output, and no address may be duplicated. At least one output of either type must be specified. For compatibility reasons, a dictionary, which holds the key-value pairs directly, is also accepted as second parameter.

     [
       {                       (json object)
         "address": amount,    (numeric or string, required) A key-value pair. The key (string) is the bitcoin address,
                               the value (float or string) is the amount in BTC
         ...
       },
       {                       (json object)
         "data": "hex",        (string, required) A key-value pair. The key must be "data", the value is hex-encoded data
       },
       ...
     ]

Argument #3-locktime

Type: number (int), Optional
Default=0

Description: Raw locktime. Non-0 value also locktime-activates inputs

Argument #4-options

Type: json object, Optional

Description: Options object that can be used to pass named arguments, listed below.

Argument #5-bip32derivs

Type: boolean, Optional
Default=true

Description: Include BIP 32 derivation paths for public keys if we know them

   Warning: the resulting transaction may become invalid if one of the unsafe inputs disappears.
   If that happens, you will need to fund the transaction with different inputs and republish it.
   The fee will be equally deducted from the amount of each specified output.
   Those recipients will receive less bitcoins than you enter in their corresponding amount field.
   If no outputs are specified here, the sender pays the fee.
   "unset"
   "economical"
   "conservative"
   Allows this transaction to be replaced by a transaction with higher fees
   Used for fee estimation during coin selection.
   "scripts": [        (json array, optional, default=[]) Scripts involved in this transaction.
   "script",         (string) A script
   ...
   ],
   "descriptors": [    (json array, optional, default=[]) Descriptors that provide solving data for this transaction.
   "descriptor",     (string) A descriptor
   ...
   ],
   }
     {
       "pubkeys": [        (json array, optional, default=[]) Public keys involved in this transaction.
         "pubkey",         (string) A public key
         ...
       ],

Result

  {                     (json object)
    "psbt" : "str",     (string) The resulting raw transaction (base64-encoded string)
    "fee" : n,          (numeric) Fee in BTC the resulting transaction pays
    "changepos" : n     (numeric) The position of the added change output, or -1
  }

walletdisplayaddress

Argument #1-address

Type: string, Required

Description: bitcoin address to display

Result

  {                       (json object)
    "address" : "str"     (string) The address as confirmed by the signer
  }

walletlock

After calling this method, you will need to call walletpassphrase again before being able to call any methods which require the wallet to be unlocked.

Argument: none

Result

  null    (json null)

walletpassphrase

This is needed prior to performing transactions related to private keys such as sending bitcoins Note:

Issuing the walletpassphrase command while the wallet is already unlocked will set a new unlock time that overrides the old one.

Argument #1-passphrase

Type: string, Required

Description: The wallet passphrase

Argument #2-timeout

Type: number (int), Required

Description: The time to keep the decryption key in seconds; capped at 100000000 (~3 years).

Result

  null    (json null)

walletpassphrasechange

Argument #1-oldpassphrase

Type: string, Required

Description: The current passphrase

Argument #2-newpassphrase

Type: string, Required

Description: The new passphrase

Result

  null    (json null)

walletprocesspsbt

Requires wallet passphrase to be set with walletpassphrase call if wallet is encrypted.

Argument #1-psbt

Type: string, Required

Description: The transaction base64 string

Argument #2-sign

Type: boolean, Optional
Default=true

Description: Also sign the transaction when updating (requires wallet to be unlocked)

Argument #3-sighashtype

Type: string, Optional

Description: The signature hash type to sign with if not specified by the PSBT. Must be one of "DEFAULT" "ALL" "NONE" "SINGLE" "ALL|ANYONECANPAY" "NONE|ANYONECANPAY" "SINGLE|ANYONECANPAY"

Argument #4-bip32derivs

Type: boolean, Optional
Default=true

Description: Include BIP 32 derivation paths for public keys if we know them

Argument #5-finalize

Type: boolean, Optional
Default=true

Description: Also finalize inputs if possible

Result

  {                             (json object)
    "psbt" : "str",             (string) The base64-encoded partially signed transaction
    "complete" : true|false,    (boolean) If the transaction has a complete set of signatures
    "hex" : "hex"               (string, optional) The hex-encoded network transaction if complete
  }

getzmqnotifications

Argument: none

Result

  [                         (json array)
    {                       (json object)
      "type" : "str",       (string) Type of notification
      "address" : "str",    (string) Address of the publisher
      "hwm" : n             (numeric) Outbound message high water mark
    },
    ...
  ]