Web3新手系列:从零实现一个NFT DEX

Odaily星球日报發佈於 2025-05-20更新於 2025-05-20

文章摘要

本文将通过编写智能合约和一个简单的前端页面,实现 NFT 的去中心化交易。

看过前面几篇文章的用户应该知道,对于 ERC-20 协议的代币,我们可以通过以 Uniswap 为代表的 DEX 进行交易,做到去中心化。那么对于 ERC-721 协议,也就是 NFT 来说,如何做到去中心化交易呢。

目前主流的一些 NFT 交易所,采用的是挂单的方式进行交易,就像是把一件件商品列到超市的货架上一样,购买者觉得价格合适,就可以把商品带回家。

本文将通过编写智能合约和一个简单的前端页面,实现 NFT 的去中心化交易。注意本文只供学习使用,并不能真实用在生产环境。

NFT(Non-Fungible Token)

NFT 也就是非同质化代币,即每一个 Token 都是非同质的,不一样的,它遵循 ERC-721 协议。一般来说每一个 NFT 在钱包里面会展示不一样的图片,并且每一组 NFT 都会有一个独一无二的 ID 来区分。

Web3新手系列:从零实现一个NFT DEX

由于 NFT 的特性,它没有办法和 ERC-20 一样通过价格曲线来设定价格——因为每一个 Token 都是不一样的。所以目前比较常见的交易方式是通过订单簿的形式。

订单簿交易

订单簿模式简单来说就是商品的价格是人为设定的,有别于 Uniswap 这种通过价格曲线计算价格的方式。订单簿一般来说会分为两种交易模式,一种是定价单,即卖家设定一个自己心里的出售价格,如果有买家觉得价格合适,就可以由买家进行购买。另一种是求购单,即买家根据自己的需求,发出一笔求购订单,当卖家觉得价格合适时,就可以由卖家进行出售。

一般来说,求购单的价格会低于定价单的价格。本文只介绍第一种定价方式。

NFT DEX 的功能

一个 NFT DEX 的基础功能应该包含以下基本的功能:

  1. 上架商品:将一个 NFT 按照定价进行上架

  2. 购买商品:根据 NFT 的定价进行购买

  3. DEX 手续费:根据成交的价格按比例收取手续费

上架商品

上架商品需要做以下几件事情:

  1. 前端:用户选择自己的 NFT,并且设定一个价格,点击上架。

  2. 合约:用户需要给合约设置权限,可以操控用户的 NFT。

这样商品就算上架完了。在合约中,需要维护一份用户的上架商品价格 Map,这部分数据一般来说是可以做到中心化的服务中,以减少合约的负担,但是在本文中这部分 Map 数据会维护在合约里面。

购买商品

购买商品的时候会发生一下几件事情:

  1. 前端:用户选择一个想要购买的 NFT,点击购买。

  2. 合约:调用合约,将用户的钱转到 NFT 的卖方,并将 NFT 转到买方。

实现一个 NFT DEX

在本章节,我们将会从零开始实现一个 NFT 的 DEX,这是笔者已经部署好的 DEX 地址 nft-dex-frontend.vercel.app。

Web3新手系列:从零实现一个NFT DEX

1. 创建一个 NFT

为了测试需要,我们最好是能够有一个自己的 NFT。我们可以通过 Remix 快速搭建一个 ERC-721 协议的 NFT,它提供了对应的模板。

Web3新手系列:从零实现一个NFT DEX

我们按照模板可以方便地部署一个 NFT。当然你也可以跳过这一个步骤,直接使用我们准备好的 NFT。

2. 合约编写

我们的合约方法应该包含一下几个方法:

2.1. 卖家上架 NFT

卖家需要指定要售卖的 NFT 以及对应的价格。在上架时,用户需要签署 NFT 的授权方法,让我们的智能合约有权限操作这个 NFT,这样当有买家购买之后,这笔交易可以自动成交。

所以流程应该是这样的: 1. 用户选择自己的 NFT;2. 设置价格,这里的计价可以是稳定币 USDT、USDC,也可以是 ETH;3. 授权 NFT 给到合约。

之后就可以调用合约的上架方法了,该方法需要做以下几件事情:

  1. 对 NFT 的所有权进行校验

  2. 添加上架记录

  3. 触发上架的事件

Web3新手系列:从零实现一个NFT DEX

2.2. 买家购买 NFT

