NOUVEAU : Helius acquiert Light Protocol
comment obtenir les détenteurs de NFT d’une collection
Blog/Développement

Solana Dev101 — Comment obtenir les détenteurs d’une collection de NFT (instantané)

Ingénieur en expérience développeurOwen Venter sur XOwen Venter sur LinkedIn
3 min de lecture

Introduction

Si vous souhaitez savoir comment créer des instantanés des propriétaires d’une collection de NFT, vous êtes au bon endroit. Avec Helius, la DAS API simplifie ce processus.

Pour suivre ce tutoriel, vous aurez besoin d’un compte Helius et d’une clé API, que vous pouvez obtenir gratuitement en vous inscrivant ici.  Si vous avez des questions, consultez la documentation correspondante à la fin de cet article. Vous pouvez également rejoindre la communauté Helius sur Discord ou mentionner Helius sur Twitter pour obtenir de l’aide.

Utiliser la DAS API

La Digital Asset Standard (DAS) API est une spécification et un système open source qui fournissent une interface unifiée pour interagir avec les actifs numériques (tokens, NFT, etc.). Nous utiliserons la DAS API pour obtenir les propriétaires d’actifs spécifiques. Plusieurs appels sont disponibles selon la méthode de regroupement d’une collection.

Obtenir les NFT d’une collection à partir de son adresse (getAssetByGroup)

La dernière version de la norme NFT de Metaplex utilise des collections certifiées. Pour cela, un NFT représentant une collection est créé, ce qui permet de catégoriser les NFT et de vérifier les informations de la collection sur la blockchain. Pour récupérer tous les NFT d’une collection, vous pouvez utiliser l’adresse de la collection, qui correspond à l’adresse de mint du NFT de la collection. Si vous possédez un NFT appartenant à une collection, consultez ses métadonnées pour trouver l’adresse de la collection dans la section dédiée.

Une fois l’adresse obtenue, nous pouvons utiliser la méthode DAS getAssetByGroup pour rechercher tous les NFT qui lui sont associés. L’extrait de code suivant montre comment utiliser la pagination pour parcourir les 10 000 NFT Mad Lads. Dans la section params de l’appel API, nous indiquerons que nous utilisons une collection comme clé de groupe, puis nous fournirons l’adresse de la collection comme valeur de groupe.

Code
const fs = require("fs"); // Required to save the snapshot to a file

const url =
  "https://mainnet.helius-rpc.com/?api-key=";

const getAssetsByGroup = async () => {
  console.time("getAssetsByGroup"); // Start the timer
  let page = 1;
  let assetList = [];

  while (page) {
    const response = await fetch(url, {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        jsonrpc: "2.0",
        id: "my-id",
        method: "getAssetsByGroup",
        params: {
          groupKey: "collection",
          groupValue: "J1S9H3QjnRtBbbuD4HjPV6RpRhwuk4zKbxsnCHuTgh9w",
          page: page,
          limit: 1000,
        },
      }),
    });
    const { result } = await response.json();

    const owners = result.items.map((item) => ({
      NFTAddress: item.id,
      OwnerAddress: item.ownership.owner,
    }));
    assetList.push(...owners);
    if (result.total !== 1000) {
      page = false;
    } else {
      page++;
    }
  }
  const resultData = {
    totalResults: assetList.length,
    results: assetList,
  };
  console.log("Owners: ", resultData);
  fs.writeFile("output.json", JSON.stringify(resultData, null, 2), (err) => {
    if (err) throw err;
    console.log("Data written to file");
  });
  console.timeEnd("getAssetsByGroup"); // End the timer
};
getAssetsByGroup();

Obtenir les NFT d’une collection à partir du premier créateur vérifié (getAssetByCreator)

Pour créer un instantané à partir du premier créateur vérifié, utilisez la fonction 'getAssetByCreator' et fournissez l’adresse du créateur dans les paramètres. Vous trouverez l’adresse du créateur d’un NFT dans la section creators de ses métadonnées on-chain.

Après avoir vérifié le premier créateur, définissez cette adresse comme adresse du créateur dans l’appel à getAssetsByCreator.

Code
const fs = require("fs"); // Required to save the snapshot to a file

const url =
  "https://mainnet.helius-rpc.com/?api-key=";

const getAssetsByCreator = async () => {
  console.time("getAssetsByCreator"); // Start the timer
  let page = 1;
  let assetList = [];

  while (page) {
    const response = await fetch(url, {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        jsonrpc: "2.0",
        id: "my-id",
        method: 'getAssetsByCreator',
      params: {
        creatorAddress: 'D3XrkNZz6wx6cofot7Zohsf2KSsu2ArngNk8VqU9cTY3',
        onlyVerified: true,
          page: page,
          limit: 1000,
        },
      }),
    });
    const { result } = await response.json();

    const owners = result.items.map((item) => ({
      NFTAddress: item.id,
      OwnerAddress: item.ownership.owner,
    }));
    assetList.push(...owners);
    if (result.total !== 1000) {
      page = false;
    } else {
      page++;
    }
  }
  const resultData = {
    totalResults: assetList.length,
    results: assetList,
  };
  console.log("Owners: ", resultData);
  fs.writeFile("output.json", JSON.stringify(resultData, null, 2), (err) => {
    if (err) throw err;
    console.log("Data written to file");
  });
  console.timeEnd("getAssetsByCreator"); // End the timer
};
getAssetsByCreator();

Résultat

Dans tous les extraits de code ci-dessus, nous affichons l’adresse et le propriétaire correspondant de chaque NFT.

Code

 		{
			NFTAddress: 'J61tzxTJ1gqe1Z8orSQtNmvZUG27fokmcPcobdB3sZXz',
      ownerAddress: 'Dar5nrE6XWqv9vAi9o6enUQsamEJKq2zgxjNywncZpYj'
    },

Vous pouvez modifier ce résultat pour ajouter toute information nécessaire, comme le nom, la description ou les attributs. Vous trouverez dans notre documentation des informations détaillées sur les données incluses dans la réponse de l’API getAssetsByGroup.

Conclusion

Dans cet article de blog, nous avons expliqué comment récupérer des informations sur les détenteurs d’une collection de NFT à l’aide de la DAS API. Celle-ci vous permet d’obtenir facilement des informations utiles sur les NFT et leurs propriétaires. Que vous souhaitiez analyser le comportement des utilisateurs ou suivre la distribution de vos NFT, la DAS API offre une solution pratique. Vous pouvez commencer à utiliser gratuitement la DAS API dès aujourd’hui en consultant notre site Web et en souscrivant à une offre.

Références

Abonnez-vous à Helius

Suivez les dernières actualités du développement sur Solana et recevez une notification à chaque publication

Image agrandie