-
bitcoin $87959.907984 USD
1.34% -
ethereum $2920.497338 USD
3.04% -
tether $0.999775 USD
0.00% -
xrp $2.237324 USD
8.12% -
bnb $860.243768 USD
0.90% -
solana $138.089498 USD
5.43% -
usd-coin $0.999807 USD
0.01% -
tron $0.272801 USD
-1.53% -
dogecoin $0.150904 USD
2.96% -
cardano $0.421635 USD
1.97% -
hyperliquid $32.152445 USD
2.23% -
bitcoin-cash $533.301069 USD
-1.94% -
chainlink $12.953417 USD
2.68% -
unus-sed-leo $9.535951 USD
0.73% -
zcash $521.483386 USD
-2.87%
NFT マーケットプレイス スマート コントラクトを作成するためのステップバイステップ ガイド
An NFT marketplace smart contract implements ERC-721/1155 standards, secure listings, royalty enforcement (EIP-2981), role-based access control, and audited trading logic for Ethereum-compatible chains.
2026/01/17 14:19
コアアーキテクチャを理解する
1. NFT マーケットプレイスのスマート コントラクトは、イーサリアム互換ブロックチェーン上で固有のデジタル資産を表現するために ERC-721 または ERC-1155 標準に大きく依存しています。
2. 契約には、作成者が価格、通貨タイプ (ETH または ERC-20 トークン)、および販売期間を定義できるリスト メカニズムを統合する必要があります。
3. 所有権の検証は、転送またはリストを許可する前に、 msg.senderおよびownerOf(tokenId)呼び出しを使用したオンチェーン チェックを通じて強制されます。
4. 二次販売中にクリエイターが設定したパーセンテージを尊重するには、多くの場合 EIP-2981 インターフェイスを利用して、ロイヤリティ執行モジュールを組み込む必要があります。
5. 不正な機能の実行を防ぐために、 admin 、 minter 、およびFeeCollectorなどのロールを介してアクセス制御が実装されます。
トークン規格の選択と実装
1. ERC-721 は、厳格な 1 対 1 のトークン マッピングにより、アートワークや収集品などの完全にユニークで代替不可能なアイテムに対して依然として有力な選択肢です。
2. ERC-1155 は、単一の契約で複数のアセットタイプを処理する際の効率性を提供します。これは、NFT と半代替可能なゲームアイテムの両方をサポートするマーケットプレイスに最適です。
3. 開発者は、メタデータの取得とバッチ操作をサポートするために、OpenZeppelin のERC721EnumerableまたはERC1155URIStorageを継承する必要があります。
4. メタデータ URI はオフチェーンに保存されますが、オンチェーンで参照されます。契約では URI 形式を検証し、承認されたアドレスによる更新のみを許可する必要があります。
5. 生成された各トークンには、衝突を回避し不変性を確保するためにカウンターまたはハッシュベースのスキームによって生成される一意のtokenId が必要です。
上場と取引のロジック
1. リスト構造には、売り手、価格、通貨、ステータス、有効期限などのフィールドが含まれます。
2. 購入機能は、単一のアトミック トランザクションで内部残高チェック、transferFrom 呼び出し、料金分配ロジックをトリガーします。
3. オファーと入札は、 tokenIdとbiddによってインデックス付けされたマッピングに保存されている入札構造体を介して管理され、期限付きの受け入れウィンドウが設定されます。
4. アクティブなリストのキャンセルでは、再入または古い状態の悪用を防ぐために、イベントを発行し、ストレージ スロットをリセットする必要があります。
5. すべての取引関数には、セキュリティ保証を維持するためにnonReentrantとwhenNotPausedを強制する修飾子が含まれています。
料金管理と収益分配
1. プラットフォーム料金はETHまたはステーブルコインで収集され、ガバナンスまたはマルチシグによって管理される専用のfeeWalletアドレスに保持されます。
2. 料金パーセンテージは、10000 でスケールされた uint256 値 (例: 2.5% = 250) として保存され、浮動小数点演算を行わずに正確な計算が可能になります。
3. ロイヤルティの支払いは、 RoyalyInfo(tokenId, salePrice) 、返される受信者および EIP-2981 に基づく金額を使用して販売後に実行されます。
4. 引き出し機能は、指定されたfeeCollectorロールへのアクセスを制限し、透明性とオフチェーン追跡のためのイベント発行を含みます。
5. 料金パラメータは、タイムロックされたガバナンス提案または明示的なイベントログを備えた所有者専用機能を介してのみ更新可能です。
セキュリティ監査と導入に関する考慮事項
1. 再入ガード、整数オーバーフロー保護、および未チェックの外部呼び出しリターンは、すべての支払い可能な機能にわたって必須です。
2. 価格オラクルやクロスチェーンブリッジの Oracle フィードなどの外部依存関係は、既知の安全な実装に対して検証する必要があります。
3. コントラクト展開では、可能な場合は CREATE2 経由で決定的なアドレスを使用し、予測可能なプロキシ アップグレードとフロントランニングの抵抗を可能にします。
4. すべての状態変更関数は、インデックス サービス用に、 ItemListed 、 ItemSold 、 RoyaltyPaidなどの標準化されたイベントを発行します。
5. 構造体のパッキング、ストレージに対するメモリ使用量、ループの展開などのガス最適化手法を適用して、ユーザーのトランザクション コストを削減します。
よくある質問
Q: このコントラクトを変更せずに Polygon または Arbitrum にデプロイできますか? A: はい、ガス制限などのチェーン固有のパラメーターを調整し、それらのネットワークの仮想マシンをサポートする互換性のある OpenZeppelin バージョンを使用する場合に限ります。
Q: ミント後のメタデータの更新はどのように処理すればよいですか? A: 明示的に許可されていない限り、トークン所有者または管理者に制限されたsetTokenURI関数を実装して、URI の不変性を確保できます。
Q: 自分が所有していない NFT を出品できないのはなぜですか? A: 契約では、リストリクエストを受け入れる前に、ownerOf(tokenId) == msg.senderによる所有権チェックを強制します。
Q: ETH の代わりに USDC または DAI で支払いを受け入れることは可能ですか? A: はい、ERC-20 承認ワークフローを統合し、小数点以下の検証と転送の成功を確認しながら購入機能内でsafeTransferFromを使用することで可能です。
免責事項:info@kdj.com
提供される情報は取引に関するアドバイスではありません。 kdj.com は、この記事で提供される情報に基づいて行われた投資に対して一切の責任を負いません。暗号通貨は変動性が高いため、十分な調査を行った上で慎重に投資することを強くお勧めします。
このウェブサイトで使用されているコンテンツが著作権を侵害していると思われる場合は、直ちに当社 (info@kdj.com) までご連絡ください。速やかに削除させていただきます。
- トランプ大統領がFRB議長に指名:ケビン・ウォーシュ氏がステップアップ、ウォール街も注目
- 2026-01-30 22:10:06
- 市場の変化と新しい仮想通貨の火付け役として、ビットコインのデジタルゴールドの夢が試される
- 2026-01-30 22:10:06
- バイナンスが倍増:SAFUファンドが完全にビットコインに移行、深い確信の表れ
- 2026-01-30 22:05:01
- シェブロンの第 4 四半期決算は、収益不足にもかかわらず EPS が上回ることを示し、将来の成長に期待
- 2026-01-30 22:05:01
- ビットコインの 2026 年の大きな動き: ボラティリティを新しい時代に向けて乗り切る
- 2026-01-30 22:00:01
- カルダノ (ADA) 価格見通し: 2026 年の潜在的な弱気市場の溝を乗り越える
- 2026-01-30 22:00:01
関連知識
LayerZero コントラクトを使用してクロスチェーン メッセージを実行するにはどうすればよいですか?
2026-01-18 13:19:39
LayerZero アーキテクチャを理解する1. LayerZero は、信頼できる仲介者やラップされた資産に依存せずにブロックチェーン間の通信を可能にする、軽量で許可のない相互運用性プロトコルとして動作します。 2. 各チェーンに展開されたウルトラ ライト ノード (ULN) を利用して、ブロック...
安全な署名検証のために EIP-712 を実装するにはどうすればよいですか?
2026-01-20 22:20:26
EIP-712 の概要と主な目的1. EIP-712 は、イーサリアム アプリケーションにおける型付き構造化データのハッシュと署名の標準を定義します。 2. これにより、ウォレットは、署名リクエスト中に未加工の 16 進文字列の代わりに人間が判読できるドメインおよびメッセージ フィールドを表示できる...
新しい契約を交わしてエアドロップの資格を得るにはどうすればよいですか?
2026-01-24 21:00:23
契約のやり取りの要件を理解する1. ほとんどのエアドロップ キャンペーンでは、Ethereum、Arbitrum、Base などのサポートされているブロックチェーンにデプロイされたスマート コントラクトとの直接対話が義務付けられています。 2. インタラクションには通常、dApp インターフェースに...
スマート コントラクトのセキュリティ アラートを監視するにはどうすればよいですか?
2026-01-21 07:59:57
オンチェーン監視ツール1. Etherscan や Blockscout などのブロックチェーン エクスプローラーを使用すると、コントラクト バイトコード、トランザクション ログ、内部呼び出しをリアルタイムで検査できます。 2. オンチェーンデータを信頼する前に、契約の検証ステータスを確認する必要が...
自動支払いのための契約を設定して資金を調達するにはどうすればよいですか?
2026-01-26 08:59:35
スマートコントラクトの展開を理解する1. 開発者は、ガス効率とセキュリティ要件に基づいて、Ethereum、Polygon、Arbitrum などの互換性のあるブロックチェーン プラットフォームを選択する必要があります。 2. Solidity は、特に定期的な送金や条件付き送金の場合、支払い自動化...
OpenZeppelin コントラクトを使用して安全な dApp を構築するにはどうすればよいですか?
2026-01-18 11:19:49
OpenZeppelin コントラクトの基礎を理解する1. OpenZeppelin Contracts は、イーサリアムおよび EVM 互換ブロックチェーン用に構築された、再利用可能なコミュニティ監査済みのスマート コントラクト コンポーネントのライブラリです。 2. ライブラリ内の各コントラクト...
LayerZero コントラクトを使用してクロスチェーン メッセージを実行するにはどうすればよいですか?
2026-01-18 13:19:39
LayerZero アーキテクチャを理解する1. LayerZero は、信頼できる仲介者やラップされた資産に依存せずにブロックチェーン間の通信を可能にする、軽量で許可のない相互運用性プロトコルとして動作します。 2. 各チェーンに展開されたウルトラ ライト ノード (ULN) を利用して、ブロック...
安全な署名検証のために EIP-712 を実装するにはどうすればよいですか?
2026-01-20 22:20:26
EIP-712 の概要と主な目的1. EIP-712 は、イーサリアム アプリケーションにおける型付き構造化データのハッシュと署名の標準を定義します。 2. これにより、ウォレットは、署名リクエスト中に未加工の 16 進文字列の代わりに人間が判読できるドメインおよびメッセージ フィールドを表示できる...
新しい契約を交わしてエアドロップの資格を得るにはどうすればよいですか?
2026-01-24 21:00:23
契約のやり取りの要件を理解する1. ほとんどのエアドロップ キャンペーンでは、Ethereum、Arbitrum、Base などのサポートされているブロックチェーンにデプロイされたスマート コントラクトとの直接対話が義務付けられています。 2. インタラクションには通常、dApp インターフェースに...
スマート コントラクトのセキュリティ アラートを監視するにはどうすればよいですか?
2026-01-21 07:59:57
オンチェーン監視ツール1. Etherscan や Blockscout などのブロックチェーン エクスプローラーを使用すると、コントラクト バイトコード、トランザクション ログ、内部呼び出しをリアルタイムで検査できます。 2. オンチェーンデータを信頼する前に、契約の検証ステータスを確認する必要が...
自動支払いのための契約を設定して資金を調達するにはどうすればよいですか?
2026-01-26 08:59:35
スマートコントラクトの展開を理解する1. 開発者は、ガス効率とセキュリティ要件に基づいて、Ethereum、Polygon、Arbitrum などの互換性のあるブロックチェーン プラットフォームを選択する必要があります。 2. Solidity は、特に定期的な送金や条件付き送金の場合、支払い自動化...
OpenZeppelin コントラクトを使用して安全な dApp を構築するにはどうすればよいですか?
2026-01-18 11:19:49
OpenZeppelin コントラクトの基礎を理解する1. OpenZeppelin Contracts は、イーサリアムおよび EVM 互換ブロックチェーン用に構築された、再利用可能なコミュニティ監査済みのスマート コントラクト コンポーネントのライブラリです。 2. ライブラリ内の各コントラクト...
すべての記事を見る














