如何使用 NFTScan NFT API 在 Base 网络上开发 Web3 应用
Base 是 Coinbase 使用 OP Stack 开发的最新以太坊第 2 层(L2)网络,用于解决以太坊等主要区块链面临的可扩展性和成本挑战。Coinbase 将其描述为“安全、低成本、对开发人员友好的以太坊 L2,旨在将下一个 10 亿用户带入 Web3”。BASE 被设计为一个标准的、模块化的、rollup 不可知的超级链,为开发者提供一个用户友好的平台,用于创建具有增强可扩展性和降低 gas 费用的 Web3 应用程序。在 Coinbase 的支持下,BASE 可以访问交易所的产品套件、用户群体和工具,弥合了 CeFi 和 DeFi 之间的差距。
就 NFTScan 数据来看,截至 12 月 22 日,Base 网络上已累计发行 NFT 资产 85,852,985 枚,NFT Collection 47,108 个,产生交互记录 91,856,607 条,有过交互的钱包地址 2,592,608 个,总交易额 71,324.82 ETH。
Base NFTScan:
怎样访问 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 永不过期,用完为止!
查看 Base NFT 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、OP Mainnet、Starknet、Scroll、Viction、Fantom、Moonbeam、PlatON、Cronos、Gnosis 21 条区块链的 NFT 全量数据,所涵盖的 NFT 数据全、种类丰富,提供一整套的接口来获得 ERC721 和 ERC1155 资产以及交易、项目、市场统计等信息,现在支持 60 多个针对 EVM 兼容链的公共接口,以及针对 Solana、Aptos、Bitcoin、TON 的一批相同模型的接口,很大程度上满足了开发者索引多种类型的 NFT 数据的需求。
Base NFT API 模型
主要包括了以下三个模型接口,包括里面一些 API 核心的字段的整体介绍和说明,方便开发者知道怎么去获取数据利用这些信息服务于自己正在构建的 Dapp 服务。
Assets API:"Assets"是 NFT 中最关键的数据字段,用于唯一标识和描述数字资产。开发者可以通过提取 Base 区块链上 NFT 的"Assets"数据来获取全面的了解,并构建相关应用。"Assets"对象提供了数字资产的唯一标识以及其整个生命周期的数据,为开发者理解和应用 NFT 提供了基础。
Transactions API:交易模型代表了区块链上一个 NFT 资产的全量交易数据,为开发者提供 NFT 的完整生命周期交易信息。包括 NFT 的 mint、转移、销售、和其他交易活动,为开发者提供了深入了解 NFT 资产在 Base 生态系统中的流动和演变过程的机会。NFTScan 不断地汇总来自各个区块链网络的 NFT 交易市场和相关交易合约信息,目前 NFTScan 已收录用于追踪和了解 NFT 市场的动态,同时也有助于开发者构建基于 NFT 的应用程序和工具。
Collections API:NFTScan 获取与 NFT Collections 相关的描述、社交媒体及其他基本信息等都链下数据。NFTScan 通过各个区块链网络中最主流的 NFT 市场提供的 API 获取这些信息。此外当前地板价信息是基于 NFT 市场的订单信息的集中式数据,也是通过 API 可获取的。
Base 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 NFTs by attributes 接口 “/v2/assets/attributes” 主要按照特殊属性查询返回 NFT 合约地址的 NFT 并 按 token_id 升序排序。请求地址为 0xfd794258aec191cce5e18e44dfa129431323ce99 名称为 Base Summer Punks,属性名称选择 “Headwear”(头饰),属性值选择 “Tiara”(皇冠)。
在参数选择好之后,点击 Try it 可查看返回数组:一共返回 112 组 data,说明该属性描述下共有 112 个符合条件的 NFT,每组 data 下包含:
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 to address
“/v2/transactions/to/{to_address}”,对 to address:
0x00000000000000adc04c56bf30ac9d3c0aaf14dc 进行查询参数为 Mint 事件类型的交易记录检索,查询参数可选择交易的 NFT 事件类型(Mint/Transfer/Sale/Burn),点击 try it 结果响应数据包含这个 to 地址下的 NFT Mint 交易的所有关键数据,如交易哈希值、区块信息、From 和 To 地址、合约地址、交易时间戳等基础数据外,还有 Token ID、交易金额等 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}”这里我们检索钱包地址为
0x85447407829fa2deb31e10beec8f6f40981d7f44 持有的所有 erc721 协议的 NFT Collection,可以看到一共返回了 14 个 items。
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 Top Holder
“/v2/statistics/collection/holder/{contract_address}” 检索合约地址为 0x3adeb28ed99068cc2d03c506047e6166f27e1c84 名称为 Base Squad 的顶级持有者详情数据及分布,可参考:
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 Base 网络上各与数据分析和统计有关的信息,如 Trade Ranking、Mint Amount 等等这类接口允许开发者或用户查询、分析、和检索与特定数据集或指标相关的统计数据。可以用于各种用途,包括市场分析、趋势追踪、投资决策、以及了解特定数据的性质。
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 NFT API 过程十分简单便捷,开发者只需要浏览 API 文档找到所需的接口,了解接口地址、请求方法、请求参数等信息。然后根据个人需求选择编程语言,比如 JavaScript、Python、Java 等,使用该语言的 HTTP 请求库发送构建好的请求到接口地址,并筛选所需的头信息和参数,整个调用过程迅速便利,开发者完全可以根据 NFT API 文档说明进行调用。
这里我们使用接口 Chain Overview “/v2/statistics/chain/overview” 对 Base 链上的整体数据进行调取,HTTP GET 请求访问 NFTScan 的 API 接口,使用 Python 的 requests 库,可以这样构建请求:
import requests# NFTScan API endpoint
api_endpoint = "https://api.nftscan.com/v2/statistics/chain/overview"# Make an HTTP GET request
response = requests.get(api_endpoint)# Check if the request was successful
if response.status_code == 200:# Get the returned JSON datadata = response.json()# Process the returned overall chain dataprint("Overall data on the Base chain:")print(data) # This will print the retrieved overall data of the Base chain; you can further process or extract information as needed
else:print("Request failed:", response.status_code)
About NFTScan
NFTScan 成立于 2021 年初,总部位于香港,是全球领先的 NFT 数据基础设施服务商,目前已支持 Bitcoin、Ethereum、BNBChain、Polygon、Solana、TON、Arbitrum、Optimism、zkSync、Aptos 等在内的 21 条主流区块链网络。NFTScan 团队致力于为数以亿计的 Web3 用户提供简洁高效的 NFT 检索服务,为新一代金融科技公司提供安全稳定的多链 NFT 索引服务,用数据来推动 NFT 生态的繁荣发展!目前,NFTScan 在为包括 CMC、Binance NFT、Bybit、KuCoin、HashKey Group 、Mask Network、imToken、Enjin、Coin98 等在内的 5000+ 开发者提供多链 NFT 数据支持!
相关文章:

