Comment obtenir les métadonnées d'un NFT spécifique ?

Qu'est-ce que les métadonnées d'un NFT ?

Les métadonnées d'un NFT sont l'ensemble des informations descriptives stockées hors chaîne qui détaillent les attributs, les propriétés et le contenu supplémentaire associés à un NFT. Ces détails peuvent inclure une URL d'image, son nom, sa description et les attributs liés à son unicité et à sa propriété.

Comment le faire avec Moralis ?

En tant que framework complet pour les développeurs web3, Moralis propose plusieurs API centrées sur l'EVM, vous permettant de réaliser vos projets plus rapidement. Dans notre cas, Moralis dispose d'une API NFT que vous pouvez utiliser, et ils fournissent même un exemple de code pour le cas d'utilisation de l'historique du portefeuille :

Pour adapter leur exemple de code, remplacez la référence à Ethereum par leur ID pour Chiliz Chain, 0x15b38 :

import Moralis from 'moralis';

try {
  await Moralis.start({
    apiKey: "YOUR_API_KEY"
  });

  const response = await Moralis.EvmApi.nft.getNFTMetadata({
    "chain": "0x15b38", // This is for Chiliz Chain Mainnet.
                        // For Spicy Testnet, use "0x15b32".
    "format": "decimal",
    "normalizeMetadata": true,
    "mediaItems": false,
    "address": "0xb47e3cd837dDF8e4c57F05d70Ab865de6e193BBB",
    "tokenId": "1"
  });

  console.log(response.raw);
} catch (e) {
  console.error(e);
}

Comment le faire avec Tatum ?

En tant que framework unifié pour la création d'applications Web3, Tatum propose plusieurs API centrées sur l'EVM, vous permettant de réaliser vos projets plus rapidement.

Dans notre cas, Tatum dispose d'un sous-module NFT dans son outil d'abstraction blockchain que vous pouvez utiliser, et ils fournissent même un exemple de code pour le cas d'utilisation de la récupération des métadonnées :

Pour adapter leur exemple de code, remplacez la référence à Ethereum par Chiliz Chain :

// yarn add @tatumio/tatum
import {TatumSDK, Network, Chiliz, ResponseDto, NftTokenDetail} from '@tatumio/tatum'

const tatum = await TatumSDK.init<Chiliz>({network: Network.CHILIZ})

const metadata: ResponseDto<NftTokenDetail|null> = await tatum.nft.getNftMetadata({
  tokenAddress: '0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d', // replace with your collection
  tokenId: '1'
})

console.log(metadata.data)

Comment le faire avec thirdweb

Thirdweb est une plateforme offrant des outils et une infrastructure pour la création d'applications décentralisées sur plusieurs réseaux blockchain. Elle simplifie l'intégration de la blockchain avec des SDK, des API et des composants préconstruits.

Dans notre cas, nous pouvons nous inspirer du code source hébergé sur leur site de documentation :

Voici comment nous pourrions adapter cela en code pour récupérer les métadonnées :

const { ThirdwebSDK } = require("@thirdweb-dev/sdk");

const sdk = new ThirdwebSDK("https://rpc.chiliz.com");
const nftContractAddress = "0xYourNFTContractAddress";
const tokenId = "YourTokenID";

async function getNFTMetadata() {
  try {
    const nftContract = await sdk.getNFTCollection(nftContractAddress);
    const nftMetadata = await nftContract.get(tokenId);
    console.log(`Metadata of NFT ${tokenId}:`, nftMetadata);
  } catch (error) {
    console.error("Error fetching NFT metadata:", error);
  }
}

getNFTMetadata();

Last updated