> ## Documentation Index
> Fetch the complete documentation index at: https://coinstats.app/api-docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Wallet Balance

> Get cryptocurrency balances for any blockchain wallet

> [!NOTE]
>
> **40** credits per request

> **Multipliers**
>
> \[!NOTE] In **Query** field **"connectionId"**: credits are multiplied by the number of values.\[!NOTE] If the value of **"connectionId"** in **Query** is **"all"**, multiplier is **400** credits.\[!NOTE] In **Query** field **"blockchain"**: credits are multiplied by the number of values.\[!NOTE] If the value of **"blockchain"** in **Query** is **"all"**, multiplier is **400** credits.\[!WARNING] Multipliers can be applied multiple times.\[!NOTE] [**Detailed multipliers explanation**](/api-docs/multipliers)

***

> **Details**
>
> * Token balances on one or more blockchains
> * Current USD price, BTC price, and 24h change
> * Token contract addresses and decimals (ERC20-style tokens)
> * Market data: rank, 24h volume

> **Required**
>
> * address: Wallet address to query

> **Optional**
>
> * One of connectionId or blockchain (if both provided, connectionId is used):
>   * Single value (e.g., "ethereum")
>   * Comma-separated values ("ethereum,polygon")
>   * "all" — every supported network (top-tier EVM chains forced; other chains bounded by a per-chain latency limit and may be skipped)
>   * "forceall" — every supported network, no latency limit (the response is delayed by the slowest chain)
> * Omit both and the networks are detected from the address itself — see "Address-only requests".

> **Address-only requests**
>
> * If you send just an address, the networks are worked out from the address format.
> * An EVM address (0x…, or an ENS name) is queried on every EVM chain, exactly like "all" — and costs the same as "all".
> * Any other address is queried on the first network its format is valid for (e.g. a bc1… address on Bitcoin), and costs a single-network request.
> * An address that matches no supported network returns 400.

> **Notes**
>
> * The top-tier EVM chains forced under "all" are: ethereum, binacesmartchain, base-wallet, polygon-wallet, arbitrum-wallet, optimism-wallet, avalanche-wallet, hyperevm-wallet, monad-wallet, plasma-wallet. In rare cases a slow non-top-tier chain may be omitted; use "forceall" to wait for everything.


## OpenAPI

````yaml /api-docs/api-reference/openapi.json get /v1/wallet/balance
openapi: 3.0.0
info:
  title: CoinStats Public API
  description: >-
    CoinStats Public API — programmatic access to market data, news, NFTs,
    wallets, exchange connections, and user portfolios. Authenticate every
    request with the `X-API-KEY` header (or an OAuth Bearer token in the
    `Authorization` header). Generate keys at https://openapi.coinstats.app.
  version: '1.0'
  contact: {}
servers:
  - url: https://api.coinstats.app
security: []
tags:
  - name: CoinStats
    description: ''
  - name: Market Data
    description: >-
      The Market Data section of the API provides endpoints to access a wide
      range of market-related information, including cryptocurrency coins,
      ticker data, and fiat currency rates. This category offers comprehensive
      data to help users monitor and analyze the cryptocurrency market, track
      prices, and gain insights into market trends
  - name: RWA
    description: >-
      Tokenized real-world assets: overview, stocks, commodities, ETFs, tokens,
      trading markets, and aggregate or per-asset history.
  - name: News
    description: >-
      The News section of the API allows you to access news articles and updates
      related to cryptocurrencies and the blockchain industry. It provides
      valuable information from various sources to keep you informed about the
      latest developments
  - name: NFTs
    description: >-
      The NFT section of the API provides endpoints to interact with
      Non-Fungible Tokens (NFTs), which are unique digital assets stored on a
      blockchain. These endpoints allow you to retrieve information about NFTs,
      including collections, assets, trending NFTs, and specific assets
      associated with wallet addresses.
  - name: Wallet NFTs
    description: >-
      NFTs held by a wallet: tokens, collections, value, activity and token
      gating
  - name: Wallet Data
    description: >-
      The Wallet section of the API provides a comprehensive set of endpoints to
      manage and interact with wallets. It enables users to retrieve wallet
      balances, monitor syncing status, fetch transaction data, and synchronize
      wallet information with the blockchain. By integrating these endpoints
      into your application, you can offer robust wallet functionality to your
      users.
  - name: Exchange Connection
    description: >-
      The Exchange Connection section of the API provides a comprehensive set of
      endpoints to manage and interact with exchanges. It enables users to
      retrieve exchange balances, monitor syncing status, fetch transaction
      data. By integrating these endpoints into your application, you can offer
      robust exchange portfolio tracking functionality to your users.
  - name: User Portfolio
    description: >-
      The Portfolio section of the API provides a comprehensive set of endpoints
      to manage and interact with Share Portfolios. It enables users to retrieve
      current Portfolio Coins and Transactions.
  - name: Usage
    description: The Usage section provides account-level API usage data.
  - name: Status
    description: The Status section provides API availability checks.
  - name: Prediction · Markets
    description: >-
      Polymarket, Kalshi and Polymarket US markets: list/trend/detail, live
      prices and order book, OHLC candles, and price history. `view` picks the
      venues a list shows (`intl` default, `us`, `all`). Prices are
      probabilities in 0..1, money is USD, dates are ISO 8601.
  - name: Prediction · Events
    description: >-
      Polymarket, Kalshi and Polymarket US events — groups of related markets
      (e.g. one market per candidate). List, trend, and fetch an event with its
      child markets.
  - name: Prediction · Traders
    description: >-
      Trader leaderboard plus deep per-trader analytics: profile, open
      positions, trade history, daily PnL, category stats, aggregate trade
      stats, and composite score.
  - name: Prediction · Analytics
    description: >-
      Platform-wide analytics: overview stats, smart-money and whale traders,
      trending-by-smart-money markets, and composite market signals.
  - name: Prediction · Search
    description: Full-text search across prediction-market events, markets, and traders.
