Skip to main content
GET
/
v1
/
balances
Get token balances
curl --request GET \
  --url https://api.hypermid.io/v1/balances \
  --header 'X-API-Key: <api-key>'
{
  "data": {
    "address": "0x0101e82F16792A3368Ca5c62c263F56a99C46c1a",
    "totalBalanceUSD": "5432.10",
    "balances": {
      "1": [
        {
          "chainId": 1,
          "address": "0x0000000000000000000000000000000000000000",
          "symbol": "ETH",
          "name": "Ethereum",
          "decimals": 18,
          "balance": "1.5",
          "priceUSD": 3250.00,
          "balanceUSD": 4875.00,
          "logoURI": "https://static.alchemyapi.io/images/assets/279.png",
          "providers": ["alchemy"]
        },
        {
          "chainId": 1,
          "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
          "symbol": "USDC",
          "name": "USD Coin",
          "decimals": 6,
          "balance": "500.00",
          "priceUSD": 1.00,
          "balanceUSD": 500.00,
          "logoURI": "https://static.alchemyapi.io/images/assets/3408.png",
          "providers": ["alchemy"]
        }
      ],
      "369": [
        {
          "chainId": 369,
          "address": "0x0000000000000000000000000000000000000000",
          "symbol": "PLS",
          "name": "Pulse",
          "decimals": 18,
          "balance": "100000",
          "priceUSD": 0,
          "balanceUSD": 0,
          "logoURI": "",
          "providers": ["superswap"]
        }
      ]
    }
  },
  "error": null,
  "meta": {
    "requestId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "timestamp": 1711234568,
    "rateLimit": {
      "limit": 2000,
      "remaining": 1998,
      "reset": 1711234627
    }
  }
}
Returns token balances for a wallet address across multiple blockchains. Uses Alchemy Portfolio API (40+ EVM chains + Solana), PulseChain direct RPC, and Blockstream API (Bitcoin). Balances include USD pricing, spam filtering, and are grouped by chain ID.
address
string
required
Wallet address. Supports EVM (0x...), Solana (base58), and Bitcoin (legacy, segwit, taproot).
chainIds
string
Comma-separated chain IDs to filter. Omit to return balances across all supported chains. Example: 1,42161,8453,369
{
  "data": {
    "address": "0x0101e82F16792A3368Ca5c62c263F56a99C46c1a",
    "totalBalanceUSD": "5432.10",
    "balances": {
      "1": [
        {
          "chainId": 1,
          "address": "0x0000000000000000000000000000000000000000",
          "symbol": "ETH",
          "name": "Ethereum",
          "decimals": 18,
          "balance": "1.5",
          "priceUSD": 3250.00,
          "balanceUSD": 4875.00,
          "logoURI": "https://static.alchemyapi.io/images/assets/279.png",
          "providers": ["alchemy"]
        },
        {
          "chainId": 1,
          "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
          "symbol": "USDC",
          "name": "USD Coin",
          "decimals": 6,
          "balance": "500.00",
          "priceUSD": 1.00,
          "balanceUSD": 500.00,
          "logoURI": "https://static.alchemyapi.io/images/assets/3408.png",
          "providers": ["alchemy"]
        }
      ],
      "369": [
        {
          "chainId": 369,
          "address": "0x0000000000000000000000000000000000000000",
          "symbol": "PLS",
          "name": "Pulse",
          "decimals": 18,
          "balance": "100000",
          "priceUSD": 0,
          "balanceUSD": 0,
          "logoURI": "",
          "providers": ["superswap"]
        }
      ]
    }
  },
  "error": null,
  "meta": {
    "requestId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "timestamp": 1711234568,
    "rateLimit": {
      "limit": 2000,
      "remaining": 1998,
      "reset": 1711234627
    }
  }
}
const balances = await client.getBalances({
  address: "0x0101e82F16792A3368Ca5c62c263F56a99C46c1a",
  chainIds: [1, 8453, 369],
});

console.log("Total USD:", balances.totalBalanceUSD);

// Get ETH balance on Ethereum
const ethBalances = balances.balances["1"];
const eth = ethBalances?.find(t => t.symbol === "ETH");
console.log("ETH balance:", eth?.balance);

Supported Chains

SourceChains
Alchemy Portfolio API40+ EVM chains (Ethereum, Arbitrum, Base, Polygon, Optimism, etc.) + Solana
PulseChain RPCPulseChain (369) — PLS, USDCh, HEX, PLSX, INC
Blockstream APIBitcoin

Notes

  • Spam tokens are automatically filtered out
  • Zero balances are excluded from the response
  • Results are sorted by USD value (highest first) within each chain
  • PulseChain balances use direct RPC since Alchemy does not support PulseChain

Authorizations

X-API-Key
string
header
required

Partner API key. Optional for public endpoints, required for /v1/partner/*.

Query Parameters

address
string
required

Wallet address (EVM 0x..., Solana base58, or Bitcoin)

chainIds
string

Comma-separated chain IDs to filter (e.g. 1,42161,8453,369). Omit for all chains.

Response

Token balances grouped by chainId

data
object