如何使用 NFTScan NFT API 在 Arbitrum 网络上开发 Web3 应用

2023-11-07 22:36

本文主要是介绍如何使用 NFTScan NFT API 在 Arbitrum 网络上开发 Web3 应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Arbitrum 是以太坊的 Layer 2 扩容方案,为以太坊面临的高 gas 费和网络拥堵问题,提供了一个解决方案。作为 Layer 1 的以太坊基础层受每秒只能验算 15 笔交易的限制,在目前以太坊使用需求庞大的情况下,局限了以太坊的可扩展性。Arbitrum 使用 Rollup 扩容技术,它旨在解决以太坊的拥堵和高成本问题,并提高区块链的扩展和效率。它包含两个基于不同技术的独立主网, Arbitrum One 和 Arbitrum Nova,本文将介绍如何使用 NFTScan NFT API 在 Arbitrum One 网络上开发 Web3 应用。

就 NFTScan 数据来看,截至 11 月 7 日,Arbitrum 网络上已累计发行 NFT 资产 19,793,811 枚,NFT Collection 29,340 个,产生交易记录 56,925,931 条,有过交互的钱包地址 3,732,089 个,总交易额 33,280.45 ETH。

Arbitrum NFTScan:

当前除了 15 条 EVM 兼容链,NFTScan 还支持了另外 4 条是非 EVM 区块链:Bitcoin、Aptos、Solana、TON。

怎样访问 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 永不过期,用完为止!

查看 Arbitrum 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 数据的需求。

Arbitrum NFT API 模型

主要包括了以下三个模型接口,包括里面一些 API 核心的字段的整体介绍和说明,方便开发者知道怎么去获取数据利用这些信息服务于自己正在构建的 Dapp 服务。

Assets API:"Assets"是 NFT 中最关键的数据字段,用于唯一标识和描述数字资产。开发者可以通过提取 Arbitrum 区块链上 NFT 的"Assets"数据来获取全面的了解,并构建相关应用。"Assets"对象提供了数字资产的唯一标识以及其整个生命周期的数据,为开发者理解和应用 NFT 提供了基础。

Transactions API:交易模型代表了区块链上一个 NFT 资产的全量交易数据,为开发者提供 NFT 的完整生命周期交易信息。包括 NFT 的 mint、转移、销售、和其他交易活动,为开发者提供了深入了解 NFT 资产在 Arbitrum 生态系统中的流动和演变过程的机会。NFTScan 不断地汇总来自各个区块链网络的 NFT 交易市场和相关交易合约信息,目前 NFTScan 已收录用于追踪和了解 NFT 市场的动态,同时也有助于开发者构建基于 NFT 的应用程序和工具。

Collections API:NFTScan 获取与 NFT Collections 相关的描述、社交媒体及其他基本信息等都链下数据。NFTScan 通过各个区块链网络中最主流的 NFT 市场提供的 API 获取这些信息。此外当前地板价信息是基于 NFT 市场的订单信息的集中式数据,也是通过 API 可获取的。

Arbitrum 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 升序排序)

  • Get NFTs by attributes(该接口返回一组属于具有属性的 NFT 合约地址的 NFT,NFT 按 token_id 升序排序)

  • Get all multi-chain NFTs by account(该接口返回账户地址拥有的所有多链 NFT,NFT 根据合约地址进行分组)

这里我们通过 Get minted NFTs by account 接口为

“/v2/account/mint/{account_address}”

来检索一个钱包地址下的 Minted NFT 的详情信息,路径参数包括 account_address 作为选择,查询参数选择包括 erc712/erc1155 的 NFT 资产,这里我们查询的是 0x02ac25b565c053bc1e7aa2a1499622512af375f1 

地址下 Mint 过的所有 erc721 NFT。

点击 Try it,数据返回如下,主要包括 NFT 资产合约地址的基础信息查询,元数据信息及稀有度得分及排行,这里可以看到该地址下一共返回 5 个 erc721 NFT 分别为 Vela - Beta Participation NFT#688、Vela AMA - Official NFT#3667、Vela's Official Launch NFT#181、Camelot staking position NFT#51、Vela x Arbitrum AMA - Official NFT#4320。

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 account

“/v2/transactions/account/{account_address}”这个接口,检索某钱包地址的 NFT 交易记录,查询参数可选择交易的 NFT 事件类型(Mint/Transfer/Sale/Burn),使用 ';' 分隔多个事件。

同样这里我们检索 

0x02ac25b565c053bc1e7aa2a1499622512af375f1 的 NFT 交易记录。按照 Mint 的事件类型,结果响应数据包含这个地址下所有的  NFT Mint 的所有关键数据,如交易哈希值、From 和 To 地址、区块信息、消耗 Gas、交易时间戳等基础数据等 NFT 交易的特征信息。

