Skip to main content
This page walks through the wallet-centric Foundational endpoint currently supported on solana-mainnet: SPL token balances.

Balances (SPL + native SOL)

Returns SPL token holdings plus native SOL with USD pricing where available.
curl -X GET "https://api.covalenthq.com/v1/solana-mainnet/address/4ZJhPQAgUseCsWhKvJLTmmRRUV74fdoTpQLNfKoekbPY/balances_v2/" \
  -H "Authorization: Bearer $GOLDRUSH_API_KEY"
import { GoldRushClient } from "@covalenthq/client-sdk";

const client = new GoldRushClient(process.env.GOLDRUSH_API_KEY);

const resp = await client.BalanceService.getTokenBalancesForWalletAddress({
  chainName: "solana-mainnet",
  walletAddress: "4ZJhPQAgUseCsWhKvJLTmmRRUV74fdoTpQLNfKoekbPY",
});

for (const item of resp.data.items) {
  console.log(item.contract_ticker_symbol, item.balance, item.pretty_quote);
}
import os, requests

resp = requests.get(
    "https://api.covalenthq.com/v1/solana-mainnet/address/"
    "4ZJhPQAgUseCsWhKvJLTmmRRUV74fdoTpQLNfKoekbPY/balances_v2/",
    headers={"Authorization": f"Bearer {os.environ['GOLDRUSH_API_KEY']}"},
)
print(resp.json()["data"]["items"][:3])
Each item carries the SPL mint as contract_address, decimals from the Mint account, and quote in USD where pricing exists. The wrapped-SOL row (So111…) is the native balance. Reference: get-token-balances-for-address.

SPL transfer history

SPL transfer history is not available on the Foundational REST API for Solana today. For decoded SPL transfers, use the warehouse transfers normalizer.