本文介绍了如何使用 Helios 的 DAS API 捕获 NFT 收藏品所有者的快照,详细讲解了如何通过 API 获取特定资产的信息,包括如何通过收藏地址和创作者地址查询 NFT 以及相关的代码示例。读者可以按照步骤轻松实现数据的获取和存储。
3分钟阅读
2023年5月13日
如果你想了解如何捕获NFT收藏品所有者的快照,你来对地方了。通过Helius,使用DAS API,获取这些快照的过程变得简单。
要跟随本教程,你需要一个Helius账户和API密钥,你可以通过这里 免费获取。如果你有任何疑问,可以参考文章末尾的相关文档。此外,请随时加入Helius的Discord社区或在Twitter上标记Helius以寻求进一步帮助。
数字资产标准(DAS)API是一种开源规范和系统,提供了一个统一的接口来与数字资产(代币、NFT等)进行交互。我们将使用DAS API获取特定资产的所有者。根据集合的分组方法,我们可以使用几种不同的调用方式。
最新版本的Metaplex NFT标准利用认证集合。这是通过创建一个NFT来表示一个集合来实现的,这允许将NFT分类,并在区块链上验证集合信息。要检索集合中的所有NFT,可以使用集合地址,即集合NFT的铸造地址。如果你拥有属于某个集合的NFT,可以查看该NFT的元数据并在集合部分找到集合地址。
一旦你获取了地址,我们可以使用DAS的getAssetByGroup
方法来搜索与之相关的所有NFT。以下代码片段演示了如何使用分页迭代所有10000个Mad Lads NFT。在API调用的params部分,我们将指定使用集合作为分组键,然后提供集合地址作为分组值。
代码
const fs = require("fs"); // 必须保存快照到文件
const url =
"https://mainnet.helius-rpc.com/?api-key=";
const getAssetsByGroup = async () => {
console.time("getAssetsByGroup"); // 开始计时
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("所有者: ", resultData);
fs.writeFile("output.json", JSON.stringify(resultData, null, 2), (err) => {
if (err) throw err;
console.log("数据已写入文件");
});
console.timeEnd("getAssetsByGroup"); // 结束计时
};
getAssetsByGroup();
要获取第一个验证创建者的快照,你需要使用getAssetByCreator
函数并在参数中提供创建者的地址。你可以在NFT的链上元数据的创建者部分找到NFT的创建者地址。
在验证第一个创建者后,将地址设置为调用getAssetsByCreator
的创建者地址。
代码
const fs = require("fs"); // 必须保存快照到一个文件
const url =
"https://mainnet.helius-rpc.com/?api-key=";
const getAssetsByCreator = async () => {
console.time("getAssetsByCreator"); // 开始计时
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("所有者: ", resultData);
fs.writeFile("output.json", JSON.stringify(resultData, null, 2), (err) => {
if (err) throw err;
console.log("数据已写入文件");
});
console.timeEnd("getAssetsByCreator"); // 结束计时
};
getAssetsByCreator();
在上述所有代码片段中,我们输出了每个NFT的地址和相应的所有者。
代码
{
NFTAddress: 'J61tzxTJ1gqe1Z8orSQtNmvZUG27fokmcPcobdB3sZXz',
ownerAddress: 'Dar5nrE6XWqv9vAi9o6enUQsamEJKq2zgxjNywncZpYj'
},
可以随意修改此输出,以添加任何必要的信息,例如名称、描述或属性。有关DAS响应中包含的数据的详细信息,可以在DAS文档中找到。
在这篇博客文章中,我们讨论了如何使用DAS API检索NFT收藏品持有者的信息。借助DAS API,你可以轻松获得有关NFT及其所有者的有价值信息。无论你是想分析用户行为还是跟踪你的NFT分布,DAS API都提供了一个方便的解决方案。你可以今天就免费开始使用DAS API,访问dev.helius.xyz并注册一个计划。
DAS文档(Helius):https://docs.helius.dev/compression-and-das-api/digital-asset-standard-das-api
- 原文链接: helius.dev/blog/nft-hold...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!