买家在购买 NFT 的时候,用户只需要选择自己想要的 NFT,并支付相应的代币即可。合约层面会执行以下几个步骤: 1. 从「 listings 」中读取到对应的 NFT 数据;2. 根据 NFT 的价格,计算手续费,并从成交价中扣除这部分;3. 转移 NFT 到买家手中;4. 触发购买的事件

Web3新手系列:从零实现一个NFT DEX

2.3. 取消上架

当然,卖家可能会觉得价格不合适,会选择取消上架。可以看到我们在保存上架信息的地方,保留了一个 isActive 的字段,用于表明该商品是否有效,因此在取消上架的时候,我们只需要将这个字段设置为 false 即可。

Web3新手系列:从零实现一个NFT DEX

2.4. 提取手续费

DEX 可以在每一笔的交易中收取手续费,这个手续费即可以存到合约里,也可以转存到另一个你自己的地址中去,本文采取存到合约里的方式。

Web3新手系列:从零实现一个NFT DEX

到此为止,我们的合约基本功能就算完整了。

3. DEX 前端开发

在开始之前,我们需要准备一些工具,包含如下几个工具:

  1. Ant Design Web3:用于钱包的连接以及 NFT 卡片的展示。

  2. Wagmi:用于和钱包进行交互。

  3. Nextjs + Vercel:部署我们的项目。

我们的前端应用应该包含三个页面,Mint、Buy 以及 Portfolio,Mint 是为了让用户能够 Mint 我们的 NFT,仅仅用于演示,Buy 的话是我们的 DEX 商城,用户可以在里面购买我们的 NFT,Portfolio 里面用户可以对 NFT 进行上架和下架操作。

3.1. 连接钱包

连接用户的钱包,使用 Ant Design Web3 实现

连接用户的钱包的过程非常简单,使用 Ant Design Web3 提供的连接组件即可。

首先我们在项目的外层包一个 Provider, 这样在后续的代码里面我们就能用到 Ant Design Web3 的能力。另外由于我们需要连接 sepolia 测试链,为了速度考虑,建议使用一些节点服务来提高数据查询的速度,我这里使用的是 ZAN 的 endpoint,它非常适合在亚太环境下使用,速度快并且价格非常划算,支持的链也很丰富。

Web3新手系列:从零实现一个NFT DEX

之后在需要连接钱包的地方放置一个连接按钮:

Web3新手系列:从零实现一个NFT DEX这样就算是搞定了,非常的简单。

3.2. Mint

Mint 一个 NFT,获得测试代币可以前往 https://zan.top/faucet/ethereum

在 Mint 页面我们可以 Mint 测试用的 NFT。Mint 是一个写合约的操作,这里我们要用到 wagmi 里面的 useWriteContract 方法。我们需要指定好合约地址、合约的 ABI 以及合约参数即可。

Web3新手系列:从零实现一个NFT DEX

之后在钱包里面进行确认就可以 Mint 成功了。

3.3. Portfolio

管理用户的 NFT

在这里需要展示用户所有的 NFT。我们可以使用一些 NFT API 来获取,这里使用 opensea 的 API,因为支持 sepolia 测试链的 NFT API 并不多。

在获取到用户的 NFT 列表之后,需要判断是否已经是上架了的,未上架的支持上架,已上架的支持下架。判断的方式是通过 DEX 合约里面「 getSellerListings 」方法里面获取用户已经上架的 NFT,然后根据这些 NFT 的「 isAlive 」字段来判断是否正在上架。

Web3新手系列:从零实现一个NFT DEX

上架的时候需要调用「 listNFT 」合约方法,在取消的时候需要调用「 cancelListing 」方法。在上架之前,需要额外调用 NFT 的授权方法,将 NFT 授权给合约,这样在后续交易成交之后,这个 NFT 就可以自动转给买方。

Web3新手系列:从零实现一个NFT DEX

3.4. Buy

在 Buy 里面可以购买 NFT

首先我们需要对已经上架的 NFT 进行展示。类似于 Portfolio 里面的展示用户已有的 NFT,这里不同点在于一个是全局的,不再是某个用户,另一个是只需要展示 isAlive 的 NFT。

购买的时候使用「 purchaseNFT 」方法,在调用这个方法的时候,需要用 ETH 来支付售价。

Web3新手系列:从零实现一个NFT DEX

这里的这个「 value 」就是买家需要支付的 ETH。

这样一个包含所有基础能力的 DEX 前端页面就完成了,我们可以将其部署在 vercel 中。

本文由 ZAN Team(X 账号 @zan_team) 的 Yeezo(X 账号 @GaoYeezo 75065 )撰写。

熱門幣種推薦

你可能也喜歡

BTC市场脉搏:第27周

比特币市场在27周延续跌势,价格一度跌破6万美元,后在5.8万美元附近获得支撑,周末稳定在6万美元左右。尽管下行势头较本月早前的抛售有所缓和,但买家迄今缺乏推动持续复苏的信心,价格仍在局部低点附近区间震荡。 市场结构持续调整,资金仍在收缩,参与者转向防御姿态。现货市场交易活动增加,但净卖出持续,表明当前流动性主要用于减持而非增持比特币。 衍生品市场杠杆持续缩减,未平仓合约减少,交易者更偏好下行保护而非方向性敞口。期权偏斜远超历史区间,显示对冲需求旺盛;资金费率相对低迷,反映市场在价格趋稳下仍保持谨慎。 机构情绪同样疲软。美国现货ETF整体转为未实现亏损状态,持续净流出表明机构投资者不愿增加敞口。ETF高交易量显示活跃度高,但资金流向仍呈净流出。 链上指标较为均衡。实体调整后的转账量回升,表明大规模资金持续流动;网络手续费需求低迷,暗示底层网络活动平淡。同时,热资本占比上升,意味着更多供应由短期价格敏感投资者持有,增加了市场的波动风险。综合来看,比特币看似在6万美元区域企稳,但在现货订单流、衍生品头寸和机构需求均呈防御态势的情况下,持续复苏可能需要买方信心实质性地回归。

insights.glassnode2 小時前

BTC市场脉搏:第27周

insights.glassnode2 小時前

这么拥挤的跨境支付赛道,下一站未来在哪里?

跨境支付赛道竞争激烈,表面热闹但利润空间因价格战和资本补贴被严重挤压。行业未来破局点在于深度融合本地法币能力与稳定币技术,并构建资金网络效应。 首先,稳定币的效率提升依赖于法币出入口的合规与顺畅,而全球法币监管正趋于碎片化和收紧。因此,**深刻理解并打通各国本地“最后一公里”的支付、合规与银行关系是基础**。许多中国支付服务商的“出海”更多是服务中国商户出海,而非真正打入海外本地主流生态,需要突破这一路径依赖。 其次,单一支付通道业务终将陷入内卷,未来竞争力在于升级为**跨境资金网络运营商**。通过内部撮合多国、多币种资金流,实现头寸复用和净额结算,从而提升整体资金效率,而不仅仅是赚取手续费差价。从业者应关注未被充分开发但贸易与资金流动频繁的特定区域走廊,构建区域清算枢纽。 最后,Web3支付(如稳定币)并非要颠覆传统金融,更现实的路径是与传统金融体系融合。下一代支付公司的核心将是构建 **“本地法币+稳定币”的两栖清算底座**,兼具本地化的厚重合规能力与链上清结算的轻快效率。真正的难点和壁垒在于获取深层的本地流动性,这需要长期投入、本地化经营并嵌入当地商业网络。 未来的赢家不是靠更低价格,而是靠更深的本地化、更强的网络效应和更成熟的稳定币原生能力。机会蕴藏在复杂、非标准的深水区市场,需要真正沉入当地,构建难以复制的底层基础设施。

链捕手4 小時前

这么拥挤的跨境支付赛道,下一站未来在哪里?

链捕手4 小時前

交易

現貨

熱門文章

如何購買NFT

歡迎來到HTX.com!在這裡,購買APENFT (NFT)變得簡單而便捷。跟隨我們的逐步指南,放心開始您的加密貨幣之旅。第一步:創建您的HTX帳戶使用您的 Email、手機號碼在HTX註冊一個免費帳戶。體驗無憂的註冊過程並解鎖所有平台功能。立即註冊第二步:前往買幣頁面,選擇您的支付方式信用卡/金融卡購買:使用您的Visa或Mastercard即時購買APENFT (NFT)。餘額購買:使用您HTX帳戶餘額中的資金進行無縫交易。第三方購買:探索諸如Google Pay或Apple Pay等流行支付方式以增加便利性。C2C購買:在HTX平台上直接與其他用戶交易。HTX 場外交易 (OTC) 購買:為大量交易者提供個性化服務和競爭性匯率。第三步:存儲您的APENFT (NFT)購買APENFT (NFT)後,將其存儲在您的HTX帳戶中。您也可以透過區塊鏈轉帳將其發送到其他地址或者用於交易其他加密貨幣。第四步:交易APENFT (NFT)在HTX的現貨市場輕鬆交易APENFT (NFT)。前往您的帳戶,選擇交易對,執行交易,並即時監控。HTX為初學者和經驗豐富的交易者提供了友好的用戶體驗。

837 人學過發佈於 2024.12.10更新於 2026.06.02

如何購買NFT

什麼是 AINFT

EternaFi Agents 和 $AINFT:Web3 生態系統中 AI 驅動的 NFT 基礎設施的綜合分析 人工智能 (AI) 和區塊鏈技術的交匯點正在迅速演變,建立創新的平台,重新定義所有權模型和經濟參與。EternaFi Agents 及其原生代幣 $AINFT 例證了一種通過非同質化代幣 (NFT) 對 AI 基礎設施進行代幣化的突破性方法。該項目由 Nova Club 的開發團隊於 2025 年 7 月推出,EternaFi 將 AI 的進步與區塊鏈的去中心化金融機制相結合,為 Web3 生態系統中的參與者提供了一個獨特的投資機會。本文旨在提供對 EternaFi Agents 的深入評估,涵蓋其核心組件、功能和在加密領域中的重要性。 介紹和項目概述 EternaFi Agents 是區塊鏈技術如何民主化訪問先進 AI 能力的突出例子。該項目旨在通過多樣化經濟參與來重塑 AI 所有權的範式,使複雜的 AI 系統能夠為更大範圍的利益相關者所使用。該項目的核心是對 Nova Club 開發的專有大型語言模型 (LLM) 進行代幣化,允許 NFT 持有者獲得該模型經濟表現的部分曝光。 通過利用代表 LLM 股權的 NFT,EternaFi Agents 促進了一種模型,使利益相關者不僅參與 AI 服務的消費,還能享有平台產生的經濟回報。這種變革性的方法使 AI 服務的可持續收入模型得以發展,同時促進廣泛的社區參與並促進透明的治理。 EternaFi Agents 是什麼? EternaFi Agents 代表了一個 AI-NFT 基礎設施項目,旨在將 AI 的能力與區塊鏈技術融合於一個連貫的生態系統中。該項目的基本特徵是創建作為金融工具的 NFT,代表 Nova Club 專有 AI 基礎設施的所有權份額。每個 NFT 象徵著對底層 AI 系統經濟表現的直接曝光,為投資者提供了豐厚的機會。 該項目運行於 Base 區塊鏈,以其可擴展性和效率而聞名,從而確保可管理的交易成本,同時促進無縫的操作體驗。其中一個顯著的特徵是收入分享機制,NFT 持有者可以獲得平台上提供的 AI 服務所產生的訂閱收入的一部分。這種創新的方法建立了 AI 服務的成功與分配給持有者的經濟紅利之間的聯繫,從而確保社區內的利益一致性。 EternaFi Agents 的創建者是誰? EternaFi Agents 的創造性力量是位於新加坡的 Nova Club,一個精通 AI 和區塊鏈技術融合的開發團隊。他們在 AI 開發和加密貨幣分析方面的先前經驗為該項目增添了可信度,為 EternaFi Agents 的創建貢獻了豐富的專業知識。Nova Club 的使命是民主化訪問尖端 AI 技術,同時建立可持續的經濟模型,使用戶和開發者都能受益。 他們對透明度、社區治理和創新的承諾反映在 EternaFi 平台的設計和實施中,旨在建立一個促進積極參與和長期價值創造的獨特生態系統。 EternaFi Agents 的投資者是誰? 有關支持 EternaFi Agents 的投資者或投資組織的具體細節並未公開。然而,EternaFi 採取了一種包容性的方式來資助其開發,通過向公眾出售 NFT,允許各種參與者投資於該生態系統。該項目的架構確保核心基礎設施得到負責任的資金支持,同時允許社區成員參與從 AI 服務中產生的所有權和經濟回報。 這種模式通過使投資者和項目開發者的利益保持一致來強調社區參與,創造一個鼓勵長期參與的合作環境。 EternaFi Agents 如何運作? EternaFi Agents 通過一個多面向的生態系統運作,其中 NFT 作為項目內所有權表示的主要手段。每個 NFT 持有者都有權分享由底層 AI 驅動的平台產生的每月訂閱收入,從而使 NFT 所有權成為一種有利可圖的投資工具。 收入生成機制 EternaFi 平台的主要收入來源來自與提供的 AI 服務相關的訂閱費用。用戶可以訪問各種分層服務,從基本市場分析工具到全面的 AI 輔助交易解決方案。這些服務被貨幣化,並形成收入分享框架的基礎,通過自動化智能合約將利潤分配給 NFT 持有者。 EternaFi 生態系統的一個創新特徵是透明運作的收入分享機制,確保根據 AI 平台運營的可驗證指標分配獎勵。這在 AI 服務的表現與社區投資者可獲得的回報之間建立了直接聯繫,從而建立了一個可持續的經濟模型。 參與和歸屬機制 EternaFi 的參與者可以參與質押他們的 NFT,以解鎖額外的經濟利益。歸屬計劃旨在促進參與者的長期承諾,獎勵那些持續支持該項目的人。這確保了利益的穩健一致性,並促進了實現項目長期目標所需的社區參與感。 透明治理 EternaFi Agents 擁抱去中心化治理,允許 NFT 持有者在平台的開發和未來方向的決策中發揮積極作用。治理結構包括社區投票機制,為 NFT 持有者提供影響重大決策的機會,並促進項目增長的合作方式。 EternaFi Agents 的時間表 EternaFi Agents 的發展軌跡展示了朝著建立可持續 AI 基礎設施的系統方法,同時滿足社區參與者的需求。以下是該項目歷史上重要里程碑的時間表: 2025 年 7 月: EternaFi Agents 上線,包括 NFT 的公開銷售和 $AINFT 代幣在 Base 區塊鏈上的部署。 2025 年第四季度: 建立市場基礎設施,包括流動性池和為 NFT 持有者啟動質押儀表板。 2026 年: 啟動社區參與計劃,擴展 AI 能力,並與跨鏈技術集成。 2026 年第四季度: 實施紅利分配系統,允許 NFT 持有者從其投資中獲得經濟利益。 這些里程碑標誌著專注於建立功能性和參與性生態系統,同時確保持續演變以滿足市場需求。 技術基礎設施和區塊鏈集成 EternaFi Agents 依託於一個先進的技術框架,將 AI 系統與區塊鏈能力相結合。該項目運行於 Base 區塊鏈,利用可擴展性和低交易成本的優勢。底層智能合約架構管理 NFT 所有權、收入分享和社區管理功能,確保效率和透明度。 AI 系統開發 支撐 EternaFi Agents 的專有大型語言模型是獨立開發的,旨在滿足不依賴專有外部框架的收入生成應用。這一努力反映了創建一個多功能和可適應的 AI 基礎設施的承諾,能夠為用戶提供有意義的服務,從而為投資者創造經濟價值。 安全措施 EternaFi 的安全基礎設施的穩健性至關重要。定期審計和嚴格的安全措施確保 AI 系統和區塊鏈機制的完整性,防範潛在的漏洞,同時增強參與者的信心。 結論 EternaFi Agents 標誌著人工智能和區塊鏈技術領域的一項里程碑創新,為社區所有權和經濟參與開辟了新途徑。該項目通過 NFT 對 AI 基礎設施進行代幣化的綜合策略為未來的去中心化生態系統樹立了先例。 通過將技術複雜性與以用戶為中心的經濟模型相結合,EternaFi 不僅促進了參與,還為社區參與者創造了一個可持續的收入分享框架。EternaFi 的重要性超越了其運營成功,因為它例證了區塊鏈如何民主化尖端 AI 技術,為未來在這一交叉領域的企業鋪平道路。 EternaFi Agents 的演變可能預示著一個新的 AI 發展時代的來臨,這一時代以參與者驅動的治理、可持續的經濟模型和透明的驗證為特徵,最終促進了 AI 和技術在各行各業的可及性更廣泛的民主化。

1.2k 人學過發佈於 2025.08.14更新於 2025.08.14

什麼是 AINFT

相關討論

歡迎來到 HTX 社群。在這裡,您可以了解最新的平台發展動態並獲得專業的市場意見。 以下是用戶對 NFT (NFT)幣價的意見。

活动图片