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

news2025/1/9 17:06:16

Starknet 是由以色列软件公司 StarkWare 开发的免许可的第 2 层网络。Starknet 作为以太坊上的 ZK Rollup 运行,帮助 dApp 使用 STARK 证明以更低的交易成本实现更大的计算规模。该网络允许智能合约与区块链上部署的其他合约进行交互,从而提高协议之间的可组合性。Starknet 与 Arbitrum、OP Mainnet、zkSync 并列为 2023 年最受欢迎的四大 Layer 2。

就 NFTScan 数据来看,截至 12 月 1 日,Starknet 网络上已累计发行 NFT 资产 15,009,965 枚,NFT Collection 18,111 个,产生交易记录 17,009,163 条,有过交互的钱包地址 2,468,080 个,总交易额 3,245.43 ETH。

Starknet NFTScan:

怎样访问 NFTScan NFT API

在开始使用 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 永不过期,用完为止!

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

Starknet NFT API 模型

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

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

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

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

Starknet 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 single NFT 接口为“/v2/assets/{contract_address}/{token_id}”

来检索一个合约地址下的某单个 NFT Item 的详情信息,路径参数包括 contract_address/token_id 作为选择,这里我们查询的是地址 0x0727a63f78ee3f1bd18f78009067411ab369c31dece1ae22e16f567906409905 名称为 Starkpunks 且 token id 为 1 的 NFT。

点击 Try it 数据响应结果:该地址下一共返回 30 个 items,返回数据包括

1)查询的 NFT token id 为 1,在项目中的占比为 1,协议标准为 erc721,Mint 的钱包地址/当前的持有者地址,被铸造时的时间戳,Mint 的哈希地址及价格,Token URI 的地址。latest_trade_price(上次成交价)/latest_trade_symbol(上次成交价的货币),latest_trade_timestamp(上次成交时间戳)当前显示 null,返还数值空,表示该项目未进行过交易。

2)元数据:从该项目的元数据可以看出 Metadata 数据托管在 ipfs 上,格式为 image/png。

3)稀有度:对属性的描述,稀有度得分以及稀有度排名。

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 NFT“/v2/transactions/{contract_address}/{token_id}”这个接口,检索某单个 NFT Item 的交易记录,查询参数可选择交易的 NFT 事件类型(Mint/Transfer/Sale/Burn),使用 ';' 分隔多个事件。同样这里我们检索 Starkpunks 且 token id 为 1 的 NFT。按照 Mint&Sale 的事件类型,结果响应数据包含这笔 NFT 交易的所有关键数据,如交易哈希值、From 和 To 地址、区块信息、消耗 Gas、交易时间戳等基础数据等 Mint&Sale 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 ranking

“/v2/collections/rankings” 检索 Starknet 网络上 NFT Collection Ranking 榜单, 查询参数检索字段包括:

volume/sales/average_price/floor_price/volume_change/average_price_change 等,这里我们选择 volume_total 字段进行检索,共返回 100 个 data 且每个 data 包含 35 个 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 Statistics “/v2/statistics/collection/{contract_address}”主要返回一个 NFT Collection 的分析统计概览数据,可参考 Starknet 链上 Starkpunks 数据概览:

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

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 对开发者极为简单。只需几个步骤,在详尽的文档中查找需要调用的接口,了解其请求方法、参数等。然后,选择一种自己熟悉的编程语言,如 JavaScript、Python 或 Java,并引入语言的请求库。并根据文档说明构造请求,配置接口请求地址、方法与请求参数。最后,利用语言库发出请求,接收并处理返回的 JSON 格式数据。在简单的参考文档即可完成调用的过程中,开发者无需关注复杂的技术细节,极低的使用门槛使获取 NFT 数据变得前所未有的容易。

这里我们请求检索 Starkpunks 合约地址下 token id 为 1 的 NFT Item 的详情信息,使用接口 Get single NFT “/v2/assets/{contract_address}/{token_id}”,检索地址为

0x0727a63f78ee3f1bd18f78009067411ab369c31dece1ae22e16f567906409905,HTTP GET 请求访问 NFTScan 的 API 端点,使用 Python 的 requests 库,可以这样构建请求:

import requests

# Define API endpoint, contract address, and token ID
api_endpoint = "https://api.nftscan.com/v2/assets"
contract_address = "0x0727a63f78ee3f1bd18f78009067411ab369c31d"
token_id = "1"

# Construct API request URL
url = f"{api_endpoint}/{contract_address}/{token_id}"

# Make an HTTP GET request
response = requests.get(url)

# Check if the request was successful
if response.status_code == 200:
    # Get the returned JSON data
    data = response.json()
    # Process the returned NFT details
    print("NFT Item Details:")
    print(data)  # This will print the retrieved NFT details, 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 数据支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1275192.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据Doris(三十一):Doris简单查询

文章目录 Doris简单查询 一、简单查询 二、​​​​​​​Join

基于Springboot的在线问卷调查系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的在线问卷调查系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spring…

golang WaitGroup的使用与底层实现

使用的go版本为 go1.21.2 首先我们写一个简单的WaitGroup的使用代码 package mainimport ("fmt""sync" )func main() {var wg sync.WaitGroupwg.Add(1)go func() {defer wg.Done()fmt.Println("xiaochuan")}()wg.Wait() }WaitGroup的基本使用场…

Peter算法小课堂—差分与前缀和

