Wallet RPC Guide

Introduction

This is a list of the RPC calls, their inputs and outputs, and examples of each. This list is autogenerated and was last generated on: 2019-04-08

Many RPC calls use the JSON RPC interface while others use their own interfaces, as demonstrated below.

Note: "atomic units" refer to the smallest fraction of 1 BELDEX which is 1e9 atomic units.

RPC Methods

COMMAND_RPC_GET_BALANCE

Return the wallet's balance.

Endpoints: get_balance, getbalance

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"getbalance",
  "params": {
    "account_index": 2130706433,
    "address_indices": [2130706433, ...]
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "balance": 123,
  "unlocked_balance": 123,
  "multisig_import_needed": true,
  "per_subaddress": [{
      "address_index": 2130706433,
      "address": "8KJf3nRQ53NTX1YLjtHryjegFRa3ZCEGLKmRxUfvkBWK19UteEacVpYqpYscSJ2q8WRuHPFdk7Q5W8pQB7Py5kvUs8vKSk",
      "balance": 123,
      "unlocked_balance": 123,
      "label": "TODO(beldex): Write example string",
      "num_unspent_outputs": 123
    }, ...]
}

Inputs:

  • account_index - uint32: Return balance for this account.

  • address_indices - uint32[]: (Optional) Return balance detail for those subaddresses.

Outputs:

  • balance - uint64: The total balance (atomic units) of the currently opened wallet.

  • unlocked_balance - uint64: Unlocked funds are those funds that are sufficiently deep enough in the beldex blockchain to be considered safe to spend.

  • multisig_import_needed - bool: True if importing multisig data is needed for returning a correct balance.

  • per_subaddress - per_subaddress_info[]: Balance information for each subaddress in an account.

    • address_index - uint32: Index of the subaddress in the account.

    • address - string: Address at this index. Base58 representation of the public keys.

    • balance - uint64: Balance for the subaddress (locked or unlocked).

    • unlocked_balance - uint64: Unlocked funds are those funds that are sufficiently deep enough in the beldex blockchain to be considered safe to spend.

    • label - string: Label for the subaddress.

    • num_unspent_outputs - uint64: Number of unspent outputs available for the subaddress.

COMMAND_RPC_GET_ADDRESS

Return the wallet's addresses for an account. Optionally filter for specific set of subaddresses.

Endpoints: get_address, getaddress

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"getaddress",
  "params": {
    "account_index": 2130706433,
    "address_index": [2130706433, ...]
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "address": "8KJf3nRQ53NTX1YLjtHryjegFRa3ZCEGLKmRxUfvkBWK19UteEacVpYqpYscSJ2q8WRuHPFdk7Q5W8pQB7Py5kvUs8vKSk",
  "addresses": [{
      "address": "8KJf3nRQ53NTX1YLjtHryjegFRa3ZCEGLKmRxUfvkBWK19UteEacVpYqpYscSJ2q8WRuHPFdk7Q5W8pQB7Py5kvUs8vKSk",
      "label": "TODO(beldex): Write example string",
      "address_index": 2130706433,
      "used": true
    }, ...]
}

Inputs:

  • account_index - uint32: Get the wallet addresses for the specified account.

  • address_index - uint32[]: (Optional) List of subaddresses to return from the aforementioned account.

Outputs:

  • address - string: (Deprecated) Remains to be compatible with older RPC format

  • addresses - address_info[]: Addresses informations.

    • address - string: The (sub)address string.

    • label - string: Label of the (sub)address.

    • address_index - uint32: Index of the subaddress

    • used - bool: True if the (sub)address has received funds before.

COMMAND_RPC_GET_ADDRESS_INDEX

Get account and address indexes from a specific (sub)address.

Endpoints: get_address_index

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"get_address_index",
  "params": {
    "address": "8KJf3nRQ53NTX1YLjtHryjegFRa3ZCEGLKmRxUfvkBWK19UteEacVpYqpYscSJ2q8WRuHPFdk7Q5W8pQB7Py5kvUs8vKSk"
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "index": 
}

Inputs:

  • address - string: (Sub)address to look for.

Outputs:

  • index - cryptonote::subaddress_index: Account index followed by the subaddress index.

COMMAND_RPC_CREATE_ADDRESS

Create a new address for an account. Optionally, label the new address.

Endpoints: create_address

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"create_address",
  "params": {
    "account_index": 2130706433,
    "label": "TODO(beldex): Write example string"
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "address": "8KJf3nRQ53NTX1YLjtHryjegFRa3ZCEGLKmRxUfvkBWK19UteEacVpYqpYscSJ2q8WRuHPFdk7Q5W8pQB7Py5kvUs8vKSk",
  "address_index": 2130706433
}

Inputs:

  • account_index - uint32: Create a new subaddress for this account.

  • label - string: (Optional) Label for the new subaddress.

Outputs:

  • address - string: The newly requested address.

  • address_index - uint32: Index of the new address in the requested account index.

COMMAND_RPC_LABEL_ADDRESS

Label an address.

Endpoints: label_address

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"label_address",
  "params": {
    "index": ,
    "label": "TODO(beldex): Write example string"
  }
}' -H 'Content-Type: application/json'

Example Response:

Inputs:

  • index - cryptonote::subaddress_index: Major & minor address index

  • label - string: Label for the address.

Outputs:

COMMAND_RPC_GET_ACCOUNTS

Get all accounts for a wallet. Optionally filter accounts by tag.

Endpoints: get_accounts

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"get_accounts",
  "params": {
    "tag": "TODO(beldex): Write example string"
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "total_balance": 123,
  "total_unlocked_balance": 123,
  "subaddress_accounts": [{
      "account_index": 2130706433,
      "base_address": "TODO(beldex): Write example string",
      "balance": 123,
      "unlocked_balance": 123,
      "label": "TODO(beldex): Write example string",
      "tag": "TODO(beldex): Write example string"
    }, ...]
}

Inputs:

  • tag - string: (Optional) Tag for filtering accounts. All accounts if empty, otherwise those accounts with this tag

Outputs:

  • total_balance - uint64: Total balance of the selected accounts (locked or unlocked).

  • total_unlocked_balance - uint64: Total unlocked balance of the selected accounts.

  • subaddress_accounts - subaddress_account_info[]: Account information.

    • account_index - uint32: Index of the account.

    • base_address - string: The first address of the account (i.e. the primary address).

    • balance - uint64: Balance of the account (locked or unlocked).

    • unlocked_balance - uint64: Unlocked balance for the account.

    • label - string: (Optional) Label of the account.

    • tag - string: (Optional) Tag for filtering accounts.

