Skip to main content
All requests on this page target the Whitechain Sepolia explorer at https://explorer.testnet.whitechain.io (chain id 1874). The API is public, read-only, and needs no API key, so a wallet view runs fully client-side with no backend and no node of your own. Replace the example address 0xA439Ad519046CCd7056Ddf74fbaAc99d740Bdf09 with the address you want to read.
Every request below has a Run this request button. It sends that exact request from your browser to Whitechain Sepolia and prints the live response, so you can compare it with the sample response above it. Each button carries its own address field, so editing the address in one runner does not change the others. The requests are read-only GET and POST calls with no key and no wallet connection, and nothing you enter leaves your browser except the address in the URL.

What you can read

A wallet view combines two Blockscout API surfaces to answer four questions about an address:
  • What is its balance? Both the indexed balance and the live node balance, in WBT.
  • What tokens does it hold? Every ERC-20, ERC-721, and ERC-1155 balance, with symbol and decimals.
  • What has it done? A paginated transaction history with method, direction, value, fee, and status.
  • Where is the chain now? The latest block height, for a live head indicator.

API surfaces and base URLs

REST v2 answers “what does the indexer know”, and it returns rich pre-decoded objects. JSON-RPC answers “what is true on the node right now”, and it returns raw hex quantities. A wallet view reads both and shows them side by side.

Endpoint map

Reading with the REST API v2

Send GET requests with an accept: application/json header. The examples below use the real testnet address above; the responses are trimmed to the fields a wallet view reads.

Address summary

Use this to show the indexed balance and to label the address a wallet or a contract.
Request
Response (trimmed)

Token holdings

Use this to list every fungible and non-fungible balance the address holds.
Request
Response (trimmed)
The response is a flat array, one entry per token. Format each value against its own token.decimals (they differ per token, so never assume 18). For ERC-721 and ERC-1155 entries, token_id is set and type names the standard. An empty array ([]) means the address holds no tokens.

Transaction history

Use this for the activity list. The response is newest first.
Request
Response (trimmed to one item)
You can narrow the history with query parameters: For example, outbound transactions only:
Request

Reading with the ETH JSON-RPC API

Send POST requests to https://explorer.testnet.whitechain.io/api/eth-rpc with a JSON-RPC body. Every method here returns a hex quantity in result; convert it to a number before display.

Live native balance

Compare this with the indexed coin_balance from the address summary. They match once the indexer catches up to the node.
Request
Response
0x2769f979cd5db9a is 177504708847852442 wei, or about 0.1775 WBT.

Nonce

The nonce is the number of transactions the address has sent. Read it to show account activity or to build a raw transaction.
Request
Response
0x1e is 30, so this address has sent 30 transactions.

Chain head

Poll this on a short interval for a live block-height indicator.
Request
Response
0x2f80e0 is block 3113184.

Pagination

REST v2 list endpoints return next_page_params. When it is null, you have the last page. When it is an object, pass its fields back as query parameters on the same endpoint to get the next page.
Request (next page of transactions)
The exact keys inside next_page_params vary by endpoint (transactions page by block_number and index), so copy whatever keys the previous response returned rather than hardcoding them.

Errors

A malformed address or query parameter returns HTTP 422 with an errors array describing the bad input. Run any request above with a broken address to see it:
Response (HTTP 422)
A well-formed address the indexer has never seen is not an error: it returns HTTP 200 with null fields. JSON-RPC calls return HTTP 200 with an error object instead of result when the request is invalid, so check for error before reading result. Handle every path so a bad address shows a clear message rather than an empty view.

Load sequence

For a full wallet view, issue all six requests in parallel: the three REST reads (summary, token balances, transactions) and the three JSON-RPC reads (balance, nonce, chain head). None depend on another, so a single batch fills every card at once. Poll only eth_blockNumber afterward for the live head; refetch the rest when the user changes the address.