Get an address's token balances
You need current native and token balances for a wallet without decoding contract state by hand. The balances endpoint returns them enriched with symbols and decimals in a single call. No node to run — swap the base URL, add a Bearer header, and you are querying.
- An API key (sk_live_...) with C1 read access.
- An address to query and a chain: eth, btc, or tron.
1Call the balances endpoint
Send a GET to the decoded balances path for the chain and address. C1 covers recent-state reads, so this is the cheapest tier.
curl https://api.1st-node.com/v1/data/eth/address/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045/balances \ -H "Authorization: Bearer sk_live_..."
2Read the decoded response
Each entry carries the token symbol, decimals and raw balance. Native balance is returned alongside ERC-20 holdings so you do not have to merge two sources.
> {
> "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
> "native": { "symbol": "ETH", "decimals": 18, "balance": "4182773900000000000" },
> "tokens": [
> { "contract": "0xA0b8...eB48", "symbol": "USDC", "decimals": 6, "balance": "125000000" }
> ]
> }3Convert to human units
Divide the raw balance by 10^decimals in your app. Values are strings to preserve precision beyond 2^53 — parse them as big integers, not floats.
Frequently asked
Do I need to run an Ethereum node for this?
No. The balances are served from our own nodes. You call a REST endpoint with a Bearer header and pay per call, not per server.
Can I still use raw eth_getBalance instead?
Yes. Standard JSON-RPC works unchanged — POST to /v1/rpc/eth with method eth_getBalance. The decoded endpoint just saves you the contract calls for ERC-20 tokens.
Keep reading
Top up, get a key, ship.
Self-serve. Pay in crypto or card. Metered by credits — heavy primitives cost more, simple ones are cheap.
Get API key