如何使用 NFTScan NFT API 在 Ethereum 网络上开发 Web3 应用
以太坊(Ethereum)是一个去中心化的开源的有智能合约功能的公共区块链平台, 由世界各地的计算机组成的网络,遵循一套称为以太坊协议的规则。以太坊网络提供了一个基础,任何人都可以在上面构建和使用社区、应用程序、组织和数字资产,以太币(ETH)是以太坊的原生加密货币。截至目前以太币是市值第二高的加密货币,仅次于比特币,目前以太坊是使用最多的区块链。
目前来看 Ethereum NFT 生态处在高速发展的阶段,就 NFTScan 数据来看,截至 10 月 31 日,Ethereum 网络上已累计发行 NFT 资产 150,931,372 枚,NFT Collection 275,120 个,产生交易记录 262,341,455 条,有过交互的钱包地址 11,049,076 个,总交易额 34,293,393.13 ETH。
Ethereum NFTScan:https://eth.nftscan.com/
NFTScan 提供的 API,开发者可以实现高效自动化地获取和处理海量 NFT 数据,无需人工操作和复杂判断,大大降低了开发成本。相比自主开发监测系统,使用 NFTScan 的标准化 API 直接构建,不仅省去了复杂的设计和开发过程,也减少了后续的维护和升级成本。API 可以轻松实现高频率监测,降低人力成本。此外,NFTScan API 返回规范化的数据格式,使得开发和优化监测工具变得更加简单高效,自定义的参数设置也让开发者可以灵活地定制属于自己的解决方案。
怎样访问 NFTScan NFT API
创建 NFTScan 开发者账号
在开始使用 NFTScan API 之前,首先需要访问开发者网站并创建一个账户。前往 NFTScan 官方网站点击 NFTScan API “Sign Up”按钮进行注册。
登录后在 Dashboard(面板)上找到自己独有的 API KAY,将其复制。访问 API 文档,将自己的 API KEY 输进 API 文档的相应位置。根据文档的指引,就可以开始使用 API 服务了。在 API 文档中,开发者可以找到多种可供选择的接口模式,根据需求来选择最合适的接口。
在 Dashboard 中,开发人员还可以查看自己 API 使用情况的统计数据,帮助记录历史使用数据。不仅如此,NFTScan 还为每位注册开发者提供 1M CU 的 API 调用服务,用于请求所有的 NFT API 接口,并且 CU 永不过期,用完为止!
查看 Ethereum API 文档
在成功注册开发者账号获取 API Key 后,您需要查看 NFTScan API 文档。API 文档包含了所有可以使用的 API 端点和参数,以及如何构建请求和处理响应的详细信息。请认真阅读 API 文档,并确保理解如何使用 API 来获取您需要的数据。NFTScan API 服务致力于帮助开发者改善获取 NFT 数据分析体验。
NFTScan 目前拥有全网最大最全的 NFT Collection 库,已支持 Ethereum、Solana、BNBChain、Bitcoin、TON、Polygon、zkSync、Aptos、Linea、Base、Avalanche、Arbitrum、Optimism、Scroll、Fantom、Moonbeam、PlatON、Cronos、Gnosis 19 条区块链的 NFT 全量数据,所涵盖的 NFT 数据全、种类丰富,提供一整套的接口来获得 ERC721 和 ERC1155 资产以及交易、项目、市场统计等信息,现在支持 60 多个针对 EVM 兼容链的公共接口,以及针对 Solana、Aptos、Bitcoin、TON 的一批相同模型的接口,很大程度上满足了开发者索引多种类型的 NFT 数据的需求。
Ethereum NFT API 模型
主要包括了以下三个模型接口,包括里面一些 API 核心的字段的整体介绍和说明,方便开发者知道怎么去获取数据利用这些信息服务于自己正在构建的 Dapp 服务。
Assets API:"Assets"是 NFT 中最关键的数据字段,用于唯一标识和描述数字资产。开发者可以通过提取 Ethereum 区块链上 NFT 的"Assets"数据来获取全面的了解,并构建相关应用。"Assets"对象提供了数字资产的唯一标识以及其整个生命周期的数据,为开发者理解和应用 NFT 提供了基础。
NFTScan Ethereum API 中的核心数据模型即为 Assets,它代表了每一个独特的数字项目,主要包括了 token_id、collection 名称、tx_hash、区块 number、mint 价格、持有者等全面数据。
Transactions API:交易模型代表了区块链上一个 NFT 资产的全量交易数据,为开发者提供 NFT 的完整生命周期交易信息。包括 NFT 的 mint、转移、销售、和其他交易活动,为开发者提供了深入了解 NFT 资产在 Ethereum 生态系统中的流动和演变过程的机会。NFTScan 不断地汇总来自各个区块链网络的 NFT 交易市场和相关交易合约信息,目前 NFTScan 已收录用于追踪和了解 NFT 市场的动态,同时也有助于开发者构建基于 NFT 的应用程序和工具。
用户可以通过 Transactions API 获取任意 NFT 资产完整的交易记录、行为及当前所有权信息,实现对 NFT 的全面跟踪,为开发者分析 NFT 的交易特征、价格走势、流转路径等提供了全面可靠的数据来源。
Collections API:NFTScan 获取与 NFT Collections 相关的描述、社交媒体及其他基本信息等都链下数据。NFTScan 通过各个区块链网络中最主流的 NFT 市场提供的 API 获取这些信息。此外当前地板价信息是基于 NFT 市场的订单信息的集中式数据,也是通过 API 可获取的。
NFTScan 会持续跟踪新出现的 NFT 项目,并快速获取其在各交易平台公开的链下数据信息,通过 NFT Collections API 开放给开发者,开发者可以无需逐个聚合不同平台的数据,就可以通过 Collections API 获取项目的链下描述、持有者、交易活动等关键信息,并集成数据于应用中。
Ethereum NFT API 检索
1/Retrieve Assets 系列
Get NFTs by account(通过钱包地址检索 NFT)
Get all NFTs by account(检索钱包地址的所有 NFT,并根据合约地址对 NFT 进行分组,如果账户地址拥有的 NFT 总数超过 2000 个,则返回的 NFT 将限制在 2000 个以下。在这种情况下,开发者和用户可以通过分页查询请求按账户获取该账户地址拥有的所有 NFT)
Get minted NFTs by account(检索该钱包地址的 Mint 过的 NFT)
Get NFTs by contract(通过合约地址检索 NFT,并按 token_id 升序排序)
Get single NFT(检索单个 NFT)
Get multiple NFTs(同时检索多个合约地址的 NFT)
Search NFTs(该接口通过在请求正文中应用搜索筛选器来返回 NFT 资产列表。资产按 nftscan_id 升序排序。注意:仅使用 block_number 条件过滤数据时,block_number_start 和 block_number_end 之间的范围不能超过 10000)
Get NFTs by attributes(该接口返回一组属于具有属性的 NFT 合约地址的 NFT。NFT 按 token_id 升序排序)
Get all multi-chain NFTs by account(该接口返回账户地址拥有的所有多链 NFT,NFT 根据合约地址进行分组)
这里我们通过一个钱包地址来检索 NFT,使用接口 Get NFTs by account:/v2/account/own/{account_address},我们这里请求的是巨鲸地址:
0xca1257ade6f4fa6c6834fdc42e030be6c0f5a813 的所有 NFT。
点击 Try it 数据响应结果:该地址下一共有 359 个 item,分别按照 100 的区间进行分组,例如,我们对对其持有一些顶级 NFT Collection 的基础信息描述等等,可见该地址是 BAYC 系列持仓大户:
2/ Retrieve Transactions 系列
Get transactions by account(该接口返回钱包地址的 NFT 交易列表)
Get transactions by contract(该接口返回 NFT 合约地址的 NFT 交易列表)
Get transactions by NFT(该接口返回单个 NFT 的 NFT 交易列表)
Search transactions(该接口返回在请求正文中应用搜索过滤器来返回 NFT 交易列表)
Get transactions by to address(该接口返回按交易参数过滤的 NFT 交易列表)
Get transactions by hash(该接口返回根据交易哈希列表查询到的交易记录)
这里我们通过 Get transactions by contract 这个接口,检索某个地址的交易记录,查询参数可选择交易的 NFT 事件类型(Mint/Transfer/Sale/Burn),使用 ';' 分隔多个事件。这里按照 Mint 的事件类型,输入自己的 api-key 之后,结果响应数据包含这笔 NFT 交易的所有关键数据,如交易哈希值、区块信息、From 和 To 地址、合约地址、交易时间戳等基础数据外,还有转账的 Token ID、交易金额和币种等 NFT 交易的特征信息。
3/ Retrieve Collections 系列
Get an NFT collection(根据 Collection 的合约地址查询详情,包括概览及按照描述对 Item 进行分类,持有者分布、平均价格、地板价等基本概括信息。
Search NFT collections(此接口通过在请求正文中应用搜索过滤器来返回 Collection 列表的信息,Collection 按部署块编号升序排序。注意:仅使用 block_number 条件筛选数据时,block_number_start 和 block_number_end 之间的范围不能超过 10000)
Get NFT collections by account(该接口返回具有给定账户地址的项目列表信息,Collection 按地板价价从高到低排序)
Get NFT collections by ranking(该接口返回具有给定排序字段的项目列表信息,Collection 按给定的排序字段和给定的排序方向排序)
这里我们请求通过钱包地址获取全量 NFT Collection,使用接口 Get NFT collections by account:/v2/collections/own/{account_address} 我们这里请求的是账户地址:
0xca1257ade6f4fa6c6834fdc42e030be6c0f5a813 所有 ERC-721 NFT Collection 点击 Try it 数据响应结果:
该地址下一共持有 20 个 NFT Collection,按照地板价进行排序,以及对其持有项目基础信息描述等等,该地址下一共持有:BoredApeYachtClub、MutantApeYachtClub、BoredApeKennelClub、Otherdeed、HV-MTL 等等,可见该巨鲸是猴子系列持仓大户。
4/ Collection Statistics:Collection 统计分析系列
Collection Statistics(该接口提供 NFT Collection 的分析统计概览数据)
Collection Trade Distribution(该接口主要提供项目交易分布)
Collection Trending Statistics(主要返回一个项目的 Trading 统计排序)
Collection Holding Amount Distribution(该接口可返回 NFT 项目持有量的分布信息)
Collection Holding Period Distribution(数据返回 NFT 项目持有期分布信息)
Collection Blue Chip Statistics(蓝筹项目统计概览数据)
Collection Blue Chip List(该项目涉及的蓝筹项目清单,可参考 NFTScan Blue Chip Collection)
Collection Top Holder(该 Collection 的顶级持有者分布)
这里我们示例检索 Collection Trade Distribution 接口为
/v2/statistics/collection/trade/{contract_address} 主要返回一个 NFT Collection 在不同时间段的交易分布数据,具体可参考 NFTScan Traded Distribution:
https://www.nftscan.com/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d?module=Overview
5/ Account Statistics 系列
Account Overview Statistics(该接口返回账户地址的概览统计信息,参考 NFTScan Overview)
Account Holding Distribution(该接口返回账户地址的 NFT 持有分布统计信息,参考 NFTScan Portfolio)
Account Holding NFT Trending(该接口返回账户地址的 NFT 持有量(或数量)统计信息,参考 NFTScan Portfolio)
6/ Analytic Statistics 系列
该系列接口通常用于获取 NFTScan Ethererum 网络上各与数据分析和统计有关的信息,如 Trade Ranking、Mint Amount 等这类接口允许开发者或用户查询、分析、和检索与特定数据集或指标相关的统计数据。可以用于各种用途,包括市场分析、趋势追踪、投资决策、以及了解特定数据的性质。
参考:https://eth.nftscan.com/analytics
7/ Refresh Metadata 系列及 Other
Refresh Metadata 该接口可以帮助开发者或用户提交后台刷新元数据任务,该任务审核后会刷新提交的指定 Item 或整个合约元数据。其他接口包括返回最新区块号、钱包地址拥有的 ERC721 和 ERC1155 NFT 数量信息等等。
构建相关 NFT API 请求
开发者可以使用不同的语言来编写调用 NFTScan API 的代码如 Python、Java、JavaScript 等等 。例如在 Python 中,可以使用 requests 库来发起 API 请求;在 JavaScript 中可以使用 axios;在 Java 中可以用 OkHttp 或 Retrofit 等库。编写代码时,开发者只需组织好接口参数,如合约地址、API Key 等,调用对应的 NFTScan 接口,就可以方便地获取到标准化的 JSON 格式数据。
下面按使用 Python 来通过 NFTScan 的 API 请求一个钱包地址的 NFT 持有情况,使用接口 /v2/account/own/{account_address},先保证已安装 requests 库来发送 GET 请求。
请确保将 YOUR_WALLET_ADDRESS 替换为实际的钱包地址。随后,开发者可以根据 API 返回的 JSON 数据进一步处理 NFT 数据,提取和分析所需的信息。这是一个基本的示例,开发者可以根据自己的需求定制代码以处理 NFT 数据,期待开发者可以在这里自由发挥创意,孕育出更多 NFT 创新应用,推进整个行业的发展!
About NFTScan
NFTScan 成立于 2021 年初,总部位于香港,是全球领先的 NFT 数据基础设施服务商,目前已支持 Bitcoin、Ethereum、BNBChain、Polygon、Solana、TON、Arbitrum、Optimism、zkSync、Base、Scroll、Aptos 等在内的 19 条主流区块链网络。NFTScan 团队致力于为数以亿计的 Web3 用户提供简洁高效的 NFT 检索服务,为新一代金融科技公司提供安全稳定的多链 NFT 索引服务,用数据来推动 NFT 生态的繁荣发展!目前,NFTScan 在为包括 MetaMask、CMC、Binance NFT、Bybit、KuCoin、HashKey Group 、Mask、imToken、Enjin、Coin98 等在内的 5000+ 开发者提供多链 NFT API 数据服务!
评论