Command Lines (RPC API)

This document includes the full list of Hydra RPCs based on Hydra core v0.17.6. According to this document you can learn how to use Hydra RPC API.

Blockchain

callcontract

callcontract "address" "data" ( address )

Argument:

1. "address" (string, required) The account address
2. "data"    (string, required) The data hex string
3. address   (string, optional) The sender address hex string
4. gasLimit  (string, optional) The gas limit for executing the contract

Test example

./hydra-cli callcontract "74045ec0dc26ec1861473828bc140ebc4c1f3eff" "00000000000000000000000000000000000000000000000000000000000000a9"

Test result:

{
  "address": "74045ec0dc26ec1861473828bc140ebc4c1f3eff",
  "executionResult": {
  "gasUsed": 39999999,
  "excepted": "None",
  "newAddress": "74045ec0dc26ec1861473828bc140ebc4c1f3eff",
  "output": "",
  "codeDeposit": 0,
  "gasRefunded": 0,
  "depositSize": 0,
  "gasForDeposit": 0
  },
  "transactionReceipt": 
  {
    "stateRoot": "1253c56cf79597e89ce179f14e6a86a493356dac410c30efc576503687ad2670",
    "gasUsed": 39999999,
    "bloom": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
    "log": [
  ]
  }
}

getaccountinfo

Contract details including balance, storage data and code

Argument:

1. "address"(string, required) The contract address

Result:

Contract details including balance, storage data and code

Test example:

./hydra-cli getaccountinfo "fdb9d0873ba524ef3ea67c1719666968e1eeb110"

getbestblockhash

Returns the hash of the best (tip) block in the longest blockchain.

Result:

"hex" (string) the block hash hex encoded

Examples:

>hydra-cli getbestblockhash  

>curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getbestblockhash", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

Test example:

./hydra-cli getbestblockhash

Test result:

e006ada4d1b7caf1559cc1b5b520ab8c54f51486230f2ea18d2692d3a095ba03

getblock

According the blockhash returns the info of the corresponding block If verbosity is 0, returns a string that is serialized, hex-encoded data for block 'hash'. If verbosity is 1, returns an Object with information about block. If verbosity is 2, returns an Object with information about block and information about each transaction.

Arguments:

1. "blockhash" (string, required) The block hash
2. verbosity (numeric, optional, default=1) 0 for hex encoded data, 1 for a json object, and 2 for json object with transaction data

Result (for verbosity = 0):

"data" (string) A string that is serialized, hex-encoded data for block 'hash'.

Result (for verbosity = 1):