如何使用 NFTScan NFT API 在 Base 网络上开发 Web3 应用
Base 是 Coinbase 使用 OP Stack 开发的最新以太坊第 2 层(L2)网络,用于解决以太坊等主要区块链面临的可扩展性和成本挑战。Coinbase 将其描述为“安全、低成本、对开发人员友好的以太坊 L2,旨在将下一个 10 亿用户带入 Web3”。B…...

【Chrome】ERR_SSL_PROTOCOL_ERROR问题
文章目录 前言一、下载二、使用步骤总结 前言 Edge升级最新版后,有的https访问不了,报如下错误 发现新版Chrome以及Chromium内核访问nginx ssl时报错,顺着这个思路接着查看到大佬的结论:服务器nginx使用的openssl版本过低&#…...
Codeforces Round 916 (Div. 3)(E:贪心 F贪心dfs G tarjan+topsort +线段树优化建图)
A:直接暴力统计每个字符的次数是否达标即可 #include<bits/stdc.h> using namespace std; const int N 3e510,mod998244353; #define int long long typedef long long LL; typedef pair<int, int> PII; typedef unsigned long long ULL;const long l…...

eNSP错误40,原因三:windows10自带虚拟化软件Hyper-V
问题描述 Hyper-V软件与VirtualBox不兼容,一旦开启Hyper-V的话eNSP的路由器就会无法开启,显示ERROR 40 原理 大家注意看hypervisor的两种类型: 左边的是开启hypervisor的Type-1,hypervisor在启用的时候,宿主机也相…...

Maven将Jar包打入本地仓库
Maven将Jar包打入本地仓库 Maven将Jar包打入本地仓库嘚吧嘚下载Maven配置Maven新建MAVEN_HOME编辑Path验证Maven配置 Jar包打入Maven仓库 Maven将Jar包打入本地仓库 嘚吧嘚 最近项目用到一个Jar包,不能从远程仓库拉取,只有一个Jar包,所以需…...

如何使用 Helm 在 K8s 上集成 Prometheus 和 Grafana|Part 1
本系列将分成三个部分,您将学习如何使用 Helm 在 Kubernetes 上集成 Prometheus 和 Grafana,以及如何在 Grafana 上创建一个简单的控制面板。Prometheus 和 Grafana 是 Kubernetes 最受欢迎的两种开源监控工具。学习如何使用 Helm 集成这两个工具&#x…...

Observability:捕获 Elastic Agent 和 Elasticsearch 之间的延迟
在现代 IT 基础设施的动态环境中,高效的数据收集和分析至关重要。 Elastic Agent 是 Elastic Stack 的关键组件,通过促进将数据无缝摄取到 Elasticsearch 中,在此过程中发挥着至关重要的作用。 然而,显着影响此过程整体有效性的关…...

