---
title: "Get wallet balances"
method: GET
path: "/balances/{address}"
tags: ["Flash"]
---

# Get wallet balances

`GET /balances/{address}`

Fetch the token balances a wallet holds as a flat array, with `chain` on every row.

An EVM address returns balances across every EVM chain Flash supports; a Solana address returns Solana balances. Each row's `address` and `chain` feed directly into `POST /quote` as `targetAsset`/`contraAsset` and `targetChain`/`contraChain`, and `balance` is in the same units as `qty`.

## Path parameters

- `address` string, required — Wallet address to look up. An EVM address returns balances across every EVM chain Flash supports; a Solana address returns Solana balances.

## Response `200`

Balances returned successfully

- FlashBalancesResponse
  - `balances` FlashTokenBalance[], required — Token balances across every chain the address covers. Tokens flagged as scams and tokens without a current price are not returned.
    - `chain` 'arbitrum' | 'avalanche' | 'base' | 'bsc' | 'ethereum' | 'optimism' | 'polygon' | 'solana' | 'hyperevm' | 'plasma' | 'monad' | 'robinhood', required — Pass straight back to `POST /quote` as `targetChain` or `contraChain`.
    - `address` string, required — Pass straight back to `POST /quote` as `targetAsset` or `contraAsset`. EVM native assets use the `0xEeee…EEeE` sentinel.
    - `symbol` string, required — Display only — token symbols are not unique.
    - `tokenDecimals` integer, required — Number of decimal places used by the token's base units.
    - `balance` string, required — Held amount as a decimal string in the asset's normalized units — the same units as `qty` on `POST /quote`.
    - `notional` string, required — Value of `balance` in USD. Tokens without a current Definitive price are not returned.
    - `priceChange24h` string, nullable, required — 24h price change as a decimal fraction — `-0.0342` is -3.42%. Multiply by 100 to display. `null` when Codex has no 24h change data.
    - `imageUrl` string, required — Token logo URL. `""` when no image is available.
    - `isNative` boolean, required — Whether this row is the chain's native gas asset rather than a token holding. On Solana, native SOL and the wSOL token are separate rows sharing the `So111…112` address — `isNative` tells them apart.

## Other responses

- `400` — Invalid request parameters
- `401` — Authentication failed
- `403` — Permission denied
- `404` — Resource not found
- `422` — Resource state prevents the requested operation
- `429` — Rate limit exceeded
- `500` — Internal server error
- `503` — Service temporarily unavailable
- `504` — Gateway timeout

---

[API](https://skmtc.dev/definitive/apis/definitive-flash-api.md) · [All operations](https://skmtc.dev/definitive/apis/definitive-flash-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/definitive/definitive-flash-api/revisions/a3fee79d0a4d/schema)
