比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

NFT教程:用Flow和IPFS創建NFT_NBS

Author:

Time:1900/1/1 0:00:00

非同質化代幣(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 使用模擬器來部署我們的合約,它也在引用(在模擬器上)我們即將寫的合約 ...

Mutant Ape Yacht Club系列NFT24小時交易額增幅突破180:金色財經報道,據NFTGo.io數據顯示,Mutant Ape Yacht Club系列NFT總市值達7.67億美元,在所有NFT項目總市值排名中位列第4;其24小時交易額為142萬美元,增幅達180.72%。截止發稿時,該系列NFT當前地板價為16.05ETH。[2022/9/26 7:20:53]

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。

阿根廷科技巨頭Globant聯創:科技等其他行業應認真對待元宇宙、NFT和Crypto:6月14日消息,加密貨幣及其衍生產品開始觸及包括科技行業在內的許多行業,許多公司擔心這可能產生的影響。阿根廷科技獨角獸公司Globant的聯合創始人之一Guibert Englebienne解釋說,這種影響以及Crypto、NFT和元宇宙領域合并產生的新技術不應被忽視。

Englebienne的觀點是基于這些行業的廣泛范圍,以及這將如何影響其他與加密密切相關的業務,比如科技。他在接受當地媒體采訪時表示:“一般來說,當組織發展壯大時,他們會形成一種對自己有利的商業模式,并在此基礎上形成一種習慣,但新技術的出現會對你的業務產生干擾。花一部分時間去理解這一點是很重要的。”(Bitcoin.com)[2022/6/14 4:25:51]

接下來,有一個變量叫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。這個初始化函數只有在合約部署時才會被調用。它有三個作用。

rektguy系列NFT 24小時交易額增幅超100%:金色財經消息,據NFTGO數據顯示,rektguy系列NFT 24小時交易額為1,940,733美元,增幅達101.55%。此外,該系列NFT當前總市值為13,146,294美元,地板價為0.679ETH。[2022/5/29 3:48:02]

為收藏品(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替換為你部署的賬戶地址。

OliveX與香港晉峰足球會舉辦NFT產品開發協議:OliveX最近宣布,他們已經與港超聯足球隊晉峰足球會達成了獨家合作協議。此次合作將是亞洲首個足球NFT收藏品合作計劃,晉峰足球會表示,球會的座右銘是敢于挑戰,因此希望嘗試新的投入,也因此可能有機會與在健康和健身領域有相當地位的OliveX合作。[2021/7/12 0:46:08]

接下來我們對交易進行定義。在我們的交易中,我們首先要做的是定義兩個參考變量,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中引用編寫的交易代碼文件和簽名賬戶。如果一切順利,你應該看到這樣的輸出:

NFT收藏品交易平臺VeVe與漫威官方達成合作:6月25日,NFT收藏品交易平臺VeVe與漫威官方達成合作,將推出超級英雄VR虛擬手辦、稀有版漫畫等得到官方授權的NFT收藏品。[2021/6/25 0:05:44]

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 熊

Tags:NBSBSPNFTQUONBS價格BSP幣1MillionNFTsQUON

幣安app官網下載
一文讓你最快切入NFT、數字藏品賽道_NFT

去年,在谷歌上的NFT搜索量增長了1000%,而且仍呈現著上升趨勢,這表明越來越多的人對這些資產表示了興趣。進一步的分析表明,在過去的幾個月里,人們更喜歡投資NFT而不是Crypto.

1900/1/1 0:00:00
龐大的生態帝國 能助力REVV騰飛嗎?_REVV

鏈游的火爆,離不開資本的助推。靠山越大,受到的關注就會越多。AnimocaBrands,作為鏈游圈最大的投資者,經常活躍在各大鏈游的投資名單中.

1900/1/1 0:00:00
Coin Metrics: EIP 1559無法解決以太坊的天價Gas費危機

飽受爭議的EIP1559目前仍處于膠著狀態,但根據以太坊核心開發者本月19日的會議結果,該方案仍將在7月的倫敦升級中實施,目前輔助EIP尚未決定.

1900/1/1 0:00:00
NFT帶來分歧 平臺將面臨選擇_NFT

今天,讓我們談談在游戲世界中開始出現的一條斷層線,我懷疑這個斷層線很快就會出現在大多數平臺和應用程序商店中.

1900/1/1 0:00:00
無聊猿空投10億代幣 盤點BAYC交易額TOP10_NFT

今天無聊猿NFT發布了,發行代幣APE的消息,給所有持有無聊猿BAYC、變異猿MAYC、無聊犬BYKC等NFT的玩家空投一定數量的APE.

1900/1/1 0:00:00
在軍事沖突期間 NFT項目已經在尋求重建烏克蘭_NFT

最近對烏克蘭的入侵讓世界陷入了一種充滿不確定性、動蕩和地緣風險的狀態。全球金融市場的動蕩給數百萬投資者造成了巨大的損失.

1900/1/1 0:00:00
ads