paths:
  /v1/wallet/balance:
    get:
      tags:
        - Wallet Data
      summary: Get cryptocurrency balances for any blockchain wallet
      operationId: get-wallet-balance
      parameters:
        - name: address
          required: true
          in: query
          description: The blockchain wallet address to query balances for
          schema:
            example: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e'
            type: string
        - name: connectionId
          required: false
          in: query
          description: >-
            The identifier of connection from
            [/wallet/blockchains](/openapi/get-blockchains) call response. If
            both connectionId and blockchain are provided, connectionId will be
            used. On the balance endpoints both may be omitted, in which case
            the networks are detected from the address: an EVM address (0x… or
            ENS) is queried on every EVM chain and billed like "all", any other
            address is queried on the first network its format is valid for.
            Accepts "all" — top-tier EVM chains (ethereum, binacesmartchain,
            base-wallet, polygon-wallet, arbitrum-wallet, optimism-wallet,
            avalanche-wallet, hyperevm-wallet, monad-wallet, plasma-wallet) are
            always included; other chains are subject to a per-chain latency
            limit and may be skipped from the response. Use "forceall" instead
            to wait for every supported chain regardless of latency.
          schema:
            example: base-wallet
            type: string
        - name: blockchain
          required: false
          in: query
          description: >-
            The blockchain network identifier from
            [/wallet/blockchains](/openapi/get-blockchains) call response. If
            both connectionId and blockchain are provided, connectionId will be
            used. On the balance endpoints both may be omitted, in which case
            the networks are detected from the address: an EVM address (0x… or
            ENS) is queried on every EVM chain and billed like "all", any other
            address is queried on the first network its format is valid for.
            Accepts "all" — top-tier EVM chains (ethereum, binacesmartchain,
            base-wallet, polygon-wallet, arbitrum-wallet, optimism-wallet,
            avalanche-wallet, hyperevm-wallet, monad-wallet, plasma-wallet) are
            always included; other chains are subject to a per-chain latency
            limit and may be skipped from the response. Use "forceall" instead
            to wait for every supported chain regardless of latency.
          schema:
            example: base
            type: string
      responses:
        '200':
          description: Get wallet balance
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WalletBalanceResponseCoinDto'
        '400':
          description: Bad Request
          content:
            application/json:
              example:
                statusCode: 400
                message: Bad Request
                requestId: 11111111-2222-3333-4444-555555555555
                path: <requested-endpoint>
        '401':
          description: Unauthorized
          content:
            application/json:
              example:
                statusCode: 401
                message: Unauthorized
                requestId: 11111111-2222-3333-4444-555555555555
                path: <requested-endpoint>
        '403':
          description: Forbidden
          content:
            application/json:
              example:
                statusCode: 403
                message: Forbidden
                requestId: 11111111-2222-3333-4444-555555555555
                path: <requested-endpoint>
        '404':
          description: Not Found
          content:
            application/json:
              example:
                statusCode: 404
                message: Not Found
                requestId: 11111111-2222-3333-4444-555555555555
                path: <requested-endpoint>
        '409':
          description: Conflict (for some endpoints)
          content:
            application/json:
              example:
                statusCode: 409
                message: Transactions not synced
                requestId: 11111111-2222-3333-4444-555555555555
                path: <requested-endpoint>
        '429':
          description: Too Many Requests
          content:
            application/json:
              example:
                statusCode: 429
                message: Rate limit exceeded
                requestId: 11111111-2222-3333-4444-555555555555
                path: <requested-endpoint>
        '503':
          description: Service Unavailable
          content:
            application/json:
              example:
                statusCode: 503
                message: Service Unavailable. Please Contact Support
      security:
        - X-API-KEY: []
      x-codeSamples:
        - lang: curl
          label: cURL
          source: |-
            curl --request GET \
              --url 'https://api.coinstats.app/v1/wallet/balance?address=0x742d35Cc6634C0532925a3b844Bc454e4438f44e&blockchain=ethereum' \
              --header 'X-API-KEY: <api-key>'
        - lang: python
          label: Python
          source: >-
            import requests


            url =
            "https://api.coinstats.app/v1/wallet/balance?address=0x742d35Cc6634C0532925a3b844Bc454e4438f44e&blockchain=ethereum"


            headers = {"X-API-KEY": "<api-key>"}


            response = requests.request("GET", url, headers=headers)


            print(response.json())
        - lang: javascript
          label: JavaScript
          source: >-
            const options = {method: 'GET', headers: {'X-API-KEY':
            '<api-key>'}};


            fetch('https://api.coinstats.app/v1/wallet/balance?address=0x742d35Cc6634C0532925a3b844Bc454e4438f44e&blockchain=ethereum',
            options)
              .then((response) => response.json())
              .then((response) => console.log(response))
              .catch((err) => console.error(err));
        - lang: php
          label: PHP
          source: |-
            <?php

            $curl = curl_init();

            curl_setopt_array($curl, [
              CURLOPT_URL => "https://api.coinstats.app/v1/wallet/balance?address=0x742d35Cc6634C0532925a3b844Bc454e4438f44e&blockchain=ethereum",
              CURLOPT_RETURNTRANSFER => true,
              CURLOPT_CUSTOMREQUEST => "GET",
              CURLOPT_HTTPHEADER => [
                "X-API-KEY: <api-key>"
              ],
            ]);

            $response = curl_exec($curl);
            $err = curl_error($curl);

            curl_close($curl);

            if ($err) {
              echo "cURL Error #:" . $err;
            } else {
              echo $response;
            }
        - lang: go
          label: Go
          source: "package main\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n)\n\nfunc main() {\n\n\turl := \"https://api.coinstats.app/v1/wallet/balance?address=0x742d35Cc6634C0532925a3b844Bc454e4438f44e&blockchain=ethereum\"\n\n\treq, _ := http.NewRequest(\"GET\", url, nil)\n\n\treq.Header.Add(\"X-API-KEY\", \"<api-key>\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := io.ReadAll(res.Body)\n\n\tfmt.Println(string(body))\n}"
        - lang: java
          label: Java
          source: >-
            HttpResponse<String> response =
            Unirest.get("https://api.coinstats.app/v1/wallet/balance?address=0x742d35Cc6634C0532925a3b844Bc454e4438f44e&blockchain=ethereum")
              .header("X-API-KEY", "<api-key>")
              .asString();
