Skip to main content
Retrieve the balance of an account, aggregated across all wallets and supported chains. The response includes the total balance in USD and a breakdown of individual asset balances. In particular, this endpoint returns balances for:
  • USDC on Ethereum, Base, Arbitrum, Polygon, Tempo, Solana
  • USDT on Ethereum, Base, Arbitrum, Polygon, Tempo, Solana
  • USDB on Ethereum, Base, Solana
  • ETH on Ethereum, Base, Arbitrum
  • SOL on Solana
  • POL on Polygon
Balances are summed across all wallets in the account and are aggregated across chains; for example, the USDC balance represents the USDC balance across all supported chains.
Accounts maintain a ledgered balance that may differ from the physical balance of the constituent wallets of an account on the blockchain. Given requirements for custodial wallets, the physical balance of a wallet may not be spendable until it passes KYC/AML screening, meaning the spendable balance of the account may differ from the actual value of assets in its wallets.We strongly recommend you use the Privy API to ledger the balance of your accounts instead of directly querying the blockchain due to custodial balance differences.
View the full API reference for getting an account’s balance.

Usage

To get an account’s balance via REST API, make a GET request to:
https://api.privy.io/v1/accounts/{account_id}/balance

Path parameters

account_id
string
required
The unique ID of the account to retrieve balances for.

Response

The response will include the following fields:
total
object
The total balance across all assets. Contains:
  • value (string): The monetary value as a string
  • currency (string): The currency code (currently only ‘usd’ is supported)
assets
array
The individual asset balances, each computed across all supported chains. Each asset contains:
  • symbol (string): The symbol of the asset (e.g., USDC, ETH, SOL)
  • amount (string): The amount of the asset held, denominated in the unit of the asset itself, with 1 decimal of precision
  • price (object): The price of the asset in the provided currency
    • value (string): The monetary value as a string
    • currency (string): The currency code (currently only ‘usd’ is supported)

Example

Request

curl --request GET https://api.privy.io/v1/accounts/<account-id>/balance \
  -u "your-app-id:your-app-secret" \
  -H "privy-app-id: your-app-id"

Response

{
  "total": {
    "value": "1477.58",
    "currency": "usd"
  },
  "assets": [
    {
      "symbol": "USDC",
      "amount": "500.0",
      "price": {
        "value": "1.00",
        "currency": "usd"
      }
    },
    {
      "symbol": "ETH",
      "amount": "0.3",
      "price": {
        "value": "2448.53",
        "currency": "usd"
      }
    },
    {
      "symbol": "SOL",
      "amount": "2.5",
      "price": {
        "value": "97.21",
        "currency": "usd"
      }
    }
  ]
}