未公開トークンを販売してゲームの成長を加速し、セール期間終了後にすべての未公開トークンが本来の特徴を明かすことで、プレイヤーに素晴らしい報酬を提供しましょう。このガイドでは、ERC721コントラクトのゲームアイテムを活用したドロップセールを、任意のカスタム通貨や既存通貨で実施するためのPrimary Saleコントラクトのデプロイ手順を解説します。Sequenceプラットフォームの以下の技術を使用します:

  1. Primary Sales Contract:WebショップやNFTドロップなど、プライマリセールを開始するためのコントラクトの設定・デプロイ方法。
  2. Embedded Wallet:Web SDKとSequence Embedded Walletを使ったユーザー認証。
  3. Sequence Indexer:Sequence Indexerを活用してNFTメタデータやユーザーのウォレット資産を取得。
  4. Sequence Metadata:Sequence BuilderのUIやAPIを使ったコレクションやトークンのメタデータ管理・更新。

ゲームアイテム用Primary Salesのボイラープレートをクローンする

Sequence CLIを使って、Primary Salesリポジトリを簡単にクローンできます。

npx sequence-cli boilerplates create-primary-drop-sales-erc721-starter

このリポジトリの使い方

このリポジトリで何ができるのでしょう?隠されたメタデータ付きNFTを販売できるのです!さまざまな特性やレアリティを持つトークンをユーザーに提供できます。剣?盾?絵画?ランダムなバトルパス?もしかしたらゴールデンチケットも?どんな結果が待っているのか、想像するだけでドキドキしますね!ユーザーにミステリーと、トークン公開時のご褒美を与えましょう。

未公開トークンの作成

このステップでは、スクリプトを使ってNFTコレクション用の未公開トークンを作成する方法を説明します。コレクションが正しく設定されていることを確認し、コレクション詳細画面のURLからIDをコピーしておいてください。

未公開トークンを作成するには、scripts/utils/getBodyAndKeys.ts ファイル内で collectionId と作成したいトークン数(number)を設定してください。サンプルも記載されています。

.env ファイルで JWT_SECRET_KEYVITE_PROJECT_ACCESS_KEYVITE_PROJECT_ID を必ず設定してください。

スクリプト:

pnpm create-unrevealed-tokens

プロジェクト接続フローとERC721セールスコントラクトの設定

ここからは、プロジェクトの接続フローをすべて完了し、未公開トークンを含むコレクションと紐づくERC721セールスコントラクトを設定する必要があります。

重要な注意点:

  • プライマリセールスコントラクトの在庫数は、エンドポイントで作成した未公開トークン数と同じでなければなりません。
  • 例えば、未公開トークンを300個生成した場合、セールスコントラクトの在庫も300個に設定し、コントラクトと未公開トークンの整合性を保ってください。
  • 未公開トークンのコレクションをコントラクトに紐づける。
  • ERC721セールスコントラクトの総供給量(在庫)が未公開トークン数と一致していることを確認してください。これにより、コントラクトで販売される内容と未公開トークンの間に不整合が生じません。

リポジトリで独自のPrimary Salesコントラクトを設定する

いくつかのサンプルコントラクトや変数を用意していますが、多くの場合、独自のコントラクトを利用することになるでしょう。その場合は、以下の手順に従って設定してください。

1

Sequence BuilderでPrimary Salesコントラクトをデプロイする。

まず、販売したいゲームアイテムを格納するERC721コントラクトと、Primary Salesコントラクトが必要です。詳しくはこちらのガイドをご覧ください。

2

プロジェクトのセールス設定を行う。

セールスコントラクトをデプロイしたら、ボイラープレートのセールス設定を更新します。src/salesConfigs.ts を開き、salesConfigs変数にプロジェクトで利用する各コントラクトのセール情報を、対応するネットワークごとに配列で追加してください。例:

export const salesConfigs: SaleConfiguration[] = [

  {

    nftTokenAddress: "0x70a2177079877e4aae639d1abb29ffa537b94970",

    salesContractAddress: "0xa55574c5ed4cd1dbc5feba47a204fdfb483edadd",

    chainId: 80002, //polygonAmoy

  }

];

現在Sequenceでサポートされている全チェーンはこちらで確認できます。

3

プロジェクトのデフォルトchainIdを設定する。

デフォルトのchainIdを設定するには、src/salesConfigs.ts の defaultChainId 変数を、プロジェクトで最初に表示したいchainIdに変更してください。これはsalesConfigs変数に含まれているchainIdと一致している必要があります。例:

// In this case, the chosen `defaultChainId` is 80002 (amoy), which is present in the previously declared `salesConfigs` variable.

export const defaultChainId = 80002;
4

完了です!

これでプライマリドロップセールが正しく表示・動作するようになります。購入するには、セールの通貨として設定したトークンをウォレットに用意し、購入数量を指定し、「購入」ボタンをクリックしてください!

トークンの公開

期待が高まりますね。ユーザーは自分の運命を知るのを心待ちにしています。NFTの本当の属性を公開して、みんなを喜ばせましょう!このスクリプトは、すべての未公開トークンを公開し、ランダムに生成された実際の値をNFTに割り当てます。メタデータの生成方法は自由にカスタマイズできます!

未公開トークンを公開するには、scripts/utils/getBodyAndKeys.ts ファイル内で collectionId を設定してください。サンプルも記載されています。

.env ファイルで JWT_SECRET_KEYVITE_PROJECT_ACCESS_KEYVITE_PROJECT_ID を必ず設定してください。 このステップの前に、プライマリセールを無効化するために有効期限を設定するか、コントラクトの在庫がなくなるまで待つ必要があります(必須)。

スクリプト:

pnpm reveal-tokens