---
title: "Get an Account's Balance"
method: POST
path: "/account/balance"
tags: ["Account"]
---

# Get an Account's Balance

`POST /account/balance`

Get an array of all AccountBalances for an AccountIdentifier and the
BlockIdentifier at which the balance lookup was performed. The BlockIdentifier
must always be returned because some consumers of account balance data need
to know specifically at which block the balance was calculated to
compare balances they compute from operations with the balance returned
by the node.

It is important to note that making a balance request for an account
without populating the SubAccountIdentifier should not result in the
balance of all possible SubAccountIdentifiers being returned. Rather,
it should result in the balance pertaining to no SubAccountIdentifiers
being returned (sometimes called the liquid balance). To get all
balances associated with an account, it may be necessary to
perform multiple balance requests with unique AccountIdentifiers.

It is also possible to perform a historical balance lookup (if the server
supports it) by passing in an optional BlockIdentifier.

## Request body

- AccountBalanceRequest — An AccountBalanceRequest is utilized to make a balance request on the /account/balance endpoint. If the block_identifier is populated, a historical balance query should be performed.
  - `network_identifier` NetworkIdentifier, required — unresolved $ref
  - `account_identifier` AccountIdentifier, required — unresolved $ref
  - `block_identifier` PartialBlockIdentifier — unresolved $ref
  - `currencies` Currency[] — In some cases, the caller may not want to retrieve all available balances for an AccountIdentifier. If the currencies field is populated, only balances for the specified currencies will be returned. If not populated, all available balances will be returned. — unresolved $ref

## Response `200`

Expected response to a valid request

- AccountBalanceResponse — An AccountBalanceResponse is returned on the /account/balance endpoint. If an account has a balance for each AccountIdentifier describing it (ex: an ERC-20 token balance on a few smart contracts), an account balance request must be made with each AccountIdentifier. The `coins` field was removed and replaced by by `/account/coins` in `v1.4.7`.
  - `block_identifier` BlockIdentifier, required — unresolved $ref
  - `balances` Amount[], required — A single account may have a balance in multiple currencies. — unresolved $ref
  - `metadata` object — Account-based blockchains that utilize a nonce or sequence number should include that number in the metadata. This number could be unique to the identifier or global across the account address.

## Other responses

- `500` — unexpected error

## Changes

> 50 revisions in range; 1 could not be searched.

- **2020-11-05** `87e8c6124c30` — 1 info
  - added the new optional request property `currencies`
- **2020-11-05** `63d02055c20c` — 1 warning
  - removed the optional property `coins` from the response with the `200` status
- **2020-08-07** `97f3c6540212` — 1 warning, 1 info
  - removed the request property `currencies`
  - added the optional property `coins` to the response with the `200` status

[Change history](https://skmtc.dev/coinbase/apis/rosetta/changes/account/balance/post.md)

---

[API](https://skmtc.dev/coinbase/apis/rosetta.md) · [All operations](https://skmtc.dev/coinbase/apis/rosetta/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/coinbase/rosetta/revisions/758497aacc08/schema)