COMMAND_RPC_CREATE_ACCOUNT

Create a new account with an optional label.

Endpoints: create_account

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"create_account",
  "params": {
    "label": "TODO(beldex): Write example string"
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "account_index": 2130706433,
  "address": "8KJf3nRQ53NTX1YLjtHryjegFRa3ZCEGLKmRxUfvkBWK19UteEacVpYqpYscSJ2q8WRuHPFdk7Q5W8pQB7Py5kvUs8vKSk"
}

Inputs:

  • label - string: (Optional) Label for the account.

Outputs:

  • account_index - uint32: Index of the new account.

  • address - string: The primary address of the new account.

COMMAND_RPC_LABEL_ACCOUNT

Label an account.

Endpoints: label_account

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"label_account",
  "params": {
    "account_index": 2130706433,
    "label": "TODO(beldex): Write example string"
  }
}' -H 'Content-Type: application/json'

Example Response:

Inputs:

  • account_index - uint32: Account index to set the label for.

  • label - string: Label for the account.

Outputs:

COMMAND_RPC_GET_ACCOUNT_TAGS

Get a list of user-defined account tags.

Endpoints: get_account_tags

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '{ "jsonrpc":"2.0", "id":"0", "method":"get_account_tags"}' -H 'Content-Type: application/json'

Example Response:

{
  "account_tags": [{
      "tag": "TODO(beldex): Write example string",
      "label": "TODO(beldex): Write example string",
      "accounts": [2130706433, ...]
    }, ...]
}

Inputs:

Outputs:

  • account_tags - account_tag_info[]: Account tag information:

    • tag - string: Filter tag.

    • label - string: Label for the tag.

    • accounts - uint32[]: List of tagged account indices.

COMMAND_RPC_TAG_ACCOUNTS

Apply a filtering tag to a list of accounts.

Endpoints: tag_accounts

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"tag_accounts",
  "params": {
    "tag": "TODO(beldex): Write example string",
    "accounts": [2130706433, ...]
  }
}' -H 'Content-Type: application/json'

Example Response:

Inputs:

  • tag - string: Tag for the accounts.

  • accounts - uint32[]: Tag this list of accounts.

Outputs:

COMMAND_RPC_UNTAG_ACCOUNTS

Remove filtering tag from a list of accounts.

Endpoints: untag_accounts

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"untag_accounts",
  "params": {
    "accounts": [2130706433, ...]
  }
}' -H 'Content-Type: application/json'

Example Response:

Inputs:

  • accounts - uint32[]: Remove tag from this list of accounts.

Outputs:

COMMAND_RPC_SET_ACCOUNT_TAG_DESCRIPTION

Set description for an account tag.

Endpoints: set_account_tag_description

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"set_account_tag_description",
  "params": {
    "tag": "TODO(beldex): Write example string",
    "description": "TODO(beldex): Write example string"
  }
}' -H 'Content-Type: application/json'

Example Response:

Inputs:

  • tag - string: Set a description for this tag.

  • description - string: Description for the tag.

Outputs:

COMMAND_RPC_GET_HEIGHT

Returns the wallet's current block height.

Endpoints: get_height, getheight

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '{ "jsonrpc":"2.0", "id":"0", "method":"getheight"}' -H 'Content-Type: application/json'

Example Response:

{
  "height": 234767
}

Inputs:

Outputs:

  • height - uint64: The current wallet's blockchain height. If the wallet has been offline for a long time, it may need to catch up with the daemon.

COMMAND_RPC_TRANSFER

Send beldex to a number of recipients. To preview the transaction fee, set do_not_relay to true and get_tx_metadata to true.

Submit the response using the data in get_tx_metadata in the RPC call, relay_tx.

Endpoints: transfer

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"transfer",
  "params": {
    "destinations": [, ...],
    "account_index": 2130706433,
    "subaddr_indices": [2130706433, ...],
    "priority": 2130706433,
    "mixin": 123,
    "ring_size": 123,
    "unlock_time": 123,
    "payment_id": "f378710e54eeeb8d",
    "get_tx_key": true,
    "do_not_relay": true,
    "get_tx_hex": true,
    "get_tx_metadata": true
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "tx_hash": "b605cab7e3b9fe1f6d322e3167cd26e1e61c764afa9d733233ef716787786123",
  "tx_key": "TODO(beldex): Write example string",
  "amount": 123,
  "fee": 123,
  "tx_blob": "TODO(beldex): Write example string",
  "tx_metadata": "TODO(beldex): Write example string",
  "multisig_txset": "TODO(beldex): Write example string",
  "unsigned_txset": "TODO(beldex): Write example string"
}

Inputs:

  • destinations - transfer_destination[]: Array of destinations to receive BELDEX.

  • account_index - uint32: (Optional) Transfer from this account index. (Defaults to 0)

  • subaddr_indices - uint32[]: (Optional) Transfer from this set of subaddresses. (Defaults to 0)

  • priority - uint32: Set a priority for the transaction. Accepted Values are: default (1), or 0-3 for: unimportant, normal, elevated, priority.

  • mixin - uint64: (Deprecated) Set to 9. Number of outputs from the blockchain to mix with. Beldex mixin statically set to 9.

  • ring_size - uint64: (Deprecated) Set to 10. Sets ringsize to n (mixin + 1). Beldex ring_size is statically set to 10.

  • unlock_time - uint64: Number of blocks before the beldex can be spent (0 to use the default lock time).

  • payment_id - string: (Optional) Random 64-character hex string to identify a transaction.

  • get_tx_key - bool: (Optional) Return the transaction key after sending.

  • do_not_relay - bool: (Optional) If true, the newly created transaction will not be relayed to the beldex network. (Defaults to false)

  • get_tx_hex - bool: Return the transaction as hex string after sending. (Defaults to false)

  • get_tx_metadata - bool: Return the metadata needed to relay the transaction. (Defaults to false)

