Skip to content

NFT 盲盒狙擊套利策略回憶錄

來源: @aliez_ren | 原文連結

日期: Mon Apr 21 13:47:37 +0000 2025

標籤: NFT狙擊 區塊鏈套利 智能合約


來源: @aliez_ren (Aliez Ren)
日期: 2025-04-21
標籤: NFT 套利 智能合約 MEV 區塊鏈


背景

2022 年,是 NFT 大火的一年,是 Ethereum 轉型 PoS 的一年,是我入行區塊鏈的第二年。那一年,我透過狙擊 NFT 盲盒,賺到了幾十個 ETH,並購買了一個 CryptoPunk。本文將回憶當時的一些細節和巧妙策略,不會透露具體的程式碼實現。

什麼是狙擊 NFT 盲盒

狙擊 NFT 盲盒,是指有一些 NFT 合約在發售後處於盲盒狀態,NFT 的圖片和屬性(Metadata)都是未知,到後面才會揭曉。盲盒狀態的 NFT 就已經可以在 OpenSea 等 NFT 交易市場上流通,已經有了定價和流動性。

盲盒揭曉之後,不同的 NFT Token 會有不同的稀有程度(Rare Score),而 NFT 交易市場的更新總是有延遲,此時如果提前發現稀有程度高的 Token 正在交易市場上以較低價格掛賣單,那麼立即將其買下,再掛高價賣單賣出,會是個勝率很高的策略。我寫了一個 Bot,支援了當時最火的三家 NFT 交易市場:OpenSea、LooksRare、X2Y2。

原理就是這麼簡單,但魔鬼藏在細節之中。

第 0 層:基礎實現

大部分 NFT 合約的開盒都是 NFT 發行方透過呼叫一個函數(通常名為 setBaseURI)來設定新的 baseURI。Bot 在檢測到 baseURI 更新後,可以透過讀取合約的 tokenURI() 函數獲得新的 URI,再存取 URI 獲得 Token 的 Metadata。

把全部 Token 的 Metadata 都抓下來,使用演算法計算稀有度,再抓取的訂單資訊比對價格和地板價的差距,然後決定買走哪些掛單。鑑於 EVM 每個錢包有 nonce 要序列上鏈,可以準備多個錢包並行狙擊多個 Token。

有些 NFT 合約的 Metadata 是存在 IPFS 上的,我也用了一些手段加速 IPFS 的存取速度。也有一些 Metadata 存在 Arweave 上,我也做了支援。

第 1 層:搶先一步

其實並不需要等待 NFT 發行方的 setBaseURI 交易上鏈,可以在交易還在 mempool 的時候就獲取到,快人一步。

也不一定非要透過讀取合約的 tokenURI() 函數來獲取 URI,可以提前看 NFT 合約程式碼,在獲取到 baseURI 之後,自己拼接 URI。

不必等待全部 Token 的 Metadata 都抓下來再計算稀有度,可以一邊抓取,一邊即時計算,抓取進度越接近 100%,可信度越高。大約抓取 70% 左右的 Token Metadata 就基本不會翻車了。

NFT 交易市場的訂單可以提前進行抓取並保持更新,等稀有度計算完成後可以瞬間下單。其中 X2Y2 訂單資訊是和下單錢包位址繫結的,因此需要寫一個代理合約,不同的錢包使用同一個代理合約購買。

在使用 IPFS 作為 tokenURI 的 NFT 合約中,有些使用 ipfs:// 協定,有些使用 https:// 協定,都可以識別並提取檔案 hash,再同時向多個 IPFS Gateway 發起請求。

第 2 層:破解偏移量

後面有些 NFT 發行方學聰明了,除了設定 baseURI 之外,還會設定一個偏移量 offset。這樣導致原本 tokenId 是 X 的 Token,其對應的 tokenURI 不能使用 X 這個數字簡單拼接出來,而是變成了 X+offset。有些時候專案方是透過呼叫合約簡單設定這個偏移量,有時候則會使用預言機來產生亂數(最常用的是 Chainlink VRF)。

Chainlink 的 VRF Coordinator 合約會呼叫 NFT 合約的 fulfillRandomWords 函數來設定亂數,而這筆交易也是可以在 mempool 中提前捕獲並模擬出結果的。從而可以提前計算出偏移量,提前計算出真正的 tokenURI。

有些 NFT 發行方使用了 Gnosis Safe 多簽錢包來呼叫 NFT 合約的 setBaseURI,殊不知 Safe 多簽錢包的待簽名交易是完全公開的,可以透過抓取 Safe 網頁上的 JSON API 來獲取,裡面包含了完整的 calldata,這樣就可以比 mempool 還要早很多。有幾次我透過這個方法,在 NFT 發行方開盒前幾分鐘搶到了幾個稀有 Token,導致發行方被社群懷疑老鼠倉,但它們完全沒有辦法自證清白。

還可以透過各種方式「猜出」即將設定的新 baseURI,比如:域名解析記錄變動;Arweave 同一個錢包上傳了新的 Metadata;發行方在測試網測試合約,等等。

第 3 層:反抢跑策略

時間久了之後我發現有其它 Bot 透過監控搶跑我的交易,那時 Flashbots 的市場佔有率大概還不到 50%,為了確保第一時間搶到訂單,我並沒有使用 Flashbots。我換了全新的錢包進行搶購,仍然會被搶跑。因此我推測它們是根據 NFT 開盒時突然出現的高 Gas 購買 NFT 交易來判斷是否要搶跑。

但它們的搶跑其實是有風險的,因為它們不一定計算了稀有度,只是單純的搶跑。因此我可以使用小號提前隨便買入幾個 Token 在市場上掛稍微高於地板價的盲盒,並且在開盲盒的瞬間用 Bot 搶購這幾個 Token,做出一個左手倒右手的動作,但那些搶跑我的 Bot 並不知情。如果我被搶跑,那麼我的普通 Token 就高價賣給了搶跑我的 Bot。如果我沒有被搶跑,那麼我會損失 Gas 和 NFT 交易版稅。

最終我並沒有實施這個方案,因為感覺風險不低,並且利潤不高。

總結

本文只介紹了 NFT 搶盲盒。NFT 還有搶發售和 MEV 等套利方式,以後有機會再接著回憶。

這是我第一次嘗試從區塊鏈中進行套利,學到了很多知識,賺到了第一桶金。

目前我開發了一個套利工具,並營運了一個套利社群,歡迎加入!

Curation Desk

這篇文章要放去哪一層?

AI Priority68
待審 預設狀態:待審 · 已寫入文章 metadata

2022 年,是 NFT 大火的一年,是 Ethereum 轉型 PoS 的一年,是我入行區塊鏈的第二年。那一年,我透過狙擊 NFT 盲盒,賺到了幾十個 ETH,並購買了一個 CryptoPunk。本文將回憶當時的一些細節和巧妙策略,不會透露具體的程式碼實現。

先檢查外部連結是否值得保留,再決定是否轉入精選。