3/ Retrieve Collections 系列

  • Get an NFT collection(根据 Collection 的合约地址查询详情,包括概览及按照描述对 Item 进行分类,持有者分布、平均价格、地板价等基本概括信息)

  • Search NFT collections(此接口通过在请求正文中应用搜索过滤器来返回 Collection 列表的信息,Collection 按部署块编号升序排序)

  • Get NFT collections by account(该接口返回具有给定账户地址的项目列表信息,Collection 按地板价从高到低排序)

  • Get NFT collections by ranking(该接口返回具有给定排序字段的项目列表信息,Collection 按给定的排序字段和给定的排序方向排序)

这里我们通过接口 Get NFT collections by account

“/v2/collections/own/{account_address}”检索地址为 

0x02ac25b565c053bc1e7aa2a1499622512af375f1

持有的 NFT Collections 详情信息:

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 Blue Chip Statistics 

“/v2/statistics/blue/chip/{contract_address}”主要返回返回蓝筹项目统计数据,可参考 NFTScan Overview:

https://www.nftscan.com/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d?module=Analytics

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 Arbitrum 网络上各与数据分析和统计有关的信息,如 Trade Ranking、Mint Amount 等这类接口允许开发者或用户查询、分析、和检索与特定数据集或指标相关的统计数据。可以用于各种用途,包括市场分析、趋势追踪、投资决策、以及了解特定数据的性质。

参考:https://arbitrum.nftscan.com/analytics

7/ Refresh Metadata

  • Refresh NFT metadata

  • Refresh NFT metadata by contract

Refresh Metadata 这类接口可以帮助开发者或用户提交后台刷新元数据任务,该任务审核后会刷新提交的指定 Item 或整个合约元数据。

8/ Other

  • Get latest block number(返回 NFTScan 已到达的最新块号)

  • Get NFT amount by account(根据请求体中的搜索列表返回账户地址拥有的 ERC721 和 ERC1155 NFT 数量信息)

  • Get NFT owners by contract(返回 ERC721 NFT 合约地址的所有者列表,NFT 按 token_id 升序排序)

  • Get owners by an NFT(返回 ERC1155 NFT 的所有者列表, NFT 按 account_address 升序排序)

构建相关 NFT API 请求

当开发者在 NFTScan 的 API 文档中找到所需的 Arbitrum API 接口和参数后,可以使用他们选择的编程语言(例如 Python、Java、JavaScript 等)来编写 API 请求代码。以下是一个示例,演示如何使用 Python 来请求一个钱包地址

“0x02ac25b565c053bc1e7aa2a1499622512af375f1”

持有的 NFT Collections 详情信息,并且使用 NFT 接口

“/v2/collections/own/{account_address}”

import requests
# Define the API endpoint and parametersaccount_address = "0x02ac25b565c053bc1e7aa2a1499622512af375f1"api_url = f"https://arbitrum.nftscan.com/v2/collections/own/{account_address}"headers = {    "Api-Key": "your_api_key_here"  # Replace "your_api_key_here" with your actual API key}
# Make the API requestresponse = requests.get(api_url, headers=headers)
# Check if the request was successfulif response.status_code == 200:    data = response.json()    # Process and work with the data as needed    print(data)else:    print("API request failed with status code:", response.status_code)

这是一个使用 Python 进行 API 请求的基本示例。开发者可以根据具体要求自定义 API 地址、参数和数据处理,将 "your_api_key_here" 替换为实际 API key。如果开发者使用其他编程语言,需要相应地调整请求方法和库。


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 数据服务!

这篇关于如何使用 NFTScan NFT API 在 Arbitrum 网络上开发 Web3 应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/366625

相关文章

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.

Python基础语法中defaultdict的使用小结

《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要... 目录示例1示例2python的defaultdict是collections模块中提供的一种特殊的字

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

Java String字符串的常用使用方法

《JavaString字符串的常用使用方法》String是JDK提供的一个类,是引用类型,并不是基本的数据类型,String用于字符串操作,在之前学习c语言的时候,对于一些字符串,会初始化字符数组表... 目录一、什么是String二、如何定义一个String1. 用双引号定义2. 通过构造函数定义三、St

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Pydantic中Optional 和Union类型的使用

《Pydantic中Optional和Union类型的使用》本文主要介绍了Pydantic中Optional和Union类型的使用,这两者在处理可选字段和多类型字段时尤为重要,文中通过示例代码介绍的... 目录简介Optional 类型Union 类型Optional 和 Union 的组合总结简介Pyd

Vue3使用router,params传参为空问题

《Vue3使用router,params传参为空问题》:本文主要介绍Vue3使用router,params传参为空问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录vue3使用China编程router,params传参为空1.使用query方式传参2.使用 Histo

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA