APIs used:
  • Get single NFT with cached metadata from contract  


Accessing detailed metadata for individual tokens is critical for developers, collectors, and digital marketplaces. This guide will walk you through the process of retrieving metadata for a single NFT using the Covalent API, a tool essential for creating NFT displays and enhancing user interaction. Utilizing the Covalent SDK in TypeScript, you can fetch and display specific NFT details, including attributes, ownership, and history.

Why Fetch Individual NFT Metadata?

Retrieving detailed metadata for a single NFT can significantly enhance user engagement and provide transparency in various applications:

  • Enhanced User Experience: Display rich information about NFTs on digital platforms or marketplaces, offering users a comprehensive view of the token's attributes.

  • Verification: Help users verify the authenticity and provenance of NFTs by accessing detailed historical data.

  • Custom Displays: Build customized NFT card displays that highlight specific traits or history, appealing directly to the interests of collectors and traders.



Install the Covalent SDK

Ensure your development environment is ready by installing the Covalent SDK:

npm install @covalenthq/client-sdk


yarn add @covalenthq/client-sdk

Initialize the Client

Start by importing the necessary components and initializing your Covalent client with your API key:

Replace "YOUR_API_KEY" with your actual Covalent API key.

import { CovalentClient } from "@covalenthq/client-sdk";

const client = new CovalentClient("YOUR_API_KEY");

Define the Metadata Retrieval Function

Create a function to fetch and log the metadata of a single NFT by specifying the contract address and token ID:

async function getNFTMetadata(chainId: number, contractAddress: string, tokenId: string) {
    try {
        const response = await client.NftService.getNftMetadataForGivenTokenIDForContract(chainId, contractAddress, tokenId);
        if (!response.error) {
            return response.data;
        } else {
    } catch (error) {
        console.error("An error occurred:", error);

Example Usage

Here is an example of how to use the function with real parameters:

const chainId = 1; // Ethereum Mainnet
const contractAddress = "0x..."; // NFT contract address
const tokenId = "123"; // Token ID of the NFT

getNFTMetadata(chainId, contractAddress, tokenId);

Troubleshooting and Additional Resources

For common issues, such as API errors or data mismatches, ensure your input parameters are correct and refer to the Covalent API documentation for troubleshooting tips.


Accessing individual NFT metadata with the Covalent API provides a foundation for building detailed and engaging NFT displays. Offering users detailed insights into the characteristics and history of NFTs promotes transparency and trust in digital assets. Start integrating this functionality into your projects today to enhance the NFT experience for your users!