Build
Node RPC
The daemon serves JSON on port 19211. The bind address defaults to 127.0.0.1 (--rpc-bind-ip). Calls go to /json_rpc unless a legacy path is listed below.
curl -s http://127.0.0.1:19211/json_rpc \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":"0","method":"getinfo","params":{"flags":0}}'
getinfo always returns a base set of fields. Heavier fields are included only when you set flags to a bitwise OR of the constants in core_rpc_server_commands_defs.h.
| Flag constant | Bit |
|---|---|
COMMAND_RPC_GET_INFO_FLAG_POS_DIFFICULTY |
0x1 |
COMMAND_RPC_GET_INFO_FLAG_POW_DIFFICULTY |
0x2 |
COMMAND_RPC_GET_INFO_FLAG_NET_TIME_DELTA_MEDIAN |
0x4 |
COMMAND_RPC_GET_INFO_FLAG_CURRENT_NETWORK_HASHRATE_50 |
0x8 |
COMMAND_RPC_GET_INFO_FLAG_CURRENT_NETWORK_HASHRATE_350 |
0x10 |
COMMAND_RPC_GET_INFO_FLAG_SECONDS_FOR_10_BLOCKS |
0x20 |
COMMAND_RPC_GET_INFO_FLAG_SECONDS_FOR_30_BLOCKS |
0x40 |
COMMAND_RPC_GET_INFO_FLAG_TRANSACTIONS_DAILY_STAT |
0x80 |
COMMAND_RPC_GET_INFO_FLAG_LAST_POS_TIMESTAMP |
0x100 |
COMMAND_RPC_GET_INFO_FLAG_LAST_POW_TIMESTAMP |
0x200 |
COMMAND_RPC_GET_INFO_FLAG_TOTAL_COINS |
0x400 |
COMMAND_RPC_GET_INFO_FLAG_LAST_BLOCK_SIZE |
0x800 |
COMMAND_RPC_GET_INFO_FLAG_TX_COUNT_IN_LAST_BLOCK |
0x1000 |
COMMAND_RPC_GET_INFO_FLAG_POS_SEQUENCE_FACTOR |
0x2000 |
COMMAND_RPC_GET_INFO_FLAG_POW_SEQUENCE_FACTOR |
0x4000 |
COMMAND_RPC_GET_INFO_FLAG_OUTS_STAT |
0x8000 |
COMMAND_RPC_GET_INFO_FLAG_PERFORMANCE |
0x10000 |
COMMAND_RPC_GET_INFO_FLAG_POS_BLOCK_TS_SHIFT_VS_ACTUAL |
0x20000 |
COMMAND_RPC_GET_INFO_FLAG_MARKET |
0x40000 |
COMMAND_RPC_GET_INFO_FLAG_EXPIRATIONS_MEDIAN |
0x80000 |
0xffffffffffffffff requests every flag. That call is heavier. Use the bits you need.
JSON-RPC methods
These names are the strings in BEGIN_JSON_RPC_MAP("/json_rpc"). Descriptions are shortened from the DOC_COMMAND text in the same header.
| Method | What it returns or does |
|---|---|
getblockcount |
Height of the top block, plus one |
on_getblockhash |
Block hash at a height |
getblocktemplate |
A mining template for proof of work or proof of stake |
submitblock |
Submit one hex-encoded block blob |
submitblock2 |
Submit a new block |
getlastblockheader |
Header of the tip |
getblockheaderbyhash |
Header for a hash |
getblockheaderbyheight |
Header for a height |
get_alias_details |
One alias |
get_alias_by_address |
Aliases registered to an address |
get_alias_reward |
Current alias registration cost |
get_est_height_from_date |
A height estimate for a date |
find_outs_in_recent_blocks |
Outputs in recent blocks for an address plus its secret view key. Run this against your own node |
get_blocks_details |
Block details from a starting height |
get_tx_details |
One transaction's public details |
search_by_id |
Search blocks, transactions, key images, multisig outputs, and alternative blocks |
getinfo |
Node and chain summary. See the flags above |
get_out_info |
Transaction id and local output index for an amount and a global index |
get_multisig_info |
A multisig output by its hash |
get_all_alias_details |
Every alias |
get_aliases |
A page of aliases |
get_pool_txs_details |
Full pool entries by id |
get_pool_txs_brief_details |
Short pool entries by id |
get_all_pool_tx_list |
Every pool transaction id |
get_pool_info |
Pool summary |
getrandom_outs |
Legacy decoys |
getrandom_outs1 |
Decoy outputs for mixing |
getrandom_outs3 |
Decoys, choosing the pre-Zarcanum or post-Zarcanum zone from the amount |
get_votes |
Vote totals over a block range |
get_asset_info |
One asset by id |
get_assets_list |
Assets registered on the chain |
decrypt_tx_details |
Decrypt private transaction fields. The source says to use this only on your local daemon |
get_main_block_details |
One main-chain block by hash |
get_alt_block_details |
One alternative block by hash |
get_alt_blocks_details |
Alternative blocks, paged |
reset_transaction_pool |
Clear the pool |
remove_tx_from_pool |
Drop specific pool transactions |
get_current_core_tx_expiration_median |
The median the core uses for transaction expiration |
marketplace_global_get_offers_ex |
Marketplace offers that match a filter |
validate_signature |
Check a Schnorr signature. The public key can be passed directly or loaded from an alias |
Legacy HTTP paths
These are separate from /json_rpc. A wallet still uses several of the binary ones.
| Path | Role |
|---|---|
POST /getheight |
Height |
POST /gettransactions |
Transactions by id |
POST /sendrawtransaction |
Broadcast one raw transaction |
POST /force_relay |
Relay a list of raw transactions |
POST /start_mining |
Start CPU proof-of-work mining. Body includes miner_address and threads_count |
POST /stop_mining |
Stop that miner |
POST /getinfo |
Same info call as the JSON-RPC method |
POST /getblocks.bin |
Binary block sync |
POST /get_o_indexes.bin |
Global output indexes |
POST /getrandom_outs.bin, /getrandom_outs1.bin, /getrandom_outs3.bin |
Binary decoy selection |
POST /get_tx_pool.bin |
Binary pool fetch |
POST /check_keyimages.bin |
Spent status of key images |
POST /get_pos_details.bin |
Proof-of-stake mining details |
The .bin routes are the wallet's sync protocol. Integrate with the JSON methods unless you are writing a wallet and are prepared to match the binary layout in core_rpc_server_commands_defs.h.
Field-level schemas live in that header as KV_SERIALIZE entries. This page names the surface so you can find the struct. It does not duplicate every field.