给一个地址去获取这个地址在某个链上所有的721,1155NFT资产

287 阅读1分钟

@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

利用邮箱注册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等,很方便。


在这里插入图片描述