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 (0x457 = 1111).
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":"0x457"}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":["0xc0f4710f6d73ee812d64a9f0d2a909ae702df91e","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_*
web3_sha3
#Returns keccak-256 of the given data.
| data | DATA | hex-encoded input |
DATA(32) — hash
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.