IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> 链上数据分析—NFT 项目质量评估 -> 正文阅读

[区块链]链上数据分析—NFT 项目质量评估

一、分析背景

2021年已经接近尾声,回顾今年的 crypto currency 市场,在大洋彼岸,NFT 无疑是最具热点的话题和方向。随着 OpenSea 等平台的崛起,市面上的 NFT 项目也层出不穷。

众所周知,NFT 项目强依赖于社区与热点,那么我们如何评估一个 NFT 项目的优劣,如何才能为投资行为提供强有力的支撑依据呢?

在本文中,笔者分享一下前段时间与加密货币行业某一级市场 VC 合作的 NFT 相关的数据分析实践。

二、评估指标介绍

评估一个NFT项目的好坏无疑是看这个项目的活跃程度、大众接受程度、社区的繁荣程度,如果这些直观的标准都是 high level,那么无疑是一个较好的 NFT 项目。

依赖直观标准的缺点是无法对其进行有效量化,我们试图通过链上数据分析寻找更有数据支撑与说服力的评估指标。在本文中,我们介绍其中一个 NFT 评估指标实例——玩家重合度指标,该评估指标基于以下假设:

??????????NFT 存在蓝筹项目,这些蓝筹项目的参与者具有一定的参考价值

??????????NFT 赛道存在活跃玩家,这些活跃玩家会发掘新的 NFT 并及时参与进去

??????????如果NFT 项目的玩家中,活跃玩家占比较多,说明项目质量不错

我们希望这个指标可以给定一个 NFT 项目的合约地址,输出该 NFT 项目玩家中,NFT 熟练玩家(或者说是活跃玩家)的占比,从而模糊评估该项目在整个 NFT 市场上的社区、参与质量。

在下面的章节,笔者会 step by step 介绍如何从链上数据获取到该指标的整个过程。

三、需要关注哪些交易?

首先我们应该知道需要关注哪些交易才能定位到 NFT 的交易者。以 Ape 为例,该项目是基于 ERC-721 代币标准构建的:

图片

因此,我们需要关注 ERC721 代币每次转账的发送方和接收方,这两个地址就是我们可以认定的 “NFT交易者”。具体一点,我们需要关注 transferFrom 合约方法的调用,并将 transferFrom 的 from 和 to 地址抽取出来。

为了实现这个需求,我们需要考虑两种情况:一种是交易者直接与 Ape 合约进行交互,一种是通过合约 call 的方式与 Ape 合约进行交互。

?-?直接与 Ape 合约交互

如交易:

0xff9a1b806e26ca45b4ce45a05929aa1759c913162b4a98b16ddc12db015002a1,可以看到用户直接和 Ape 合约进行交互:

图片

这种场景下,我们只需要利用 ABI 解析出交易中的 input data 即可,利用 web3.py 可以很容易做到这一点:
?

?-?合约 call 调用与 Ape 交互

除了直接与 Ape 交互,实际上很多交易行为是通过其他合约调用 Ape 相关方法实现的,比如在 OpenSea 中交易 Ape NFT,交易id:0x0000c29cdda9857072510fc52adf701d4cc7d769f3d00704c062fc399d731bb4

图片

可以看到,用户通过和 OpenSea 合约进行交互来交易 Ape NFT,而在以太坊交易中不会存储合约之间的调用关系与相关细节,对于这种合约调用分析,我们需要依赖 trace 节点获取 call tracing 数据,进而分析调用关系:

从 tracing 结果来看,最终 OpenSea 合约还是调用了 Ape 合约的 ERC-721 标准方法来完成 NFT 转移:

图片

对于这种合约调用的交易,我们可以分析该交易的 event log 来获取 NFT 交易者信息,如 ERC-721 约定了 Transfer 事件,在每次 NFT 换手时均会被 emit,因此我们就不需要对交易进行 trace 也能通过 event 获取交易者信息。

通过 web3.py 也可以轻松完成解析:

tx_receipt = w3.eth.get_transaction_receipt(txid)logs = tx_receipt['logs']logs = tx_receipt['logs']logs_num = len(logs)for i in range(logs_num):    ret = contract.events.Transfer().processLog(logs[i])    # parse the logs    try:        ret = contract.events.Transfer().processLog(logs[i])        nft_traders.append({            'sender': ret['args']['from'],            'receiver': ret['args']['to']        })    except Exception as e:        continue

四、基础数据建设

在我们内部,需要经常应对这种类型的数据分析需求,从而满足传统的资金溯源、普通 ERC-20 转账,到 Dex、NFT 交易分析等需求。

在建设基础数据层时,我们需要对主网每个交易进行解析、tracing 出 call stack、对合约交易的 input data 进行 ABI 解码、对event进行ABI解码,再进行清洗、格式化等操作,最终将以上数据入库。

图片

有了基础数据层建设,我们可以直接执行查询定位到相关交易,不需要临时性遍历全部区块中的交易。

五、NFT项目评估

通过对蓝筹 NFT 项目、待评估 NFT 项目进行交易分析,我们获取到了两个数据集:

???????蓝筹项目交易者列表

???????待评估项目交易者列表

该列表保存三个字段:sender、receiver、txid 即可。

有了以上数据,我们不仅可以获得玩家重合度数据,也可以回答出以下问题:

???????待评估 NFT 项目的玩家总数是多少?

???????待评估 NFT 项目与蓝筹项目的交易活跃度差距是多少?

???????待评估 NFT 项目中,玩家和蓝筹项目的重合度是多少?

???????待评估 NFT 项目中,是否存在交易刷量行为?

利用这些基础数据,与链上资金溯源、链上真人地址识别等技术相结合,我们甚至可以反推出 NFT 项目的市值管理策略,从而从更深层次去评估目标项目的优劣。

六、总结

本文介绍了如何通过链上数据分析目标 NFT 项目,包括基础数据、交易解析、指标分析思路等。区块链有透明化、交易活动公开化等特点,通过定制化的数据分析的方式,我们可以快速发现加密货币市场的潜流,从而为我们的决策提供更有力的佐证。

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2021-12-26 22:14:47  更:2021-12-26 22:14:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:22:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码