Skip to main content
MAIN CHAIN

Arbiter JSON-RPC API

The Elastos Arbiter node coordinates cross-chain operations between the ELA main chain and registered sidechains. It exposes a small JSON-RPC surface for operators and integrators to inspect arbiter configuration, merged-mining progress, tracked block heights, and completed cross-chain transactions.

Calls use HTTP POST with a JSON body. Include method, params, and id. The jsonrpc field is optional; if omitted, the server typically assumes "2.0".

{
"method": "getinfo",
"params": {},
"id": 1
}

Connection

The Arbiter API is not served on the main chain RPC port. It runs on the Arbiter process, usually alongside an elected supernode.

ContextURLNotes
Self-hosted (default)http://localhost:20536Default Arbiter JSON-RPC port (see ports reference)
Remotehttp://<host>:20536Bind and firewall according to your security policy; do not expose without access control

There is no standard public gateway for Arbiter RPC. Query your own Arbiter instance or an infrastructure partner that exposes it privately.


getinfo

Returns runtime arbiter parameters and tuning values from the active configuration.

Parameters

None. Use an empty object {}.

Result

NameTypeDescription
versionintegerArbiter protocol or internal version identifier
SideChainMonitorScanIntervalintegerInterval (seconds or blocks per implementation) for sidechain monitor scans
ClearTransactionIntervalintegerInterval for clearing or pruning tracked cross-chain transactions from working state
MinOutboundintegerMinimum outbound peer connections (or related networking threshold)
MaxConnectionsintegerMaximum concurrent connections allowed
SideAuxPowFeeintegerFee parameter for side auxiliary PoW operations (chain-specific units)
MinThresholdintegerMinimum threshold used in cross-chain or deposit logic
DepositAmountintegerConfigured deposit amount parameter (chain-specific units)

Example

// Request
{
"method": "getinfo",
"params": {},
"id": 1
}
// Response
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"version": 20001,
"SideChainMonitorScanInterval": 60,
"ClearTransactionInterval": 3600,
"MinOutbound": 8,
"MaxConnections": 256,
"SideAuxPowFee": 10000,
"MinThreshold": 1000000,
"DepositAmount": 100000000
},
"error": null
}

getsidemininginfo

Returns the last recorded side mining heights for the sidechain identified by its genesis block hash. Used to inspect merged-mining notification and submission progress.

Parameters

NameTypeDescription
hashstringGenesis block hash of the sidechain (64-character lowercase hex, no 0x prefix)

Result

NameTypeDescription
LastSendSideMiningHeightintegerLast height at which side mining work was sent toward this sidechain
LastNotifySideMiningHeightintegerLast height at which the sidechain was notified for mining
LastSubmitAuxpowHeightintegerLast height at which auxiliary PoW was submitted for this sidechain

Example

// Request
{
"method": "getsidemininginfo",
"params": {
"hash": "56be936978c261b2e649d58dbfaf3f23d4a868274f5522cd2adb4308a955c4a3"
},
"id": 1
}
// Response
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"LastSendSideMiningHeight": 18452340,
"LastNotifySideMiningHeight": 18452338,
"LastSubmitAuxpowHeight": 18452336
},
"error": null
}

getmainchainblockheight

Returns the current main chain block height as tracked and cached by this Arbiter instance.

Parameters

None. Use an empty object {}.

Result

NameTypeDescription
(result)integerMain chain height the Arbiter considers current

Example

// Request
{
"method": "getmainchainblockheight",
"params": {},
"id": 1
}
// Response
{
"id": 1,
"jsonrpc": "2.0",
"result": 18452342,
"error": null
}

getsidechainblockheight

Returns the sidechain block height the Arbiter tracks for the sidechain specified by genesis block hash.

Parameters

NameTypeDescription
hashstringGenesis block hash of the sidechain (64-character lowercase hex, no 0x prefix)

Result

NameTypeDescription
(result)integerSidechain height known to the Arbiter for that chain

Example

// Request
{
"method": "getsidechainblockheight",
"params": {
"hash": "56be936978c261b2e649d58dbfaf3f23d4a868274f5522cd2adb4308a955c4a3"
},
"id": 1
}
// Response
{
"id": 1,
"jsonrpc": "2.0",
"result": 9821567,
"error": null
}

getfinisheddeposittxs

Returns finished deposit transactions (main chain → sidechain flow) grouped by whether they succeeded or failed, depending on the succeed flag.

Parameters

NameTypeDescription
succeedbooleantrue to list succeeded deposits, false to list failed or non-succeeded entries

Result

NameTypeDescription
TransactionsarrayList of objects describing each finished deposit
Transactions[].HashstringTransaction hash
Transactions[].GenesisBlockAddressstringSidechain genesis block address / identifier associated with the deposit

Example

// Request
{
"method": "getfinisheddeposittxs",
"params": {
"succeed": true
},
"id": 1
}
// Response
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"Transactions": [
{
"Hash": "7f3a9c2e1b8d4f605a91e7c3d2b0f89456a12bcdef678901234567890abcdef12",
"GenesisBlockAddress": "56be936978c261b2e649d58dbfaf3f23d4a868274f5522cd2adb4308a955c4a3"
},
{
"Hash": "2c8e4410a59b73e8f6d2a1c9b4e7f3058d1a2b3c4d5e6f708192a3b4c5d6e7f8",
"GenesisBlockAddress": "56be936978c261b2e649d58dbfaf3f23d4a868274f5522cd2adb4308a955c4a3"
}
]
},
"error": null
}

getfinishedwithdrawtxs

Returns finished withdraw transactions (sidechain → main chain flow) for the requested outcome.

Parameters

NameTypeDescription
succeedbooleantrue for successful withdrawals, false for failed or rejected entries

Result

NameTypeDescription
Transactionsarray of stringTransaction hashes of finished withdraw transactions

Example

// Request
{
"method": "getfinishedwithdrawtxs",
"params": {
"succeed": true
},
"id": 1
}
// Response
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"Transactions": [
"9a1b2c3d4e5f60718293a4b5c6d7e8f90123456789abcdef0123456789abcdef0",
"b0c1d2e3f405162738495a6b7c8d9e0f1234567890abcdef1234567890abcdef1"
]
},
"error": null
}

getgitversion

Returns the Git build identifier string embedded in the Arbiter binary (commit or tag description).

Parameters

None. Use an empty object {}.

Result

NameTypeDescription
(result)stringGit version string reported by the Arbiter build

Example

// Request
{
"method": "getgitversion",
"params": {},
"id": 1
}
// Response
{
"id": 1,
"jsonrpc": "2.0",
"result": "v0.3.2-12-g4a7f2c1",
"error": null
}

getspvheight

Returns the main chain block height reached by the Arbiter’s SPV module, which tracks main chain blocks relevant to deposits and auxiliary PoW. This can lag slightly behind getmainchainblockheight during sync.

Parameters

None. Use an empty object {}.

Result

NameTypeDescription
(result)integerMain chain height of the SPV sync head

Example

// Request
{
"method": "getspvheight",
"params": {},
"id": 1
}
// Response
{
"id": 1,
"jsonrpc": "2.0",
"result": 18452340,
"error": null
}

Resources

  • Main Chain JSON-RPC API — Native ELA node RPC used by the Arbiter for blocks, transactions, and arbiter group data.
  • Full supernode — Deployment context for running ELA, BPoS, and Arbiter together.