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​