非同質化代幣(NFT)市場正在進入狂熱,回顧 NFT 早期的發展歷程,回憶CryptoKitties所暴露出挑戰是很有意思的。CryptoKitties 由Dapper Labs的團隊打造,是讓以太坊第一次出現“大規模”使用的案例。
從那之后,NFT 就開始成長之路,Rarible、OpenSea、Foundation、Sorare等平臺紛紛涌現。這些平臺每月都有數百萬元的流量。盡管磕磕碰碰,但大部分依舊在以太坊區塊鏈上發生著。但 Dapper Labs 的團隊在經歷了 CryptoKitties 之后,著手建立一個新的通用的,很適合 NFT 使用場景區塊鏈。他們這樣做的目標是想解決在以太坊上看到的許多 NFT 的問題,同時為該領域的開發者和收藏者提供更好的體驗。他們的新區塊鏈Flow,已經證明了自己能夠落地,并吸引一些大牌。,如 NBA、UFC、甚至 Dr. Seuss 都在使用 Flow。
我們最近寫了使用 IPFS 上保存標的資產來創建 NFT,并且討論 NFT 領域的責任問題,以及 IPFS 如何提供幫助。現在,這篇文章談談如何在 Flow 上創建 IPFS 支持的 NFT。Flow 區塊鏈早期的主要應用之一是NBA 巔峰對決 (NBA Top Shot)。我們要重新建立一個非常基本的 NFT 鑄幣過程,然后在 IPFS 上回溯 NFT 元數據和標的資產。
由于我們喜歡 pi?atas,所以我們的 NFT 將不再是 NBA 精彩的視頻,而是一個可交易的 pi?atas 視頻。
本教程有 3 篇文章
創建合約和鑄造代幣(本文是第一篇)
創建一個應用程序,以查看通過該合約創建的 NFT。
創建一個市場,將 NFT 轉讓給他人,同時也轉移在 IPFS 上的標的資產。
我們需要安裝 Flow CLI。在Flow 的文檔中有一些很好的安裝說明:
macOS
brew install flow-cliLinux
sh -ci “$(curl -fsSL https://storage.googleapis.com/flow-cli/install.sh)"Windows
iex “& { $(irm ‘https://storage.googleapis.com/flow-cli/install.ps1') }”我們將在 IPFS 上存儲資產文件。我們使用Pinata 來簡化操作, 可以在這里注冊一個免費賬戶,獲取一個API 密鑰。在本教程的第二篇文章中會使用 Pinata API,但在本篇文章中我們使用 Pinata 網站。
我們還需要安裝 NodeJS 和一個文本編輯器,它可以幫助高亮顯示 Flow 智能合約(這是用一種叫做Cadence的語言編寫)代碼的語法。Visual Studio Code 有一個支持 Cadence 語法的插件。
讓我們為項目創建一個目錄:
mkdir pinata-party進入該目錄,并初始化一個新的 flow 項目:
cd pinata-partyflow project init現在,使用你最喜歡的代碼編輯器中打開項目(如果你使用 Visual Studio Code,可以安裝下 Cadence 插件),讓我們開始工作。
你會看到一個flow.json文件,我們很快就會用到它。首先,創建一個名為 cadence的文件夾。在該文件夾內,再添加一個名為 contracts的文件夾。最后,在 contracts文件夾中創建一個名為 PinataPartyContract.cdc的文件。
說明一下,我們現在所做的一切關于 Flow 區塊鏈的工作都將在模擬器上完成。但是,將一個項目部署到測試網或主網,只需要更新flow.json文件中的配置這樣簡單。我們現在就把這個文件設置成模擬器環境,然后就可以開始寫我們的合約了。
更新flow.json中的合約對象,代碼如下:
"contracts": { "PinataPartyContract": "./cadence/contracts/PinataPartyContract.cdc"}然后,更新該文件中的 deployments對象,代碼如下:
"deployments": { "emulator": { "emulator-account": ["PinataPartyContract"] }}這是在告訴 Flow CLI 使用模擬器來部署我們的合約,它也在引用(在模擬器上)我們即將寫的合約 ...
NFT市場LooksRare V2上線,協議費用將削減75%:4月7日消息,NFT市場LooksRare官方宣布V2版本上線,旨在進一步降低平臺協議費用和Gas費用,以和Blur、OpenSea Pro展開競爭。根據LooksRare披露的信息顯示,LooksRare V2的協議費用將大幅削減75%(從2%降至0.5%),Gas費用將減少50%,賣家也將會直接收到ETH而不是此前的WETH。此外,LooksRare還表示新版本允許在單筆交易中一次性批量列出和購買超過70種NFT,且交易將支持可重復使用的簽名。[2023/4/7 13:49:19]
Flow 有一個關于創建 NFT 合約的出色教程。他是一個很好的參考,但是正如 Flow 自己指出的,他們還沒有解決 NFT 元數據的問題。他們希望在鏈上存儲元數據。這是個好主意,他們一定會想出一個合理的辦法來。然而,我們現在想要鑄造一些帶有元數據的代幣,并且我們想要關聯上對應的媒體文件(標的)。元數據只是其中一個組成部分。我們還需要指出代幣最終代表的媒體文件。
如果你熟悉以太坊區塊鏈上的 NFT,你可能會知道,許多代幣的標的資產都存儲在傳統的云服務器上,這樣做是可以的,但又弊端。我們曾寫過關于IPFS內容可尋址,以及在傳統云平臺上存儲區塊鏈數據的弊端,歸結起來主要有兩點:
資產應可核查
應該很容易轉移維護責任
IPFS解決了這兩點。而 Pinata 則以一種簡單的方式將該內容長期保存在 IPFS 上。這正是我們的 NFT 關聯的資料所需要的?我們要確保能夠證明擁有 NFT 的所有權,并確保我們能控制對標的資產(IPFS)--媒體文件或其他內容,確保不是復制品。
考慮到這一點,讓我們寫一份合約,它可以鑄造 NFT,將元數據關聯到 NFT,并確保元數據指向存儲在 IPFS 上的標的資產。
打開PinataPartyContract.cdc,編寫一下代碼:
pub contract PinataPartyContract { pub resource NFT { pub let id: UInt64 init(initID: UInt64) { self.id = initID } }}第一步是定義合約,后面會添加更多的內容,但我們首先定義PinataPartyContract,并在其中創建一個resource。資源是存儲在用戶賬戶中并通過訪問控制措施進行訪問。在這里,NFT資源最終用來代表 NFT 所擁有的東西。NFT 必須是唯一的, id屬性允許我們標識代幣。
接下來,我們需要創建一個資源接口,我們將用它來定義哪些能力可以提供給其他人(即不是合約所有者)。
pub resource interface NFTReceiver { pub fun deposit(token: @NFT, metadata: {String : String}) pub fun getIDs(): [UInt64] pub fun idExists(id: UInt64): Bool pub fun getMetadata(id: UInt64) : {String : String}}把這個代碼放在 NFT resource 代碼的下面。這個NFTReceiver資源接口用來定義對資源有訪問權的人,就可以調用以下方法:
deposit
getIDs
idExists
getMetadata
接下來,我們需要定義代幣收藏品( Colletion )接口。把它看成是存放用戶所有 NFT 的錢包。
pub resource Collection: NFTReceiver { pub var ownedNFT: @{UInt64: NFT} pub var metadataObjs: {UInt64: { String : String }} init () { self.ownedNFT <- {} self.metadataObjs = {} } pub fun withdraw(withdrawID: UInt64): @NFT { let token <- self.ownedNFT.remove(key: withdrawID)! return <-token } pub fun deposit(token: @NFT, metadata: {String : String}) { self.ownedNFT[token.id] <-! token } pub fun idExists(id: UInt64): Bool { return self.ownedNFT[id] != nil } pub fun getIDs(): [UInt64] { return self.ownedNFT.keys } pub fun updateMetadata(id: UInt64, metadata: {String: String}) { self.metadataObjs[id] = metadata } pub fun getMetadata(id: UInt64): {String : String} { return self.metadataObjs[id]! } destroy() { destroy self.ownedNFT }}這個資源里有很多東西,說明一下。首先,有一個變量叫ownedNFT。這個是很直接的,它可以跟蹤用戶在這個合約中所有擁有的 NFT。
印度推出首個 NFT 電子競技平臺Loco Legends:金色財經報道,印度推出首個 NFT 電子競技平臺Loco Legends,該平臺允許用戶擁有和交易電子競技數字藏品,還將與印度最受歡迎的電子競技團隊(包括 8bit、s0ul、Godlike、Revenant、Blind 和 XO 等)建立了獨家合作伙伴關系,這些頂級電競團隊是 BGMI、FreeFire Max 和 Valorant 等熱門游戲的主導者,并為粉絲提供可信的 NFT 體驗和 NFT 電競交易卡。[2022/6/27 1:33:11]
接下來,有一個變量叫metadataObjs。這個有點特殊,因為我們擴展了 Flow NFT 合約功能,為每個 NFT 存儲元數據的映射。這個變量將代幣 id 映射到其相關的元數據上,這意味著我們需要在設置代幣 id 之前,將其設置為元數據。
然后我們初始化變量。定義在 Flow 中的資源中的變量必需初始化。
最后,我們擁有了 NFT Collection 資源的所有可用函數。需要注意的是,并不是所有這些函數大家都可以調用。你還記得在前面,NFTReceiver資源接口中定義了任何人都可以訪問的函數。
我尤其想指出 deposit函數。正如我們擴展了默認的 Flow NFT 合約以包含 metadataObjs映射一樣,我們正在擴展默認的 deposit函數,以接受額外的 metadata參數。為什么要在這里做這個?因為需要確保只有 token 的 minter 可以將該元數據添加到 token 中。為了保持這種私密性,將元數據的初始添加限制在鑄幣執行中。
合約代碼就快完成了。因此,在 Collection資源的下面,添加以下內容:
pub fun createEmptyCollection(): @Collection { return <- create Collection(。pub resource NFTMinter { pub var idCount: UInt64 init() { self.idCount = 1 } pub fun mintNFT(): @NFT { var newNFT <- create NFT(initID: self.idCount) self.idCount = self.idCount + 1 as UInt64 return <-newNFT }}首先,我們有一個函數,在調用時創建一個空的 NFT Collection。這就是第一次與合約進行交互的用戶如何創建一個存儲位置,該位置映射到定義好的 Collection資源。
之后,我們再創建一個資源(resource)。它很重要的,因為沒有它,我們就無法鑄造代幣。NFTMinter資源包括一個idCount,它是遞增的,以確保我們的 NFT 不會有重復的 id。它還有一個功能,用來創造 NFT。
在NFTMinter資源的下方,添加主合約初始化函數;
init() { self.account.save(<-self.createEmptyCollection(), to: /storage/NFTCollection) self.account.link<&{NFTReceiver}>(/public/NFTReceiver, target: /storage/NFTCollection) self.account.save(<-create NFTMinter(), to: /storage/NFTMinter。這個初始化函數只有在合約部署時才會被調用。它有三個作用。
版權NFT平臺Euterpe白皮書在SSCI美國核心法學期發表:據官方消息,版權NFT平臺Euterpe白皮書正式在SSCI(社會科學引文索引)美國核心法學期刊《布法羅法律評論》(Buffalo Law Review)上公開發表。這是首個成功發表于SSCI核心法學期刊的區塊鏈項目白皮書。
白皮書以“Blockchain Copyright Exchange: A Prototype”為題,主要闡述了在區塊鏈下搭建的版權交易的合理性和必要性,以及如何通過區塊鏈技術有效解決現存版權行的問題。[2021/11/4 21:25:55]
為收藏品(Collection)的部署者創建一個空的收藏品,這樣合約的所有者就可以從該合約中鑄造和擁有 NFT。
Collection資源發布在一個公共位置,并引用在一開始創建的NFTReceiver接口。通過這個方式告訴合約,在NFTReceiver上定義的函數可以被任何人調用。
NFTMinter資源被保存在賬戶存儲中,供合約的創建者使用。這意味著只有合約的創造者才能鑄造代幣。
合約全部代碼可在這里找到。
現在合約已經準備好了,讓我們來部署它,對嗎?我們也許應該在Flow Playground上測試一下。到那里,點擊左側側欄的第一個賬號。將示例合約中的所有代碼替換為我們的合約代碼,然后點擊部署。如果一切順利,你應該在屏幕底部的日志窗口中看到這樣的日志。
16:48:55 Deployment Deployed Contract To: 0x01現在我們已經準備好將合約部署到本地運行的模擬器上。在命令行中,運行:
flow project start-emulator現在,如果模擬器的運行正確和flow.json文件的正確配置,我們可以部署合約。只需運行這個命令:
flow project deploy如果一切順利,你應該看到這樣的輸出:
Deploying 1 contracts for accounts: emulator-accountPinataPartyContract -> 0xf8d6e0586b0a20c7現在已經在 Flow 模擬器上上線了一個合約,但我們想鑄造一個 NFT 代幣。
在教程的第二篇文章中,我們將通過一個應用程序和用戶界面使鑄幣過程更加友好。為了看到所鑄造的內容,并展示元數據如何在 Flow 上與 NFT 一起工作,我們將使用 Cadence 腳本和命令行。
在 pinata-party項目的根目錄下創建一個新的目錄,我們把它叫做 transactions。創建好文件夾,在里面創建一個名為MintPinataParty.cdc 的新文件。
為了編寫出交易,先需要提供給 NFT 的元數據一個引用文件。為此,我們將通過 Pinata 上傳一個文件到 IPFS。這個教程中,我將上傳一個孩子在生日派對上砸 pinata 的視頻。你可以上傳任何你想要的視頻文件。你真的可以上傳任何你喜歡的資產文件,并將其與你的 NFT 關聯起來,在本教程系列的第二篇文章將期待視頻內容。一旦你準備好你的視頻文件,在這里上傳。
當你上傳文件后,你會得到一個 IPFS 哈希(通常被稱為內容標識符或 CID)。復制這個哈希值,因為我們將在鑄幣過程中使用它。
現在,在你的MintPinataParty.cdc文件中,添加以下內容:
import PinataPartyContract from 0xf8d6e0586b0a20c7transaction { let receiverRef: &{PinataPartyContract.NFTReceiver} let minterRef: &PinataPartyContract.NFTMinter prepare(acct: AuthAccount) { self.receiverRef = acct.getCapability<&{PinataPartyContract.NFTReceiver}>(/public/NFTReceiver) .borrow() ?? panic("Could not borrow receiver reference") self.minterRef = acct.borrow<&PinataPartyContract.NFTMinter>(from: /storage/NFTMinter) ?? panic("could not borrow minter reference") } execute { let metadata : {String : String} = { "name": "The Big Swing", "swing_velocity": "29", "swing_angle": "45", "rating": "5", "uri": "ipfs://QmRZdc3mAMXpv6Akz9Ekp1y4vDSjazTx2dCQRkxVy1yUj6" } let newNFT <- self.minterRef.mintNFT() self.receiverRef.deposit(token: <-newNFT, metadata: metadata) log("NFT Minted and deposited to Account 2's Collection") }}這是一個非常簡單的交易代碼,這在很大程度上要歸功于 Flow 所做的工作,但讓我們來看看它。首先,你會注意到頂部的導入語句。如果你還記得,在部署合約時,我們收到了一個賬戶地址。它就是這里引用的內容。因此,將0xf8d6e0586b0a20c7替換為你部署的賬戶地址。
NFT 概念板塊今日平均漲幅為1.07%:金色財經行情顯示,NFT 概念板塊今日平均漲幅為1.07%。26個幣種中15個上漲,11個下跌,其中領漲幣種為:FLOW(+11.94%)、WAX(+11.34%)、NFTX(+8.70%)。領跌幣種為:UGAS(-11.80%)、RFOX(-8.13%)、LAR(-7.55%)。[2021/10/13 20:25:19]
接下來我們對交易進行定義。在我們的交易中,我們首先要做的是定義兩個參考變量,receiverRef和minterRef。在這種情況下,我們既是 NFT 的接收者,又是 NFT 的挖掘者。這兩個變量是引用我們在合約中創建的資源。如果執行交易的人對資源沒有訪問權,交易將失敗。
接下來,我們有一個prepare函數。該函數獲取試圖執行交易的人的賬戶信息并進行一些驗證。它會嘗試 借用兩個資源 NFTMinter和 NFTReceiver上的可用能力。如果執行交易的人沒有訪問這些資源的權限,驗證無法通過,這就是交易會失敗的原因。
最后是execute函數。這個函數是為我們的 NFT 建立元數據,鑄造 NFT,然后在將 NFT 存入賬戶之前關聯元數據。如果你注意到,我創建了一個元數據變量。在這個變量中,添加了一些關于 token 的信息。由于我們的代幣代表的是一個事件,即一個 pi?ata 在派對上被打碎,并且因為我們試圖復制你在 NBA Top Shot 中看到的大部分內容,所以我在元數據中定義了一些統計數據。孩子揮棒打 pi?ata 的速度,揮棒的角度和等級。我只是覺得這些統計數字有意思。你可以用類似的方式為你的代幣定義任何有意義的信息。
你會注意到,我還在元數據中定義了一個uri屬性。這將指向 IPFS 哈希,它承載著我們與 NFT 相關的標的資產文件。在這種情況下,它是 pi?ata 被擊中的真實視頻。你可以用你之前上傳文件后收到的哈希值來替換。
我們用ipfs://作為哈希的前綴,有幾個原因。這是 IPFS 上文件的標識符,可以使用 IPFS 的桌面客戶端和瀏覽器擴展。也可以直接粘貼到 Brave 瀏覽器中(Brave 瀏覽器現在提供了對 IPFS 內容的原生支持)。
調用 mintNFT函數來創建代幣。然后調用deposit函數將其存入我們的賬戶。這也是我們傳遞元數據的地方。如果你還記得,我們在 deposit函數中定義了一個關聯變量,將元數據添加到關聯的 token id 中。
最后,我們只需要日志記錄代幣已被鑄造和存入賬戶的信息。
現在我們差不多可以執行代碼發送交易鑄造 NFT 了。但首先,我們需要準備好我們的賬戶。在項目根目錄下的命令行中,創建一個新的簽名私鑰。
運行以下命令。
flow keys generate這將返回你一個公鑰和一個私鑰, 請始終保護好你的私鑰。
我們將需要私鑰來簽署交易,所以我們可以把它粘貼到flow.json文件中。我們還需要指定簽名算法。下面是flow.json文件中的accounts 的內容:
"accounts": { "emulator-account": { "address": "YOUR ACCOUNT ADDRESS", "privateKey": "YOUR PRIVATE KEY", "chain": "flow-emulator", "sigAlgorithm": "ECDSA_P256", "hashAlgorithm": "SHA3_256" }},如果你打算在 github 或任何遠程 git 倉庫上存儲這個項目的任何內容,請確保你不包含私鑰。你可能想.gitignore你的整個flow.json。盡管我們只是使用本地模擬器,但保護你的密鑰是個好做法。
現在可以發送交易,簡單的運行這個命令:
flow transactions send --code ./transactions/MintPinataParty.cdc --signer emulator-account在flow.json中引用編寫的交易代碼文件和簽名賬戶。如果一切順利,你應該看到這樣的輸出:
原版“Doge”NFT的碎片化版本DOG即將在MISO平臺出售:9月1日消息,狗狗幣頭像原型的原始圖片NFT將在NFT碎片化平臺Fractional.Art上拍賣。今年6月,該Doge NFT首次以1696.9 ETH(約400萬美元)售出。原始圖片的所有者Atsuko Sato已經將該圖片的所有權出售給去中心化藝術收藏品平臺PleasrDAO。從周三開始,在通過Fractional.Art進行細分后,任何人都可以通過SushiSwap的MISO平臺購買該NFT的一部分。細分后的Doge NFT代幣為DOG(注意與Doge進行區分)。目前有16969696969枚DOG可供購買,總起拍價為2100萬枚ETH,約合715億美元。(The Block)[2021/9/1 22:51:09]
Getting information for account with address 0xf8d6e0586b0a20c7 ...Submitting transaction with ID 4a79102747a450f65b6aab06a77161af196c3f7151b2400b3b3d09ade3b69823 ...Successfully submitted transaction with ID 4a79102747a450f65b6aab06a77161af196c3f7151b2400b3b3d09ade3b69823最后,驗證 token 是否在我們的賬戶中,并獲取元數據。做到這一點,我們要寫一個非常簡單的腳本,并從命令行調用它。
在項目根目錄,創建一個名為 scripts的新文件夾。在里面,創建一個名為CheckTokenMetadata.cdc的文件。在該文件中,添加以下內容:
import PinataPartyContract from 0xf8d6e0586b0a20c7pub fun main() : {String : String} { let nftOwner = getAccount(0xf8d6e0586b0a20c7) // log("NFT Owner") let capability = nftOwner.getCapability<&{PinataPartyContract.NFTReceiver}>(/public/NFTReceiver) let receiverRef = capability.borrow() ?? panic("Could not borrow the receiver reference") return receiverRef.getMetadata(id: 1。這個腳本可以被認為是類似于以太坊智能合約上調用只讀方法。它們是免費的,只返回合約中的數據。
在腳本中,導入部署的合約地址。然后定義一個 main函數(這是腳本運行所需的函數名)。在這個函數里面,我們定義了三個變量:
nftOwner:擁有 NFT 的賬戶。由于使用部署了合約的賬戶中鑄造了 NFT,所以在我們的例子中,這兩個地址是一樣的。這一點不一定,要看你將來的合約設計。
capability:需要從部署的合約中 借用的能力(或功能)。請記住,這些能力是受訪問控制的,所以如果一個能力對試圖借用它的地址不可用,腳本就會失敗。我們正在從NFTReceiver資源中借用能力。
receiverRef:這個變量只是簡單地記錄我們的能力。
現在,我們可以調用(可用的)函數。在這種情況下,我們要確保相關地址確實已經收到了我們鑄造的 NFT,然后我們要查看與代幣相關的元數據。
讓我們運行的腳本,看看得到了什么。在命令行中運行以下內容:
flow scripts execute ./scripts/CheckTokenMetadata.cdc你應該會看到元數據輸出的類似這樣的輸出。
{"name": "The Big Swing", "swing_velocity": "29", "swing_angle": "45", "rating": "5", "uri": "ipfs://QmRZdc3mAMXpv6Akz9Ekp1y4vDSjazTx2dCQRkxVy1yUj6"}恭喜你!你成功創建了一個 Flow 智能合約,鑄造了一個代幣,并將元數據關聯到該代幣,并將該代幣的底層數字資產存儲在 IPFS 上。作為教程的第一部分,還算不錯。
接下來,我們有一個關于構建前端 React 應用的教程,通過獲取元數據和解析元數據,讓你顯示你的 NFT。
本翻譯由 Cell Network 贊助支持。
來源:
https://medium.com/pinata/how-to-create-nfts-like-nba-top-shot-with-flow-and-ipfs-701296944bf
參考資料
登鏈翻譯計劃: https://github.com/lbc-team/Pioneer
翻譯小組: https://learnblockchain.cn/people/412
Tiny 熊: https://learnblockchain.cn/people/15
正在進入狂熱: https://www.cnbc.com/2021/02/25/nfts-why-digital-art-and-sports-collectibles-are-suddenly-so-popular.html
CryptoKitties: https://www.cryptokitties.co/
Dapper Labs: https://www.dapperlabs.com/
Rarible: https://rarible.com/
OpenSea: https://opensea.io/
Foundation: https://foundation.app/
Sorare: https://sorare.com/
著手建立一個新的通用的,很適合NFT使用場景區塊鏈: https://medium.com/dapperlabs/introducing-flow-a-new-blockchain-from-the-creators-of-cryptokitties-d291282732f5
Flow: https://www.onflow.org/
NBA: https://www.nbatopshot.com/
寫了使用IPFS上保存標的資產來創建NFT: https://learnblockchain.cn/article/2247
責任問題: https://medium.com/pinata/who-is-responsible-for-nft-289" src="https://img.jinse.com/3638511_image3.png" >
譯文出自:登鏈翻譯計劃
譯者:翻譯小組
校對:Tiny 熊
原文標題:《從JPG到現在200萬一枚的頭像,NFT賽道熱門項目分析》近幾年NFT賽道引起了投資者的極大關注,一些NFT的售價對于很多人來說是不可想象也無法理解的.
1900/1/1 0:00:00繼CryptoPunks、Bored Ape 、Pudgy Penguins席卷各大社交媒體平臺之后,現在Phanta Bear(幻象熊)?成為了當下最火爆NFT頭像.
1900/1/1 0:00:00大家在閱讀本譯文前,可以先了解一下狀態膨脹以及無狀態性的背景知識,推薦一篇文章:《觀點 | 狀態膨脹和無狀態性》?當前的以太坊1.0鏈最大的問題在于其狀態大小.
1900/1/1 0:00:00作者:Chole 2021 年可以說是 NFT 強勢爆發的一年,有許多大量名人、藝術家、游戲甚至公司都紛紛進入區塊鏈的世界.
1900/1/1 0:00:00Adidas Originals 宣布即將推出名為Into the Metaverse 的NFT系列。上周百世可樂推出1,893 個“Pepsi Mic Drop”創世 NFT,火爆全網.
1900/1/1 0:00:00“ 上個月中我們更新了當時熱門的NFT項目以及工具大全,但在NFT板塊火爆的這段時間,蓬勃發展的生態每天都有不同的新鮮事,我們需要用好工具辨別項目才能在這波浪潮中找到適合自己的.
1900/1/1 0:00:00