Ubuntu 常用命令之 less 命令用法介绍
📑Linux/Ubuntu 常用命令归类整理 less命令是一个在Unix和Unix-like系统中用于查看文件内容的命令行工具。与more命令相比,less命令提供了更多的功能和灵活性,例如向前和向后滚动查看文件,搜索文本,查看长行等。 les…...
探索Node.js包管理器npm:介绍与使用指南
引言: 在现代软件开发中,包管理器已经成为了不可或缺的工具。它们简化了软件的安装、升级和管理过程,使得开发者能够更加高效地构建项目。而作为Node.js的官方包管理器,npm(Node Package Manager)无疑是最受…...

探讨APP自动化测试工具的重要性
随着移动应用市场的蓬勃发展,企业对于保证其移动应用质量和用户体验的需求日益迫切。在这一背景下,APP自动化测试工具正变得越来越重要,成为企业成功的关键组成部分。本文将探讨APP自动化测试工具对企业的重要性,并为您解析其在提…...
el-date-picker日期时间插件只允许选择年月日小时并做可选择范围限制(精确到小时的范围)
一、首先明确下这个需求 1、要求只能选择年月日时,不要分钟和秒 2、根据后台返回的开始时间和天数设置可选择的开始时间和结束时间范围(包含小时)比如后台返回的开始时间是2023-12-20 13:24:30,天数365天,那么我们需要限制当前可选日期为2023-12-20 14时(不能选小于13:2…...

在MongoDB中使用数组字段和子文档字段进行索引
本文主要介绍在MongoDB使用数组字段和子文档字段进行索引。 目录 MongoDB的高级索引一、索引数组字段二、索引子文档字段 MongoDB的高级索引 MongoDB是一个面向文档的NoSQL数据库,它提供了丰富的索引功能来加快查询性能。除了常规的单字段索引之外,Mong…...
<JavaEE> 网络编程 -- 网络编程和 Socket 套接字
目录 一、网络编程的概念 1)什么是网络编程? 2)网络编程中的基本概念 1> 收发端 2> 请求和响应 3> 客户端和服务端 二、Socket套接字 1)什么是“套接字”? 2)Socket套接字的概念 3&…...

【计算机系统结构实验】实验2 流水线中的冲突实验
2.1 实验目的 加深对计算机流水线基本概念的理解; 理解MIPS结构如何用5段流水线来实现,理解各段的功能和基本操作; 加深对结构冲突/数据冲突/控制冲突的理解; 进一步理解解决数据冲突的方法,掌握如何应用定向技术来…...

conda环境下执行conda命令提示无法识别解决方案
1 问题描述 win10环境命令行执行conda命令,报命令无法识别,错误信息如下: PS D:\code\cv> conda activate pt conda : 无法将“conda”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径&a…...

链接未来:深入理解链表数据结构(二.c语言实现带头双向循环链表)
上篇文章简述讲解了链表的基本概念并且实现了无头单向不循环链表:链接未来:深入理解链表数据结构(一.c语言实现无头单向非循环链表)-CSDN博客 那今天接着给大家带来带头双向循环链表的实现: 文章目录 一.项目文件规划…...
论文笔记 | Nature 2023 FunSearch:利用大语言模型在数学科学领域探索新的发现
文章目录 一、前言二、主要内容三、总结🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 科学中有许多难以解决的问题,这些问题难以获得确切解答,但却相对容易进行验证。在数学和计算机科学领域,这类问题被称为 NP 完全优化问题(NP-complete optimization pr…...
JavaScript 对象和 JSON 字符串的区别
JavaScript 对象和 JSON 字符串是两种不同的数据表示形式,它们有以下区别: 语法格式:JavaScript 对象是 JavaScript 语言中的一种数据类型,使用花括号 {} 包裹,属性和值之间使用冒号 : 分隔,并且使用逗号 …...
基于 Flink SQL 和 Paimon 构建流式湖仓新方案
目录 1. 数据分析架构演进 2. Apache Paimon 3. Flink + Paimon 流式湖仓 Consumer 机制 Changelog 生成编辑...

MFC静态链接+libtiff静态链接提示LNK2005和LNK4098
编译报错 1>msvcrt.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_infoAAEABV0Z) 已经在 libcmtd.lib(typinfo.obj) 中定义 1>msvcrt.lib(ti_inst.obj) : error LNK2005: "pr…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...

Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...

初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...

基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...
前端高频面试题2:浏览器/计算机网络
本专栏相关链接 前端高频面试题1:HTML/CSS 前端高频面试题2:浏览器/计算机网络 前端高频面试题3:JavaScript 1.什么是强缓存、协商缓存? 强缓存: 当浏览器请求资源时,首先检查本地缓存是否命中。如果命…...