NFTドロップセールの作成
このガイドでは、SequenceのPrimary Sales 721の作成方法を解説します。セールスコントラクトの作成、NFTコントラクトの作成、コレクションの作成、未公開トークンの作成・公開、ウォレット認証、購入・ミントまでの手順を含みます。
未公開トークンを販売してゲームの成長を加速し、セール期間終了後にすべての未公開トークンが本来の特徴を明かすことで、プレイヤーに素晴らしい報酬を提供しましょう。このガイドでは、ERC721コントラクトのゲームアイテムを活用したドロップセールを、任意のカスタム通貨や既存通貨で実施するためのPrimary Saleコントラクトのデプロイ手順を解説します。Sequenceプラットフォームの以下の技術を使用します:
- Primary Sales Contract:WebショップやNFTドロップなど、プライマリセールを開始するためのコントラクトの設定・デプロイ方法。
- Embedded Wallet:Web SDKとSequence Embedded Walletを使ったユーザー認証。
- Sequence Indexer:Sequence Indexerを活用してNFTメタデータやユーザーのウォレット資産を取得。
- Sequence Metadata:Sequence BuilderのUIやAPIを使ったコレクションやトークンのメタデータ管理・更新。
ゲームアイテム用Primary Salesのボイラープレートをクローンする
Sequence CLIを使って、Primary Salesリポジトリを簡単にクローンできます。
Sequence CLIを使って、Primary Salesリポジトリを簡単にクローンできます。
GithubからPrimary Salesリポジトリをクローンできます。
その後、インストールして実行してください:
依存関係をインストールすると、.env.example
が自動的に .env
にコピーされ、事前に用意されたキーでテストできるようになります。
準備ができたら、.env
の内容をあなたのプロジェクト情報に置き換えてください。
GithubのPrimary Salesボイラープレートを利用できます。
https://github.com/0xsequence-demos/primary-drop-sale-721-boilerplate にアクセスし、右上の「Use this Template」をクリックしてください。
新しく作成したリポジトリをクローンします。
その後、インストールして実行してください:
依存関係をインストールすると、.env.example
が自動的に .env
にコピーされ、事前に用意されたキーでテストできるようになります。
準備ができたら、.env
の内容をあなたのプロジェクト情報に置き換えてください。
このリポジトリの使い方
このリポジトリで何ができるのでしょう?隠されたメタデータ付きNFTを販売できるのです!さまざまな特性やレアリティを持つトークンをユーザーに提供できます。剣?盾?絵画?ランダムなバトルパス?もしかしたらゴールデンチケットも?どんな結果が待っているのか、想像するだけでドキドキしますね!ユーザーにミステリーと、トークン公開時のご褒美を与えましょう。
未公開トークンの作成
このステップでは、スクリプトを使ってNFTコレクション用の未公開トークンを作成する方法を説明します。コレクションが正しく設定されていることを確認し、コレクション詳細画面のURLからIDをコピーしておいてください。
未公開トークンを作成するには、scripts/utils/getBodyAndKeys.ts
ファイル内で collectionId
と作成したいトークン数(number
)を設定してください。サンプルも記載されています。
.env
ファイルで JWT_SECRET_KEY
、VITE_PROJECT_ACCESS_KEY
、VITE_PROJECT_ID
を必ず設定してください。
スクリプト:
プロジェクト接続フローとERC721セールスコントラクトの設定
ここからは、プロジェクトの接続フローをすべて完了し、未公開トークンを含むコレクションと紐づくERC721セールスコントラクトを設定する必要があります。
重要な注意点:
- プライマリセールスコントラクトの在庫数は、エンドポイントで作成した未公開トークン数と同じでなければなりません。
- 例えば、未公開トークンを300個生成した場合、セールスコントラクトの在庫も300個に設定し、コントラクトと未公開トークンの整合性を保ってください。
- 未公開トークンのコレクションをコントラクトに紐づける。
- ERC721セールスコントラクトの総供給量(在庫)が未公開トークン数と一致していることを確認してください。これにより、コントラクトで販売される内容と未公開トークンの間に不整合が生じません。
リポジトリで独自のPrimary Salesコントラクトを設定する
いくつかのサンプルコントラクトや変数を用意していますが、多くの場合、独自のコントラクトを利用することになるでしょう。その場合は、以下の手順に従って設定してください。
Sequence BuilderでPrimary Salesコントラクトをデプロイする。
まず、販売したいゲームアイテムを格納するERC721コントラクトと、Primary Salesコントラクトが必要です。詳しくはこちらのガイドをご覧ください。
プロジェクトのセールス設定を行う。
セールスコントラクトをデプロイしたら、ボイラープレートのセールス設定を更新します。src/salesConfigs.ts
を開き、salesConfigs変数にプロジェクトで利用する各コントラクトのセール情報を、対応するネットワークごとに配列で追加してください。例:
現在Sequenceでサポートされている全チェーンはこちらで確認できます。
プロジェクトのデフォルトchainIdを設定する。
デフォルトのchainIdを設定するには、src/salesConfigs.ts
の defaultChainId 変数を、プロジェクトで最初に表示したいchainIdに変更してください。これはsalesConfigs変数に含まれているchainIdと一致している必要があります。例:
完了です!
これでプライマリドロップセールが正しく表示・動作するようになります。購入するには、セールの通貨として設定したトークンをウォレットに用意し、購入数量を指定し、「購入」ボタンをクリックしてください!
トークンの公開
期待が高まりますね。ユーザーは自分の運命を知るのを心待ちにしています。NFTの本当の属性を公開して、みんなを喜ばせましょう!このスクリプトは、すべての未公開トークンを公開し、ランダムに生成された実際の値をNFTに割り当てます。メタデータの生成方法は自由にカスタマイズできます!
未公開トークンを公開するには、scripts/utils/getBodyAndKeys.ts
ファイル内で collectionId
を設定してください。サンプルも記載されています。
.env
ファイルで JWT_SECRET_KEY
、VITE_PROJECT_ACCESS_KEY
、VITE_PROJECT_ID
を必ず設定してください。
このステップの前に、プライマリセールを無効化するために有効期限を設定するか、コントラクトの在庫がなくなるまで待つ必要があります(必須)。