components:
  schemas:
    WalletBalanceResponseCoinDto:
      type: object
      properties:
        chain:
          type: string
          description: The blockchain network where this token exists
          example: ethereum
        connectionId:
          type: string
          description: The blockchain network identifier that was used in the query
          example: ethereum
        coinId:
          type: string
          description: Unique identifier for the cryptocurrency
          example: ethereum
        amount:
          type: number
          description: The total balance amount of this cryptocurrency in the wallet
          example: 1.5
        name:
          type: string
          description: Full name of the cryptocurrency
          example: Ethereum
        symbol:
          type: string
          description: Trading symbol of the cryptocurrency
          example: ETH
        price:
          type: number
          description: Current price in USD
          example: 2000.5
        priceBtc:
          type: number
          description: Current price in BTC
          example: 0.05
        imgUrl:
          type: string
          description: URL of the cryptocurrency logo image
          example: https://static.coinstats.app/coins/1650455629727.png
        pCh24h:
          type: number
          description: Price change percentage in the last 24 hours
          example: 5.25
        rank:
          type: number
          description: Market cap rank of the cryptocurrency
          example: 2
        volume:
          type: number
          description: 24-hour trading volume in USD
          example: 15000000000
        decimals:
          type: number
          description: >-
            Number of decimal places for token precision (mainly for ERC20
            tokens)
          example: 18
        contractAddress:
          type: string
          description: Smart contract address for tokens (e.g. ERC20, BEP20)
          example: '0xdac17f958d2ee523a2206206994597c13d831ec7'
      required:
        - coinId
        - amount
        - name
        - symbol
        - price
        - priceBtc
        - imgUrl
        - pCh24h
        - rank
        - volume
  securitySchemes:
    X-API-KEY:
      type: apiKey
      in: header
      name: X-API-KEY
      description: >-
        API key required to access the endpoints. Generate one from your
        dashboard at https://openapi.coinstats.app and pass it in the
        `X-API-KEY` request header. Never expose your key in client-side code.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.