Node RPC API documentation

Node RPC API documentation

This is a list of the still-node daemon RPC calls, their inputs and outputs, and examples of each. All the RPC calls use the daemon’s JSON RPC interface, as demonstrated below. The daemon implements the jsonrpc 2.0 standard.

Note: “atomic units” refer to the smallest fraction of 1 XST according to the implementation. 1 XST = 1e9 atomic units.

Methods

get_transaction

Inputs:

  • txid: string - the transaction id

Outputs:

  • sender: string - null if the transaction is a coinbase reward
  • recipient: string - the recipient of this transaction
  • amount: uint64 - the amount (fee excluded, atomic units)
  • fee: uint64 - the fee (atomic units)
  • nonce: uint64
  • signature: string - hex representation of the signature data
  • height: uint64 - height where this transaction is included, or zero
  • coinbase: bool - if true, this is a coinbase transaction

Example:

curl http://127.0.0.1:6311/json_rpc -d '{"jsonrpc":"2.0","id":0,"method":"get_transaction","params":{"txid":"307bfc317fa990460312c31cfd9f6a6d2d7b8dc3134530b86bf5d77504d31988"}}' -H 'Content-Type: application/json'

get_info

Inputs:

Outputs:

  • height: uint64 - the current blockchain height
  • top_hash: string - the hash of the top block
  • circulating_supply: uint64 - the current circulating supply of the coin
  • max_supply: uint64 - the maximum supply of the coin
  • coin: uint64 - the coin identifier
  • difficulty: string - the current mining difficulty
  • cumulative_diff: string - the cumulative difficulty
  • target_block_time: int - the target time for block generation (in seconds)
  • block_reward: uint64 - the reward for mining a block

Example:

curl http://127.0.0.1:6311/json_rpc -d '{"jsonrpc":"2.0","id":0,"method":"get_info"}' -H 'Content-Type: application/json'

get_address

Inputs:

  • address: string - the address to query

Outputs:

  • balance: uint64 - the confirmed balance of the address
  • last_nonce: uint64 - the last nonce used by the address
  • last_incoming: uint64 - the last incoming transaction amount
  • mempool_balance: uint64 - the unconfirmed balance from the mempool
  • mempool_nonce: uint64 - the unconfirmed nonce from the mempool
  • mempool_incoming: uint64 - the unconfirmed incoming transaction amount
  • height: uint64 - the current blockchain height

Example:

curl http://127.0.0.1:6311/json_rpc -d '{"jsonrpc":"2.0","id":0,"method":"get_address","params":{"address":"your_address_here"}}' -H 'Content-Type: application/json'

get_tx_list

Inputs:

  • address: string - the address to query
  • transfer_type: string - “incoming” or “outgoing”
  • page: uint64 - the page number for pagination

Outputs:

  • transactions: []string - list of transaction hashes
  • max_page: uint64 - the maximum page number available

Example:

curl http://127.0.0.1:6311/json_rpc -d '{"jsonrpc":"2.0","id":0,"method":"get_tx_list","params":{"address":"your_address_here","transfer_type":"incoming","page":1}}' -H 'Content-Type: application/json'

submit_transaction

Inputs:

  • hex: string - the transaction data as a hex string

Outputs:

  • txid: string - the transaction ID of the submitted transaction

Example:

curl http://127.0.0.1:6311/json_rpc -d '{"jsonrpc":"2.0","id":0,"method":"submit_transaction","params":{"hex":"your_transaction_hex_here"}}' -H 'Content-Type: application/json'

get_block_by_hash

Inputs:

  • hash: string - the block hash

Outputs:

  • block: object - the block data
  • hash: string - the block hash
  • reward: uint64 - the block reward
  • miner: string - the miner’s address

Example:

curl http://127.0.0.1:6311/json_rpc -d '{"jsonrpc":"2.0","id":0,"method":"get_block_by_hash","params":{"hash":"your_block_hash_here"}}' -H 'Content-Type: application/json'

get_block_by_height

Inputs:

  • height: uint64 - the block height

Outputs:

  • block: object - the block data
  • hash: string - the block hash
  • reward: uint64 - the block reward
  • miner: string - the miner’s address

Example:

curl http://127.0.0.1:6311/json_rpc -d '{"jsonrpc":"2.0","id":0,"method":"get_block_by_height","params":{"height":15}}' -H 'Content-Type: application/json'

calc_pow

Inputs:

  • blob: string - the blob data as a hex string
  • seed_hash: string - the seed hash

Outputs:

  • hash: string - the calculated proof-of-work hash

Example:

curl http://127.0.0.1:6311/json_rpc -d '{"jsonrpc":"2.0","id":0,"method":"calc_pow","params":{"blob":"your_blob_here","seed_hash":"your_seed_hash_here"}}' -H 'Content-Type: application/json'

get_block_template

Inputs:

  • address: string - the miner’s address

Outputs:

  • blob: string - the block template blob
  • mining_blob: string - the mining blob

Example:

curl http://127.0.0.1:6311/json_rpc -d '{"jsonrpc":"2.0","id":0,"method":"get_block_template","params":{"address":"your_miner_address_here"}}' -H 'Content-Type: application/json'