{"content":{"title":"指南：如何利用 NFTScan NFT API 检索 NFT 资产","body":"<!--StartFragment-->\r\n\r\n近年来随着区块链的快速发展，面对大量 NFT 资产数据，开发者正处在检索困境，存在公链上的 NFT 资产数据呈爆炸式增长。NFT 的数量和种类非常多，而且分散在不同的区块链上，所以需要花费大量的时间和精力来解析和清洗数据。这给 NFT 应用开发者带来了一个极大挑战——如何高效检索 NFT 数据?\r\n\r\n\r\n\r\n数据显示截止 2023 年 8 月 11 日，NFTScan 目前支持的 16 条主流区块链网络共产生：NFT 合约数量 2,645,817；NFT 资产数量 989,645,900；NFT 链上记录数量 1,953,053,655；NFT 持仓钱包地址数量 135,133,478；NFT 资产总市值 $12,783,263,824；NFT 历史总交易额 $65,083,327,113。\r\n\r\n![](https://static001.geekbang.org/infoq/04/048c49db34f065ba67aaaa6640544f3e.png)\r\n\r\n\r\n目前为止，开发者在获取和利用 NFT 数据方面正面临许多困难。首先 NFT 数据分布在众多公有链上，链与链之间处于分割状态，无法实现数据互通，开发者很难聚合不同链上的 NFT 数据，实现统一访问。其次，即便在同一条公链上，也存在海量不同类别的 NFT 项目，要逐个检索 NFT 元数据及交易等信息，工作量巨大。\r\n\r\n\r\n\r\n\r\n当前开发者难以找到便捷的工具来手动获取 NFT 数据，可以看到许多正处在构建开发者 NFT 工具之上的优秀团队正朝这个方向前进，例如 NFTScan 等数据基础设施服务商。这些 NFT 相关的数据平台提供了一种简单而有效的解决方案，即 NFT API。通过 NFT API 接口，开发者可以轻松地访问链上的 NFT 数据，并对其进行分析、处理、统计和可视化。\r\n\r\n\r\n\r\n\r\n**怎样访问 NFTScan NFT API**\r\n\r\n\r\n\r\n\r\n**1/ 创建 NFTScan 开发者账号**\r\n\r\n在开始使用 NFTScan API 之前，首先需要访问开发者网站并创建一个账户。前往 NFTScan 官方网站点击 NFTScan API “Sign Up”按钮进行注册。\r\n\r\n[https://developer.nftscan.com/user/signup](https://xie.infoq.cn/link?target=https%3A%2F%2Fdeveloper.nftscan.com%2Fuser%2Fsignup)\r\n\r\n\r\n![](https://static001.geekbang.org/infoq/e7/e716243785661283940c7332ac4dd370.png)\r\n\r\n登录后在 Dashboard（面板）上找到自己独有的 API KAY，将其复制。访问 API 文档，将自己的 API KEY 输进 API 文档的相应位置。根据文档的指引，就可以开始使用 API 服务了。在 API 文档中，开发者可以找到多种可供选择的接口模式，根据需求来选择最合适的接口。\r\n\r\n![](https://static001.geekbang.org/infoq/2a/2a36dbcb7aa6c9b008a345724ab09686.png)\r\n\r\n在 Dashboard 中，开发人员还可以查看自己 API 使用情况的统计数据，帮助记录历史使用数据。不仅如此，NFTScan 还为每位注册开发者提供 1M CU 的 API 调用服务，用于请求所有的 NFT API 接口，并且 CU 永不过期，用完为止！\r\n\r\n![](https://static001.geekbang.org/infoq/82/82ef476ada8e280966aee25f2ad5f449.jpeg?x-oss-process=image%2Fresize%2Cp\\_80%2Fauto-orient%2C1)\r\n\r\n\r\n\r\n\r\n**查看 NFT API 文档**\r\n\r\n在成功注册开发者账号获取 API Key 后，您需要查看 NFTScan API 文档。API 文档包含了所有可以使用的 API 端点和参数，以及如何构建请求和处理响应的详细信息。请认真阅读 API 文档，并确保理解如何使用 API 来获取您需要的数据。NFTScan API 服务致力于帮助开发者改善获取 NFT 数据分析体验。\r\n\r\n\r\n\r\n\r\nNFTScan 目前拥有全网最大最全的 NFT Collection 库，已支持 Ethereum、Solana、BNBChain、Bitcoin、Polygon、zkSync、Aptos、Linea、Avalanche、Arbitrum、Optimism、Fantom、Moonbeam、PlatON、Cronos、Gnosis 16 条区块链的 NFT 全量数据，所涵盖的 NFT 数据全、种类丰富，提供一整套的接口来获得 ERC721 和 ERC1155 资产以及交易、项目、市场统计等信息，现在支持 50 多个针对 EVM 兼容链的公共接口，以及针对 Solana、Aptos、Bitcoin 的一批相同模型的接口，很大程度上满足了开发者索引多种类型的 NFT 数据的需求。\r\n\r\n![](https://static001.geekbang.org/infoq/e2/e2f544e0829776449074d73bc493fe7e.png)\r\n\r\n**检索 NFT 资产相关 API**\r\n\r\n\r\n\r\n\r\n**Get NFTs by account**（通过账户地址检索 NFT）\r\n\r\n**Get all NFTs by account**（检索账户地址的所有 NFT，并根据合约地址对 NFT 进行分组，如果账户地址拥有的 NFT 总数超过 2000 个，则返回的 NFT 将限制在 2000 个以下。在这种情况下，开发者和用户可以通过分页查询请求按账户获取该账户地址拥有的所有 NFT）\r\n\r\n**Get minted NFTs by account**（检索该账户地址的 Mint 过的 NFT）\r\n\r\n**Get NFTs by contract**（通过合约地址检索 NFT，并按 token_id 升序排序）\r\n\r\n**Get single NFT**（检索单个 NFT）\r\n\r\n**Get multiple NFTs**（同时检索多个合约地址的 NFT）\r\n\r\n**Search NFTs**（该接口通过在请求正文中应用搜索筛选器来返回 NFT 资产列表。资产按 nftscan_id 升序排序。注意：仅使用 block_number 条件过滤数据时，block_number_start 和 block_number_end 之间的范围不能超过 10000）\r\n\r\n**Get NFTs by attributes**（该接口返回一组属于具有属性的 NFT 合约地址的 NFT。NFT 按 token_id 升序排序）\r\n\r\n**Get all multi-chain NFTs by account**（该接口返回账户地址拥有的所有多链 NFT，NFT 根据合约地址进行分组）\r\n\r\n这些 API 极大简化开发者获取跨链 NFT 数据的复杂度，一站式提供所有链数据，可广泛应用于数据查询、可视化展示、数据分析等场景，并且建立在可靠 API 之上可以大幅提升开发效率。\r\n\r\n![](https://static001.geekbang.org/infoq/bc/bca308befed3d04d9b696c1b87f5e45e.png)\r\n\r\n**1）Get all NFTs by account：**“/v2/account/own/all/{account_address}”通过该接口，我们这里请求的是巨鲸地址：\r\n\r\n0xca1257ade6f4fa6c6834fdc42e030be6c0f5a813 的所有 NFT。\r\n\r\n![](https://static001.geekbang.org/infoq/7f/7fc66ac809c6096616859dca64dd496f.png)\r\n\r\n点击 Try it 数据响应结果：该地址下一共有 349 个 item，分别按照 100 的区间进行分组，例如，我们对对其持有一些顶级 NFT Collection 的基础信息描述等等，可见该地址是 BAYC 系列持仓大户：\r\n\r\n1\\) Collection 地址为 \r\n\r\n0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d\r\n\r\n名称为 BoredApeYachClub，该项目 items_total 共有 10000 个， owns_total 该地址下共持有 26 个，symbol 为 BAYC，地板价为 30 ETH。\r\n\r\n2\\) Collection 地址为 \r\n\r\n0x60e4d786628fea6478f785a6d7e704777c86a7c6\r\n\r\n名称为 MutantApeYachtClub，该项目 items_total 共有 19481 个， owns_total 该地址下共持有 23 个，symbol 为 MAYC，地板价为 5.7399 ETH。\r\n\r\n3\\) Collection 地址为 \r\n\r\n0xba30e5f9bb24caa003e9f2f0497ad287fdf95623 \r\n\r\n名称为 BoredApeKennelClub，该项目 items_total 共有 9602 个， owns_total 该地址下共持有 23 个，symbol 为 BAKC，地板价为 2.1878 ETH。\r\n\r\n![](https://static001.geekbang.org/infoq/77/77d344d048e3635857891d14bd7abac9.png)\r\n\r\n**2) Get all multi-chain NFTs by account：**\r\n\r\n“/v2/assets/chain/{account_address}”该接口可以用来获取一个钱包地址跨链上的全部 NFT 资产，聚合了用户分散的跨链 NFT，有助于全局化分析用户行为，也为跨链应用提供了数据基础。主要有以下使用场景:\r\n\r\n* 实现跨链的 NFT 资产展示和管理，可以通过这个接口全部的链上资产集中展示。\r\n* 分析用户跨链的 NFT 持有偏好和投资组合，了解用户的全局 NFT 资产分布。\r\n* 统计用户跨链 NFT 总量，评估用户的综合影响力。\r\n* 监控用户跨链 NFT 资产变动，发现异常账户或交易行为。\r\n* 支持跨链 NFT 交易，查询用户跨链资产。\r\n\r\n这里我们同样检索的是巨鲸地址：\r\n\r\n0xca1257ade6f4fa6c6834fdc42e030be6c0f5a813 点击 Try it 数据响应结果显示该地址在 Ethereum 和 BNBchain 上活跃，可以看到在 eth 网络上一共有 349 个 Collections，bnb 网络上有 2 个 Collections，包括对其持有的 item 精确的数据分析。\r\n\r\n![](https://static001.geekbang.org/infoq/e6/e664517d69cab18e032c3837ff4339e8.png)\r\n\r\n**3）Get NFTs by contract：**“/v2/assets/{contract_address}”该接口主要用于根据指定的合约地址，获取该合约下面生成的所有 NFT 资产的列表，典型使用场景:\r\n\r\n* 获取某个 NFT 项目中的所有 NFT，只需要根据该项目的合约地址筛选，就可以返回该项目生成的所有 NFT ID 列表。\r\n* 按合约地址批量获取 NFT 元数据，通过合约地址可以先拿到所有的 tokenId，再批量获取每个 tokenId 的元数据。\r\n* 构建 NFT 项目的产量分析，通过获取项目不同时间段部署的所有 NFT 数量，可以分析项目的成长情况。\r\n* 跟踪某个合约地址中的 NFT 流转情况，通过定时获取合约中的 NFT 列表，检测 NFT 的转入和转出。\r\n\r\n数据响应结果显示该 NFT Collection 所以 item 的基础数据及元数据信息，这里我们选择了 BoredApeYachClub，返回数据按照 token_id 进行排序，例如 id 为 0 的 item：\r\n\r\n1\\)单个 item 基础数据：\r\n\r\n0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d 及名称为 Bored Ape Yacht Club，这里查询的 NFT Token id 为 0，在项目中的占比为 1，协议标准为 erc721，Mint 时的钱包地址/持有者钱包地址，被铸造时的时间戳/Mint 的哈希地址/Token URI 的地址。\r\n\r\nlatest_trade_price(上次成交价)/latest_trade_symbol(上次成交价的货币)，latest_trade_timestamp(上次成交时间戳)当前显示 null，返还数值空，表示该项目未进行过交易。\r\n\r\n2\\)元数据：从该项目的元数据可以看出 Metadata 数据托管在 ipfs 上，格式为 image/png，存储路径为：\r\n\r\nipfs\\://QmcJYkCKK7QPmYWjp4FD2e3Lv5WCGFuHNUByvGKBaytif4 以及为对该图片的细节特征描述。\r\n\r\n3\\)稀有度：得分为 1.08649973006184，综合稀有度排名为 2273 名。\r\n\r\n![](https://static001.geekbang.org/infoq/39/39bc15dd81ae27a19b8271bfceb87513.png)\r\n\r\nNFTScan 不仅专注于提供检索 NFT 资产的 API，更向开发者开放了多维度、全方位的 NFT 数据资源，数据资源覆盖从 NFT 元数据、用户数据到行业数据等多个层面。丰富的数据资源类型为开发者提供了高度定制化的组合选择，开发者可以根据自己应用的实际业务需求，从接口中自由调取适合的 NFT 数据。\r\n\r\n\r\n\r\n\r\n可以说，NFTScan 提供了异于传统区块链数据平台的定制化 NFT 数据调取体验。这不仅丰富了应用的功能设置，也大幅降低了开发者获取和处理 NFT 数据的成本。随着接口的持续扩充与优化，NFTScan 将成为开发者的 NFT 数据服务 backbone。我们期待开发者可以在这里自由发挥创意，孕育出更多 NFT 创新应用，推进整个行业的发展。\r\n\r\n***\r\n\r\n**About NFTScan**\r\n\r\n\r\n\r\n\r\n**NFTScan 成立于 2021 年 4 月份，总部位于中国香港，是全球领先的 NFT 数据基础设施服务商，目前已支持 Bitcoin、Ethereum、BNBChain、Polygon、Solana、Linea、Arbitrum、Optimism、zkSync、Aptos 等在内的 16 条主流区块链网络。NFTScan 团队致力于为数以亿计的 Web3 用户提供简洁高效的 NFT 检索服务，为新一代金融科技公司提供安全稳定的多链 NFT 索引服务，用数据来推动 NFT 生态的繁荣发展！目前，NFTScan 在为包括 CMC、Binance NFT、Bybit Web3、KuCoin、HashKey Group 、SafePal、Mask、imToken、Enjin、Coin98、OneKey、TokenPocket、AlienSwap 等在内的 4000+ 开发者提供多链 NFT 数据支持！**\r\n\r\n##### 相关网站：\r\n\r\nNFTScan: [***https://nftscan.com/***](https://xie.infoq.cn/link?target=https%3A%2F%2Fnftscan.com%2F)\r\n\r\n\r\nDeveloper: [***https://developer.nftscan.com/***](https://xie.infoq.cn/link?target=https%3A%2F%2Fdeveloper.nftscan.com%2F)\r\n\r\n\r\n***Twitter: @nftscan_com***\r\n\r\nDiscord: [***https://discord.gg/nftscan***](https://xie.infoq.cn/link?target=https%3A%2F%2Fdiscord.gg%2Fnftscan)\r\n\r\n\r\n**欢迎关注 NFTScan 官方推特获取最新动态，有关 NFT 数据服务等商务合作请联系 Telegram: Shier1992**\r\n\r\n\r\n\r\n\r\n![](https://static001.geekbang.org/infoq/fa/fa87fa3f8fb7e65d04a9c471299f4191.png)\r\n\r\n\r\n<!--EndFragment-->"},"author":{"user":"https://learnblockchain.cn/people/10111","address":null},"history":null,"timestamp":1691749085,"version":1}