{
  "hash" : "hash",       (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" : "00000000", (string) The block version formatted in hexadecimal
  "merkleroot" : "xxxx", (string) The merkle root
  "tx" : [               (array of string) The transaction ids
     "transactionid"     (string) The transaction id
     ,...
  ],
  "time" : ttt,          (numeric) The block time in seconds since epoch (Jan 1 1970 GMT)
  "mediantime" : ttt,    (numeric) The median block time in seconds since epoch (Jan 1 1970 GMT)
  "nonce" : n,           (numeric) The nonce
  "bits" : "1d00ffff",   (string) The bits
  "difficulty" : x.xxx,  (numeric) The difficulty
  "chainwork" : "xxxx",  (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" : "hash",  (string) The hash of the previous block
  "nextblockhash" : "hash"       (string) The hash of the next block
}

Result (for verbosity = 2):

{
    ..., Same output as verbosity = 1.
    "tx" : [ (array of Objects) The transactions in the format of the getrawtransaction RPC. Different from verbosity = 1 "tx" result.
    ,...
    ],
    ,... Same output as verbosity = 1.
}

Examples:

> hydra-cli getblock "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09"

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getblock", "params": ["00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09"] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

test examples:

./hydra-cli getblock “eeab43864b89c15bd1ffad21eaabc97f4fa4a576a71b46c9d512afc26168569f”

Test result:

{
  "hash": "eeab43864b89c15bd1ffad21eaabc97f4fa4a576a71b46c9d512afc26168569f",
  "confirmations": 2,
  "strippedsize": 846,
  "size": 882,
  "weight": 3420,
  "height": 402359,
  "version": 536870912,
  "versionHex": "20000000",
  "merkleroot": "359698a4d0e24baadfe9892b56bb5a6090830aea9fe1bf221f4766d7d552eeff",
  "hashStateRoot": "6099ad48961a320b62cc29ba3d89dcbd8bbc0e33069f6c7169ba008039cbc44f",
  "hashUTXORoot": "9e729950c184acd011471252a0c1a4bc279cd4c1e86d543bead4af6df787b2dd",
  "tx": [
    "9cd9f5e952988cd88c73b7cd172cc17f7ba6ec7c34918b50fbfa3901251cbc2f",
    "49260697a2d127541cfd5190fc18a5193f118d4b1cc23504a520983ad7f0ee35"
  ],
  "time": 1562145008,
  "mediantime": 1562144608,
  "nonce": 0,
  "bits": "1a037540",
  "difficulty": 4851625.823213781,
  "chainwork": "000000000000000000000000000000000000000000000114688c263219ba17a6",
  "nTx": 2,
  "previousblockhash": "dd7ccce7a7b419874dac6097c6505c3b00efdce9336aa9ad79363c81d8a05e26",
  "nextblockhash": "60ef2b919581b7d7f684e6e2de574ee72ac94cb924770988d2686ca4c3b6e24a",
  "flags": "proof-of-stake",
  "proofhash": "000001199a996fef47845c16830c9187ed076dea11d34ba734201a011945c962",
  "modifier": "148572257a37c882895429d69b15d8a2446be5ad5f0d74237ecf621841164990",
  "signature": "304402204fe60e75699f3773e3c1d86281f2e7cf17268d23e40628622b3a215fea299e68022041c767b4e2ede77311aeaca2dfafc8f9066f628d2aa3234a57604cebc976c311"
}

getblockchaininfo

Returns an object containing various state info regarding blockchain processing.

Result:

{
  "chain": "xxxx",              (string) current network name as defined in BIP70 (main, test, regtest)
  "blocks": xxxxxx,             (numeric) the current number of blocks processed in the server
  "headers": xxxxxx,            (numeric) the current number of headers we have validated
  "bestblockhash": "...",       (string) the hash of the currently best block
  "difficulty": xxxxxx,         (numeric) the current difficulty
  "mediantime": xxxxxx,         (numeric) median time for the current best block
  "verificationprogress": xxxx, (numeric) estimate of verification progress [0..1]
  "initialblockdownload": xxxx, (bool) (debug information) estimate of whether this node is in Initial Block Download mode.
  "chainwork": "xxxx"           (string) total amount of work in active chain, in hexadecimal
  "size_on_disk": xxxxxx,       (numeric) the estimated size of the block and undo files on disk
  "pruned": xx,                 (boolean) if the blocks are subject to pruning
  "pruneheight": xxxxxx,        (numeric) lowest-height complete block stored (only present if pruning is enabled)
  "automatic_pruning": xx,      (boolean) whether automatic pruning is enabled (only present if pruning is enabled)
  "prune_target_size": xxxxxx,  (numeric) the target size used by pruning (only present if automatic pruning is enabled)
  "softforks": [                (array) status of softforks in progress
     {
        "id": "xxxx",           (string) name of softfork
        "version": xx,          (numeric) block version
        "reject": {             (object) progress toward rejecting pre-softfork blocks
           "status": xx,        (boolean) true if threshold reached
        },
     }, ...
  ],
  "bip9_softforks": {           (object) status of BIP9 softforks in progress
     "xxxx" : {                 (string) name of the softfork
        "status": "xxxx",       (string) one of "defined", "started", "locked_in", "active", "failed"
        "bit": xx,              (numeric) the bit (0-28) in the block version field used to signal this softfork (only for "started" status)
        "startTime": xx,        (numeric) the minimum median time past of a block at which the bit gains its meaning
        "timeout": xx,          (numeric) the median time past of a block at which the deployment is considered failed if not yet locked in
        "since": xx,            (numeric) height of the first block to which the status applies
        "statistics": {         (object) numeric statistics about BIP9 signalling for a softfork (only for "started" status)
           "period": xx,        (numeric) the length in blocks of the BIP9 signalling period 
           "threshold": xx,     (numeric) the number of blocks with the version bit set required to activate the feature 
           "elapsed": xx,       (numeric) the number of blocks elapsed since the beginning of the current period 
           "count": xx,         (numeric) the number of blocks with the version bit set in the current period 
           "possible": xx       (boolean) returns false if there are not enough blocks left in this period to pass activation threshold 
        }
     }
  }
  "warnings" : "...",           (string) any network and blockchain warnings.
}

Test example:

./hydra-cli getblockchaininfo

Test result:

{
  "chain": "main",
  "blocks": 401574,
  "headers": 401574,
  "bestblockhash": "be4cb62080f36d2c3a45127e016460aca82ea1de17af4166ad9341d1a18e00cc",
  "difficulty": 1699339.658646735,
  "moneysupply": 101586296,
  "mediantime": 1562032592,
  "verificationprogress": 0.9999994694221126,
  "initialblockdownload": false,
  "chainwork": "000000000000000000000000000000000000000000000113f4c983f14834f842",
  "size_on_disk": 1939468044,
  "pruned": false,
  "softforks": [
  {
    "id": "bip34",
    "version": 2,
    "reject": {
    "status": true
    }
  },
  {
    "id": "bip66",
    "version": 3,
    "reject": {
    "status": true
    }
  },
  {
    "id": "bip65",
    "version": 4,
    "reject": {
    "status": true
    }
  }
  ],
  "bip9_softforks": {
  "csv": {
    "status": "active",
    "startTime": 0,
    "timeout": 999999999999,
    "since": 6048
  },
  "segwit": {
    "status": "active",
    "startTime": 0,
    "timeout": 999999999999,
    "since": 6048
  }
  },
  "warnings": ""
}

getblockcount

Returns the number of blocks in the longest blockchain.

Result:

n (numeric) The current block count

Examples:

> hydra-cli getblockcount 

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getblockcount", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

Test example:

./hydra-cli getblockcount

Test result:

395049

getblockhash

Returns hash of block in best-block-chain at height provided.

Arguments:

1. height         (numeric, required) The height index

Result:

"hash"         (string) The block hash  

Examples:

> hydra-cli getblockhash 1000  

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getblockhash", "params": [1000] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

Test example:

./hydra-cli getblockhash 1

Test result:

0000d5dab5e76310ae640e9bcfa270c2eb23a1e5948bdf01fc7ed1f157110ab7

Returns the corresponding block header information according to the given index If verbose is false, returns a string that is serialized, hex-encoded data for blockheader 'hash'. If verbose is true, returns an Object with information about blockheader.

Arguments:

1. "hash"  (string, required) The block hash
2. verbose (boolean, optional, default=true) true for a json object, false for the hex encoded data

Result (for verbose = true):

{
  "hash" : "hash",               (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" : "00000000",     (string) The block version formatted in hexadecimal
  "merkleroot" : "xxxx",         (string) The merkle root
  "time" : ttt,                  (numeric) The block time in seconds since epoch (Jan 1 1970 GMT)
  "mediantime" : ttt,            (numeric) The median block time in seconds since epoch (Jan 1 1970 GMT)
  "nonce" : n,                   (numeric) The nonce
  "bits" : "1d00ffff",           (string) The bits
  "difficulty" : x.xxx,          (numeric) The difficulty
  "chainwork" : "0000...1f3"     (string) Expected number of hashes required to produce the current chain (in hex)
  "nTx" : n,                     (numeric) The number of transactions in the block.
  "previousblockhash" : "hash",  (string) The hash of the previous block
  "nextblockhash" : "hash",      (string) The hash of the next block
}

Result (for verbose = false):

"data" (string) A string that is serialized, hex-encoded data for block 'hash'.

Examples:

> hydra-cli getblockheader "00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09"

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getblockheader", "params": ["00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09"] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

Test example:

./hydra-cli getblockheader 
“ebd10c9b338247a9ccfd45493b484ae5638a5d97ddaa68c44c6ef214ea443c19”

Test result:

 {
    "hash": "ebd10c9b338247a9ccfd45493b484ae5638a5d97ddaa68c44c6ef214ea443c19",
    "confirmations": -1,
    "height": 388910,
    "version": 536870912,
    "versionHex": "20000000",
    "merkleroot": "b1a21dd48f978ea8671383f9454d058d2047d19666348340bea543cf89e31aca",
    "time": 1560222144,
    "mediantime": 1560221568,
    "nonce": 0,
    "bits": "1a097561",
    "difficulty": 1773742.122273433,
    "chainwork": "00000000000000000000000000000000000000000000010ca5944ed9b867aaef",
    "nTx": 7,
    "hashStateRoot": "10504057696a3ad9f96254b86424cc8f49f3ef2b271893f933b18174e538b828",
    "hashUTXORoot": "9e729950c184acd011471252a0c1a4bc279cd4c1e86d543bead4af6df787b2dd",
    "previousblockhash": "56044826105d66a95ab6f97f945a7cd18eef7109c59da64a7b6c57c377eaf4bb",
    "flags": "proof-of-stake",
    "proofhash": "0000000000000000000000000000000000000000000000000000000000000000",
    "modifier": "1551ed22c1a43da60aebcb2d66a1e42d9bf6a007276367a4a189325ea37a1f91"
 }

getblockstats

Compute per block statistics for a given window. All amounts are in satoshis. It won't work for some heights with pruning. It won't work without -txindex for utxo_size_inc, fee or feerate stats.

Arguments:

1. "hash_or_height"     (string or numeric, required) The block hash or height of the target block
2. "stats"              (array,  optional) Values to plot, by default all values (see result below)
    [
      "height",         (string, optional) Selected statistic
      "time",           (string, optional) Selected statistic
      ,...
    ]

Result:

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

Examples:

> hydra-cli getblockstats 1000 '["minfeerate","avgfeerate"]'

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getblockstats", "params": [1000 '["minfeerate","avgfeerate"]'] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

getchaintips

Return information about all known tips in the block tree, including the main chain as well as orphaned branches.

Result:

 [
    {
      "height": xxxx,    (numeric) height of the chain tip
      "hash": "xxxx",    (string) block hash of the tip
      "branchlen": 0     (numeric) zero for main chain
      "status": "active" (string) "active" for the main chain
    },
    {
      "height": xxxx,
      "hash": "xxxx",
      "branchlen": 1     (numeric) length of branch connecting the tip to the main chain
      "status": "xxxx"   (string) status of the chain (active, valid-fork, valid-headers, headers-only, invalid)
    }
  ]

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

Examples:

>hydra-cli getchaintips

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getchaintips", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

Test example:

./hydra-cli getchaintips

Result:

[
  {
    "height": 353464,
    "hash": "342e378ff153232fb08efe61ceb2fc00e28b1569aa0de97d031ba0bab98387be",
    "branchlen": 2,
    "status": "invalid"
  },
  {
    "height": 353415,
    "hash": "f1748f4c718cf5d36bab1dc7f4199e0e0379a338e6ea55fb18860daa0bc0c604",
    "branchlen": 1,
    "status": "valid-fork"
  },
  {
    "height": 353388,
    "hash": "1fbd1234497731d8f3296c60e9d21cc5c8d57b19d4fe7f154b4aa17e47b526b8",
    "branchlen": 1,
    "status": "valid-headers"
  },
  {
    "height": 353103,
    "hash": "583b2cd790cc493390474306cb78de68e4ba2f0bfdae852ab36c240fb058c559",
    "branchlen": 1,
    "status": "valid-fork"
  },...
]

getchaintxstats

Compute statistics about the total number and rate of transactions in the chain.

Arguments:

1. nblocks     (numeric, optional) Size of the window in number of blocks (default: one month).
2. "blockhash" (string, optional) The hash of the block that ends the window.

Result:

 {
  "time": xxxxx,                         (numeric) The timestamp for the final block in the window in UNIX format.
  "txcount": xxxxx,                      (numeric) The total number of transactions in the chain up to that point.
  "window_final_block_hash": "...",      (string) The hash of the final block in the window.
  "window_block_count": xxxxx,           (numeric) Size of the window in number of blocks.
  "window_tx_count": xxxxx,              (numeric) The number of transactions in the window. Only returned if "window_block_count" is > 0.
  "window_interval": xxxxx,              (numeric) The elapsed time in the window in seconds. Only returned if "window_block_count" is > 0.
  "txrate": x.xx,                        (numeric) The average rate of transactions per second in the window. Only returned if "window_interval" is > 0.
}

Examples:

> hydra-cli getchaintxstats

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getchaintxstats", "params": [2016] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

Test result:

{
  "time": 1561602624,
  "txcount": 866823,
  "window_final_block_hash": "ea6b26303facc34404da3174962a5c1d8d00369a3ff27aa50238ba8f24170280",
  "window_block_count": 20250,
  "window_tx_count": 41012,
  "window_interval": 2655920,
  "txrate": 0.01544173017259556
}

getdifficulty

Returns the proof-of-work difficulty as a multiple of the minimum difficulty.

Returns the proof-of-stake difficulty as a multiple of the minimum difficulty.

Result:

n.nnn (numeric) the proof-of-work difficulty as a multiple of the minimum difficulty.

Examples:

> hydra-cli getdifficulty

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getdifficulty", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

Test example:

./hydra-cli getdifficulty

Test result:

{
  "proof-of-work": 1.52587890625e-05,
  "proof-of-stake": 7022116.100551808
}

getmempoolancestors

If txid is in the mempool, returns all in-mempool ancestors.

Arguments:

1. "txid"  (string, required) The transaction id (must be in mempool)
2. verbose (boolean, optional, default=false) True for a json object, false for array of transaction ids

Result (for verbose = false):

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

Result (for verbose=true):

{                           
  "transactionid" : {       
    "size" : 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.
    "fee" : n,              (numeric) transaction fee in HYDRA (DEPRECATED)
    "modifiedfee" : n,      (numeric) transaction fee with fee deltas used for mining priority (DEPRECATED)
    "time" : n,             (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)
    "descendantfees" : n,   (numeric) modified fees (see above) of in-mempool descendants (including this one) (DEPRECATED)
    "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)
    "ancestorfees" : n,     (numeric) modified fees (see above) of in-mempool ancestors (including this one) (DEPRECATED)
    "wtxid" : hash,         (string) hash of serialized transaction, including witness data
    "fees" : {
        "base" : n,         (numeric) transaction fee in HYDRA
        "modified" : n,     (numeric) transaction fee with fee deltas used for mining priority in hydra
        "ancestor" : n,     (numeric) modified fees (see above) of in-mempool ancestors (including this one) in hydra
        "descendant" : n,   (numeric) modified fees (see above) of in-mempool descendants (including this one) in hydra
    }
    "depends" : [           (array) unconfirmed transactions used as inputs for this transaction
        "transactionid",    (string) parent transaction id
       ... ]
    "spentby" : [           (array) unconfirmed transactions spending outputs from this transaction
        "transactionid",    (string) child transaction id
       ... ]
  }, ...
}

Examples:

> hydra-cli getmempoolancestors "mytxid"

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getmempoolancestors", "params": ["mytxid"] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

Test example:

./hydra-cli getmempoolancestors a957d309824b760814feb6426ba386d082f3b8bc95837e3e7ebada6538cf7e2c     

Test result:

[
  "c3d044940534fd94fd0c901a895f62505e7beba0dfa44b1563c7aea980279135"     
]

getmempooldescendants

If txid is in the mempool, returns all in-mempool descendants.

Arguments:

1. "txid"   (string, required) The transaction id (must be in mempool)
2.  verbose (boolean, optional, default=false) True for a json object, false for array of transaction ids

Result (for verbose = false):

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

Result (for verbose=true):

 {                           
  "transactionid" : {       
    "size" : 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.
    "fee" : n,              (numeric) transaction fee in HYDRA (DEPRECATED)
    "modifiedfee" : n,      (numeric) transaction fee with fee deltas used for mining priority (DEPRECATED)
    "time" : n,             (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)
    "descendantfees" : n,   (numeric) modified fees (see above) of in-mempool descendants (including this one) (DEPRECATED)
    "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)
    "ancestorfees" : n,     (numeric) modified fees (see above) of in-mempool ancestors (including this one) (DEPRECATED)
    "wtxid" : hash,         (string) hash of serialized transaction, including witness data
    "fees" : {
        "base" : n,         (numeric) transaction fee in HYDRA
        "modified" : n,     (numeric) transaction fee with fee deltas used for mining priority in hydra
        "ancestor" : n,     (numeric) modified fees (see above) of in-mempool ancestors (including this one) in hydra
        "descendant" : n,   (numeric) modified fees (see above) of in-mempool descendants (including this one) in hydra
    }
    "depends" : [           (array) unconfirmed transactions used as inputs for this transaction
        "transactionid",    (string) parent transaction id
       ... ]
    "spentby" : [           (array) unconfirmed transactions spending outputs from this transaction
        "transactionid",    (string) child transaction id
       ... ]
  }, ...
}

Examples:

> hydra-cli getmempooldescendants "mytxid"

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getmempooldescendants", "params": ["mytxid"] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

Test result:

[
  "9d980a4fcdf13fb2c9a5c7769ad6f3e8668aba1f0608be09ef84a11afaf3d03f",
  "89874d6f44bb3b8a526c50cecda1cbe06c6c6e8107623b79222ee75b79f91d5a",
  "0c2d893fdc510a6fddb18fc3d441b02d5b6050b754dc6f5d5ddd251707c3d995"
]

getmempoolentry

Returns mempool data for given transaction

Arguments:

1. "txid" (string, required) The transaction id (must be in mempool)

Result:

{                           
    "size" : 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.
    "fee" : n,              (numeric) transaction fee in HYDRA (DEPRECATED)
    "modifiedfee" : n,      (numeric) transaction fee with fee deltas used for mining priority (DEPRECATED)
    "time" : n,             (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)
    "descendantfees" : n,   (numeric) modified fees (see above) of in-mempool descendants (including this one) (DEPRECATED)
    "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)
    "ancestorfees" : n,     (numeric) modified fees (see above) of in-mempool ancestors (including this one) (DEPRECATED)
    "wtxid" : hash,         (string) hash of serialized transaction, including witness data
    "fees" : {
        "base" : n,         (numeric) transaction fee in HYDRA
        "modified" : n,     (numeric) transaction fee with fee deltas used for mining priority in hydra
        "ancestor" : n,     (numeric) modified fees (see above) of in-mempool ancestors (including this one) in hydra
        "descendant" : n,   (numeric) modified fees (see above) of in-mempool descendants (including this one) in hydra
    }
    "depends" : [           (array) unconfirmed transactions used as inputs for this transaction
        "transactionid",    (string) parent transaction id
       ... ]
    "spentby" : [           (array) unconfirmed transactions spending outputs from this transaction
        "transactionid",    (string) child transaction id
       ... ]
}

Examples:

> hydra-cli getmempoolentry "mytxid"

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getmempoolentry", "params": ["mytxid"] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

getmempoolinfo

Returns details on the active state of the TX memory pool.

Result:

{
  "size": xxxxx, (numeric) Current tx count  
  "bytes": xxxxx, (numeric) Sum of all virtual transaction sizes as defined in BIP 141. Differs from actual serialized size because witness data is discounted  
  "usage": xxxxx, (numeric) Total memory usage for the mempool  
  "maxmempool": xxxxx, (numeric) Maximum memory usage for the mempool  
  "mempoolminfee": xxxxx (numeric) Minimum fee rate in HYDRA/kB for tx to be accepted. Is the maximum of minrelaytxfee and minimum mempool fee  
  "minrelaytxfee": xxxxx (numeric) Current minimum relay fee for transactions  
}

Examples:

> hydra-cli getmempoolinfo

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getmempoolinfo", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

Test example:

./hydra-cli getmempoolinfo

Test result:

{
  "size": 10,
  "bytes": 3582,
  "usage": 14176,
  "maxmempool": 300000000,
  "mempoolminfee": 0.00400000,
  "minrelaytxfee": 0.00400000
}

getrawmempool

Returns all transaction ids in memory pool as a json array of string transaction ids.

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

Arguments:

1. verbose (boolean, optional, default=false) True for a json object, false for array of transaction ids

Result: (for verbose = false):

{                           
  "transactionid" : {       
    "size" : 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.
    "fee" : n,              (numeric) transaction fee in HYDRA (DEPRECATED)
    "modifiedfee" : n,      (numeric) transaction fee with fee deltas used for mining priority (DEPRECATED)
    "time" : n,             (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)
    "descendantfees" : n,   (numeric) modified fees (see above) of in-mempool descendants (including this one) (DEPRECATED)
    "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)
    "ancestorfees" : n,     (numeric) modified fees (see above) of in-mempool ancestors (including this one) (DEPRECATED)
    "wtxid" : hash,         (string) hash of serialized transaction, including witness data
    "fees" : {
        "base" : n,         (numeric) transaction fee in HYDRA
        "modified" : n,     (numeric) transaction fee with fee deltas used for mining priority in hydra
        "ancestor" : n,     (numeric) modified fees (see above) of in-mempool ancestors (including this one) in hydra
        "descendant" : n,   (numeric) modified fees (see above) of in-mempool descendants (including this one) in hydra
    }
    "depends" : [           (array) unconfirmed transactions used as inputs for this transaction
        "transactionid",    (string) parent transaction id
       ... ]
    "spentby" : [           (array) unconfirmed transactions spending outputs from this transaction
        "transactionid",    (string) child transaction id
       ... ]
  }, ...
}

Examples:

> hydra-cli getrawmempool true

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getrawmempool", "params": [true] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

Test example:

./hydra-cli getrawmempool

Test result:

[
  "d4e995b2e0b5ef44f90659323e662f408f7938b5b97c345a40192ca6d0b06704",
  "9e41daae52ece96732305cb0873b8528e7011c866eb7c3c9bee2c22c03e5bf65",
  "354297aef68f48044af17c3f01616597dad298304e34728fa9894b3ff73a0f33",
  "e2c407e5468a3e885b73760e3c6115d6d493786fff5ec070e91ad9b4db58b2ef",
  "15f9f80b536041ebf5c3958c7b7d9bab72c800882235fc782925137c2addbdd2",
  "109483b1b06746cf4215f3786907b26213adc71a14145acccbba4f0952a751a3",
  "b49e03dd14a242803bf8108a10a9f82120e21e7d4b0a9255c632e7b92d879136",
  "40a295fa44931750c048feb817fad96e079ce193c4eda0770d68be6c1f7241c3",
  "f1e4f8814a404adce808e9b0aed56f61ec151c745cba3a6ac1f0a917884adb59",
  "b6772f160e21c4633f95b1c5831c6d0451cab1501c375730ea32de64860f1809",
  "65894a5fcf0e19e13375ba0d0f2afa6e73f52512bc69cf8225c40af824f740d9",
  "8199c4f6c9f8be79fff4fc9664755bc0502de92d9856083112e55caaa2cb1974",
  "c3fb5ef13f87f2988c879c274cfbc1613240a12a66e9259388101d82364f1934",
  "ca78e53edcfba07d4eee2a1bbfc07e26e79e5677104399c794e51d098c735056",
  "7f66e7f6443ebd0d3a3a8e6bd83e3a5ffc6d32ef5a1ee6487c7abb5cfae7d409",
  "97966a9f3baeac334cb547d553baf71bf7c68720f350444d7411e0855f39a574",
  "78285303f6deef553cd5fcd5084db0bae3ccf504ac66f614cb29a5a6f6b5e815",
  "e5ae989b9782c1afd2c6f71379e46d162ffbe804c5b8db70b7bc85d939df2efe",
  "2f09732e25eab121a347471a91be55c798cde96aa7f8009da51c2a2d322e6410",
  "c302d3177a64a4a3c7f2ba1ea196b69754475192afa8249eb18f6f055556c8e1",
  "7f1de19f02347ea3744bcb11364c9883b91e4f4883b13f15e9e9f52595c1d3d6",
  "c241f5896723fec65b3af4f94491679ae8a79c434b2e0749651cf416952abac0",
  "4d8932af7a7073e2c4a5527767215f7bf5b8c7759a5b49d976f0031d5184fd18"
]

getstorage

Get data stored by smart contracts

Argument:

 1. "address"  (string, required) The address to get the storage from
 2. "blockNum" (string, optional) Number of block to get state from,  "latest" keyword supported. Latest if not passed.
 3. "index"    (number, optional) Zero-based index position of the storage 

Examples:

> hydra-cli getstorage “contract address”

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getstorage", "params": ["address"] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

Test example:

getstorage "fdb9d0873ba524ef3ea67c1719666968e1eeb110"

Test result:

{
  "000756ed9982214a7ba55dbe32d0321f5891e75d3c3c467d4b575d55991e03b1": 
  {
    "52adc13b5e472402f13052709f282024cc52e564f96b2183a5737c545229228d": "0000000000000000000000000000000000000000000000000000000000000001"
  },
}

gettransactionreceipt

requires -logevents to be enabled

Argument:

1. "hash" (string, required) The contract transaction hash

Result:

{
  "blockHash":  "XXX"        (String), 32 bytes, the blockhash included this tx.
  "blockNumber": n           (Number), the blocknumber included this transaction.
  "transaction": "XXX":      (String), 32 bytes,the hash of this transaction.
  "transactionIndex": n      (numberic), the index in the block for this tx.
  "from": "XXX"              (String), 20 bytes,the sender address of this tx.
  "to"  : "XXXX"             (String), 20 bytes,the receiver address of this tx. if this  address is created by a contract,return null. 
  "cumulativeGasUsed": n     (numberic), The total amount of gas used after execution of the current transaction
  "gasUsed": n (numberic), The gas cost alone to execute the current transaction。
  "contractAddress": "XXX"   (String), 20 bytes,the created contract address.
   if this tx is created by the contract, return the contract address. else return null.
  "logs": []
}

Test result:

[
  {
    "blockHash": "1e34edb316f9c442d1db71ad5bd5376650387c6deb275c63c459b6624880180b",
    "blockNumber": 196529,
    "transactionHash": "acccfb57aaeb94127560f4762d5372af3dcb4faddf9de3b2ce6bde0fdd1d57d5",
    "transactionIndex": 2,
    "from": "83c2436854450b0895d4c1d965720ef5e6a125be",
    "to": "74045ec0dc26ec1861473828bc140ebc4c1f3eff",
    "cumulativeGasUsed": 23619,
    "gasUsed": 23619,
    "contractAddress": "74045ec0dc26ec1861473828bc140ebc4c1f3eff",
    "excepted": "None",
    "log": [
    ]
  }
]

gettxout

Returns details about an unspent transaction output.

Arguments:

1. "txid"            (string, required) The transaction id
2. "n"               (numeric, required) vout number
3. "include_mempool" (boolean, optional) Whether to include the mempool. Default: true. Note that an unspent output that is spent in the mempool won't appear.

Result:

{
  "bestblock": "hash",    (string) The hash of the block at the tip of the chain
  "confirmations" : n,    (numeric) The number of confirmations
  "value" : x.xxx,        (numeric) The transaction value in HYDRA
  "scriptPubKey" : 
  { 
    "asm" : "code",       (string)
    "hex" : "hex",        (string)
    "reqSigs" : n,        (numeric) Number of required signatures
    "type" : "pubkeyhash",(string) The type, eg pubkeyhash
    "addresses" : [ (array of string) array of hydra addresses
    "address"             (string) hydra address
    ,...
    ]
   },
  "coinbase" : true|false (boolean) Coinbase or not
}

Examples:

Get unspent transactions

> hydra-cli listunspent

View the details

> hydra-cli gettxout "txid" 1

As a json rpc call

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "gettxout", "params": ["txid", 1] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

gettxoutproof

Returns a hex-encoded proof that "txid" was included in a block.

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).

Arguments:

1. "txids" (string,required) A json array of txids to filter
  [
    "txid" (string) A transaction hash
    ,...
  ]
2. "blockhash" (string, optional) If specified, looks for txid in the block with this hash

Result:

"data" (string) A string that is a serialized, hex-encoded data for the proof.

Test example:

./hydra-cli gettxoutproof [\"5caa24c8c78f441a5c37dff602cdacc27b4530b03c09569f62dc3cd20e674918\"]

Test result:

0000002081d3145a457b724b725171603a991b8d8186f0506c65722e436a6a33d039690ed689a1e4bdea746f8a3c47d6856765282fb5f7f20c9c43cc9e0170b6ba1214076010135d8683001b0000000052ef386ec7ae80719e408c3ea4193583bd0665fffd633d5e10b19e26375ac9b6386faa7484bfd98fc4789fd584229d5c20f72f772a8b3024ea94d1563e84e964b7e989413b1f509a5c14f24dadcf6da7e4f9e8559e5f6ff185cbc978fa1693fc0100000046304402205c0fbeff48e49b24848fba7428ea1c821ef4942135d60f51f6a4260e76941ac5022012a051fc518ec6b684a49eaf75631cdfa5574b170ccab6a0612da44585eab5600300000002fc77727661996828f410e89871d981a1c37f951d35d4ed196745d348cc74ca611849670ed23cdc629f56093cb030457bc2accd02f6df375c1a448fc7c824aa5c010d

gettxoutsetinfo

Returns statistics about the unspent transaction output set. Note this call may take some time.

Result:

{
  "height":n,                  (numeric) The current block height (index)
  "bestblock": "hex",          (string) The hash of the block at the tip of the chain
  "transactions": n,           (numeric) The number of transactions with unspent outputs
  "txouts": n,                 (numeric) The number of unspent transaction outputs
  "bogosize": n,               (numeric) A meaningless metric for UTXO set size
  "hash_serialized_2": "hash", (string) The serialized hash
  "disk_size": n,              (numeric) The estimated size of the chainstate on disk
  "total_amount": x.xxx        (numeric) The total amount
}

Examples:

> hydra-cli gettxoutsetinfo

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "gettxoutsetinfo", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

listcontracts

list all the contracts and default accounts is 20

Argument:

1. start (numeric or string, optional) The starting account index, default 1
2. maxDisplay (numeric or string, optional) Max accounts to list, default 20

Test example:

> ./hydra-cli listcontracts 1 5

Result:

 {
  "82155d35dc1e0b5dc3d6ca7e536af42394a7003c": 0.00000000,
  "c50116ca622b4dbd12205fb9cc61a64f7b63cb8a": 0.00000000,
  "28d1140499604664be0037272eb287e1742dcafe": 0.00000000,
  "b9fe4ba102c33ba078d90a2cb6fe8fa94fd114a1": 0.00000000,
  "954999d28fd46c6de806f9587a82321437771ab2": 0.00000000
}

preciousblock

Treats a block as if it were received before others with the same work.

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

The effects of preciousblock are not retained across restarts.

Arguments:

1. "blockhash" (string, required) the hash of the block to mark as precious

Examples:

> hydra-cli preciousblock "blockhash"

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "preciousblock", "params": ["blockhash"] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

pruneblockchain

prune the spend tx to reduce the size of the block

Arguments:

1. "height" (numeric, required) The block height to prune up to. May be set to a discrete height, or a unix timestamp to prune blocks whose block time is at least 2 hours older than the provided timestamp.

Result:

n (numeric) Height of the last block pruned.

Examples:

> hydra-cli pruneblockchain 1000

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "pruneblockchain", "params": [1000] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

savemempool

Dumps the mempool to disk. It will fail until the previous dump is fully loaded.

Examples:

> hydra-cli savemempool

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "savemempool", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

scantxoutset

EXPERIMENTAL warning: this call may be removed or changed in future releases.

Scans the unspent transaction output set for entries that match certain output descriptors. Examples of output descriptors are: addr() Outputs whose scriptPubKey corresponds to the specified address (does not include P2PK) raw() Outputs whose scriptPubKey equals the specified hex scripts combo() P2PK, P2PKH, P2WPKH, and P2SH-P2WPKH outputs for the given pubkey pkh() P2PKH outputs for the given pubkey sh(multi(,,,...)) P2SH-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 "/", 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.

Arguments:

1. "action"                       (string, required) 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
2. "scanobjects"                  (array, required) Array of scan objects
    [                             Every scan object is either a string descriptor or an object:
        "descriptor",             (string, optional) An output descriptor
        {                         (object, optional) An object with output descriptor and metadata
          "desc": "descriptor",   (string, required) An output descriptor
          "range": n,             (numeric, optional) Up to what child index HD chains should be explored (default: 1000)
        },
        ...
    ]

Result:

 {
  "unspents": [
    {
    "txid" : "transactionid",     (string) The transaction id
    "vout": n,                    (numeric) the vout value
    "scriptPubKey" : "script",    (string) the script key
    "amount" : x.xxx,             (numeric) The total amount in hydra of the unspent output
    "height" : n,                 (numeric) Height of the unspent transaction output
   }
   ,...], 
 "total_amount" : x.xxx,          (numeric) The total amount of all found unspent outputs in hydra
] 

searchlogs

requires -logevents to be enabled

Arguments:

1. "fromBlock"        (numeric, required) The number of the earliest block (latest may be given to mean the most recent block).
2. "toBlock"          (string, required) The number of the latest block (-1 may be given to mean the most recent block).
3. "address"          (string, optional) An address or a list of addresses to only get logs from particular account(s).
4. "topics"           (string, optional) An array of values from which at least one must appear in the log entries. The order is important, if you want to leave topics out use null, e.g. ["null", "0x00..."]. 
5. "minconf"          (uint, optional, default=0) Minimal number of confirmations before a log is returned

Examples:

> hydra-cli searchlogs 0 100 '{"addresses": ["12ae42729af478ca92c8c66773a3e32115717be4"]}' '{"topics": ["null","b436c2bf863ccd7b8f63171201efd4792066b4ce8e543dde9c3e9e9ab98e216c"]}'

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "searchlogs", "params": [0 100 {"addresses": ["12ae42729af478ca92c8c66773a3e32115717be4"]} {"topics": ["null","b436c2bf863ccd7b8f63171201efd4792066b4ce8e543dde9c3e9e9ab98e216c"]}] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

verifychain

Verifies blockchain database.

Arguments:

1. checklevel (numeric, optional, 0-4, default=3) How thorough the block verification is.
2. nblocks    (numeric, optional, default=6, 0=all) The number of blocks to check.

Result:

true|false (boolean) Verified or not

Examples:

> hydra-cli verifychain

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "verifychain", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

verifytxoutproof

Verifies that a proof points to a transaction in a block, returning the transaction it commits to and throwing an RPC error if the block is not in our best chain

Arguments:

1. "proof" (string, required) The hex-encoded proof generated by gettxoutproof

Result:

["txid"] (array, strings) The txid(s) which the proof commits to, or empty array if the proof can not be validated.

Test example:

verifytxoutproof "0000002081d3145a457b724b725171603a991b8d8186f0506c65722e436a6a33d039690ed689a1e4bdea746f8a3c47d6856765282fb5f7f20c9c43cc9e0170b6ba1214076010135d8683001b0000000052ef386ec7ae80719e408c3ea4193583bd0665fffd633d5e10b19e26375ac9b6386faa7484bfd98fc4789fd584229d5c20f72f772a8b3024ea94d1563e84e964b7e989413b1f509a5c14f24dadcf6da7e4f9e8559e5f6ff185cbc978fa1693fc0100000046304402205c0fbeff48e49b24848fba7428ea1c821ef4942135d60f51f6a4260e76941ac5022012a051fc518ec6b684a49eaf75631cdfa5574b170ccab6a0612da44585eab5600300000002fc77727661996828f410e89871d981a1c37f951d35d4ed196745d348cc74ca611849670ed23cdc629f56093cb030457bc2accd02f6df375c1a448fc7c824aa5c010d"

Test result:

[
  "5caa24c8c78f441a5c37dff602cdacc27b4530b03c09569f62dc3cd20e674918"
]

waitforlogs

waitforlogs (fromBlock) (toBlock) (filter) (minconf) requires -logevents to be enabled

Waits for a new logs and return matching log entries. When the call returns, it also specifies the next block number to start waiting for new logs. By calling waitforlogs repeatedly using the returned nextBlock number, a client can receive a stream of up-to-date log entires.

This call is different from the similarly named waitforlogs. This call returns individual matching log entries, searchlogs returns a transaction receipt if one of the log entries of that transaction matches the filter conditions.

Arguments:

1. fromBlock (int | "latest", optional, default=null) The block number to start looking for logs. ()
2. toBlock   (int | "latest", optional, default=null) The block number to stop looking for logs. If null, will wait indefinitely into the future.
3. filter    ({ addresses?: Hex160String[], topics?: Hex256String[] }, optional default={}) Filter conditions for logs. Addresses and topics are specified as array of hexadecimal strings
4. minconf   (uint, optional, default=6) Minimal number of confirmations before a log is returned

Result:

An object with the following properties:
1. logs (LogEntry[]) Array of matchiing log entries. This may be empty if `filter` removed all entries.2. count (int) How many log entries are returned.3. nextBlock (int) To wait for new log entries haven't seen before, use this number as `fromBlock`
Usage:
`waitforlogs` waits for new logs, starting from the tip of the chain.
`waitforlogs 600` waits for new logs, but starting from block 600. If there are logs available, this call will return immediately.
`waitforlogs 600 700` waits for new logs, but only up to 700th block
`waitforlogs null null` this is equivalent to `waitforlogs`, using default parameter values
`waitforlogs null null` { "addresses": [ "ff0011..." ], "topics": [ "c0fefe"] }` waits for logs in the future matching the specified conditions

Sample Output:

{
  "entries": [
    {
      "blockHash": "56d5f1f5ec239ef9c822d9ed600fe9aa63727071770ac7c0eabfc903bf7316d4",
      "blockNumber": 3286,
      "transactionHash": "00aa0f041ce333bc3a855b2cba03c41427cda04f0334d7f6cb0acad62f338ddc",
      "transactionIndex": 2,
      "from": "3f6866e2b59121ada1ddfc8edc84a92d9655675f",
      "to": "8e1ee0b38b719abe8fa984c986eabb5bb5071b6b",
      "cumulativeGasUsed": 23709,
      "gasUsed": 23709,
      "contractAddress": "8e1ee0b38b719abe8fa984c986eabb5bb5071b6b",
      "topics": [
        "f0e1159fa6dc12bb31e0098b7a1270c2bd50e760522991c6f0119160028d9916",
        "0000000000000000000000000000000000000000000000000000000000000002"
      ],
      "data": "00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003"
    }
  ],

  "count": 7,
  "nextblock": 801
}

Control

echo

echo|echojson "message" ...

Simply echo back the input arguments. This command is for testing.

The difference between echo and echojson is that echojson has argument conversion enabled in the client-side table in hydra-cli and the GUI. There is no server-side difference.

getmemoryinfo

Returns an object containing information about memory usage.

Arguments:

1. "mode" determines what kind of information is returned. This argument is optional, the default mode is "stats".
  - "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 2.10+).

Result (mode "stats"):

{
  "locked": {               (json object) Information about locked memory manager
    "used": xxxxx,          (numeric) Number of bytes used
    "free": xxxxx,          (numeric) Number of bytes available in current arenas
    "total": xxxxxxx,       (numeric) Total number of bytes managed
    "locked": xxxxxx,       (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": xxxxx,   (numeric) Number allocated chunks
    "chunks_free": xxxxx,   (numeric) Number unused chunks
  }
}

Result (mode "mallocinfo"):

"..."

Examples:

> hydra-cli getmemoryinfo 

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getmemoryinfo", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

help

List all commands, or get help for a specified command.

Arguments:

1. "command"     (string, optional) The command to get help on

Result:

"text"     (string) The help text

logging

Gets and sets the logging configuration.

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: net, tor, mempool, http, bench, zmq, db, rpc, estimatefee, addrman, selectcoins, reindex, cmpctblock, rand, prune, proxy, mempoolrej, libevent, coindb, qt, leveldb, coinstake, http-poll.

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.

Arguments:

1. "include"        (array of strings, optional) A json array of categories to add debug logging
     [
       "category"   (string) the valid logging category
       ,...
     ]
2. "exclude"        (array of strings, optional) A json array of categories to remove debug logging
     [
       "category"   (string) the valid logging category
       ,...
     ]

Result:

{                  
  "category": 0|1,  (numeric) if being debug logged or not. 0:inactive, 1:active
  ...
}

Examples:

> hydra-cli logging "[\"all\"]" "[\"http\"]"

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "logging", "params": [["all"], "[libevent]"] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

stop

Stop hydra server.

uptime

Returns the total uptime of the server.

Result:

ttt (numeric) The number of seconds that the server has been running

Examples:

> hydra-cli uptime

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "uptime", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

Generating

generate

Mine up to nblocks blocks immediately (before the RPC call returns) to an address in the wallet.

Arguments:

1. nblocks  (numeric, required) How many blocks are generated immediately.
2. maxtries (numeric, optional) How many iterations to try (default = 1000000).

Result:

[ blockhashes ] (array) hashes of blocks generated

Examples:

Generate 11 blocks

 > hydra-cli generate 11

generatetoaddress

Mine blocks immediately to a specified address (before the RPC call returns)

Arguments:

1. nblocks  (numeric, required) How many blocks are generated immediately.
2. address  (string, required) The address to send the newly generated hydra to.
3. maxtries (numeric, optional) How many iterations to try (default = 1000000).

Result:

[ blockhashes ] (array) hashes of blocks generated

Examples:

Generate 11 blocks to myaddress

> hydra-cli generatetoaddress 11 "myaddress"

Mining

getblocktemplate

If the request parameters include a 'mode' key, that is used to explicitly select between the default 'template' request or a 'proposal'. 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

Arguments:

1. template_request (json object, optional) A json object in the following spec
{
  "mode":"template" (string, optional) This must be set to "template", "proposal" (see BIP 23), or omitted
  "capabilities":[ (array, optional) A list of strings
  "support" (string) client side supported feature, 'longpoll', 'coinbasetxn', 'coinbasevalue', 'proposal', 'serverlist', 'workid'
   ,...
    ],
  "rules":
 [ 
    (array, optional) A list of strings
    "support" (string) client side supported softfork deployment
    ,...
  ]
}

Result:

{
  "version" : n,                    (numeric) The preferred block version
  "rules" : [ "rulename", ... ],    (array of strings) specific block rules that are to be enforced
  "vbavailable" : {                 (json object) set of pending, supported versionbit (BIP 9) softfork deployments
      "rulename" : bitnumber          (numeric) identifies the bit number as indicating acceptance and readiness for the named softfork rule
      ,...
  },
  "vbrequired" : n,                 (numeric) bit mask of versionbits the server requires set in submissions
  "previousblockhash" : "xxxx",     (string) The hash of current highest block
  "transactions" : [                (array) contents of non-coinbase transactions that should be included in the next block
      {
         "data" : "xxxx",             (string) transaction data encoded in hexadecimal (byte-for-byte)
         "txid" : "xxxx",             (string) transaction id encoded in little-endian hexadecimal
         "hash" : "xxxx",             (string) hash encoded in little-endian hexadecimal (including witness data)
         "depends" : [                (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
      "flags" : "xx"                  (string) key name is to be ignored, and value included in scriptSig
  },
  "coinbasevalue" : n,              (numeric) maximum allowable input to coinbase transaction, including the generation award and transaction fees (in satoshis)
  "coinbasetxn" : { ... },          (json object) information for coinbase transaction
  "target" : "xxxx",                (string) The hash target
  "mintime" : xxx,                  (numeric) The minimum timestamp appropriate for next block time in seconds since epoch (Jan 1 1970 GMT)
  "mutable" : [                     (array of string) list of ways the block template may be changed 
     "value"                          (string) A way the block template may be changed, e.g. 'time', 'transactions', 'prevblock'
     ,...
  ],
  "noncerange" : "00000000ffffffff",(string) A range of valid nonces
  "sigoplimit" : n,                 (numeric) limit of sigops in blocks
  "sizelimit" : n,                  (numeric) limit of block size
  "weightlimit" : n,                (numeric) limit of block weight
  "curtime" : ttt,                  (numeric) current timestamp in seconds since epoch (Jan 1 1970 GMT)
  "bits" : "xxxxxxxx",              (string) compressed target of next block
  "height" : n                      (numeric) The height of the next block
}    

getmininginfo

Returns a json object containing mining-related information.

Examples:

 >hydra-cli getmininginfo  

 >curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getmininginfo", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

Result:

{
  "blocks": nnn,             (numeric) The current block
  "currentblockweight": nnn, (numeric) The last block weight
  "currentblocktx": nnn,     (numeric) The last block transaction
  "difficulty": xxx.xxxxx    (numeric) The current difficulty
  "networkhashps": nnn,      (numeric) The network hashes per second
  "pooledtx": n              (numeric) The size of the mempool
  "chain": "xxxx",           (string) current network name as defined in BIP70 (main, test, regtest)
  "warnings": "..."          (string) any network and blockchain warnings
}

Test example:

./hydra-cli getmininginfo

Test result:

 {
  "blocks": 401661,
  "currentblockweight": 4000,
  "currentblocktx": 0,
  "difficulty": {
    "proof-of-work": 1.52587890625e-005,
    "proof-of-stake": 2798173.863126792,
    "search-interval": 0
  },
  "blockvalue": 400000000,
  "netmhashps": 0,
  "netstakeweight": 1335439448399970,
  "errors": "",
  "networkhashps": 76789015825010.86,
  "pooledtx": 2,
  "stakeweight": {
    "minimum": 568351000,
    "maximum": 0,
    "combined": 568351000
  },
  "chain": "main",
  "warnings": ""
}

getnetworkhashps

Returns the estimated network hashes per second based on the last n blocks (for PoW only). 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.

Arguments:

1. nblocks (numeric, optional, default=120) The number of blocks, or -1 for blocks since last difficulty change.
2. height  (numeric, optional, default=-1) To estimate at the time of the given height.

Result:

x (numeric) Hashes per second estimated

Examples:

> hydra-cli getnetworkhashps

> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getnetworkhashps", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:3389/

Test result:

3.514351301619956e-008

getstakinginfo

Returns an object containing staking-related information.

Example:

./hydra-cli getstakinginfo

Result:

{
  "enabled": true or false,(bool),if HD key is enabled, the value if true,else is false.
  "staking": true or false,(bool),if wallet staking token or not.
  "errors": "XXX",         (string), any network and blockchain errors
  "currentblocktx": n,     (numberic),the last block transaction
  "pooledtx": n,           (numberic), The size of the mempool
  "difficulty": n,         (numberic),the current proof-of-work difficulty
  "search-interval": n,
  "weight": n,             (numberic), the total staking token number
  "netstakeweight": n,     (numberic), the total numbers of staking in the network
  "expectedtime": n,       (numberic), the time that to get the rights to cast the block
}

Test example: