{"content":{"title":"NFTScan NFT API 在 DID Protocol 开发中的应用","body":"<!--StartFragment-->\r\n\r\n自互联网发展以来，Web2.0 时代产生了网络社会，社会已经不再局限于地理边界，而 Web 3.0 引入了去中心化的理念，强调个体数据隐私和可信互操作性。在这个新的时代中，去中心化身份（Decentralized Identifier 即 DID）应运而生。DID 允许用户完全控制自己的数字身份，不需要通过中心机构授权。DID 基于区块链生成，用户可以在不同平台使用，并管理多个身份的关联，这种用户主权的数字身份正符合 Web3 的去中心化理念。\r\n\r\n\r\n\r\n\r\n对 DID Protocol 平台来说，DID 让用户可以利用加密钱包作为数字身份标识，并通过 NFT 的真实性可验证，减少诈骗虚假行为，使平台拥有真实可信的用户数据。当然，DID Protocol 的运转需要 NFT 的数据支持，为数字资产的确权、交易和身份验证带来更多的安全性、可信度和透明度：\r\n\r\n\r\n\r\n\r\n* **确权和来源验证**：创作者可以在 NFT 上附加他们的 Web3 身份，从而轻松证明该 NFT 是由他们创造的，买家和其他人可以通过验证 DID 来确认 NFT 的来源和真实性，减少虚假作品的风险。\r\n* **交易透明度**：在区块链上能确保 NFT 的所有权交易是透明的、可追溯的，有助于消除潜在的争议，提供交易历史的完整性。\r\n* **增强的身份验证**：在 NFT 市场中，买家和卖家能通过 DID 进行身份验证。卖家可以通过展示与其 DID 相关的身份信息来增加买家对交易的信任，而买家也可以使用他们的 DID 来验证自己的身份，确保他们与合法卖家进行交易。\r\n* **数字权益管理**：为数字资产的管理和控制提供更灵活的解决方案。创作者可以使用他们的 DID 来管理他们的作品，并对其访问和使用进行细粒度的控制。\r\n* **智能合约交互**：可以启用智能合约与身份验证、权限管理和数字资产所有权相关的交互。为各种应用场景提供更高级的功能。\r\n\r\n\r\n\r\n\r\n![](https://static001.geekbang.org/infoq/a8/a88c705ef3bdc330d3f31bad4c1e7694.png)\r\n\r\n\r\n\r\n\r\nDID Protocol 开发团队要获取 NFT 数据十分困难，涉及到一定的工作量和复杂性，开发团队要在应用中获取和处理 NFT 数据确实是一个具有挑战性的任务。这个过程涉及多个技术领域的交叉，包括区块链集成、数据准确性、隐私保护等。为了克服这些难题，其中 NFT 数据服务商能发挥关键作用，标准化的数据接口，使得开发团队可以更轻松地集成 NFT 数据其应用中，消除了对不同数据源和格式的适应性问题。\r\n\r\n\r\n\r\n\r\nNFTScan 提供的专业可靠的 API 接口，开发者可以直接获取全面完整、实时更新的 NFT 数据，无需自行处理链上数据的复杂抓取工作，显著提高开发效率，降低维护成本，有助于开发者更专注于应用创新，充分利用 NFTScan 的多链 NFT 数据快速构建功能强大的应用，创建出更优秀的用户体验。相比自行开发链上数据抓取系统，直接使用 NFTScan 丰富的多链 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\r\n\r\n\r\n![](https://static001.geekbang.org/infoq/e7/e716243785661283940c7332ac4dd370.png)\r\n\r\n\r\n\r\n登录后在 Dashboard（面板）上找到自己独有的 API KAY，将其复制。访问 API 文档，将自己的 API KEY 输进 API 文档的相应位置。根据文档的指引，就可以开始使用 API 服务了。在 API 文档中，开发者可以找到多种可供选择的接口模式，根据需求来选择最合适的接口。\r\n\r\n\r\n\r\n\r\n![](https://static001.geekbang.org/infoq/2a/2a36dbcb7aa6c9b008a345724ab09686.png)\r\n\r\n\r\n\r\n\r\n在 Dashboard 中，开发人员还可以查看自己 API 使用情况的统计数据，帮助记录历史使用数据。不仅如此，NFTScan 还为每位注册开发者提供 1M CU 的 API 调用服务，用于请求所有的 NFT API 接口，并且 CU 永不过期，用完为止！\r\n\r\n\r\n\r\n\r\n**查看 NFT API 文档**\r\n\r\n\r\n\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\r\n\r\n\r\n![](https://static001.geekbang.org/infoq/e2/e2f544e0829776449074d73bc493fe7e.png)\r\n\r\n\r\n\r\n\r\n**NFTScan API 获取 NFT 相关数据**\r\n\r\n\r\n\r\n\r\n* **Retrieve Assets**：检索 NFT 资产类 API，NFTScan API 中的核心数据模型即为 Assets，它代表了每一个独特的数字项目，主要包括了合约地址、合约名称、Token id、erc 协议标准、元数据 json、图像 URI、持有者、稀有度排名等 NFT 项目信息、资产列表、资产详情的全面数据。\r\n* **Retrieve Transactions**：检索 NFT 交互记录类 API，NFTScan 不断收录各个区块链网络上的 NFT 交易市场及其交易合约信息，通过分析和解读合约源代码和交易日志，并将其纳入其数据解析逻辑中。根据 NFTScan 数据，截至 8 月中旬 ，主流 16 条链上 NFT 链上记录数量共 1,912,038,356 条， 162 个交易市场全面信息。\r\n* **Retrieve Collections**：检索 NFT Collection 资产类 API，主要检索 NFT Collection 整体基本信息以及检索钱包地址下持有的 Collection 数据信息。NFT Collections 相关的描述、社交媒体及其他基本信息等都链下数据，都可以通过各个区块链网络中最主流的 NFT 市场提供的 API 获取这些信息。此外当前地板价信息是基于 NFT 市场的订单信息的集中式数据，也是通过 API 可获取的。\r\n* **Collection Statistics**：NFT Collection 的统计数据类 API，主要提供 NFT Collection 的全面统计数据，开发者可以通过这些接口实时获取持有者分布、流通率、交易量、价格走势等核心统计指标，在产品设计、市场调研、资产评估等方面发挥重要作用，利用这些数据开发者可以深入分析 Collection 的活跃程度和价值，研究不同用户群的偏好，探索交易模式，构建量化交易模型，对市场进行预测，也可以构建直观的 NFT Collection 统计数据看板进行实时监控。\r\n* **Account Statistics**：钱包地址数据分析类 API，提供 NFT 用户账户的全面统计数据，开发者可以通过这些接口实时获取用户持有的 NFT 数量、持有总值、历史交易情况等账户级核心统计指标，在产品设计、用户调研、客户画像等方面发挥重要作用，利用账户统计数据开发者可以深入分析不同钱包地址的交易行为、资产配置、品类偏好等特征，实施精准的用户增长、产品推荐、市场营销等举措。\r\n* **Analytic Statistics**：NFT 数据分析统计类 API，主要提供 NFT 数据的深度分析结果，开发者可以直接通过这些接口获取各个 NFT Ranking 排名、趋势预测等分析数据，在数据驱动的决策和战略制定中发挥重要作用。利用这些分析数据开发者可以把握 NFT 项目标准的热点关注度和发展趋势，调整产品定位，大幅提升了 NFT 数据的应用价值。\r\n\r\n\r\n\r\n![](https://static001.geekbang.org/infoq/b0/b0d92ba5cc47b6554da7456b283f2808.png)\r\n\r\n\r\n\r\n\r\nNFTScan 提供全面的 NFT 核心数据，DID Protocol 的应用可以实现各种创新功能并获得重要优势：Metadata 数据支持生成链上可验证的 DID 文档，丰富的交易和持有者数据可证明资产来源和所有权变更，时间戳数据保证事件顺序可信，统计和分析数据帮助建模和开发量化策略，图像和视频等资源直接应用到 DID 文档中增强表现力，趋势预测帮助 DID 身份可视化呈现更前瞻性内容，同时 NFT 数据直接应用到 DID 身份中也为用户提供了展示收藏、社交等功能。\r\n\r\n\r\n\r\n\r\n**查询相关 API 请求**\r\n\r\n\r\n\r\n\r\n**1）Account Overview Statistics：**\r\n\r\n“/v2/statistics/overview/{account_address}”该接口提供每个账户的全面统计数据，可以为基于 DID Protocol 的应用提供解析用户的整体 NFT 资产概况，丰富 DID Profile 的展示，可以分析不同用户的交易行为和偏好特征，用于 DID 身份的细分和个性化。\r\n\r\n主要返回账户地址的概览统计信息，可参考 **NFTScan Overview**：\r\n\r\n[https://www.nftscan.com/0xca1257ade6f4fa6c6834fdc42e030be6c0f5a813](https://xie.infoq.cn/link?target=https%3A%2F%2Fwww.nftscan.com%2F0xca1257ade6f4fa6c6834fdc42e030be6c0f5a813)\r\n\r\n\r\n\r\n\r\n\r\n![](https://static001.geekbang.org/infoq/46/46804a1679dd33e77e290e7eb97ee941.png)\r\n\r\n\r\n\r\n\r\n点击 Try it，数据响应结果：\r\n\r\n共返回 16 个数据，包括该钱包地址的持有价值为 986.5797e；共买入 212.56e；卖出 669.24e；消耗 Gas 0.9e；持有价值（usdt）1803605.81u；买入（usdt）388589.44u；卖出（usdt）1223471.73u；消耗 Gas（usdt）1649.11u；NFT 持有数量 645 枚；NFT Collection 数量共 353 个；Mint 的 NFT 数量 288 枚；买入 7 枚；卖出 70 枚；发送 105 个；接收 642 个，销毁 23 个。\r\n\r\n\r\n\r\n\r\n![](https://static001.geekbang.org/infoq/ea/ea2f0d9cbc581c3e9e840ccd1d0b1727.png)\r\n\r\n\r\n\r\n**2）Account Holding Distribution**\r\n\r\n“**/v2/statistics/distribution/{account_address}**”该接口对每个钱包地址持有 NFT 的类别分布，为其提供丰富 DID 展示内容，可以直观展示用户持有的 NFT 倾向，支持用户细分与精准推荐，判断不同用户的偏好类别。\r\n\r\n主要返回钱包地址下的 NFT 持有分布统计信息，可参考 **NFTScan Portfolio**：\r\n\r\n[https://portfolio.nftscan.com/account/0xca1257ade6f4fa6c6834fdc42e030be6c0f5a813](https://xie.infoq.cn/link?target=https%3A%2F%2Fportfolio.nftscan.com%2Faccount%2F0xca1257ade6f4fa6c6834fdc42e030be6c0f5a813)\r\n\r\n\r\n数据响应结果显示，目前该地址下一共有 6 个 items：\r\n\r\n\r\n\r\n\r\n![](https://static001.geekbang.org/infoq/8f/8fc64da9a215c9afc4d37cda0c19690d.png)\r\n\r\n\r\n\r\n\r\n**构建相关 NFT 请求**\r\n\r\n\r\n\r\n\r\n构建 NFTScan 相关 NFT 数据请求非常简单方便，开发者只需要在 API 文档中找到所需的接口，查看接口地址、请求方法、请求参数等说明。然后根据自身需求选择编程语言，如 JavaScript、Python、Java 等，使用该语言的 HTTP 请求库向接口地址发送构造好的请求，筛选必要的头信息和参数。整个调用过程快速便捷，开发者可以完全根据文档说明来实施。\r\n\r\n例如，我们请求一个钱包地址的 NFT 统计数据：\r\n\r\n“**/v2/statistics/overview/{account_address}**”，\r\n\r\nHTTP GET 请求访问 NFTScan 的 API 端点，使用 Python 的 requests 库，可以这样构建请求：\r\n\r\n\r\n\r\n\r\n![](https://static001.geekbang.org/infoq/1a/1acfc3388c9fd9b480afbba32140cc0e.png)\r\n\r\n\r\n\r\n\r\n在上面的代码中，我们首先定义了 NFTScan API 的基本 URL，然后指定要查询的钱包地址。通过将钱包地址拼接到基本 URL 上，我们构建了完整的请求 URL。接着，我们使用 requests 库的 get 方法发起了 HTTP GET 请求，并根据响应状态码来处理返回的数据。\r\n\r\n\r\n\r\n\r\n以上示例代码仅用于说明如何使用 Python 的 requests 库构建 HTTP GET 请求，以访问 NFTScan 的 API 端点。实际使用中，开发者可能还需要考虑错误处理、身份验证、参数传递等更多细节。在使用 API 时，请查阅 NFTScan 的官方文档以获取准确的 API 端点和参数信息，并遵循最佳实践来保障数据的安全和准确性。\r\n\r\n***\r\n\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: @Rose_NFTScan**\r\n\r\n\r\n\r\n\r\n![](https://static001.geekbang.org/infoq/fa/fa87fa3f8fb7e65d04a9c471299f4191.png)\r\n\r\n<!--EndFragment-->"},"author":{"user":"https://learnblockchain.cn/people/10111","address":null},"history":null,"timestamp":1692242979,"version":1}