Outputs:

  • tx_hash - string: Publically searchable transaction hash.

  • tx_key - string: Transaction key if get_tx_key is true, otherwise, blank string.

  • amount - uint64: Amount transferred for the transaction.

  • fee - uint64: Fee charged for the txn.

  • tx_blob - string: Raw transaction represented as hex string, if get_tx_hex is true.

  • tx_metadata - string: Set of transaction metadata needed to relay this transfer later, if get_tx_metadata is true.

  • multisig_txset - string: Set of multisig transactions in the process of being signed (empty for non-multisig).

  • unsigned_txset - string: Set of unsigned tx for cold-signing purposes.

COMMAND_RPC_TRANSFER_SPLIT

Same as transfer, but can split into more than one tx if necessary.

Endpoints: transfer_split

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"transfer_split",
  "params": {
    "destinations": [, ...],
    "account_index": 2130706433,
    "subaddr_indices": [2130706433, ...],
    "priority": 2130706433,
    "mixin": 123,
    "ring_size": 123,
    "unlock_time": 123,
    "payment_id": "f378710e54eeeb8d",
    "get_tx_keys": true,
    "do_not_relay": true,
    "get_tx_hex": true,
    "get_tx_metadata": true
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "tx_hash_list": ["TODO(beldex): Write example string", ...],
  "tx_key_list": ["TODO(beldex): Write example string", ...],
  "amount_list": [123, ...],
  "fee_list": [123, ...],
  "tx_blob_list": ["TODO(beldex): Write example string", ...],
  "tx_metadata_list": ["TODO(beldex): Write example string", ...],
  "multisig_txset": "TODO(beldex): Write example string",
  "unsigned_txset": "TODO(beldex): Write example string"
}

Inputs:

  • destinations - transfer_destination[]: Array of destinations to receive BELDEX:

  • account_index - uint32: (Optional) Transfer from this account index. (Defaults to 0)

  • subaddr_indices - uint32[]: (Optional) Transfer from this set of subaddresses. (Defaults to 0)

  • priority - uint32: Set a priority for the transactions. Accepted Values are: 0-3 for: default, unimportant, normal, elevated, priority.

  • mixin - uint64: (Ignored) Number of outputs from the blockchain to mix with. Beldex mixin statically set to 9.

  • ring_size - uint64: (Ignored) Sets ringsize to n (mixin + 1). Beldex ring_size is statically set to 10.

  • unlock_time - uint64: Number of blocks before the beldex can be spent (0 to not add a lock).

  • payment_id - string: (Optional) Random 32-byte/64-character hex string to identify a transaction.

  • get_tx_keys - bool: (Optional) Return the transaction keys after sending.

  • do_not_relay - bool: (Optional) If true, the newly created transaction will not be relayed to the beldex network. (Defaults to false)

  • get_tx_hex - bool: Return the transactions as hex string after sending.

  • get_tx_metadata - bool: Return list of transaction metadata needed to relay the transfer later.

Outputs:

  • tx_hash_list - string[]: The tx hashes of every transaction.

  • tx_key_list - string[]: The transaction keys for every transaction.

  • amount_list - uint64[]: The amount transferred for every transaction.

  • fee_list - uint64[]: The amount of fees paid for every transaction.

  • tx_blob_list - string[]: The tx as hex string for every transaction.

  • tx_metadata_list - string[]: List of transaction metadata needed to relay the transactions later.

  • multisig_txset - string: The set of signing keys used in a multisig transaction (empty for non-multisig).

  • unsigned_txset - string: Set of unsigned tx for cold-signing purposes.

COMMAND_RPC_DESCRIBE_TRANSFER

Endpoints: describe_transfer

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"describe_transfer",
  "params": {
    "unsigned_txset": "TODO(beldex): Write example string"
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "desc": [{
      "amount_in": 123,
      "amount_out": 123,
      "ring_size": 2130706433,
      "unlock_time": 123,
      "recipients": [{
          "address": "8KJf3nRQ53NTX1YLjtHryjegFRa3ZCEGLKmRxUfvkBWK19UteEacVpYqpYscSJ2q8WRuHPFdk7Q5W8pQB7Py5kvUs8vKSk",
          "amount": 123
        }, ...],
      "payment_id": "f378710e54eeeb8d",
      "change_amount": 123,
      "change_address": "8KJf3nRQ53NTX1YLjtHryjegFRa3ZCEGLKmRxUfvkBWK19UteEacVpYqpYscSJ2q8WRuHPFdk7Q5W8pQB7Py5kvUs8vKSk",
      "fee": 123,
      "dummy_outputs": 2130706433,
      "extra": "TODO(beldex): Write example string"
    }, ...]
}

Inputs:

  • unsigned_txset - string: Set of unsigned tx returned by "transfer" or "transfer_split" methods.

Outputs:

  • desc - transfer_description[]: List of information of transfers.

    • amount_in - uint64: Amount in, in atomic units.

    • amount_out - uint64: amount out, in atomic units.

    • ring_size - uint32: Ring size of transfer.

    • unlock_time - uint64: Number of blocks before the beldex can be spent (0 represents the default network lock time).

    • recipients - recipient[]: List of addresses and amounts.

      • address - string: Destination public address.

      • amount - uint64: Amount in atomic units.

    • payment_id - string: Payment ID matching the input parameter.

    • change_amount - uint64: Change received from transaction in atomic units.

    • change_address - string: Address the change was sent to.

    • fee - uint64: Fee of the transaction in atomic units.

    • dummy_outputs - uint32

    • extra - string: Data stored in the tx extra represented in hex.

COMMAND_RPC_SIGN_TRANSFER

Sign a transaction created on a read-only wallet (in cold-signing process).

Endpoints: sign_transfer

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"sign_transfer",
  "params": {
    "unsigned_txset": "TODO(beldex): Write example string",
    "export_raw": true,
    "get_tx_keys": true
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "signed_txset": "TODO(beldex): Write example string",
  "tx_hash_list": ["TODO(beldex): Write example string", ...],
  "tx_raw_list": ["TODO(beldex): Write example string", ...],
  "tx_key_list": ["TODO(beldex): Write example string", ...]
}

Inputs:

  • unsigned_txset - string: Set of unsigned tx returned by "transfer" or "transfer_split" methods.

  • export_raw - bool: (Optional) If true, return the raw transaction data. (Defaults to false)

  • get_tx_keys - bool: (Optional) Return the transaction keys after sending.

Outputs:

  • signed_txset - string: Set of signed tx to be used for submitting transfer.

  • tx_hash_list - string[]: The tx hashes of every transaction.

  • tx_raw_list - string[]: The tx raw data of every transaction.

  • tx_key_list - string[]: The tx key data of every transaction.

