Skip to main content

Explorer API

XPScan exposes a REST API over indexed Mainnet data. It answers questions a node cannot answer cheaply — "which addresses hold the most XP", "how many transactions per day", "how much of the supply has been minted" — because the explorer has already aggregated them.

Which API do I want?

You needUse
Current chain state, sending transactions, calling contractsJSON-RPC on a node endpoint
XPHERE-specific chain data — council, committee, rewards, chain configxp_* RPC
Indexed and aggregated data — rankings, daily totals, token lists, searchExplorer API (this page)
Verifying contract source from the CLISmart Contracts → Verifying Contracts

A node answers what is true right now. The explorer answers what has happened over time.

Basics

FieldValue
Base URLhttps://xpscan.io
NetworkMainnet only — Chain ID 20250217
FormatJSON
AuthNone required
Rate limitXPScan states 100 req/min (Free), 1000 req/min (Pro)

No testnet instance is published, so this API covers Mainnet only. For testnet, use the Tamsa testnet explorer.

Endpoints worth knowing

The full endpoint list is maintained by XPScan at xpscan.io/api-docs. The ones below are the ones most often needed from documentation, and each response shown here was captured from the live endpoint.

Supply and emission — /api/supply

Useful because it makes the emission model in Tokenomics checkable rather than something you take on trust.

curl -s https://xpscan.io/api/supply
{
"totalSupply": 5500000000,
"totalMinted": 1386009700.8,
"mintedPercent": 25.2,
"halvingBlock": 31536000,
"breakdown": {
"miners": { "share": 0.4, "total": 554403880.32 },
"union": { "share": 0.4, "total": 554403880.32 },
"foundation": { "share": 0.2, "total": 277201940.16 }
},
"preHalving": { "blocks": 31536000, "rewardPerCycle": 2000, "totalMinted": 1051200000 },
"postHalving": { "blocks": 13624960, "rewardPerCycle": 1474.4, "totalMinted": 334809700.8 }
}

The breakdown shares are the 40 / 40 / 20 minted-reward split, and rewardPerCycle shows the reduction from 2,000 XP to 1,474.4 XP per 60-block cycle after the first reduction.

Network status — /api/network

Block height, gas price, TPS, and the latest block header including its miner and proposer.

curl -s https://xpscan.io/api/network
{
"blockNumber": 45160854,
"gasPrice": "27500000000",
"gasPriceGwei": "27.5",
"tps": 0.55,
"latestBlock": {
"number": 45160854,
"miner": "0x0e73...cb31",
"proposer": "0x6499...751c",
"gasUsed": "564340",
"gasLimit": "999999999999",
"baseFeePerGas": "25000000000",
"transactionCount": 2
}
}

miner is the Proof Chain miner; proposer is the Union member whose turn it was.

Union members — /api/unions

The registered Union slots with stake, rewards, and APR, plus halving context.

curl -s https://xpscan.io/api/unions

Returns members[] (each with name, address, totalStaked, totalReward, estimatedAnnualReward, halvingAwareAPR, startBlockNumber), totalCnt, and a halving block. See Union Members for what these mean.

Price — /api/price

An aggregated XP/USDT price with its on-chain oracle round and the exchanges it was sourced from.

curl -s https://xpscan.io/api/price
{
"price": 0.014987,
"pair": "XP/USDT",
"roundId": 520,
"oracle": "0x6e32Ea5aa2bFcf7ce089940558b25192dEd1d4E6",
"sources": 3,
"exchanges": [
{ "name": "MEXC", "price": 0.01498 },
{ "name": "XT.com", "price": 0.015 },
{ "name": "LBank", "price": 0.014987 }
]
}
caution

Price data is informational. It reflects third-party exchange quotes at the time of the request and is not a Foundation valuation.

Mining — /api/mining

A large aggregate: topMiners, recentBlocks, networkStats (total miners, average block time), distribution, hourlyProduction, blockTimeDist, dailyMiners, hashrateTrend, and rewardEstimates.

Listings and lookup

EndpointReturns
/api/blocks?limit=&offset=Recent blocks
/api/blocks/{number}One block
/api/transactions?limit=&offset=&txType=&from=&to=Recent transactions
/api/transactions/{hash}One transaction
/api/addresses/{address}Balance, transaction count, contract flag
/api/tokens?limit=&offset=Tokens, ordered by transfer count
/api/tokens/{address}Token metadata and holders
/api/top-accounts?limit=Accounts ranked by transaction count
/api/statsDaily transaction counts, gas, and volume
/api/search?q=Autocomplete over tokens and address labels

Contract verification

Verification has its own Etherscan-compatible surface under /api?module=contract&action=…, which is what hardhat verify and forge verify-contract use. That flow is documented with a worked example in Smart Contracts → Verifying Contracts.

XPScan also exposes a REST form of the same data:

curl -s https://xpscan.io/api/contracts/{address}/verify # verification status

Checking an endpoint before relying on it

Every endpoint here returns JSON on success, so a quick sanity check is enough:

curl -s -o /dev/null -w "%{http_code}\n" https://xpscan.io/api/network # 200

XPScan is operated as the XPHERE block explorer; treat availability and response shapes as subject to change, and read xpscan.io/api-docs for the authoritative and current list.

See Also