一、分析背景
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 logstry: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 專案,包括基礎資料、交易決議、指標分析思路等,區塊鏈有透明化、交易活動公開化等特點,通過定制化的資料分析的方式,我們可以快速發現加密貨幣市場的潛流,從而為我們的決策提供更有力的佐證,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/392200.html
標籤:區塊鏈