COMMAND_RPC_SUBMIT_TRANSFER

Submit a previously signed transaction on a read-only wallet (in cold-signing process).

Endpoints: submit_transfer

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"submit_transfer",
  "params": {
    "tx_data_hex": "TODO(beldex): Write example string"
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "tx_hash_list": ["TODO(beldex): Write example string", ...]
}

Inputs:

  • tx_data_hex - string: Set of signed tx returned by "sign_transfer".

Outputs:

  • tx_hash_list - string[]: The tx hashes of every transaction.

COMMAND_RPC_SWEEP_DUST

Send all dust outputs back to the wallet's, to make them easier to spend (and mix).

Endpoints: sweep_dust, sweep_unmixable

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"sweep_unmixable",
  "params": {
    "get_tx_keys": true,
    "do_not_relay": true,
    "get_tx_hex": true,
    "get_tx_metadata": true
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "tx_hash_list": ["TODO(beldex): Write example string", ...],
  "tx_key_list": ["TODO(beldex): Write example string", ...],
  "amount_list": [123, ...],
  "fee_list": [123, ...],
  "tx_blob_list": ["TODO(beldex): Write example string", ...],
  "tx_metadata_list": ["TODO(beldex): Write example string", ...],
  "multisig_txset": "TODO(beldex): Write example string",
  "unsigned_txset": "TODO(beldex): Write example string"
}

Inputs:

  • get_tx_keys - bool: (Optional) Return the transaction keys after sending.

  • do_not_relay - bool: (Optional) If true, the newly created transaction will not be relayed to the beldex network. (Defaults to false)

  • get_tx_hex - bool: (Optional) Return the transactions as hex string after sending. (Defaults to false)

  • get_tx_metadata - bool: (Optional) Return list of transaction metadata needed to relay the transfer later. (Defaults to false)

Outputs:

  • tx_hash_list - string[]: The tx hashes of every transaction.

  • tx_key_list - string[]: The transaction keys for every transaction.

  • amount_list - uint64[]: The amount transferred for every transaction.

  • fee_list - uint64[]: The amount of fees paid for every transaction.

  • tx_blob_list - string[]: The tx as hex string for every transaction.

  • tx_metadata_list - string[]: List of transaction metadata needed to relay the transactions later.

  • multisig_txset - string: The set of signing keys used in a multisig transaction (empty for non-multisig).

  • unsigned_txset - string: Set of unsigned tx for cold-signing purposes.

COMMAND_RPC_SWEEP_ALL

Send all unlocked balance to an address.

Endpoints: sweep_all

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"sweep_all",
  "params": {
    "address": "8KJf3nRQ53NTX1YLjtHryjegFRa3ZCEGLKmRxUfvkBWK19UteEacVpYqpYscSJ2q8WRuHPFdk7Q5W8pQB7Py5kvUs8vKSk",
    "account_index": 2130706433,
    "subaddr_indices": [2130706433, ...],
    "priority": 2130706433,
    "mixin": 123,
    "ring_size": 123,
    "outputs": 123,
    "unlock_time": 123,
    "payment_id": "f378710e54eeeb8d",
    "get_tx_keys": true,
    "below_amount": 123,
    "do_not_relay": true,
    "get_tx_hex": true,
    "get_tx_metadata": true
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "tx_hash_list": ["TODO(beldex): Write example string", ...],
  "tx_key_list": ["TODO(beldex): Write example string", ...],
  "amount_list": [123, ...],
  "fee_list": [123, ...],
  "tx_blob_list": ["TODO(beldex): Write example string", ...],
  "tx_metadata_list": ["TODO(beldex): Write example string", ...],
  "multisig_txset": "TODO(beldex): Write example string",
  "unsigned_txset": "TODO(beldex): Write example string"
}

Inputs:

  • address - string: Destination public address.

  • account_index - uint32: Sweep transactions from this account.

  • subaddr_indices - uint32[]: (Optional) Sweep from this set of subaddresses in the account.

  • priority - uint32: (Optional) Priority for sending the sweep transfer, partially determines fee.

  • mixin - uint64: (Deprecated) Set to 9. Number of outputs from the blockchain to mix with. Beldex mixin statically set to 9.

  • ring_size - uint64: (Deprecated) Set to 10. Sets ringsize to n (mixin + 1). Beldex ring_size is statically set to 10.

  • outputs - uint64

  • unlock_time - uint64: Number of blocks before the beldex can be spent (0 to not add a lock).

  • payment_id - string: (Optional) 64-character hex string to identify a transaction.

  • get_tx_keys - bool: (Optional) Return the transaction keys after sending.

  • below_amount - uint64: (Optional) Include outputs below this amount.

  • do_not_relay - bool: (Optional) If true, do not relay this sweep transfer. (Defaults to false)

  • get_tx_hex - bool: (Optional) return the transactions as hex encoded string. (Defaults to false)

  • get_tx_metadata - bool: (Optional) return the transaction metadata as a string. (Defaults to false)

Outputs:

  • tx_hash_list - string[]: The tx hashes of every transaction.

  • tx_key_list - string[]: The transaction keys for every transaction.

  • amount_list - uint64[]: The amount transferred for every transaction.

  • fee_list - uint64[]: The amount of fees paid for every transaction.

  • tx_blob_list - string[]: The tx as hex string for every transaction.

  • tx_metadata_list - string[]: List of transaction metadata needed to relay the transactions later.

  • multisig_txset - string: The set of signing keys used in a multisig transaction (empty for non-multisig).

  • unsigned_txset - string: Set of unsigned tx for cold-signing purposes.

COMMAND_RPC_SWEEP_SINGLE

Send all of a specific unlocked output to an address.

