このガイドでは、BuilderでWeb3ゲームアイテムコントラクトをセットアップしデプロイする方法を解説します。

前提条件:プロジェクトの作成

このガイドは、すでにBuilderにサインアップし、プロジェクトを作成済みであることを前提としています。

ERC721とERC1155の違い

どちらのコントラクトもNFTをミントできますが、ERC721は初期の標準であり、特にデジタルコレクティブル分野で広く採用されています。シンプルでセキュリティ監査がしやすい点が特徴で、ERC721トークンはすべて固有であるため、多くのNFTマーケットプレイスで認知されています。たとえば、同じ資産を複数扱う場合や、1つのコレクション内に1種類のアイテムが多数ある場合はERC721コントラクトが適しています。

ERC721の例:Azuki

一方、ERC1155は、ファンジブルトークンとノンファンジブルトークンの両方を1つのコントラクトで効率的にバッチ処理できる柔軟性があります。多くのアイテムと数量の組み合わせを扱う場合に適していますが、その分複雑さが増し、セキュリティ面での注意が必要です。

ERC1155の例:Skyweaver

ステップ1:コントラクト画面へ移動

左上の project からコレクティブルを作成したいプロジェクトを選択し、contracts セクションに進み、+ Deploy new contract を選択します。

ステップ2:コレクティブルの種類を選択する

次に、Web3ゲームアイテムコレクション(ERC1155)またはNFTコレクション(ERC721)から選択します。この例では、Web3ゲームアイテムコレクション(ERC1155)を例に手順を説明します。

ERC1155ERC721のデプロイ時の唯一の違いは、ERC721 NFTコレクションにはsymbolを追加する点です。

ステップ3:コントラクトの詳細を入力

Contract Name(コントラクト名)とOwner(オーナー)を指定してコントラクトの詳細を入力し、必要に応じてロイヤリティも設定できます。オーナーアドレスが右上に表示されているSequenceウォレットであること、また、そのウォレットにメインネットで十分な資金があることを確認してください。テストネットの場合は、これらの取引手数料は当社が負担します。

注意:

nameは後からBuilderのインターフェースで変更できますが、Sequence全体では更新されても、一般的なエクスプローラーは情報を再インデックスしないため、最初に入力した内容がそのまま残ります。

ステップ4:コントラクトのデプロイ

http://sequence.app/sign-transaction のポップアップウィンドウからコントラクトをデプロイし、confirm を選択して署名します。

すべてのテストネットでは無料で取引できます。

オプション:コントラクトにMinterロールを追加する

Sequenceのコントラクトにはデフォルトでアクセスコントロール機能があります。場合によっては、特定のアドレスにmint()などの関数を呼び出す権限を与えたいことがあります。

まず、contracts セクションで先ほどデプロイしたコントラクトを選択します。

次に、Write Contract セクションに進みます。

コントラクト書き込みタブのgrantRoleセクションへ進みます。

以下の情報で入力してください。

bytes32 role: 0x9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6 address account: <ウォレットアドレス>

ウォレットアドレスには、ミント権限を付与したいアドレス(特にSequenceウォレット)を入力します。

write を選択し、これまでと同様にポップアップウィンドウでトランザクションに署名して完了します。

Response Success の確認メッセージが表示されます。

入力したロール文字列は、solidityでは solidityPackedKeccak256("MINTER_ROLE")、javascriptでは ethers.solidityPackedKeccak256(ethers.toUtf8Bytes("MINTER_ROLE")) の結果です。

一般的なパターンとして、Cloudflare Workerのようなオフチェーンコンピュートとリレイヤーウォレットを使ってトランザクションを送信する方法があります。その場合はアカウント欄に入力します。詳しくはこちらをご覧ください。

ステップ6:ウォレットアドレスにトークンをミント

Write Contractセクションのmintカードに移動し、toにはトークンを受け取りたいウォレットアドレス、tokenId(通常は0から開始)、amount(発行するトークン数)、data欄には通常0x00(追加データがない場合)を入力します。

ステップ7:ミントしたコレクティブルを確認する

これで完了です!

Transactions タブで、ウォレットアドレスに対してブロックチェーンに送信されたトランザクションを確認できます。