Every screen on xdcscan.io is rendered from the same public REST API you can call directly at https://xdcscan.io/api/v2 — no API key required. This page maps each explorer UI page to the endpoints behind it, so you can rebuild anything you see in the UI.
Paths follow the Blockscout API v2 specification (OpenScan.AI’s API is Blockscout-compatible); confirm request and response fields in the interactive reference at xdcscan.io/api-docs. The examples below are available when the API is live — the service rate-limits aggressively, so back off and retry on HTTP 403/429.
Address page
UI: https://xdcscan.io/address/{hash}
| UI section | Endpoint |
|---|---|
| Balance, contract flag, metadata | GET /api/v2/addresses/{hash} |
| Transactions tab | GET /api/v2/addresses/{hash}/transactions |
| Token transfers tab | GET /api/v2/addresses/{hash}/token-transfers |
| Internal transactions tab | GET /api/v2/addresses/{hash}/internal-transactions |
| Token holdings | GET /api/v2/addresses/{hash}/token-balances |
| Counters (tx count, transfers, gas used) | GET /api/v2/addresses/{hash}/counters |
| Balance history chart | GET /api/v2/addresses/{hash}/coin-balance-history |
curl -s "https://xdcscan.io/api/v2/addresses/0xYOUR_ADDRESS_HERE"curl -s "https://xdcscan.io/api/v2/addresses/0xYOUR_ADDRESS_HERE/token-balances"Transaction page
UI: https://xdcscan.io/tx/{hash}
| UI section | Endpoint |
|---|---|
| Status, block, value, fee, method | GET /api/v2/transactions/{hash} |
| Token transfers | GET /api/v2/transactions/{hash}/token-transfers |
| Internal transactions | GET /api/v2/transactions/{hash}/internal-transactions |
| Logs | GET /api/v2/transactions/{hash}/logs |
| State changes | GET /api/v2/transactions/{hash}/state-changes |
curl -s "https://xdcscan.io/api/v2/transactions/0xTX_HASH_HERE"Token page
UI: https://xdcscan.io/token/{hash}
| UI section | Endpoint |
|---|---|
| Name, symbol, decimals, supply | GET /api/v2/tokens/{hash} |
| Holders tab | GET /api/v2/tokens/{hash}/holders |
| Transfers tab | GET /api/v2/tokens/{hash}/transfers |
| Counters (transfers, holders count) | GET /api/v2/tokens/{hash}/counters |
curl -s "https://xdcscan.io/api/v2/tokens/0xTOKEN_ADDRESS_HERE/holders"Block page
UI: https://xdcscan.io/block/{height}
| UI section | Endpoint |
|---|---|
| Height, timestamp, gas, rewards | GET /api/v2/blocks/{height} |
| Transactions in the block | GET /api/v2/blocks/{height}/transactions |
curl -s "https://xdcscan.io/api/v2/blocks/80000000"curl -s "https://xdcscan.io/api/v2/blocks/80000000/transactions"Contract page
UI: https://xdcscan.io/address/{hash} → Contract tab
| UI section | Endpoint |
|---|---|
| Verified source, ABI, compiler | GET /api/v2/smart-contracts/{hash} |
| Read methods | GET /api/v2/smart-contracts/{hash}/methods-read |
| Write methods | GET /api/v2/smart-contracts/{hash}/methods-write |
curl -s "https://xdcscan.io/api/v2/smart-contracts/0xCONTRACT_ADDRESS_HERE"Homepage and stats
UI: https://xdcscan.io and https://xdcscan.io/stats
| UI section | Endpoint |
|---|---|
| Chain stats (price, market cap, TPS) | GET /api/v2/stats |
| Latest blocks widget | GET /api/v2/main-page/blocks |
| Latest transactions widget | GET /api/v2/main-page/transactions |
curl -s "https://xdcscan.io/api/v2/stats"Pagination
List endpoints return an items array plus next_page_params. Pass the fields of next_page_params back as query parameters to fetch the next page; when it is null, you have reached the end. See the wallet-history tutorial for a runnable pagination loop.
Keep exploring
- APIs overview — SDK, RPC, and migration resources
- xdcscan.io/api-docs — interactive endpoint reference
- Track a wallet’s full history with the OpenScan API — worked tutorial using these endpoints