# ゼロからNFT分散化取引プラットフォームを構築する前の数記事では、DEXを通じてERC-20トークンの分散化取引を実現する方法について探討しました。それでは、ERC-721プロトコルに従うNFTの場合、どのように分散化取引を実現するのでしょうか?現在の主流NFT取引プラットフォームは多くが注文方式で取引を行っており、これは商品の陳列がスーパーの棚に並ぶのに似ています。買い手は価格が適切だと感じれば購入できます。本記事では、スマートコントラクトを作成し、シンプルなフロントエンドページを通じて、NFTの分散化取引を実現します。注意が必要なのは、本記事の内容は学習参考用であり、生産環境には適用できないということです。! 【Web3スターターシリーズ:NFT DEXをゼロから実装する】(https://img-cdn.gateio.im/social/moments-5d391cb28a9a6eafd3ef56f39b0dc5bc)## NFTの紹介NFTとは非代替性トークンであり、ERC-721プロトコルに従います。各NFTはユニークであり、通常はウォレット内で異なる画像形式で表示され、区別するためのユニークIDを持っています。NFTの特性により、ERC-20トークンのように価格曲線を使用して価格を設定することはできません。したがって、現在一般的な取引方法はオーダーブック形式を採用しています。! [Web3初心者シリーズ:NFT DEXをゼロから実装する](https://img-cdn.gateio.im/social/moments-65746508ae31b6e3e418c31b6e8bcdc2)## オーダーブック取引モデル注文帳モードでは、商品価格は人為的に設定され、アルゴリズムによって計算される価格設定とは異なります。注文帳には通常、2種類の取引モードがあります:1. 価格設定: 売り手が販売価格を設定し、買い手が適切だと感じたら購入できます。2. 求購注文:買い手が求購注文を出し、売り手が価格が適切だと感じたら売却することができます。一般的に、購入注文の価格は定価注文よりも低くなります。本稿では、定価取引モデルに焦点を当てます。! 【Web3スターターシリーズ:NFT DEXをゼロから実装する】(https://img-cdn.gateio.im/social/moments-f6f730a4e82de02e49d30d9089e8716e)## NFT DEXの基本機能基本的なNFT DEXには以下の機能が含まれるべきです:1. 商品を上架する:設定した価格でNFTを上架する2. 商品を購入する: NFTの価格で購入する3. 手数料の徴収: 成交価格に応じて割合で徴収します。### 商品を上架するプロセス1. フロントエンド: ユーザーがNFTを選択し、価格を設定して、上場をクリックします。2. 契約:ユーザーは契約にNFTの操作を許可します契約では、ユーザーが出品する商品の価格マッピング表を維持する必要があります。契約の負担を軽減するために、このデータは分散化サービスに保存することもできます。### 購入プロセス 1. フロントエンド: ユーザーは購入したいNFTを選択し、購入をクリックします2. 契約:買い手の資金を売り手に移転し、NFTを買い手に移転する! [Web3スターターシリーズ:NFT DEXをゼロから実装する](https://img-cdn.gateio.im/social/moments-b6b3dc59b2ca9328bb852240a2181119)## NFT DEXの実装以下では、ゼロからNFT DEXを実現します。### 1. NFTを作成するテストのために、Remixを使用して迅速にERC-721プロトコルのNFTを作成できます。また、用意されたNFTを直接使用することもできます。! [Web3スターターシリーズ:NFT DEXをゼロから実装する](https://img-cdn.gateio.im/social/moments-8dc32f1a83e46e857340f9841df2c7f5)### 2. 契約書作成契約には以下の主要なメソッドが含まれるべきです:#### 2.1 売り手がNFTを出品するプロセス:1. ユーザーはNFTを選択します2. 価格を設定する(利用可能なステーブルコインまたはETHで評価)3. コントラクトにNFTを付与する4. 上架メソッドを呼び出す上場方法は実行する必要があります:1. NFTの所有権を確認する2. リスティングレコードを追加する 3. 上架イベントをトリガーする! [Web3初心者シリーズ:NFT DEXをゼロから実装する](https://img-cdn.gateio.im/social/moments-64251e5648f68085d608a40fe42097c4)#### 2.2 バイヤーがNFTを購入するバイヤーがNFTを選んで支払った後、契約が実行される:1. NFTデータを読み取る2. 手数料を計算し、差し引く3. NFTを買い手に転送する4. 購入イベントをトリガーする! [Web3スターターシリーズ:NFT DEXをゼロから実装する](https://img-cdn.gateio.im/social/moments-b47304559c5b8978028d581df19049c8)#### 2.3 上架の取り消し商品isActiveフィールドをfalseに設定すればよいです。#### 2.4 手数料を引き出す手数料を契約に預けるか、指定されたアドレスに転送できます。! 【Web3スターターシリーズ:NFT DEXをゼロから実装する】(https://img-cdn.gateio.im/social/moments-4dc46af090a3d3987626b915c0d5f1ac)### 3. DEXフロントエンド開発使用される主なツール:- Ant Design Web3:ウォレットをつないでNFTカードをディスプレイ- Wagmi:ウォレットとインタラクト- Nextjs + Vercel:プロジェクトをデプロイするフロントエンドは、Mint、Buy、Portfolioの3つのページを含む必要があります。! [Web3スターターシリーズ:NFT DEXをゼロから実装する](https://img-cdn.gateio.im/social/moments-4e5e1ba70137403b4ea0e0503378e14a)#### 3.1 ウォレットを接続するAnt Design Web3の接続コンポーネントを使用して、ウォレット接続を実現します。! [Web3スターターシリーズ:NFT DEXをゼロから実装する](https://img-cdn.gateio.im/social/moments-56f66de1a4bb30af91363bd5cc567e40)####3.2ミントページwagmiのuseWriteContractメソッドを使用してNFTをミントします。! 【Web3スターターシリーズ:NFT DEXをゼロから実装する】(https://img-cdn.gateio.im/social/moments-a11e2cb9eb62433a03adcf2abd7b56b5)#### 3.3 ポートフォリオページユーザーのNFTを表示し、上架と下架の操作をサポートします。! [Web3スターターシリーズ:NFT DEXをゼロから実装する](https://img-cdn.gateio.im/social/moments-0a338541b5f8b2aa130fb03a46027c47)#### 3.4 購入ページ上架されたNFTを表示し、購入操作をサポートします。これで、基本的なNFT DEXのフロントエンドが完成しました。それをVercelにデプロイしてアクセスできます。! [Web3初心者シリーズ:NFT DEXをゼロから実装する](https://img-cdn.gateio.im/social/moments-6d344484abad011d83b96ff377ffae1f)
ゼロからのNFT分散化取引プラットフォームの構築: スマートコントラクトとフロントエンド実装ガイド
ゼロからNFT分散化取引プラットフォームを構築する
前の数記事では、DEXを通じてERC-20トークンの分散化取引を実現する方法について探討しました。それでは、ERC-721プロトコルに従うNFTの場合、どのように分散化取引を実現するのでしょうか?
現在の主流NFT取引プラットフォームは多くが注文方式で取引を行っており、これは商品の陳列がスーパーの棚に並ぶのに似ています。買い手は価格が適切だと感じれば購入できます。本記事では、スマートコントラクトを作成し、シンプルなフロントエンドページを通じて、NFTの分散化取引を実現します。注意が必要なのは、本記事の内容は学習参考用であり、生産環境には適用できないということです。
! 【Web3スターターシリーズ:NFT DEXをゼロから実装する】(https://img-cdn.gateio.im/webp-social/moments-5d391cb28a9a6eafd3ef56f39b0dc5bc.webp)
NFTの紹介
NFTとは非代替性トークンであり、ERC-721プロトコルに従います。各NFTはユニークであり、通常はウォレット内で異なる画像形式で表示され、区別するためのユニークIDを持っています。
NFTの特性により、ERC-20トークンのように価格曲線を使用して価格を設定することはできません。したがって、現在一般的な取引方法はオーダーブック形式を採用しています。
! Web3初心者シリーズ:NFT DEXをゼロから実装する
オーダーブック取引モデル
注文帳モードでは、商品価格は人為的に設定され、アルゴリズムによって計算される価格設定とは異なります。注文帳には通常、2種類の取引モードがあります:
価格設定: 売り手が販売価格を設定し、買い手が適切だと感じたら購入できます。
求購注文:買い手が求購注文を出し、売り手が価格が適切だと感じたら売却することができます。
一般的に、購入注文の価格は定価注文よりも低くなります。本稿では、定価取引モデルに焦点を当てます。
! 【Web3スターターシリーズ:NFT DEXをゼロから実装する】(https://img-cdn.gateio.im/webp-social/moments-f6f730a4e82de02e49d30d9089e8716e.webp)
NFT DEXの基本機能
基本的なNFT DEXには以下の機能が含まれるべきです:
商品を上架するプロセス
契約では、ユーザーが出品する商品の価格マッピング表を維持する必要があります。契約の負担を軽減するために、このデータは分散化サービスに保存することもできます。
購入プロセス
! Web3スターターシリーズ:NFT DEXをゼロから実装する
NFT DEXの実装
以下では、ゼロからNFT DEXを実現します。
1. NFTを作成する
テストのために、Remixを使用して迅速にERC-721プロトコルのNFTを作成できます。また、用意されたNFTを直接使用することもできます。
! Web3スターターシリーズ:NFT DEXをゼロから実装する
2. 契約書作成
契約には以下の主要なメソッドが含まれるべきです:
2.1 売り手がNFTを出品する
プロセス:
上場方法は実行する必要があります:
! Web3初心者シリーズ:NFT DEXをゼロから実装する
2.2 バイヤーがNFTを購入する
バイヤーがNFTを選んで支払った後、契約が実行される:
! Web3スターターシリーズ:NFT DEXをゼロから実装する
2.3 上架の取り消し
商品isActiveフィールドをfalseに設定すればよいです。
2.4 手数料を引き出す
手数料を契約に預けるか、指定されたアドレスに転送できます。
! 【Web3スターターシリーズ:NFT DEXをゼロから実装する】(https://img-cdn.gateio.im/webp-social/moments-4dc46af090a3d3987626b915c0d5f1ac.webp)
3. DEXフロントエンド開発
使用される主なツール:
フロントエンドは、Mint、Buy、Portfolioの3つのページを含む必要があります。
! Web3スターターシリーズ:NFT DEXをゼロから実装する
3.1 ウォレットを接続する
Ant Design Web3の接続コンポーネントを使用して、ウォレット接続を実現します。
! Web3スターターシリーズ:NFT DEXをゼロから実装する
####3.2ミントページ
wagmiのuseWriteContractメソッドを使用してNFTをミントします。
! 【Web3スターターシリーズ:NFT DEXをゼロから実装する】(https://img-cdn.gateio.im/webp-social/moments-a11e2cb9eb62433a03adcf2abd7b56b5.webp)
3.3 ポートフォリオページ
ユーザーのNFTを表示し、上架と下架の操作をサポートします。
! Web3スターターシリーズ:NFT DEXをゼロから実装する
3.4 購入ページ
上架されたNFTを表示し、購入操作をサポートします。
これで、基本的なNFT DEXのフロントエンドが完成しました。それをVercelにデプロイしてアクセスできます。
! Web3初心者シリーズ:NFT DEXをゼロから実装する