# getStablecoinBalances RPC Method - Multi-Chain Stablecoin Balance API

> For the complete documentation index, see [llms.txt](/docs/llms.txt)


Retrieves stablecoin balances for a given wallet address across multiple blockchain networks with support for automatic wallet type detection (EVM, Solana, Tron) and flexible filtering options.

> Please note that this RPC method requires the [Multi-Chain Stablecoin Balance API](https://www.quicknode.com/add-ons/multi-chain-stablecoin-balance-api) add-on enabled on your Quicknode endpoint. This method is only supported on Mainnet networks of all supported chains.

## Parameters

- **address** (string (REQUIRED)): The wallet address to query. Supports EVM (0x...), Solana (base58), and Tron (T...) address formats.

- **chains** (array (optional)): An array of blockchain identifiers to filter results. Supported chains: blast, ethereum, polygon, bsc, arbitrum, optimism, avalanche, base, solana, tron (mainnet networks only). If not specified, queries all supported chains

- **tokens** (array (optional)): Optional array of token symbols to filter results (e.g., ["USDT", "USDC", "DAI"]).

- **contract_addresses** (array (optional)): Optional array of specific token contract addresses or mint addresses to filter results.

- **peg_types** (array (optional)): An array of peg types to filter stablecoins by their pegged currency. Supported types: usd, eur, jpy. If not specified, includes all peg types

- **backing_types** (array (optional)): An array of backing types to filter stablecoins by their collateralization method. Supported types: fiat_backed, crypto_backed, algorithmic, algorithmic_hybrid, synthetic. If not specified, includes all backing types

- **issuer_types** (array (optional)): An array of issuer types to filter stablecoins by their governance model. Supported types: centralized, decentralized. If not specified, includes all issuer types

- **vm_types** (array (optional)): An array of virtual machine types to filter results by blockchain VM architecture. Supported types: evm, svm, tvm. If not specified, includes all VM types

## Returns

- **result** (object): The stablecoin balance data for the requested address
  - **address** (string): The wallet address that was queried
  - **chains** (object): Balances organized by chain name
    - **chain_name** (object): Balance data for a specific blockchain such as arbitrum, avalanche, base, bsc, ethereum, optimism, polygon
      - **chain_id** (number): EVM chain ID for this network
      - **balances** (array): Array of stablecoin balance objects on this chain
        - **token** (string): Token symbol such as USDT, USDC, TUSD
        - **contract_address** (string): ERC-20 contract address for EVM chains
        - **decimals** (number): Token decimals on this chain
        - **balance_raw** (string): Raw balance in smallest unit as a string
        - **balance_formatted** (string): Human-readable balance formatted using decimals
  - **timestamp** (string): ISO 8601 timestamp when the balances were computed
  - **total_balances** (array): Aggregated totals across all chains grouped by token symbol
    - **token** (string): Token symbol
    - **decimals** (number): Maximum decimals encountered for this token across chains
    - **balance_raw** (string): Total raw balance across all chains as a string
    - **balance_formatted** (string): Total human-readable balance across all chains

## Code Examples

### CURL

```sh
curl -X POST "https://docs-demo.quiknode.pro/" \
  -H "Content-Type: application/json" \
  -d '{
  "jsonrpc": "2.0",
  "method": "getStablecoinBalances",
  "params": {
    "address": "0xF977814e90dA44bFA03b6295A0616a897441aceC",
    "chains": [
      "ethereum",
      "polygon"
    ],
    "tokens": [
      "USDT",
      "USDC"
    ]
  },
  "id": 1
}'
```

### ETHERS

```js
import { ethers } from "ethers";

async function main() {
    const provider = new ethers.JsonRpcProvider("https://docs-demo.quiknode.pro/");
    const response = await provider.send("getStablecoinBalances", {
    "address": "0xF977814e90dA44bFA03b6295A0616a897441aceC",
    "chains": [
        "ethereum",
        "polygon"
    ],
    "tokens": [
        "USDT",
        "USDC"
    ]
});
    console.log(response);
}

main();
```

### ETH_RB

```rb
require 'eth'

client = Eth::Client.create 'https://docs-demo.quiknode.pro/'
payload = {
    "jsonrpc": "2.0",
    "method": "getStablecoinBalances",
    "params": {
        "address": "0xF977814e90dA44bFA03b6295A0616a897441aceC",
        "chains": [
            "ethereum",
            "polygon"
        ],
        "tokens": [
            "USDT",
            "USDC"
        ]
    },
    "id": "1"
}

response = client.send(payload.to_json)
puts response
```

### WEB3PY

```py
from web3 import Web3, HTTPProvider
w3 = Web3(HTTPProvider('https://docs-demo.quiknode.pro/'))
response = w3.provider.make_request("getStablecoinBalances", {"address":"0xF977814e90dA44bFA03b6295A0616a897441aceC","chains":["ethereum","polygon"],"tokens":["USDT","USDC"]})
print(response)
```

### VIEM

```ts
import { createPublicClient, http } from 'viem'

async function main() {
    const client = createPublicClient({
        transport: http('https://docs-demo.quiknode.pro/')
    })

    const result = await client.request({
        method: 'getStablecoinBalances',
        params: {
          "address": "0xF977814e90dA44bFA03b6295A0616a897441aceC",
          "chains": [
            "ethereum",
            "polygon"
          ],
          "tokens": [
            "USDT",
            "USDC"
          ]
        }
    })

    console.log(result)
}

main()
```

### QNSDK

```js
import { Core } from '@quicknode/sdk'

const core = new Core({
  endpointUrl: "https://docs-demo.quiknode.pro/",
})

core.client
  .request({
    method: 'getStablecoinBalances',
    params: {"address":"0xF977814e90dA44bFA03b6295A0616a897441aceC","chains":["ethereum","polygon"],"tokens":["USDT","USDC"]}
  })
  .then(res => console.log(res))
```

### JAVASCRIPT

```js
const body = {
    jsonrpc: '2.0',
    method: 'getStablecoinBalances',
    params: {"address":"0xF977814e90dA44bFA03b6295A0616a897441aceC","chains":["ethereum","polygon"],"tokens":["USDT","USDC"]},
    id: 1
}

async function main() {
    const response = await fetch('https://docs-demo.quiknode.pro/', {
        method: 'POST',
        headers: {'Content-Type': 'application/json'},
        body: JSON.stringify(body)
    })
    const data = await response.json()
    console.log(data)
}

main()
```

### PYTHON

```py
import requests
import json

url = "https://docs-demo.quiknode.pro/"

payload = json.dumps({
  "jsonrpc": "2.0",
  "method": "getStablecoinBalances",
  "params": {
    "address": "0xF977814e90dA44bFA03b6295A0616a897441aceC",
    "chains": [
      "ethereum",
      "polygon"
    ],
    "tokens": [
      "USDT",
      "USDC"
    ]
  },
  "id": 1
})
headers = {
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

### RUBY

```rb
require "uri"
require "json"
require "net/http"

uri = URI("https://docs-demo.quiknode.pro/")

payload = {
  jsonrpc: "2.0",
  id: 1,
  method: "getStablecoinBalances",
  params: {"address":"0xF977814e90dA44bFA03b6295A0616a897441aceC","chains":["ethereum","polygon"],"tokens":["USDT","USDC"]}
}

request = Net::HTTP::Post.new(uri)
request["Content-Type"] = "application/json"
request.body = JSON.generate(payload)

response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
  http.request(request)
end

puts response.body
```

### STATIC-RESPONSE

```json
{
  "jsonrpc": "2.0",
  "result": {
      "address": "0xF977814e90dA44bFA03b6295A0616a897441aceC",
      "chains": {
          "ethereum": {
              "balances": [
                  {
                      "balance_formatted": "22794505870.275000",
                      "balance_raw": "22794505870275000",
                      "contract_address": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
                      "decimals": 6,
                      "token": "USDT"
                  }
              ],
              "chain_id": 1
          },
          "polygon": {
              "balances": [
                  {
                      "balance_formatted": "64.555497",
                      "balance_raw": "64555497",
                      "contract_address": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
                      "decimals": 6,
                      "token": "USDC"
                  }
              ],
              "chain_id": 137
          }
      },
      "timestamp": "2025-10-16T10:56:11.915517401+00:00",
      "total_balances": [
          {
              "balance_formatted": "64.555497",
              "balance_raw": "64555497",
              "decimals": 6,
              "token": "USDC"
          },
          {
              "balance_formatted": "22794505870.275",
              "balance_raw": "22794505870275000",
              "decimals": 6,
              "token": "USDT"
          }
      ]
  },
  "id": 1
}
```