Endpoints: sweep_single

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"sweep_single",
  "params": {
    "address": "8KJf3nRQ53NTX1YLjtHryjegFRa3ZCEGLKmRxUfvkBWK19UteEacVpYqpYscSJ2q8WRuHPFdk7Q5W8pQB7Py5kvUs8vKSk",
    "priority": 2130706433,
    "mixin": 123,
    "ring_size": 123,
    "outputs": 123,
    "unlock_time": 123,
    "payment_id": "f378710e54eeeb8d",
    "get_tx_key": true,
    "key_image": "8d1bd8181bf7d857bdb281e0153d84cd55a3fcaa57c3e570f4a49f935850b5e3",
    "do_not_relay": true,
    "get_tx_hex": true,
    "get_tx_metadata": true
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "tx_hash": "b605cab7e3b9fe1f6d322e3167cd26e1e61c764afa9d733233ef716787786123",
  "tx_key": "TODO(beldex): Write example string",
  "amount": 123,
  "fee": 123,
  "tx_blob": "TODO(beldex): Write example string",
  "tx_metadata": "TODO(beldex): Write example string",
  "multisig_txset": "TODO(beldex): Write example string",
  "unsigned_txset": "TODO(beldex): Write example string"
}

Inputs:

  • address - string: Destination public address.

  • priority - uint32: (Optional) Priority for sending the sweep transfer, partially determines fee.

  • mixin - uint64: (Deprecated) Set to 9. Number of outputs from the blockchain to mix with. Beldex mixin statically set to 9.

  • ring_size - uint64: (Deprecated) Set to 10. Sets ringsize to n (mixin + 1). Beldex ring_size is statically set to 10.

  • outputs - uint64

  • unlock_time - uint64: Number of blocks before the beldex can be spent (0 to not add a lock).

  • payment_id - string: (Optional) 64-character hex string to identify a transaction.

  • get_tx_key - bool: (Optional) Return the transaction keys after sending.

  • key_image - string: Key image of specific output to sweep.

  • do_not_relay - bool: (Optional) If true, do not relay this sweep transfer. (Defaults to false)

  • get_tx_hex - bool: (Optional) return the transactions as hex encoded string. (Defaults to false)

  • get_tx_metadata - bool: (Optional) return the transaction metadata as a string. (Defaults to false)

Outputs:

  • tx_hash - string: The tx hashes of the transaction.

  • tx_key - string: The tx key of the transaction.

  • amount - uint64: The amount transfered in atomic units.

  • fee - uint64: The fee paid in atomic units.

  • tx_blob - string: The tx as hex string.

  • tx_metadata - string: Transaction metadata needed to relay the transaction later.

  • multisig_txset - string: The set of signing keys used in a multisig transaction (empty for non-multisig).

  • unsigned_txset - string: Set of unsigned tx for cold-signing purposes.

COMMAND_RPC_RELAY_TX

Relay transaction metadata to the daemon

Endpoints: relay_tx

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"relay_tx",
  "params": {
    "hex": "TODO(beldex): Write example string"
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "tx_hash": "b605cab7e3b9fe1f6d322e3167cd26e1e61c764afa9d733233ef716787786123"
}

Inputs:

  • hex - string: Transaction metadata returned from a transfer method with get_tx_metadata set to true.

Outputs:

  • tx_hash - string: String for the publically searchable transaction hash.

COMMAND_RPC_STORE

Save the wallet file.

Endpoints: store

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '{ "jsonrpc":"2.0", "id":"0", "method":"store"}' -H 'Content-Type: application/json'

Example Response:

Inputs:

Outputs:

COMMAND_RPC_GET_PAYMENTS

Get a list of incoming payments using a given payment id.

Endpoints: get_payments

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"get_payments",
  "params": {
    "payment_id": "f378710e54eeeb8d"
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "payments": [{
      "payment_id": "f378710e54eeeb8d",
      "tx_hash": "b605cab7e3b9fe1f6d322e3167cd26e1e61c764afa9d733233ef716787786123",
      "amount": 123,
      "block_height": 123,
      "unlock_time": 123,
      "subaddr_index": ,
      "address": "8KJf3nRQ53NTX1YLjtHryjegFRa3ZCEGLKmRxUfvkBWK19UteEacVpYqpYscSJ2q8WRuHPFdk7Q5W8pQB7Py5kvUs8vKSk"
    }, ...]
}

Inputs:

  • payment_id - string: Payment ID used to find the payments (16 characters hex).

Outputs:

  • payments - payment_details[]: List of payment details:

    • payment_id - string: Payment ID matching the input parameter.

    • tx_hash - string: Transaction hash used as the transaction ID.

    • amount - uint64: Amount for this payment.

    • block_height - uint64: Height of the block that first confirmed this payment.

    • unlock_time - uint64: Time (in block height) until this payment is safe to spend.

    • subaddr_index - cryptonote::subaddress_index: Major & minor index, account and subaddress index respectively.

    • address - string: Address receiving the payment.

COMMAND_RPC_GET_BULK_PAYMENTS

Get a list of incoming payments using a given payment id,

or a list of payments ids, from a given height.

This method is the preferred method over get_paymentsbecause it

has the same functionality but is more extendable.

Either is fine for looking up transactions by a single payment ID.

Endpoints: get_bulk_payments

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"get_bulk_payments",
  "params": {
    "payment_ids": ["TODO(beldex): Write example string", ...],
    "min_block_height": 123
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "payments": [{
      "payment_id": "f378710e54eeeb8d",
      "tx_hash": "b605cab7e3b9fe1f6d322e3167cd26e1e61c764afa9d733233ef716787786123",
      "amount": 123,
      "block_height": 123,
      "unlock_time": 123,
      "subaddr_index": ,
      "address": "8KJf3nRQ53NTX1YLjtHryjegFRa3ZCEGLKmRxUfvkBWK19UteEacVpYqpYscSJ2q8WRuHPFdk7Q5W8pQB7Py5kvUs8vKSk"
    }, ...]
}

Inputs:

  • payment_ids - string[]: Payment IDs used to find the payments (16 characters hex).

  • min_block_height - uint64: The block height at which to start looking for payments.

Outputs:

  • payments - payment_details[]: List of payment details:

    • payment_id - string: Payment ID matching the input parameter.

    • tx_hash - string: Transaction hash used as the transaction ID.

    • amount - uint64: Amount for this payment.

    • block_height - uint64: Height of the block that first confirmed this payment.

    • unlock_time - uint64: Time (in block height) until this payment is safe to spend.

    • subaddr_index - cryptonote::subaddress_index: Major & minor index, account and subaddress index respectively.

    • address - string: Address receiving the payment.

COMMAND_RPC_INCOMING_TRANSFERS

Return a list of incoming transfers to the wallet.

