Daemon RPC
Introduction
This document provides detailed descriptions of the Remote Procedure Call (RPC) commands available in the Salvium daemon. These RPC commands allow developers and users to interact programmatically with a Salvium node, enabling a wide range of operations from basic network information retrieval to advanced blockchain management tasks.
General Structure
Each RPC command has the following general structure:
- HTTP Method: Typically POST.
- Endpoint:
/json_rpc
- Request Format: JSON
- Response Format: JSON
A typical request will include the method name, parameters (if any), and a unique identifier for the request. The response will include the result or an error message.
Example Request:
Example Response:
{
"jsonrpc": "2.0",
"id": "0",
"result": {
// Result data
},
"error": {
// Error details (if any)
}
}
Available RPC Commands
Get Info
Description: Retrieves general information about the Salvium node, including the version, network status, and block height.
Request:
- Method:
get_info
- Parameters: None
Response:
{
"version": "<version>",
"status": "<status>",
"height": <block_height>,
"target_height": <target_block_height>,
"difficulty": <difficulty>,
"hashrate": <hashrate>,
"tx_count": <tx_count>,
"tx_pool_size": <tx_pool_size>,
"incoming_connections_count": <incoming_connections>,
"outgoing_connections_count": <outgoing_connections>,
"white_peerlist_size": <white_peerlist_size>
}
Get Block Count
Description: Returns the total number of blocks in the blockchain.
Request:
- Method:
get_block_count
- Parameters: None
Response:
Get Block Hash
Description: Returns the hash of a specific block.
Request:
- Method:
get_block_hash
- Parameters: An array containing the block height.
Response:
New Methods Specific to Salvium
Get Supply Info
Description: Returns information about the total supply of assets in the Salvium blockchain.
Request:
- Method:
get_supply_info
- Parameters: None
Response:
{
"supply": {
"total_supply": <total_supply>,
"circulating_supply": <circulating_supply>,
"max_supply": <max_supply>
},
"status": "<status>"
}
Get Yield Info
Description: Returns information about the yield generated by staking or other yield-generating activities in the Salvium blockchain.
Request:
- Method:
get_yield_info
- Parameters: None
Response:
{
"yield": {
"total_yield": <total_yield>,
"average_yield_rate": <average_yield_rate>,
"yield_distribution": [
{
"asset_type": "<asset_type>",
"yield_amount": <yield_amount>
}
]
},
"status": "<status>"
}
Get Output Distribution
Description: Returns the distribution of outputs by amounts, including the asset type for ring confidential transactions (RCT).
Request:
- Method:
get_output_distribution
- Parameters: Object containing "amounts", "from_height", "to_height", "cumulative", and "rct_asset_type".
Response:
{
"distributions": [
{
"amount": <amount>,
"distribution": [ /* distribution array */ ],
"base": <base_height>,
"rct_asset_type": "<rct_asset_type>"
}
],
"status": "<status>"
}
Get Blocks Fast
Description: Retrieves blocks in a more optimized manner, including the indices of per-asset output types.
Request:
- Method:
get_blocks_fast
- Parameters: Object containing "block_ids", "start_height", "prune", "no_miner_tx", and "include_raw_data".
Response:
{
"blocks": [
{
"block": "<block_data>",
"txs": [ /* array of transactions */ ],
"output_indices": [
{
"asset_type": "<asset_type>",
"indices": [ /* output indices per asset type */ ]
}
],
"include_raw_data": <boolean>
}
],
"status": "<status>"
}
Send Raw Transaction
Description: Submits a raw transaction to the network. This command has been extended to include the source asset type.
Request:
- Method:
send_raw_tx
- Parameters: Object containing "tx_as_hex", "do_not_relay", and "source_asset_type".