JSON-RPC reference
Methods exposed by the observer node. Standard Ethereum JSON-RPC (EIP-1474) plus QBFT consensus methods. Endpoint: https://chain.kxco.ai/rpc
eth_*
eth_chainId
#Returns the chain ID. Use to verify you are connected to KXCO Armature (0x10F447 = 1111111).
QUANTITY, chain ID as hex
curl -s -X POST https://chain.kxco.ai/rpc \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'
# → {"jsonrpc":"2.0","id":1,"result":"0x10F447"}eth_blockNumber
#Returns the number of the most recent block.
QUANTITY, latest block number
curl -s -X POST https://chain.kxco.ai/rpc \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'eth_getBlockByNumber
#Returns block information by number.
| blockNumber | QUANTITY|TAG | hex block number, "latest", "earliest", or "pending" |
| fullTxs | BOOLEAN | true to include full tx objects, false for hashes only |
Object, block header, transactions, miner, gas, etc.
curl -s -X POST https://chain.kxco.ai/rpc \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest",false],"id":1}'eth_getBlockByHash
#Returns block information by hash.
| blockHash | DATA(32) | 32-byte block hash |
| fullTxs | BOOLEAN | true for full tx objects, false for hashes |
Object, same shape as eth_getBlockByNumber
eth_getTransactionByHash
#Returns a transaction by hash.
| txHash | DATA(32) | 32-byte transaction hash |
Object, tx fields: from, to, value, gas, gasPrice, nonce, input, blockNumber
eth_getTransactionReceipt
#Returns the receipt of a mined transaction. Null while pending.
| txHash | DATA(32) | 32-byte transaction hash |
Object, status (0x1=success, 0x0=failed), gasUsed, logs, contractAddress
eth_getBalance
#Returns the ARMR balance of an account in wei.
| address | DATA(20) | 20-byte account address |
| blockNumber | QUANTITY|TAG | hex block number or "latest" |
QUANTITY, balance in wei (hex)
curl -s -X POST https://chain.kxco.ai/rpc \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0x2c7754df344baa04460cbf88bbade1b3a2b4dba4","latest"],"id":1}'eth_getCode
#Returns the bytecode at an address. Empty for EOAs.
| address | DATA(20) | 20-byte account address |
| blockNumber | QUANTITY|TAG | hex block number or "latest" |
DATA, contract bytecode
eth_getStorageAt
#Returns the value at a storage slot.
| address | DATA(20) | contract address |
| slot | QUANTITY | 32-byte storage slot |
| blockNumber | QUANTITY|TAG | hex block number or "latest" |
DATA(32), 32-byte storage value
eth_getTransactionCount
#Returns the number of transactions sent from an address (nonce).
| address | DATA(20) | account address |
| blockNumber | QUANTITY|TAG | hex block number or "latest" |
QUANTITY, transaction count
eth_call
#Executes a read-only contract call without creating a transaction.
| callObject | Object | {to, data, from?, value?, gas?, gasPrice?} |
| blockNumber | QUANTITY|TAG | hex block number or "latest" |
DATA, encoded return value
eth_estimateGas
#Estimates gas required for a transaction.
| callObject | Object | {from, to, data, value?} |
QUANTITY, gas estimate
eth_sendRawTransaction
#Submits a signed transaction.
| signedTx | DATA | RLP-encoded signed transaction |
DATA(32), transaction hash
eth_gasPrice
#Returns the current gas price. Always 0 on KXCO Armature (free transactions for permissioned participants).
QUANTITY, gas price in wei
eth_getLogs
#Returns logs matching a filter. Use for event indexing.
| filter | Object | {fromBlock, toBlock, address?, topics?} |
Array, matching log objects
eth_syncing
#Returns sync status of the observer node.
Object or false, {startingBlock, currentBlock, highestBlock} when syncing, false when caught up
qbft_*
qbft_getValidatorsByBlockNumber
#Returns the set of active validators for a given block.
| blockNumber | QUANTITY|TAG | hex block number or "latest" |
Array<DATA(20)>, validator addresses
curl -s -X POST https://chain.kxco.ai/rpc \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"qbft_getValidatorsByBlockNumber","params":["latest"],"id":1}'qbft_getValidatorsByBlockHash
#Returns the validator set at the given block hash.
| blockHash | DATA(32) | 32-byte block hash |
Array<DATA(20)>, validator addresses
qbft_getPendingVotes
#Returns pending validator add/remove proposals.
Object, {validatorAddress: true|false} (true=add, false=remove)
net_*
web3_*
Enabled APIs on the observer: ETH, NET, WEB3, TXPOOL, ADMIN. QBFT methods are served by the validator nodes; the observer relays them.
For full JSON-RPC semantics see the Hyperledger Besu API reference.