@TOC
这里介绍怎么给一个地址去获取这个地址在某个链上所有的721,1155NFT资产
一、Alchemy
强大的 web3 开发工具集,可轻松构建和扩展 dApp。Alchemy文档官网
二、Github
可以直接看我的Github,主要是用webpack打包,都已经配置好。看Github的ReadMe。 如果你用Vue-cli和React也可以。 Github-Alchemy_getNftsForOwner
三、使用步骤
1.下载Alchemy的SDK
npm install alchemy-sdk -s
// Setup: npm install alchemy-sdk
import { Alchemy, Network } from "alchemy-sdk";
const config = {
apiKey: "写你自己的apikey",
network: Network.ETH_MAINNET,
};
const alchemy = new Alchemy(config);
console.log('alchemy',alchemy)
var pageKeyTemp ;
const main = async () => {
// Contract address
console.log('test')
const address = "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D";
// Flag to omit metadata
const omitMetadata = false;
// Get all NFTs
//console.log('可以任意指定,但是最多都是100,100一次,官方后端做了分片处理。
//可以while循环做,这里我做了demo,请求500个。但是官网没给这一块代码示例,我自己写了一下,利用pagekey')
for (var i=0; i<5; i++)
{
const response = await alchemy.nft.getNftsForContract(address, {
omitMetadata: omitMetadata,
pageKey: pageKeyTemp
});
pageKeyTemp = response.pageKey
// console.log(JSON.stringify(response, null, 2));
console.log(response.pageKey)
console.log(response)
}
};
const runMain = async () => {
try {
await main();
process.exit(0);
} catch (error) {
console.log(error);
process.exit(1);
}
};
runMain();
2.注册ApiKey
创建APP,填写你这个项目的名字,然后选择网络和链
import { Alchemy, Network } from "alchemy-sdk";
const config = {
apiKey: "写你自己的apikey",
network: Network.ETH_MAINNET,
};
const alchemy = new Alchemy(config);
这里是效果,ERC721还是1155,解析对应的合约地址,metadata所对应的json及每一个json格式的键值对,例如属性,external_url,name,image等,很方便。