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

PlatON 是由万向区块链和矩阵元主导开发的面向下一代的全球计算架构,创新性的采用元计算框架 Monad 和基于 Reload 覆盖网络的同构多链架构,其愿景是成为全球首个提供完备隐私保护能力的运营服务网络。它提供计算、存储、通讯服务,并提供算力、算法、数据等众多基础资源以及公共基础设施软件开发、咨询及运营服务等。

就 NFTScan 数据来看,截至 1 月 5 日,PlatON 网络上已累计发行 NFT 资产 2,710,774 枚,NFT Collection 2,261 个,产生交互记录 6,865,324 条,有过交互的钱包地址 1,180,646 个,总交易额 190,295.2 LAT。

PlatON NFTScan:

创建 NFTScan 开发者账号

在开始使用 NFTScan API 之前,首先需要访问开发者网站并创建一个账户。前往 NFTScan 官方网站点击 NFTScan API “Sign Up”按钮进行注册。

https://developer.nftscan.com/user/signup

登录后在 Dashboard(面板)上找到自己独有的 API KAY,将其复制。访问 API 文档,将自己的 API KEY 输进 API 文档的相应位置。根据文档的指引,就可以开始使用 API 服务了。在 API 文档中,开发者可以找到多种可供选择的接口模式,根据需求来选择最合适的接口。

在 Dashboard 中,开发人员还可以查看自己 API 使用情况的统计数据,帮助记录历史使用数据。不仅如此,NFTScan 还为每位注册开发者提供 1M CU 的 API 调用服务,用于请求所有的 NFT API 接口,并且 CU 永不过期,用完为止!

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

PlatON NFT API 模型

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

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

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

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

PlatON 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 all NFTs by account "/v2/account/own/all/{account_address}" 来检索某个 PlatON 钱包地址内持有的全量 NFT,查询参数包括协议标准:erc721/erc1155;排序字段:mint_time/own_time/last_trade_price(仅适用于 erc721)。我们这里请求的是地址:lat1cghxn3j8j4h7sxw0rey9jzc9388tp7aede4870 PlatON 链上所有的 erc721 协议的 NFT。

点击 Try it 数据响应结果:该地址下一共持有 3 个 NFT Collections,分别是 PlatON Ecosystem Rabbit Red Packets、SA NFT、HashKey DID,按 floor_price 降序排序,返回数据包括每个 NFT contract 地址以及 name,持有数量及该 contract 地址下 item 数量,地板价以及一些的基础细节信息描述等等。

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}" 这个接口,检索某钱包地址在 PlatON 网络上 NFT 交易记录,查询参数可选择交易的 NFT 事件类型(Mint/Transfer/Sale/Burn),使用 ';' 分隔多个事件。

同样这里我们检索 lat1cghxn3j8j4h7sxw0rey9jzc9388tp7aede4870 地址下的 NFT 交易记录。按照 Mint 的事件类型,结果响应数据包含该地址所有的 Items 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 an NFT collection“/v2/collections/{contract_address}”检索合约地址为 lat1qjwjv237chk0nhv7xevumjf0g3wtcm73hqv9al Name 为 Plato_World 的 NFT Collection 详情信息,返回的每条数据包含 32 个 data:

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 Holding Period Distribution "/v2/statistics/period/distribution/{contract_address}"主要返回一个 NFT Collection 的持有期分布信息,可参考 PlatON 链上 NFTScan Holding Period Distribution:

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 PlatON 上各与数据分析和统计有关的信息,如 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 的 API 文档中找到所需的 PlatON API 接口和参数后,可以使用他们选择的编程语言(例如 Python、Java、JavaScript 等)来编写 API 请求代码。以下是一个示例,演示如何使用 Python 来请求一个钱包地址持有的 NFT。

例如,我们请求 lat1cghxn3j8j4h7sxw0rey9jzc9388tp7aede4870 持有的 NFT 详情信息,HTTP GET 请求接口“v2/account/own/{account_address}”,使用 Python 的 requests 库,可以这样构建请求:

import requests

# Define NFTScan API endpoint and account address
api_endpoint = "https://api.nftscan.com/v2/account/own"
account_address = "lat1cghxn3j8j4h7sxw0rey9jzc9388tp7aede4870"

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

# 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("Owner's NFT 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)

运行代码后,开发者将获得该地址持有的 NFT 详情信息,并可以根据需要进一步处理或提取信息。


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 数据支持!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件测试|什么是Python构造方法,构造方法如何使用?

构造方法(Constructor)是面向对象编程中的重要概念,它在创建对象时用于初始化对象的实例变量。在Python中,构造方法是通过特殊的名称__init__()来定义的。本文将介绍Python构造方法的基本概念、语法和用法。 什么是构造方法&…

React使用动态标签名称

最近在一项目里(React antd)遇到一个需求,某项基础信息里有个图标配置(图标用的是antd的Icon组件),该项基础信息的图标信息修改后,存于后台数据库,后台数据库里存的是antd Icon组件…

ArkTS - 网络请求

一、Axios请求 应用通过HTTP发起一个数据请求,支持常见的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。 前端开发肯定都使用过一个叫axios的第三方库,它是是一个基于 promise 的网络请求库,可以用于浏览器和 node.js&…

Rust 字符串 初步了解

