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

# Get one wallet's balances

> Reads one wallet, the one you name on the call. It never picks a wallet for you, so
an organization with many registered wallets calls this once per wallet.

Name the wallet with `cryptoWalletId`, or with `blockchain` and `publicKey` together.
Send exactly one of those two forms. The response echoes the wallet back as `walletId`,
`blockchain`, and `publicKey`, so both forms return the same object for the same wallet.
The wallet must be registered to your organization or to one of its child organizations.

For that wallet you get the current balance of every supported Etherfuse asset it holds,
with the value of each in the asset's own fiat currency and in USD.

Assets are resolved from the Etherfuse catalog for the wallet's chain, so no asset list
is accepted or required. Assets with a zero balance are omitted, so an empty
`balances` array is a successful read of a wallet holding nothing.

`currency` is per balance, because one wallet can hold CETES denominated in MXN and
TESOURO denominated in BRL at the same time. `balance` carries the asset's own decimal
precision; the two value fields carry six decimal places. Interest-bearing assets accrue
continuously, so two calls seconds apart can return different values for an unchanged
balance.



## OpenAPI

````yaml /openapi.json get /ramp/balances
openapi: 3.1.0
info:
  title: Etherfuse FX API
  description: Partner-facing ramp API for onramps, offramps, swaps, and KYC.
  license:
    name: Proprietary
  version: 1.0.0
servers:
  - url: https://api.sand.etherfuse.com
    description: Sandbox
security:
  - ApiKeyAuth: []
tags:
  - name: Authentication
    description: >-
      Partner JWT authentication — exchange a JWT for an access token, or launch
      a user into the app.
  - name: Lookup
    description: >-
      Public reference data: exchange rates, stablebonds, bond costs, country
      codes.
  - name: Assets
    description: Rampable stablecoins and stablebonds available per blockchain.
  - name: Bank Accounts
    description: Register and retrieve customer bank accounts.
  - name: Quotes
    description: Price quotes for onramps, offramps, and swaps.
  - name: Orders
    description: Create, track, and manage ramp orders.
  - name: Swaps
    description: Crypto-to-crypto swaps.
  - name: Sponsored
    description: Token approvals for sponsored (gasless) offramps.
  - name: Customers
    description: Customer (child-organization) records.
  - name: Wallets
    description: Register and manage customer wallets.
  - name: KYC
    description: >-
      Submit a customer's verification data, documents and questionnaire
      answers, import a verification they already passed elsewhere, and check
      where their KYC stands.
  - name: Webhooks
    description: Event notification subscriptions.
  - name: Organizations
    description: Organization identity, child orgs, and partner fees.
  - name: Statements
    description: >-
      Monthly revenue share statements for closed months, as a list or as a CSV
      or PDF download.
  - name: Deprecated
    description: >-
      Endpoints kept working until their sunset date and then removed. See the
      deprecations page for replacements and dates.
paths:
  /ramp/balances:
    get:
      tags:
        - Assets
      summary: Get one wallet's balances
      description: >-
        Reads one wallet, the one you name on the call. It never picks a wallet
        for you, so

        an organization with many registered wallets calls this once per wallet.


        Name the wallet with `cryptoWalletId`, or with `blockchain` and
        `publicKey` together.

        Send exactly one of those two forms. The response echoes the wallet back
        as `walletId`,

        `blockchain`, and `publicKey`, so both forms return the same object for
        the same wallet.

        The wallet must be registered to your organization or to one of its
        child organizations.


        For that wallet you get the current balance of every supported Etherfuse
        asset it holds,

        with the value of each in the asset's own fiat currency and in USD.


        Assets are resolved from the Etherfuse catalog for the wallet's chain,
        so no asset list

        is accepted or required. Assets with a zero balance are omitted, so an
        empty

        `balances` array is a successful read of a wallet holding nothing.


        `currency` is per balance, because one wallet can hold CETES denominated
        in MXN and

        TESOURO denominated in BRL at the same time. `balance` carries the
        asset's own decimal

        precision; the two value fields carry six decimal places.
        Interest-bearing assets accrue

        continuously, so two calls seconds apart can return different values for
        an unchanged

        balance.
      operationId: get_partner_balances
      parameters:
        - name: cryptoWalletId
          in: query
          description: >-
            Names the wallet by its identifier. Send either this or the
            `blockchain` and `publicKey` pair, never both and never neither.
          required: false
          schema:
            type: string
            format: uuid
        - name: blockchain
          in: query
          description: >-
            Names the wallet by chain and address, together with `publicKey`.
            Send this pair instead of `cryptoWalletId`, not alongside it.
          required: false
          schema:
            $ref: '#/components/schemas/Blockchain'
        - name: publicKey
          in: query
          description: >-
            The wallet's public address, sent together with `blockchain`. Match
            the address exactly as you registered it, including its casing.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: The wallet's held balances
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletBalancesResponse'
        '400':
          description: >-
            Missing, incomplete, or ambiguous wallet selector, or an address
            that is not valid for the blockchain
        '401':
          description: Missing or invalid API key
        '404':
          description: No such wallet is registered to your organization family
        '429':
          description: >-
            Rate limit exceeded; retry after the interval in the `Retry-After`
            header
        '502':
          description: The chain could not be read
        '503':
          description: >-
            The asset catalog, or a price needed to value the balances, is
            unavailable
        '504':
          description: The balance read exceeded its deadline
components:
  schemas:
    Blockchain:
      type: string
      description: |-
        Canonical blockchain enum for API serialization.
        Use this type for JSON APIs and WebSocket messages.
        For database storage, convert to `BlockchainType`.
      enum:
        - stellar
        - solana
        - base
        - polygon
        - monad
    WalletBalancesResponse:
      type: object
      required:
        - walletId
        - blockchain
        - publicKey
        - observedAt
        - balances
      properties:
        walletId:
          type: string
          format: uuid
          description: >-
            The wallet you named, echoed back. Present whichever form you sent,
            so a request that used `blockchain` and `publicKey` still returns
            the wallet's `cryptoWalletId` here.
        blockchain:
          $ref: '#/components/schemas/Blockchain'
        publicKey:
          type: string
          description: The named wallet's public address
        observedAt:
          type: string
          format: date-time
          description: When the balances were read
        balances:
          type: array
          items:
            $ref: '#/components/schemas/WalletBalance'
          description: One entry per held asset. Empty when the wallet holds none.
    WalletBalance:
      type: object
      required:
        - symbol
        - identifier
        - balance
        - currency
        - amountInFiat
        - amountInUsd
      properties:
        symbol:
          type: string
          description: Asset symbol (e.g. "cetes")
        identifier:
          type: string
          description: >-
            Chain-specific asset identifier: the mint on Solana, the contract on
            EVM chains, "CODE:ISSUER" on Stellar
        balance:
          type: string
          description: Held amount, at the asset's own decimal precision
        currency:
          type: string
          description: >-
            The fiat currency this asset is denominated in (e.g. "mxn" for
            CETES, "brl" for TESOURO)
        amountInFiat:
          type: string
          description: Value of the held amount in `currency`, to six decimal places
        amountInUsd:
          type: string
          description: Value of the held amount in USD, to six decimal places
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: API key sent in the Authorization header.

````