Ava Labs EVM Balances API
Find information about balances on EVM-compatible chains, such as the Avalanche C-Chain.
Find information about balances on EVM-compatible chains, such as the Avalanche C-Chain.
openapi: 3.1.0
info:
title: Data AVAX Supply EVM Balances API
description: The Data API provides web3 application developers with multi-chain data related to Avalanche's primary network, Avalanche subnets, and Ethereum. With Data API, you can easily build products that leverage real-time and historical transaction and transfer history, native and token balances, and various types of token metadata. The API is in Beta and may be subject to change.</br></br>If you have feedback or feature requests for the API, please submit them <a href="https://portal.productboard.com/dndv9ahlkdfye4opdm8ksafi/tabs/4-glacier-api">here</a>. Bug reports can be submitted <a href="https://docs.google.com/forms/d/e/1FAIpQLSeJQrcp7QoNiqozMDKrVJGX5wpU827d3cVTgF8qa7t_J1Pb-g/viewform">here</a>, and any potential security issues can be reported <a href="https://immunefi.com/bounty/avalabs">here</a>.
version: 1.0.0
contact: {}
servers:
- url: https://glacier-api.avax.network
security:
- apiKey: []
- {}
tags:
- name: EVM Balances
description: Find information about balances on EVM-compatible chains, such as the Avalanche C-Chain.
paths:
/v1/chains/{chainId}/addresses/{address}/balances:getNative:
get:
operationId: getNativeBalance
x-speakeasy-group: data.evm.address.balances
x-speakeasy-name-override: getNative
x-execution-weight: medium
summary: Get native token balance
description: 'Gets native token balance of a wallet address.
Balance at a given block can be retrieved with the `blockNumber` parameter.'
parameters:
- name: blockNumber
required: false
in: query
description: The block number, if not defined the block number will be the latest block.
example: '6479329'
schema:
type: string
- name: chainId
required: true
in: path
description: A supported evm chain id or blockchain id. Use the `/chains` endpoint to get a list of supported chain ids.
example: '43114'
schema:
type: string
- name: address
required: true
in: path
description: A wallet address.
example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
schema:
type: string
- name: currency
required: false
in: query
description: The currency that return values should use. Defaults to USD.
example: usd
schema:
$ref: '#/components/schemas/CurrencyCode'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/GetNativeBalanceResponse'
'400':
description: "Bad requests generally mean the client has passed invalid \n or malformed parameters. Error messages in the response could help in \n evaluating the error."
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
'401':
description: "When a client attempts to access resources that require \n authorization credentials but the client lacks proper authentication \n in the request, the server responds with 401."
content:
application/json:
schema:
$ref: '#/components/schemas/Unauthorized'
'403':
description: "When a client attempts to access resources with valid\n credentials but doesn't have the privilege to perform that action, \n the server responds with 403."
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden'
'404':
description: "The error is mostly returned when the client requests\n with either mistyped URL, or the passed resource is moved or deleted, \n or the resource doesn't exist."
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
'429':
description: "This error is returned when the client has sent too many,\n and has hit the rate limit."
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequests'
'500':
description: "The error is a generic server side error that is \n returned for any uncaught and unexpected issues on the server side. \n This should be very rare, and you may reach out to us if the problem \n persists for a longer duration."
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
'502':
description: "This is an internal error indicating invalid response \n received by the client-facing proxy or gateway from the upstream server."
content:
application/json:
schema:
$ref: '#/components/schemas/BadGateway'
'503':
description: "The error is returned for certain routes on a particular\n Subnet. This indicates an internal problem with our Subnet node, and may \n not necessarily mean the Subnet is down or affected."
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceUnavailable'
tags:
- EVM Balances
x-codeSamples:
- lang: javascript
label: JavaScript
source: "import { Avalanche } from \"@avalanche-sdk/chainkit\";\n\nconst avalanche = new Avalanche({\n chainId: \"43114\",\n});\n\nasync function run() {\n const result = await avalanche.data.evm.address.balances.getNative({\n blockNumber: \"6479329\",\n address: \"0x71C7656EC7ab88b098defB751B7401B5f6d8976F\",\n currency: \"usd\",\n });\n\n console.log(result);\n}\n\nrun();"
/v1/chains/{chainId}/addresses/{address}/balances:listErc20:
get:
operationId: listErc20Balances
x-speakeasy-group: data.evm.address.balances
x-speakeasy-name-override: listErc20
x-speakeasy-pagination:
type: cursor
inputs:
- name: pageToken
in: parameters
type: cursor
outputs:
nextCursor: $.nextPageToken
x-execution-weight: medium
summary: List ERC-20 balances
description: 'Lists ERC-20 token balances of a wallet address.
Balance at a given block can be retrieved with the `blockNumber` parameter.
Balance for specific contracts can be retrieved with the `contractAddresses` parameter.'
parameters:
- name: blockNumber
required: false
in: query
description: The block number, if not defined the block number will be the latest block.
example: '6479329'
schema:
type: string
- name: pageToken
required: false
in: query
description: A page token, received from a previous list call. Provide this to retrieve the subsequent page.
schema:
type: string
- name: pageSize
required: false
in: query
description: The maximum number of items to return. The minimum page size is 1. The maximum pageSize is 500.
schema:
type: integer
default: 10
minimum: 1
maximum: 500
example: '10'
- name: filterSpamTokens
required: false
in: query
description: whether to filter out spam tokens from the response. Default is true.
schema:
default: true
type: boolean
- name: chainId
required: true
in: path
description: A supported evm chain id or blockchain id. Use the `/chains` endpoint to get a list of supported chain ids.
example: '43114'
schema:
type: string
- name: address
required: true
in: path
description: A wallet address.
example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
schema:
type: string
- name: contractAddresses
required: false
in: query
description: A comma separated list of contract addresses to filter by.
example: 0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7, 0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB
schema:
type: string
- name: currency
required: false
in: query
description: The currency that return values should use. Defaults to USD.
example: usd
schema:
$ref: '#/components/schemas/CurrencyCode'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/ListErc20BalancesResponse'
'400':
description: "Bad requests generally mean the client has passed invalid \n or malformed parameters. Error messages in the response could help in \n evaluating the error."
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
'401':
description: "When a client attempts to access resources that require \n authorization credentials but the client lacks proper authentication \n in the request, the server responds with 401."
content:
application/json:
schema:
$ref: '#/components/schemas/Unauthorized'
'403':
description: "When a client attempts to access resources with valid\n credentials but doesn't have the privilege to perform that action, \n the server responds with 403."
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden'
'404':
description: "The error is mostly returned when the client requests\n with either mistyped URL, or the passed resource is moved or deleted, \n or the resource doesn't exist."
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
'429':
description: "This error is returned when the client has sent too many,\n and has hit the rate limit."
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequests'
'500':
description: "The error is a generic server side error that is \n returned for any uncaught and unexpected issues on the server side. \n This should be very rare, and you may reach out to us if the problem \n persists for a longer duration."
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
'502':
description: "This is an internal error indicating invalid response \n received by the client-facing proxy or gateway from the upstream server."
content:
application/json:
schema:
$ref: '#/components/schemas/BadGateway'
'503':
description: "The error is returned for certain routes on a particular\n Subnet. This indicates an internal problem with our Subnet node, and may \n not necessarily mean the Subnet is down or affected."
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceUnavailable'
tags:
- EVM Balances
x-codeSamples:
- lang: javascript
label: JavaScript
source: "import { Avalanche } from \"@avalanche-sdk/chainkit\";\n\nconst avalanche = new Avalanche({\n chainId: \"43114\",\n});\n\nasync function run() {\n const result = await avalanche.data.evm.address.balances.listErc20({\n blockNumber: \"6479329\",\n pageSize: 10,\n address: \"0x71C7656EC7ab88b098defB751B7401B5f6d8976F\",\n contractAddresses: \"0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7, 0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB\",\n currency: \"usd\",\n });\n\n for await (const page of result) {\n console.log(page);\n }\n}\n\nrun();"
/v1/chains/{chainId}/addresses/{address}/balances:listErc721:
get:
operationId: listErc721Balances
x-speakeasy-group: data.evm.address.balances
x-speakeasy-name-override: listErc721
x-speakeasy-pagination:
type: cursor
inputs:
- name: pageToken
in: parameters
type: cursor
outputs:
nextCursor: $.nextPageToken
x-execution-weight: medium
summary: List ERC-721 balances
description: 'Lists ERC-721 token balances of a wallet address.
Balance for a specific contract can be retrieved with the `contractAddress` parameter.'
parameters:
- name: pageToken
required: false
in: query
description: A page token, received from a previous list call. Provide this to retrieve the subsequent page.
schema:
type: string
- name: pageSize
required: false
in: query
description: The maximum number of items to return. The minimum page size is 1. The maximum pageSize is 500.
schema:
type: integer
default: 10
minimum: 1
maximum: 500
example: '10'
- name: chainId
required: true
in: path
description: A supported evm chain id or blockchain id. Use the `/chains` endpoint to get a list of supported chain ids.
example: '43114'
schema:
type: string
- name: address
required: true
in: path
description: A wallet address.
example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
schema:
type: string
- name: contractAddress
required: false
in: query
description: A contract addresses to filter by.
example: '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7'
schema:
type: string
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/ListErc721BalancesResponse'
'400':
description: "Bad requests generally mean the client has passed invalid \n or malformed parameters. Error messages in the response could help in \n evaluating the error."
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
'401':
description: "When a client attempts to access resources that require \n authorization credentials but the client lacks proper authentication \n in the request, the server responds with 401."
content:
application/json:
schema:
$ref: '#/components/schemas/Unauthorized'
'403':
description: "When a client attempts to access resources with valid\n credentials but doesn't have the privilege to perform that action, \n the server responds with 403."
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden'
'404':
description: "The error is mostly returned when the client requests\n with either mistyped URL, or the passed resource is moved or deleted, \n or the resource doesn't exist."
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
'429':
description: "This error is returned when the client has sent too many,\n and has hit the rate limit."
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequests'
'500':
description: "The error is a generic server side error that is \n returned for any uncaught and unexpected issues on the server side. \n This should be very rare, and you may reach out to us if the problem \n persists for a longer duration."
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
'502':
description: "This is an internal error indicating invalid response \n received by the client-facing proxy or gateway from the upstream server."
content:
application/json:
schema:
$ref: '#/components/schemas/BadGateway'
'503':
description: "The error is returned for certain routes on a particular\n Subnet. This indicates an internal problem with our Subnet node, and may \n not necessarily mean the Subnet is down or affected."
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceUnavailable'
tags:
- EVM Balances
x-codeSamples:
- lang: javascript
label: JavaScript
source: "import { Avalanche } from \"@avalanche-sdk/chainkit\";\n\nconst avalanche = new Avalanche({\n chainId: \"43114\",\n});\n\nasync function run() {\n const result = await avalanche.data.evm.address.balances.listErc721({\n pageSize: 10,\n address: \"0x71C7656EC7ab88b098defB751B7401B5f6d8976F\",\n contractAddress: \"0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7\",\n });\n\n for await (const page of result) {\n console.log(page);\n }\n}\n\nrun();"
/v1/chains/{chainId}/addresses/{address}/balances:listErc1155:
get:
operationId: listErc1155Balances
x-speakeasy-group: data.evm.address.balances
x-speakeasy-name-override: listErc1155
x-speakeasy-pagination:
type: cursor
inputs:
- name: pageToken
in: parameters
type: cursor
outputs:
nextCursor: $.nextPageToken
x-execution-weight: medium
summary: List ERC-1155 balances
description: 'Lists ERC-1155 token balances of a wallet address.
Balance at a given block can be retrieved with the `blockNumber` parameter.
Balance for a specific contract can be retrieved with the `contractAddress` parameter.'
parameters:
- name: blockNumber
required: false
in: query
description: The block number, if not defined the block number will be the latest block.
example: '6479329'
schema:
type: string
- name: pageToken
required: false
in: query
description: A page token, received from a previous list call. Provide this to retrieve the subsequent page.
schema:
type: string
- name: pageSize
required: false
in: query
description: The maximum number of items to return. The minimum page size is 1. The maximum pageSize is 500.
schema:
type: integer
default: 10
minimum: 1
maximum: 500
example: '10'
- name: chainId
required: true
in: path
description: A supported evm chain id or blockchain id. Use the `/chains` endpoint to get a list of supported chain ids.
example: '43114'
schema:
type: string
- name: address
required: true
in: path
description: A wallet address.
example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
schema:
type: string
- name: contractAddress
required: false
in: query
description: A contract addresses to filter by.
example: '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7'
schema:
type: string
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/ListErc1155BalancesResponse'
'400':
description: "Bad requests generally mean the client has passed invalid \n or malformed parameters. Error messages in the response could help in \n evaluating the error."
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
'401':
description: "When a client attempts to access resources that require \n authorization credentials but the client lacks proper authentication \n in the request, the server responds with 401."
content:
application/json:
schema:
$ref: '#/components/schemas/Unauthorized'
'403':
description: "When a client attempts to access resources with valid\n credentials but doesn't have the privilege to perform that action, \n the server responds with 403."
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden'
'404':
description: "The error is mostly returned when the client requests\n with either mistyped URL, or the passed resource is moved or deleted, \n or the resource doesn't exist."
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
'429':
description: "This error is returned when the client has sent too many,\n and has hit the rate limit."
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequests'
'500':
description: "The error is a generic server side error that is \n returned for any uncaught and unexpected issues on the server side. \n This should be very rare, and you may reach out to us if the problem \n persists for a longer duration."
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
'502':
description: "This is an internal error indicating invalid response \n received by the client-facing proxy or gateway from the upstream server."
content:
application/json:
schema:
$ref: '#/components/schemas/BadGateway'
'503':
description: "The error is returned for certain routes on a particular\n Subnet. This indicates an internal problem with our Subnet node, and may \n not necessarily mean the Subnet is down or affected."
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceUnavailable'
tags:
- EVM Balances
x-codeSamples:
- lang: javascript
label: JavaScript
source: "import { Avalanche } from \"@avalanche-sdk/chainkit\";\n\nconst avalanche = new Avalanche({\n chainId: \"43114\",\n});\n\nasync function run() {\n const result = await avalanche.data.evm.address.balances.listErc1155({\n blockNumber: \"6479329\",\n pageSize: 10,\n address: \"0x71C7656EC7ab88b098defB751B7401B5f6d8976F\",\n contractAddress: \"0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7\",\n });\n\n for await (const page of result) {\n console.log(page);\n }\n}\n\nrun();"
/v1/chains/{chainId}/addresses/{address}/balances:listCollectibles:
get:
operationId: listCollectibleBalances
x-speakeasy-group: data.evm.address.balances
x-speakeasy-name-override: listCollectibles
x-speakeasy-pagination:
type: cursor
inputs:
- name: pageToken
in: parameters
type: cursor
outputs:
nextCursor: $.nextPageToken
x-execution-weight: medium
summary: List collectible (ERC-721/ERC-1155) balances
description: 'Lists ERC-721 and ERC-1155 token balances of a wallet address.
Balance for a specific contract can be retrieved with the `contractAddress` parameter.'
parameters:
- name: pageToken
required: false
in: query
description: A page token, received from a previous list call. Provide this to retrieve the subsequent page.
schema:
type: string
- name: pageSize
required: false
in: query
description: The maximum number of items to return. The minimum page size is 1. The maximum pageSize is 500.
schema:
type: integer
default: 10
minimum: 1
maximum: 500
example: '10'
- name: chainId
required: true
in: path
description: A supported evm chain id or blockchain id. Use the `/chains` endpoint to get a list of supported chain ids.
example: '43114'
schema:
type: string
- name: address
required: true
in: path
description: A wallet address.
example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
schema:
type: string
- name: contractAddress
required: false
in: query
description: A contract addresses to filter by.
example: '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7'
schema:
type: string
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/ListCollectibleBalancesResponse'
'400':
description: "Bad requests generally mean the client has passed invalid \n or malformed parameters. Error messages in the response could help in \n evaluating the error."
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
'401':
description: "When a client attempts to access resources that require \n authorization credentials but the client lacks proper authentication \n in the request, the server responds with 401."
content:
application/json:
schema:
$ref: '#/components/schemas/Unauthorized'
'403':
description: "When a client attempts to access resources with valid\n credentials but doesn't have the privilege to perform that action, \n the server responds with 403."
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden'
'404':
description: "The error is mostly returned when the client requests\n with either mistyped URL, or the passed resource is moved or deleted, \n or the resource doesn't exist."
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
'429':
description: "This error is returned when the client has sent too many,\n and has hit the rate limit."
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequests'
'500':
description: "The error is a generic server side error that is \n returned for any uncaught and unexpected issues on the server side. \n This should be very rare, and you may reach out to us if the problem \n persists for a longer duration."
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
'502':
description: "This is an internal error indicating invalid response \n received by the client-facing proxy or gateway from the upstream server."
content:
application/json:
schema:
$ref: '#/components/schemas/BadGateway'
'503':
description: "The error is returned for certain routes on a particular\n Subnet. This indicates an internal problem with our Subnet node, and may \n not necessarily mean the Subnet is down or affected."
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceUnavailable'
tags:
- EVM Balances
x-codeSamples:
- lang: javascript
label: JavaScript
source: "import { Avalanche } from \"@avalanche-sdk/chainkit\";\n\nconst avalanche = new Avalanche({\n chainId: \"43114\",\n});\n\nasync function run() {\n const result = await avalanche.data.evm.address.balances.listCollectibles({\n pageSize: 10,\n address: \"0x71C7656EC7ab88b098defB751B7401B5f6d8976F\",\n contractAddress: \"0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7\",\n });\n\n for await (const page of result) {\n console.log(page);\n }\n}\n\nrun();"
components:
schemas:
BadRequest:
type: object
properties:
message:
description: The error message describing the reason for the exception
oneOf:
- type: string
- type: array
items:
type: string
statusCode:
type: number
description: The HTTP status code of the response
examples:
- 400
error:
type: string
description: The type of error
examples:
- Bad Request
required:
- message
- statusCode
- error
Money:
type: object
properties:
currencyCode:
examples:
- usd
$ref: '#/components/schemas/CurrencyCode'
value:
type: number
description: Monetary value in base 10 decimals.
examples:
- '42.42'
required:
- currencyCode
- value
ListErc721BalancesResponse:
type: object
properties:
nextPageToken:
type: string
description: A token, which can be sent as `pageToken` to retrieve the next page. If this field is omitted or empty, there are no subsequent pages.
nativeTokenBalance:
description: The native token balance for the address.
allOf:
- $ref: '#/components/schemas/NativeTokenBalance'
erc721TokenBalances:
description: The list of ERC-721 token balances for the address.
type: array
items:
$ref: '#/components/schemas/Erc721TokenBalance'
required:
- nativeTokenBalance
- erc721TokenBalances
Erc1155TokenMetadata:
type: object
properties:
indexStatus:
examples:
- indexed
$ref: '#/components/schemas/NftTokenMetadataStatus'
metadataLastUpdatedTimestamp:
type: number
name:
type: string
symbol:
type: string
imageUri:
type: string
description:
type: string
animationUri:
type: string
externalUrl:
type: string
background:
type: string
decimals:
type: number
properties:
type: string
required:
- indexStatus
Erc721TokenBalance:
type: object
properties:
address:
type: string
description: A wallet or contract address in mixed-case checksum encoding.
examples:
- '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
name:
type: string
description: The contract name.
examples:
- Wrapped AVAX
symbol:
type: string
description: The contract symbol.
examples:
- WAVAX
ercType:
type: string
enum:
- ERC-721
tokenId:
type: string
tokenUri:
type: string
metadata:
$ref: '#/components/schemas/Erc721TokenMetadata'
ownerAddress:
type: string
description: A wallet or contract address in mixed-case checksum encoding.
examples:
- '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
chainId:
type: string
description: The evm chain id.
examples:
- '43114'
required:
- address
- name
- symbol
- ercType
- tokenId
- tokenUri
- metadata
- chainId
ListErc1155BalancesResponse:
type: object
properties:
nextPageToken:
type: string
description: A token, which can be sent as `pageToken` to retrieve the next page. If this field is omitted or empty, there are no subsequent pages.
nativeTokenBalance:
description: The native token balance for the address.
allOf:
- $ref: '#/components/schemas/NativeTokenBalance'
erc1155TokenBalances:
description: T
# --- truncated at 32 KB (45 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ava-labs/refs/heads/main/openapi/ava-labs-evm-balances-api-openapi.yml