Endpoints: incoming_transfers

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"incoming_transfers",
  "params": {
    "transfer_type": "TODO(beldex): Write example string",
    "account_index": 2130706433,
    "subaddr_indices": [2130706433, ...]
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "transfers": [{
      "amount": 123,
      "spent": true,
      "global_index": 123,
      "tx_hash": "b605cab7e3b9fe1f6d322e3167cd26e1e61c764afa9d733233ef716787786123",
      "subaddr_index": ,
      "key_image": "8d1bd8181bf7d857bdb281e0153d84cd55a3fcaa57c3e570f4a49f935850b5e3"
    }, ...]
}

Inputs:

  • transfer_type - string: "all": all the transfers, "available": only transfers which are not yet spent, OR "unavailable": only transfers which are already spent.

  • account_index - uint32: (Optional) Return transfers for this account. (defaults to 0)

  • subaddr_indices - uint32[]: (Optional) Return transfers sent to these subaddresses.

Outputs:

  • transfers - transfer_details[]: List of information of the transfers details.

    • amount - uint64: Amount of this transfer.

    • spent - bool: Indicates if this transfer has been spent.

    • global_index - uint64: The index into the global list of transactions grouped by amount in the Beldex network.

    • tx_hash - string: Several incoming transfers may share the same hash if they were in the same transaction.

    • subaddr_index - cryptonote::subaddress_index: Major & minor index, account and subaddress index respectively.

    • key_image - string: Key image for the incoming transfer's unspent output (empty unless verbose is true).

COMMAND_RPC_QUERY_KEY

Return the spend or view private key.

Endpoints: query_key

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"query_key",
  "params": {
    "key_type": "TODO(beldex): Write example string"
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "key": "TODO(beldex): Write example string"
}

Inputs:

  • key_type - string: Which key to retrieve: "mnemonic" - the mnemonic seed (older wallets do not have one) OR "view_key" - the view key

Outputs:

  • key - string: The view key will be hex encoded, while the mnemonic will be a string of words.

COMMAND_RPC_MAKE_INTEGRATED_ADDRESS

Make an integrated address from the wallet address and a payment id.

Endpoints: make_integrated_address

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"make_integrated_address",
  "params": {
    "standard_address": "TODO(beldex): Write example string",
    "payment_id": "f378710e54eeeb8d"
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "integrated_address": "TODO(beldex): Write example string",
  "payment_id": "f378710e54eeeb8d"
}

Inputs:

  • standard_address - string: (Optional, defaults to primary address) Destination public address.

  • payment_id - string: (Optional, defaults to a random ID) 16 characters hex encoded.

Outputs:

  • integrated_address - string

  • payment_id - string: Hex encoded.

COMMAND_RPC_SPLIT_INTEGRATED_ADDRESS

Retrieve the standard address and payment id corresponding to an integrated address.

Endpoints: split_integrated_address

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"split_integrated_address",
  "params": {
    "integrated_address": "TODO(beldex): Write example string"
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "standard_address": "TODO(beldex): Write example string",
  "payment_id": "f378710e54eeeb8d",
  "is_subaddress": true
}

Inputs:

  • integrated_address - string

Outputs:

  • standard_address - string

  • payment_id - string

  • is_subaddress - bool

COMMAND_RPC_STOP_WALLET

Stops the wallet, storing the current state.

Endpoints: stop_wallet

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '{ "jsonrpc":"2.0", "id":"0", "method":"stop_wallet"}' -H 'Content-Type: application/json'

Example Response:

Inputs:

Outputs:

COMMAND_RPC_RESCAN_BLOCKCHAIN

Rescan the blockchain from scratch, losing any information

which can not be recovered from the blockchain itself.

This includes destination addresses, tx secret keys, tx notes, etc.

Warning: This blocks the Wallet RPC executable until rescanning is complete.

Endpoints: rescan_blockchain

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"rescan_blockchain",
  "params": {
    "hard": true
  }
}' -H 'Content-Type: application/json'

Example Response:

Inputs:

  • hard - bool

Outputs:

COMMAND_RPC_SET_TX_NOTES

Set arbitrary string notes for transactions.

Endpoints: set_tx_notes

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"set_tx_notes",
  "params": {
    "txids": ["b605cab7e3b9fe1f6d322e3167cd26e1e61c764afa9d733233ef716787786123", ...],
    "notes": ["TODO(beldex): Write example string", ...]
  }
}' -H 'Content-Type: application/json'

Example Response:

Inputs:

  • txids - string[]: Transaction ids.

  • notes - string[]: Notes for the transactions.

Outputs:

COMMAND_RPC_GET_TX_NOTES

Get string notes for transactions.

Endpoints: get_tx_notes

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"get_tx_notes",
  "params": {
    "txids": ["b605cab7e3b9fe1f6d322e3167cd26e1e61c764afa9d733233ef716787786123", ...]
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "notes": ["TODO(beldex): Write example string", ...]
}

Inputs:

  • txids - string[]: Transaction ids.

Outputs:

  • notes - string[]: Notes for the transactions.

COMMAND_RPC_SET_ATTRIBUTE

Set arbitrary attribute.

Endpoints: set_attribute

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"set_attribute",
  "params": {
    "key": "TODO(beldex): Write example string",
    "value": "TODO(beldex): Write example string"
  }
}' -H 'Content-Type: application/json'

Example Response:

Inputs:

  • key - string: Attribute name.

  • value - string: Attribute value.

Outputs:

COMMAND_RPC_GET_ATTRIBUTE

Get attribute value by name.

Endpoints: get_attribute

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"get_attribute",
  "params": {
    "key": "TODO(beldex): Write example string"
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "value": "TODO(beldex): Write example string"
}

Inputs:

  • key - string: Attribute name.

Outputs:

  • value - string: Attribute value.

COMMAND_RPC_GET_TX_KEY

Get transaction secret key from transaction id.

Endpoints: get_tx_key

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"get_tx_key",
  "params": {
    "txid": "b605cab7e3b9fe1f6d322e3167cd26e1e61c764afa9d733233ef716787786123"
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "tx_key": "TODO(beldex): Write example string"
}

Inputs:

  • txid - string: Transaction id.

Outputs:

  • tx_key - string: Transaction secret key.

COMMAND_RPC_CHECK_TX_KEY

Check a transaction in the blockchain with its secret key.

