從零搭建NFT去中心化交易平台全攻略

從零打造一個NFT去中心化交易平台

在深入研究ERC-20代幣的去中心化交易後,我們不禁要問:如何實現ERC-721協議(即NFT)的去中心化交易呢?

目前,主流NFT交易平台採用掛單模式進行交易,類似於超市貨架上的商品展示。買家看中價格合適的NFT就可以直接購買。

本文將帶您一步步構建一個簡單的NFT去中心化交易平台,包括智能合約編寫和基礎前端界面開發。請注意,本文內容僅供學習參考,不適用於實際生產環境。

Web3新手系列:從零實現一個NFT DEX

NFT簡介

NFT(非同質化代幣)遵循ERC-721協議,每個Token都是獨一無二的。NFT通常在錢包中以不同圖片形式展示,並擁有專屬ID以作區分。

由於NFT的獨特性,無法像ERC-20代幣那樣通過價格曲線定價。因此,常見的NFT交易方式是採用訂單簿形式。

Web3新手系列:從零實現一個NFT DEX

訂單簿交易模式

訂單簿交易主要有兩種模式:

  1. 定價單:賣家設定售價,買家覺得合適就可以購買。
  2. 求購單:買家發布求購訂單,賣家認可價格後可以出售。

通常,求購單價格會低於定價單。本文將重點介紹定價單模式。

Web3新手系列:從零實現一個NFT DEX

NFT去中心化交易平台核心功能

一個基礎的NFT去中心化交易平台應具備以下功能:

  1. 上架NFT:允許用戶定價上架NFT
  2. 購買NFT:用戶可按定價購買NFT
  3. 平台手續費:根據成交價收取一定比例的手續費

上架NFT流程

  1. 前端:用戶選擇NFT並設定價格,點擊上架。
  2. 合約:用戶授權合約操作其NFT。

合約中需維護一個用戶上架商品價格映射表。雖然這部分數據可以存儲在中心化服務中以減輕合約負擔,但本文將其保留在合約中。

購買NFT流程

  1. 前端:用戶選擇想購買的NFT,點擊購買。
  2. 合約:執行轉帳操作,將買家資金轉給賣家,同時將NFT轉給買家。

Web3新手系列:從零實現一個NFT DEX

構建NFT去中心化交易平台

接下來,我們將逐步實現一個NFT去中心化交易平台。

1. 創建測試用NFT

爲測試需要,我們可以使用Remix快速部署一個符合ERC-721協議的NFT合約。當然,也可以直接使用現有的NFT進行測試。

Web3新手系列:從零實現一個NFT DEX

2. 智能合約開發

我們的合約需要包含以下核心功能:

2.1 NFT上架

賣家上架NFT時需要指定NFT和價格。上架過程包括:

  1. 用戶選擇NFT
  2. 設置價格(可使用USDT、USDC或ETH)
  3. 授權NFT給合約

合約上架方法需完成:

  1. 驗證NFT所有權
  2. 添加上架記錄
  3. 觸發上架事件

Web3新手系列:從零實現一個NFT DEX

2.2 NFT購買

買家購買NFT時,合約需執行:

  1. 讀取NFT數據
  2. 計算並扣除手續費
  3. 轉移NFT給買家
  4. 觸發購買事件

Web3新手系列:從零實現一個NFT DEX

2.3 取消上架

賣家可取消上架NFT。合約中使用isActive字段標記商品是否有效,取消上架時只需將該字段設爲false。

Web3新手系列:從零實現一個NFT DEX

2.4 提取手續費

平台可在每筆交易中收取手續費,本例中將手續費存儲在合約中。

Web3新手系列:從零實現一個NFT DEX

3. 前端開發

前端開發使用以下工具:

  • Ant Design Web3:用於錢包連接和NFT展示
  • Wagmi:實現錢包交互
  • Nextjs + Vercel:部署項目

前端應用包含三個主要頁面:Mint、Buy和Portfolio。

3.1 連接錢包

使用Ant Design Web3的連接組件實現錢包連接功能。爲提高查詢速度,建議使用節點服務如ZAN的endpoint。

Web3新手系列:從零實現一個NFT DEX

3.2 Mint頁面

使用wagmi的useWriteContract方法實現NFT鑄造功能。

Web3新手系列:從零實現一個NFT DEX

3.3 Portfolio頁面

展示用戶擁有的NFT,支持上架和下架操作。使用opensea API獲取NFT列表,並通過合約方法判斷NFT上架狀態。

Web3新手系列:從零實現一個NFT DEX

3.4 Buy頁面

展示所有已上架的NFT,並提供購買功能。購買時調用purchaseNFT方法,使用ETH支付。

Web3新手系列:從零實現一個NFT DEX

完成以上步驟後,一個基礎的NFT去中心化交易平台就搭建完成了。您可以將其部署到Vercel等平台上進行測試和使用。

查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 6
  • 分享
留言
0/400
NotGonnaMakeItvip
· 8小時前
这套真香 什么时候开源
回復0
SocialFiQueenvip
· 07-20 02:58
赶上趋势 对了 早就该自己搭了
回復0
GateUser-ccc36bc5vip
· 07-20 02:58
啥时候开源啊
回復0
bridge_anxietyvip
· 07-20 02:57
挂单交易老掉牙了
回復0
TokenSherpavip
· 07-20 02:43
实际上,这相当基础……说实话,在我做dao咨询的时候见过更好的实现。
查看原文回復0
HashBanditvip
· 07-20 02:40
仍在等待二层扩展使 NFT 交易变得可忍受……那些矿工费每次都让我感到痛苦,真是无奈。
查看原文回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)