Skip to content

GET /v1/balances/:walletAddress

Return the SPL token balances of a wallet, filtered to mints the API tracks. Useful for swap UIs that want to sort the token picker by what the user actually holds, or for portfolio tools.

Backed by getTokenAccountsByOwner against our Triton RPC for both the SPL Token and Token-2022 programs in parallel. Results are coalesced and cached server-side for 5 seconds per wallet to prevent thundering-herd RPC cost when multiple tabs / clients hit the same wallet.

Request

http
GET /v1/balances/:walletAddress
X-API-Key: YOUR_API_KEY

Path parameters

FieldTypeDescription
walletAddressstringBase58 wallet pubkey (32-44 chars)

Example

bash
curl https://api.venum.dev/v1/balances/7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs \
  -H 'x-api-key: YOUR_API_KEY'

Response

200 OK

json
{
  "wallet": "7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs",
  "balances": [
    {
      "mint": "So11111111111111111111111111111111111111112",
      "symbol": "SOL",
      "decimals": 9,
      "amount": "12450000000",
      "uiAmount": 12.45
    },
    {
      "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "symbol": "USDC",
      "decimals": 6,
      "amount": "2105000000",
      "uiAmount": 2105
    }
  ],
  "fetchedAt": 1733587200000
}

Balance object

FieldTypeDescription
mintstringBase58 mint address
symbolstringTracked symbol (e.g. "SOL", "USDC")
decimalsnumberToken decimals
amountstringRaw amount in smallest units, as a base-10 string
uiAmountnumberHuman-readable amount (amount / 10^decimals)

Notes:

  • SOL is always returned (lamports → SOL conversion), even when the balance is zero.
  • SPL token accounts with a zero balance are filtered out to keep responses compact (wallets often own many empty ATAs).
  • Mints not in our tracked token list are filtered out as well — this is a product API, not a generic indexer.
  • fetchedAt is the UNIX millisecond timestamp at which the underlying RPC call returned. Subsequent identical requests within 5 s reuse this value.

Errors

StatusDescription
400Invalid wallet address (not a valid pubkey)
401Missing or invalid API key
429Rate limit exceeded
502Upstream RPC error

Auth

Requires API key.

Rate Limit

Tier limits (per minute):

TierLimit
anonymous0
free10
starter60
pro300
internal