Endpoints: check_tx_key

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"check_tx_key",
  "params": {
    "txid": "b605cab7e3b9fe1f6d322e3167cd26e1e61c764afa9d733233ef716787786123",
    "tx_key": "TODO(beldex): Write example string",
    "address": "8KJf3nRQ53NTX1YLjtHryjegFRa3ZCEGLKmRxUfvkBWK19UteEacVpYqpYscSJ2q8WRuHPFdk7Q5W8pQB7Py5kvUs8vKSk"
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "received": 123,
  "in_pool": true,
  "confirmations": 123
}

Inputs:

  • txid - string: Transaction id.

  • tx_key - string: Transaction secret key.

  • address - string: Destination public address of the transaction.

Outputs:

  • received - uint64: Amount of the transaction.

  • in_pool - bool: States if the transaction is still in pool or has been added to a block.

  • confirmations - uint64: Number of block mined after the one with the transaction.

COMMAND_RPC_GET_TX_PROOF

Get transaction signature to prove it.

Endpoints: get_tx_proof

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"get_tx_proof",
  "params": {
    "txid": "b605cab7e3b9fe1f6d322e3167cd26e1e61c764afa9d733233ef716787786123",
    "address": "8KJf3nRQ53NTX1YLjtHryjegFRa3ZCEGLKmRxUfvkBWK19UteEacVpYqpYscSJ2q8WRuHPFdk7Q5W8pQB7Py5kvUs8vKSk",
    "message": "TODO(beldex): Write example string"
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "signature": "TODO(beldex): Write example string"
}

Inputs:

  • txid - string: Transaction id.

  • address - string: Destination public address of the transaction.

  • message - string: (Optional) add a message to the signature to further authenticate the prooving process.

Outputs:

  • signature - string: Transaction signature.

COMMAND_RPC_CHECK_TX_PROOF

Prove a transaction by checking its signature.

Endpoints: check_tx_proof

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"check_tx_proof",
  "params": {
    "txid": "b605cab7e3b9fe1f6d322e3167cd26e1e61c764afa9d733233ef716787786123",
    "address": "8KJf3nRQ53NTX1YLjtHryjegFRa3ZCEGLKmRxUfvkBWK19UteEacVpYqpYscSJ2q8WRuHPFdk7Q5W8pQB7Py5kvUs8vKSk",
    "message": "TODO(beldex): Write example string",
    "signature": "TODO(beldex): Write example string"
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "good": true,
  "received": 123,
  "in_pool": true,
  "confirmations": 123
}

Inputs:

  • txid - string: Transaction id.

  • address - string: Destination public address of the transaction.

  • message - string: (Optional) Should be the same message used in get_tx_proof.

  • signature - string: Transaction signature to confirm.

Outputs:

  • good - bool: States if the inputs proves the transaction.

  • received - uint64: Amount of the transaction.

  • in_pool - bool: States if the transaction is still in pool or has been added to a block.

  • confirmations - uint64: Number of block mined after the one with the transaction.

COMMAND_RPC_GET_SPEND_PROOF

Generate a signature to prove a spend. Unlike proving a transaction, it does not requires the destination public address.

Endpoints: get_spend_proof

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"get_spend_proof",
  "params": {
    "txid": "b605cab7e3b9fe1f6d322e3167cd26e1e61c764afa9d733233ef716787786123",
    "message": "TODO(beldex): Write example string"
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "signature": "TODO(beldex): Write example string"
}

Inputs:

  • txid - string: Transaction id.

  • message - string: (Optional) add a message to the signature to further authenticate the prooving process.

Outputs:

  • signature - string: Spend signature.

COMMAND_RPC_CHECK_SPEND_PROOF

Prove a spend using a signature. Unlike proving a transaction, it does not requires the destination public address.

Endpoints: check_spend_proof

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"check_spend_proof",
  "params": {
    "txid": "b605cab7e3b9fe1f6d322e3167cd26e1e61c764afa9d733233ef716787786123",
    "message": "TODO(beldex): Write example string",
    "signature": "TODO(beldex): Write example string"
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "good": true
}

Inputs:

  • txid - string: Transaction id.

  • message - string: (Optional) Should be the same message used in get_spend_proof.

  • signature - string: Spend signature to confirm.

Outputs:

  • good - bool: States if the inputs proves the spend.

COMMAND_RPC_GET_RESERVE_PROOF

Generate a signature to prove of an available amount in a wallet.

Endpoints: get_reserve_proof

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"get_reserve_proof",
  "params": {
    "all": true,
    "account_index": 2130706433,
    "amount": 123,
    "message": "TODO(beldex): Write example string"
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "signature": "TODO(beldex): Write example string"
}

Inputs:

  • all - bool: Proves all wallet balance to be disposable.

  • account_index - uint32: Specify the account from witch to prove reserve. (ignored if all is set to true)

  • amount - uint64: Amount (in atomic units) to prove the account has for reserve. (ignored if all is set to true)

  • message - string: (Optional) add a message to the signature to further authenticate the prooving process.

Outputs:

  • signature - string: Reserve signature.

COMMAND_RPC_CHECK_RESERVE_PROOF

Proves a wallet has a disposable reserve using a signature.

Endpoints: check_reserve_proof

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"check_reserve_proof",
  "params": {
    "address": "8KJf3nRQ53NTX1YLjtHryjegFRa3ZCEGLKmRxUfvkBWK19UteEacVpYqpYscSJ2q8WRuHPFdk7Q5W8pQB7Py5kvUs8vKSk",
    "message": "TODO(beldex): Write example string",
    "signature": "TODO(beldex): Write example string"
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "good": true,
  "total": 123,
  "spent": 123
}

Inputs:

  • address - string: Public address of the wallet.

  • message - string: (Optional) Should be the same message used in get_reserve_proof.

  • signature - string: Reserve signature to confirm.

Outputs:

  • good - bool: States if the inputs proves the reserve.

  • total - uint64

  • spent - uint64

COMMAND_RPC_GET_TRANSFERS

Returns a list of transfers.

Endpoints: get_transfers

Example Request:

curl -X POST http://127.0.0.1:22023/json_rpc -d '
{
  "jsonrpc":"2.0", "id":"0", "method":"get_transfers",
  "params": {
    "in": true,
    "out": true,
    "pending": true,
    "failed": true,
    "pool": true,
    "filter_by_height": true,
    "min_height": 123,
    "max_height": 123,
    "account_index": 2130706433,
    "subaddr_indices": [2130706433, ...]
  }
}' -H 'Content-Type: application/json'

Example Response:

{
  "in": [{
      "txid": "b605cab7e3b9fe1f6d322e3167cd26e1e61c764afa9d733233ef716787786123",
      "payment_id": "f378710e54eeeb8d",
      "height": 234767,
      "timestamp": 123,
      "amount": 123,
      "fee": 123,
      "note": "TODO(beldex): Write example string",
      "destinations": [, ...],
      "type": "TODO(beldex): Write example string",
      "unlock_time": 123,
      "subaddr_index": ,
      "address": "8KJf3nRQ53NTX1YLjtHryjegFRa3ZCEGLKmRxUfvkBWK19UteEacVpYqpYscSJ2q8WRuHPFdk7Q5W8pQB7Py5kvUs8vKSk",
      "double_spend_seen": true,
      "confirmations": 123,
      "suggested_confirmations_threshold": 123
    }, ...],
  "out": [{
      "txid": "b605cab7e3b9fe1f6d322e3167cd26e1e61c764afa9d733233ef716787786123",
      "payment_id": "f378710e54eeeb8d",
      "height": 234767,
      "timestamp": 123,
      "amount": 123,
      "fee": 123,
      "note": "TODO(beldex): Write example string",
      "destinations": [, ...],
      "type": "TODO(beldex): Write example string",
      "unlock_time": 123,
      "subaddr_index": ,
      "address": "8KJf3nRQ53NTX1YLjtHryjegFRa3ZCEGLKmRxUfvkBWK19UteEacVpYqpYscSJ2q8WRuHPFdk7Q5W8pQB7Py5kvUs8vKSk",
      "double_spend_seen": true,
      "confirmations": 123,
      "suggested_confirmations_threshold": 123
    }, ...],
  "pending": [{
      "txid": "b605cab7e3b9fe1f6d322e3167cd26e1e61c764afa9d733233ef716787786123",
      "payment_id": "f378710e54eeeb8d",
      "height": 234767,
      "timestamp": 123,
      "amount": 123,
      "fee": 123,
      "note": "TODO(beldex): Write example string",
      "destinations": [, ...],
      "type": "TODO(beldex): Write example string",
      "unlock_time": 123,
      "subaddr_index": ,
      "address": "8KJf3nRQ53NTX1YLjtHryjegFRa3ZCEGLKmRxUfvkBWK19UteEacVpYqpYscSJ2q8WRuHPFdk7Q5W8pQB7Py5kvUs8vKSk",
      "double_spend_seen": true,
      "confirmations": 123,
      "suggested_confirmations_threshold": 123
    }, ...],
  "failed": [{
      "txid": "b605cab7e3b9fe1f6d322e3167cd26e1e61c764afa9d733233ef716787786123",
      "payment_id": "f378710e54eeeb8d",
      "height": 234767,
      "timestamp": 123,
      "amount": 123,
      "fee": 123,
      "note": "TODO(beldex): Write example string",
      "destinations": [, ...],
      "type": "TODO(beldex): Write example string",
      "unlock_time": 123,
      "subaddr_index": ,
      "address": "8KJf3nRQ53NTX1YLjtHryjegFRa3ZCEGLKmRxUfvkBWK19UteEacVpYqpYscSJ2q8WRuHPFdk7Q5W8pQB7Py5kvUs8vKSk",
      "double_spend_seen": true,
      "confirmations": 123,
      "suggested_confirmations_threshold": 123
    }, ...],
  "pool": [{
      "txid": "b605cab7e3b9fe1f6d322e3167cd26e1e61c764afa9d733233ef716787786123",
      "payment_id": "f378710e54eeeb8d",
      "height": 234767,
      "timestamp": 123,
      "amount": 123,
      "fee": 123,
      "note": "TODO(beldex): Write example string",
      "destinations": [, ...],
      "type": "TODO(beldex): Write example string",
      "unlock_time": 123,
      "subaddr_index": ,
      "address": "8KJf3nRQ53NTX1YLjtHryjegFRa3ZCEGLKmRxUfvkBWK19UteEacVpYqpYscSJ2q8WRuHPFdk7Q5W8pQB7Py5kvUs8vKSk",
      "double_spend_seen": true,
      "confirmations": 123,
      "suggested_confirmations_threshold": 123
    }, ...]
}

Inputs:

  • in - bool: (Optional) Include incoming transfers.

  • out - bool: (Optional) Include outgoing transfers.

  • pending - bool: (Optional) Include pending transfers.

  • failed - bool: (Optional) Include failed transfers.

  • pool - bool: (Optional) Include transfers from the daemon's transaction pool.

  • filter_by_height - bool: (Optional) Filter transfers by block height.

  • min_height - uint64: (Optional) Minimum block height to scan for transfers, if filtering by height is enabled.

  • max_height - uint64: (Optional) Maximum block height to scan for transfers, if filtering by height is enabled (defaults to max block height).

  • account_index - uint32: (Optional) Index of the account to query for transfers. (defaults to 0)

  • subaddr_indices - uint32[]: (Optional) List of subaddress indices to query for transfers. (defaults to 0)

Outputs:

  • in - transfer_entry[]

    • txid - string: Transaction ID for this transfer.

    • payment_id - string: Payment ID for this transfer.

    • height - uint64: Height of the first block that confirmed this transfer (0 if not mined yet).

    • timestamp - uint64: UNIX timestamp for when this transfer was first confirmed in a block (or timestamp submission if not mined yet).

    • amount - uint64: Amount transferred.

    • fee - uint64: Transaction fee for this transfer.

    • note - string: Note about this transfer.

    • destinations - transfer_destination[]: Array of transfer destinations.

    • type - string: Type of transfer, one of the following: "in", "out", "pending", "failed", "pool".

    • unlock_time - uint64: Number of blocks until transfer is safely spendable.

    • subaddr_index - cryptonote::subaddress_index: Major & minor index, account and subaddress index respectively.

    • address - string: Address that transferred the funds.

    • double_spend_seen - bool: True if the key image(s) for the transfer have been seen before.

    • confirmations - uint64: Number of block mined since the block containing this transaction (or block height at which the transaction should be added to a block if not yet confirmed).

    • suggested_confirmations_threshold - uint64: Estimation of the confirmations needed for the transaction to be included in a block.

  • out - transfer_entry[]

    • txid - string: Transaction ID for this transfer.

    • payment_id - string: Payment ID for this transfer.

    • height - uint64: Height of the first block that confirmed this transfer (0 if not mined yet).