BARU: Helius mengakuisisi Light Protocol
cara mendapatkan pemegang NFT dari sebuah koleksi
Blog/Pengembangan

Solana Dev101- Cara mendapatkan pemegang koleksi NFT (Snapshot)

Engineer Pengalaman DeveloperOwen Venter di XOwen Venter di LinkedIn
Bacaan 3 menit

Pendahuluan

Jika Anda ingin mengetahui cara mengambil snapshot pemilik koleksi NFT, Anda berada di tempat yang tepat. Dengan Helius, proses pengambilan snapshot ini menjadi mudah berkat DAS API.

Untuk mengikuti tutorial ini, Anda memerlukan akun Helius dan kunci API yang bisa diperoleh secara gratis dengan mendaftar di sini.  Jika memiliki pertanyaan, Anda dapat merujuk ke dokumentasi terkait di akhir artikel. Selain itu, jangan ragu untuk bergabung dengan komunitas Discord Helius atau menandai Helius di Twitter untuk meminta bantuan lebih lanjut.

Menggunakan DAS API

Digital Asset Standard (DAS) API adalah spesifikasi dan sistem sumber terbuka yang menyediakan antarmuka terpadu untuk berinteraksi dengan aset digital (token, NFT, dan sebagainya). Kami akan menggunakan DAS API untuk mendapatkan pemilik aset tertentu. Ada beberapa panggilan berbeda yang dapat digunakan, tergantung pada metode pengelompokan koleksi.

Mendapatkan NFT dari koleksi dengan alamat koleksi (getAssetByGroup)

Versi terbaru standar NFT Metaplex menggunakan koleksi tersertifikasi. Hal ini dilakukan dengan membuat NFT untuk mewakili sebuah koleksi, sehingga NFT dapat dikategorikan dan informasi koleksi dapat diverifikasi di blockchain. Untuk mengambil semua NFT dalam sebuah koleksi, Anda dapat menggunakan alamat koleksi, yaitu alamat mint dari NFT koleksi tersebut. Jika memiliki NFT yang termasuk dalam sebuah koleksi, Anda dapat melihat metadata NFT tersebut dan menemukan alamat koleksi di bagian koleksi.

Setelah mendapatkan alamat tersebut, kita dapat menggunakan metode DAS getAssetByGroup untuk mencari semua NFT yang terkait dengannya. Cuplikan kode berikut menunjukkan cara menggunakan paginasi untuk mengiterasi seluruh 10000 NFT Mad Lads. Di bagian params pada panggilan API, kita akan menetapkan bahwa koleksi digunakan sebagai kunci grup, lalu memberikan alamat koleksi sebagai nilai grup.

Kode
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();

Mendapatkan NFT dari koleksi berdasarkan kreator terverifikasi pertama (getAssetByCreator)

Untuk mengambil snapshot menggunakan kreator terverifikasi pertama, Anda perlu menggunakan fungsi 'getAssetByCreator' dan memberikan alamat kreator dalam parameter. Anda dapat menemukan alamat kreator NFT di bagian kreator pada metadata on-chain NFT tersebut.

Setelah memverifikasi kreator pertama, tetapkan alamat tersebut sebagai alamat kreator dalam panggilan ke getAssetsByCreator.

Kode
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();

Keluaran

Dalam semua cuplikan kode di atas, kami menghasilkan alamat dan pemilik yang sesuai untuk setiap NFT.

Kode

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

Anda dapat mengubah keluaran ini untuk menambahkan informasi yang diperlukan, seperti nama, deskripsi, atau atribut. Informasi terperinci tentang data yang disertakan dalam respons getAssetsByGroup API tersedia di dokumentasi kami.

Kesimpulan

Dalam artikel blog ini, kami telah membahas cara mengambil informasi tentang pemegang koleksi NFT menggunakan DAS API. Dengan bantuan DAS API, Anda dapat dengan mudah memperoleh informasi penting tentang NFT dan pemiliknya. Baik untuk menganalisis perilaku pengguna maupun melacak distribusi NFT Anda, DAS API menyediakan solusi yang praktis. Anda dapat mulai menggunakan DAS API secara gratis hari ini dengan mengunjungi situs web kami dan mendaftar ke sebuah paket.

Referensi

Berlangganan Helius

Ikuti perkembangan terbaru dalam pengembangan Solana dan dapatkan pembaruan saat kami memublikasikan postingan

Gambar diperbesar