---
title: "Get the NFTs from a specific smart contract that a blockchain address holds"
method: GET
path: "/v3/nft/balance/{chain}/{contractAddress}/{address}"
tags: ["NFT (ERC-721 or compatible)"]
---

# Get the NFTs from a specific smart contract that a blockchain address holds

`GET /v3/nft/balance/{chain}/{contractAddress}/{address}`

## Request

- Base URL: `https://api.tatum.io`
- URL: `https://api.tatum.io/v3/nft/balance/{chain}/{contractAddress}/{address}`
- Auth: API key in header `x-api-key`

/v3/nft/balance/{chain}/{contractAddress}/{address}

**1 credit per API call**

Get the NFTs minted on a specific smart contract (the `contractAddress` path parameter in the request endpoint URL) that a blockchain address holds.

**NOTE:** This API works only for the NFT smart contracts deployed using the [Tatum smart contract API](#operation/NftDeployErc721).

This API is supported for the following blockchains:

*   Algorand
*   BNB Smart Chain
*   Celo
*   Elrond
*   Ethereum
*   Harmony
*   Klaytn
*   KuCoin Community Chain
*   Polygon
*   Solana
*   TRON
*   Flare
*   CRO

## Path parameters

- `chain` 'ETH' | 'MATIC' | 'KCS' | 'ONE' | 'KLAY' | 'CELO' | 'TRON' | 'BSC' | 'SOL' | 'ALGO' | 'EGLD' | 'FLR' | 'CRO' | 'BASE' | 'AVAX' | 'FTM' | 'OPTIMISM', required
- `address` string, required
- `contractAddress` string, required

## Query parameters

- `testnetType` 'ethereum-sepolia' | 'flare-coston' | 'flare-coston2' | 'flare-songbird': Specifies the testnet type. The default is ethereum-sepolia for Ethereum (ETH) currency and flare-coston for Flare (FLR) currency. Valid testnet types depend on the specified currency.

## Headers

- `x-testnet-type` Schema (unresolved $ref)

## Response `200`

OK

- union
  - NftGetBalanceScAlgo
    - `data` object[]
      - `contractAddress` string: The asset ID (the ID of the NFT)
      - `balances` string[]: The array returning <code>1</code> to indicate that the NFT with the specified ID exists
      - `metadata` object[]
        - `url` string: The URL pointing to the NFT metadata; may not be present
  - NftGetBalanceSc
    - `data` string[]: The array returning the ID of the NFTs

## Other responses

- `400`: Bad Request
- `401`: Unauthorized. Not valid or inactive subscription key present in the HTTP Header.
- `403`: Forbidden. The request is authenticated, but it is not possible to perform the operation due to logical error or invalid permissions.
- `500`: Internal server error. There was an error on the server during the processing of the request.

---

[API](https://skmtc.dev/tatum/apis/smart-contracts.md) - [All operations](https://skmtc.dev/tatum/apis/smart-contracts/llms.txt) - [OpenAPI document](https://skmtc.dev/tatum/apis/smart-contracts/revisions/c0146043bb37?raw)
