# 從零打造NFT去中心化交易平台在前幾篇文章中,我們探討了如何通過DEX實現ERC-20代幣的去中心化交易。那麼對於遵循ERC-721協議的NFT來說,又該如何實現去中心化交易呢?目前主流NFT交易平台多採用掛單模式進行交易,類似於商品陳列在超市貨架上,買家覺得價格合適就可以購買帶走。本文將通過編寫智能合約和簡單前端頁面,實現NFT的去中心化交易。需要注意的是,本文內容僅供學習參考,不適用於生產環境。## NFT簡介NFT即非同質化代幣,遵循ERC-721協議。每個NFT都是獨一無二的,通常在錢包中以不同圖片形式展示,並擁有唯一ID以作區分。由於NFT的特性,無法像ERC-20代幣那樣通過價格曲線設定價格。因此,目前常見的交易方式是採用訂單簿形式。## 訂單簿交易模式訂單簿模式下,商品價格由人爲設定,區別於通過算法計算價格的方式。訂單簿通常有兩種交易模式:1. 定價單:賣家設定出售價格,買家覺得合適即可購買。2. 求購單:買家發出求購訂單,賣家覺得價格合適即可出售。一般來說,求購單價格會低於定價單。本文將重點介紹定價交易模式。## NFT DEX基本功能一個基礎的NFT DEX應包含以下功能:1. 上架商品:將NFT按設定價格上架2. 購買商品:按NFT定價進行購買 3. 收取手續費:根據成交價按比例收取### 上架商品流程1. 前端:用戶選擇NFT並設定價格,點擊上架2. 合約:用戶授權合約操作其NFT合約中需維護用戶上架商品價格映射表。爲減輕合約負擔,這部分數據也可存儲在中心化服務中。### 購買商品流程 1. 前端:用戶選擇想購買的NFT,點擊購買2. 合約:將買家資金轉給賣家,NFT轉給買家## NFT DEX實現以下我們將從零開始實現一個NFT DEX。### 1. 創建NFT爲測試需要,我們可以通過Remix快速創建一個ERC-721協議的NFT。也可以直接使用已準備好的NFT。### 2. 合約編寫合約應包含以下主要方法:#### 2.1 賣家上架NFT流程:1. 用戶選擇NFT 2. 設置價格(可用穩定幣或ETH計價)3. 授權NFT給合約4. 調用上架方法上架方法需執行:1. 校驗NFT所有權2. 添加上架記錄 3. 觸發上架事件#### 2.2 買家購買NFT買家選擇NFT並支付後,合約執行:1. 讀取NFT數據2. 計算並扣除手續費3. 轉移NFT給買家4. 觸發購買事件#### 2.3 取消上架將商品isActive字段設爲false即可。#### 2.4 提取手續費可將手續費存入合約或轉至指定地址。### 3. DEX前端開發使用的主要工具:- Ant Design Web3:連接錢包、展示NFT卡片- Wagmi:與錢包交互- Nextjs + Vercel:部署項目前端應包含三個頁面:Mint、Buy和Portfolio。#### 3.1 連接錢包使用Ant Design Web3的連接組件實現錢包連接。#### 3.2 Mint頁面使用wagmi的useWriteContract方法實現NFT鑄造。#### 3.3 Portfolio頁面 展示用戶NFT,支持上架和下架操作。#### 3.4 Buy頁面展示已上架NFT,支持購買操作。至此,一個基礎NFT DEX的前端就完成了。可將其部署到Vercel上進行訪問。
從零搭建NFT去中心化交易平台:智能合約與前端實現指南
從零打造NFT去中心化交易平台
在前幾篇文章中,我們探討了如何通過DEX實現ERC-20代幣的去中心化交易。那麼對於遵循ERC-721協議的NFT來說,又該如何實現去中心化交易呢?
目前主流NFT交易平台多採用掛單模式進行交易,類似於商品陳列在超市貨架上,買家覺得價格合適就可以購買帶走。本文將通過編寫智能合約和簡單前端頁面,實現NFT的去中心化交易。需要注意的是,本文內容僅供學習參考,不適用於生產環境。
NFT簡介
NFT即非同質化代幣,遵循ERC-721協議。每個NFT都是獨一無二的,通常在錢包中以不同圖片形式展示,並擁有唯一ID以作區分。
由於NFT的特性,無法像ERC-20代幣那樣通過價格曲線設定價格。因此,目前常見的交易方式是採用訂單簿形式。
訂單簿交易模式
訂單簿模式下,商品價格由人爲設定,區別於通過算法計算價格的方式。訂單簿通常有兩種交易模式:
定價單:賣家設定出售價格,買家覺得合適即可購買。
求購單:買家發出求購訂單,賣家覺得價格合適即可出售。
一般來說,求購單價格會低於定價單。本文將重點介紹定價交易模式。
NFT DEX基本功能
一個基礎的NFT DEX應包含以下功能:
上架商品流程
合約中需維護用戶上架商品價格映射表。爲減輕合約負擔,這部分數據也可存儲在中心化服務中。
購買商品流程
NFT DEX實現
以下我們將從零開始實現一個NFT DEX。
1. 創建NFT
爲測試需要,我們可以通過Remix快速創建一個ERC-721協議的NFT。也可以直接使用已準備好的NFT。
2. 合約編寫
合約應包含以下主要方法:
2.1 賣家上架NFT
流程:
上架方法需執行:
2.2 買家購買NFT
買家選擇NFT並支付後,合約執行:
2.3 取消上架
將商品isActive字段設爲false即可。
2.4 提取手續費
可將手續費存入合約或轉至指定地址。
3. DEX前端開發
使用的主要工具:
前端應包含三個頁面:Mint、Buy和Portfolio。
3.1 連接錢包
使用Ant Design Web3的連接組件實現錢包連接。
3.2 Mint頁面
使用wagmi的useWriteContract方法實現NFT鑄造。
3.3 Portfolio頁面
展示用戶NFT,支持上架和下架操作。
3.4 Buy頁面
展示已上架NFT,支持購買操作。
至此,一個基礎NFT DEX的前端就完成了。可將其部署到Vercel上進行訪問。