差分 Codeforces802 D2C C代码详解 差分_哔哩哔哩_bilibili 一维差分 差分与前缀和可以说成减法和加法的关系、除法和乘法的关系、积分和微分的关系(听不懂吧) 给定数组A,S为A的前缀和数组,则A为S的差分数组 差分数组构造 现…

Unittest(1):unittest单元测试框架简介setup前置初始化和teardown后置操作

unittest单元测试框架简介 unittest是python内置的单元测试框架,具备编写用例、组 织用例、执行用例、功能,可以结合selenium进行UI自动化测 试,也可以结合appium、requests等模块做其它自动化测试 官方文档:https://docs.pytho…

opencv 图像边框

cv.copyMakeBorder() 图像设置边框或者填充

HarmonyOs 4 (一) 认识HarmonyOs

目录 一 HarmonyOs 背景1.1 发展时间线1.2 背景分析1.2.1 新场景1.2.2 新挑战1.2.3 鸿蒙生态迎接挑战 二 HarmonyOS简介2.1 OpenHarmony2.2 HarmonyOS Connect2.3 HarmonyOS Next**2.4 ArkTS (重点掌握)****2.5 ArkUI** 三 鸿蒙生态应用核心技术理念**3.…

c/c++概念辨析-指针常量常量指针、指针函数函数指针、指针数组数组指针

概念澄清: 统一规则: 不管是XX指针,还是指针XX,后者是本体,前者只是个定语,前者也可以替换为其他同类(例如字符串),帮助理解。 XX指针: 可简单理解为&#…

骨传导耳机是智商税吗?骨传导耳机是利用什么原理听歌?

骨传导耳机并非智商税,而是一种新兴的技术产品。作为是一种新型的听音设备,它采用了与传统耳机不同的工作原理,通过将声音通过骨骼传导到内耳,实现了不用堵塞耳道就能听到声音的效果。相比传统耳机,骨传导耳机具有一些…

mac本地部署stable-diffusion

下载Homebrew /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" ①输入“1”选择中科大版本,然后输入Y(YES),直接输入开机密码(不显示)然后回车确认,开始下载 ②…

matlab 基于卡尔曼滤波的GPS-INS的数据融合的导航

1、内容简介 略 25-可以交流、咨询、答疑 2、内容说明 基于卡尔曼滤波的GPS-INS的数据融合的导航 "基于卡尔曼滤波的GPS-INS的数据融合的导航 基于卡尔曼滤波实现GPS-INS组合导航系统" 卡尔曼滤波、GPS、INS、数据融合、导航 3、仿真分析 4、参考论文 略 …

Linux基本指令(后篇)

目录 14.时间指令date 15.Cal指令 16.find指令(非常重要) 17.grep指令 18.打包压缩指令zip和tar以及解压指令unzip和tar 14.时间指令date date(显示当前时间) 1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中…

带头结点的双向循环链表

目录 带头结点的双向循环链表 1.存储定义 2.结点的创建 3.结点的初始化 4.尾插结点 5.尾删结点 6.头插结点 7.头删结点 8.查找并返回结点 9.在pos结点前插入结点 10.删除pos结点 11.打印链表 12.销毁链表 13.头插结点2.0版 14.尾插结点2.0版 前言: 当…

Mac右键添加通过VSCode打开

Mac右键添加通过VSCode打开 1 首先打开自动操作 进入方式 访达 – 应用程序 – 自动操作 2. 选择快速操作 3. 添加 最后 commands保存,可以输入自定义的名称 for f in "$" doopen -a "Visual Studio Code" "$f" done4. 找到保存的快…

SpringBoot+mysql+vue实现大学生健康档案管理系统前后端分离

一、项目简介 本项目是一套基于SpringBoot实现大学生健康档案管理系统,主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目可以直接作为bishe使用。 项目都经过严格调试&#…

Java项目学生管理系统三添加学生

​ 欢迎来到本篇博客,昨天我们学习的是查询所有,今天我们将探索一个令人兴奋的话题——Java项目学生管理系统的学生添加功能。作为一个学生管理系统的关键功能之一,学生添加模块扮演着连接教育工作者与学生信息的桥梁。通过本文,我…

视频后期特效处理软件 Motion 5 mac中文版

Motion mac是一款运动图形和视频合成软件,适用于Mac OS平台。 Motion mac软件特点 - 精美的效果:Motion提供了多种高质量的运动图形和视频效果,例如3D效果、烟雾效果、粒子效果等,方便用户制作出丰富多彩的视频和动画。 - 高效的工…

还得是字节出来的,太秀了...

前段时间公司缺人,也面了许多测试,一开始瞄准的就是中级水准,当然也没指望能来大牛,提供的薪资在15-20k这个范围,来面试的人有很多,但是平均水平真的让人很失望。看了简历很多上面都是写有4年工作经验&…

(二)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)

一、无人机模型简介: 单个无人机三维路径规划问题及其建模_IT猿手的博客-CSDN博客 参考文献: [1]胡观凯,钟建华,李永正,黎万洪.基于IPSO-GA算法的无人机三维路径规划[J].现代电子技术,2023,46(07):115-120 二、Tiki-taka算法(TTA&#xf…

zookeeper分布式先进先出队列 (实操课程)

本系列是zookeeper相关的实操课程,课程测试环环相扣,请按照顺序阅读来学习和测试zookeeper。 阅读本文之前,请先阅读----​​​​​​zookeeper 单机伪集群搭建简单记录(实操课程系列)zookeeper 客户端常用命令简单记录…