rust 的字符串 。字符串不是复合类型, String 和 &str : String 具有所有权,是存储在堆上的。&str 没有所有权,是对 String 的引用。字符串字面量也是 &str 类型,存储在栈上。 切片(slice&a…

Nacos与Eureka

一、前言 在构建和管理微服务架构时,选择适当的服务注册中心至关重要。Nacos和Eureka都是微服务体系结构中常用的服务注册和发现工具。本文将探讨它们之间的区别,帮助开发者在选择适合其项目需求的注册中心时做出明智的决策。 二、架构和适用场景 Nacos …

TSConfig 配置(tsconfig.json)

详细总结一下TSConfig 的相关配置项。个人笔记,仅供参考,欢迎批评指正! 另外,如果想了解更多ts相关知识,可以参考我的其他笔记: vue3ts开发干货笔记ts相关笔记(基础必看)ts相关笔记…

【linux笔记1】

目录 【linux笔记1】文件内容的理解用户管理用户管理命令添加用户切换用户修改用户信息删除用户 用户组 【linux笔记1】 文件内容的理解 etc文件夹:etc是拉丁语"et cetera"的缩写,意思是“和其他的”或“等等”。在linux系统中,“…

YOLOv5改进 | 卷积篇 | SAConv轻量化的可切换空洞卷积(附修改后的C3+Bottleneck)

一、本文介绍 本文给大家带来的改进机制是可切换的空洞卷积(Switchable Atrous Convolution, SAC)是一种创新的卷积网络机制,专为增强物体检测和分割任务中的特征提取而设计。SAC的核心思想是在相同的输入特征上应用不同的空洞率进行卷积,并通过特别设计的开关函数来融合这…

sensor 点亮出图后,画面全黑是为什么?

同事在点一个思特威的 sensor sc035hgs,这个 sensor 主要负责数据采集,然后给到后面的 NN(神经网络)去做处理。 点亮出图后,画面很黑,如下图所示: 因为没拿到板子,只能盲猜&#xf…

[蓝桥 2023 ]三带一

问题描述 小蓝和小桥玩斗地主,小蓝只剩四张牌了,他想知道是否是“三带一”牌型。 所谓“三带一”牌型,即四张手牌中,有三张牌一样,另外一张不与其他牌相同,换种说法,四张手牌经过重新排列后&am…

企业档案集中式管理什么意思?企业档案集中式管理的特点

企业档案集中式管理是指将企业所有的档案资料集中存放、管理和维护的一种方式。在集中式管理中,企业将所有的档案资料集中存放在一个统一的档案中心或档案馆中,通过专门的档案管理人员负责对档案资料进行分类、整理、存储和检索,确保档案资料…

Linux操作系统基础(12):Linux的Shell解释器

1. Shell的介绍 在Linux中,Shell 是一种命令行解释器,它是用户与操作系统内核之间的接口,它负责解释用户输入的命令,并将其转换成系统调用或其他操作系统能够执行的指令。 Shell 提供了一种交互式的方式来与操作系统进行通信&am…

Apache Doris 2.0.2 安装步骤 Centos8

Linux 操作系统版本需求 Linux 系统版本当前系统版本CentOS7.1 及以上CentOS8Ubuntu16.04 及以上- 软件需求 软件版本当前版本Java1.81.8.0_391GCC4.8.2 及以上gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4) 1、查看操作系统版本 方法 1:使用命令行 打开终端或…

第九节HarmonyOS 常用基础组件9-TextArea

1、描述 多行文本输入框组件,当输入的文本内容超过组件宽度时会自动换行显示。 2、接口 TextArea(value?:{placeholder?: ResourceStr, text?: ResourceStr, controller?: TextAreaController}) 3、参数 参数名 参数类型 必填 描述 placeholder Resour…

通信原理期末复习——计算大题(一)

个人名片: 🦁作者简介:一名喜欢分享和记录学习的在校大学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755qq.com 🦉个人WeChat:V…

攀登者2 - 华为OD统一考试

OD统一考试 分值: 200分 题解: Java / Python / C++ 题目描述 攀登者喜欢寻找各种地图,并且尝试攀登到最高的山峰。 地图表示为一维数组,数组的索引代表水平位置,数组的元素代表相对海拔高度。其中数组元素0代表地面。 例如:[0,1,2,4,3,1,0,0,1,2,3,1,2,1,0],代表如下…

yiyan.baidu.com生成爬取天气预报,并以xls的形式保存到本地

import requests import xlwt import json# 创建工作簿对象 workbook xlwt.Workbook(encodingutf-8-sig) # 创建工作表对象 worksheet workbook.add_sheet(天气数据)# 设置单元格样式 style xlwt.easyxf(font: bold True;)# 定义列标题 headers [date, city, country, weat…

华为云Stack 8.X流量模型分析(六)

八、基础云专线流量模型分析 ​ 华为官方对云专线定义是:用户数据中心通过运营商的物理专线(MPLS/VPN,以太专线)访问云内资源,云内资源呈现真实IP,通过设置的专线路由实现三层互通。 ​ 通过云专线直接访…

修改安卓apk设置为安卓主屏幕(launcher)

修改安卓apk 将apk可以设置安卓主屏幕 原理: 将打包好的apk文件进行拆包增加配置文件在重新编译回apk包 需要得相关文件下载 解包 apktool :https://pan.baidu.com/s/1oyCIYak_MHDJCvDbHj_qEA?pwd5j2xdex2jar:https://pan.baidu.com/s/1Nc-0vppVd0G…

MyBatis - 批量更新(update foreach)报错

在使用mybatis执行批量更新(update foreach)数据的时候报错如下: org.springframework.jdbc.BadSqlGrammarException: ### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; c…