GET endpoint that takes one wallet address and returns JSON.
Base URL
Authentication
Pass your API key in thekey query parameter:
X-API-Key header, which keeps the key out of URLs and access logs:
Endpoints
Try it in the API reference
Send test requests with your key.
OpenAPI spec (JSON)
For codegen and AI agents.
Supported chains
mainnet, arbitrum, and matic also work, as aliases for ethereum, arbitrum_one, and polygon. Values are case-insensitive, and a - reads as _, so Arbitrum-One works too. Any other value returns 400 BAD_REQUEST.
How far back the history goes can differ from chain to chain.
Shared parameters
Both endpoints accept these query parameters. Each endpoint page lists its own additional parameters.string
required
The wallet to look up:
0x followed by 40 hex characters, in any case. Each request takes one address, so send one request per wallet.string
Comma-separated chain values, such as
ethereum,base. Defaults to every supported chain.string
Comma-separated token contract addresses, up to 100. Use the zero address,
0x0000000000000000000000000000000000000000, for each chain’s native token.string
Comma-separated token symbols, such as
USDC,WETH. Up to 100 symbols of at most 32 characters each. Case-insensitive.boolean
default:"false"
By default, both feeds leave out tokens Goldsky has no price source for. Set to
true to include them. They can come back without a price or USD value.integer
default:"100"
Results per page, up to
1000.string
The
next_page_token or prev_page_token from a previous response.Pagination
Every response has apagination object:
next_page_token as page_token to get the next page, and keep going until next_page_token is null. prev_page_token takes you back one page and is null on the first page.
A page token only works with the filters it was issued for. If you change a filter, start again from the first page, or the request returns 400 INVALID_CURSOR. You can change page_size between pages.
Errors
API errors have a JSON body with a stablecode to branch on and a message that explains what went wrong:
A request over your rate limit gets
429 Too Many Requests with an empty body and a Retry-After header, in seconds.
Data types
amount_rawandbalance_raware integers in the token’s smallest unit, sent as strings so no precision is lost. Divide by10^token_decimalsfor the token amount.- Timestamps are RFC 3339 in UTC with milliseconds, such as
2026-09-30T06:47:23.000Z. - Addresses come back in lowercase.
- A chain’s native token, such as ETH or BNB, has the zero address as its
token_address. - Token metadata (
token_symbol,token_name,token_decimals,token_logo_url) and prices can benull, and can fill in on a later request.