はじめに
ノーコードツールのthirdwebを利用してOasysのテストネットにNFTをデプロイします。
今まではSolidityとopenzeppelinでNFTのコントラクトをスクラッチ実装していたが、基本的な処理をするコントラクトはthirdwebがラインナップとして提供しているものがあるので、そちらを利用した方が開発が楽にできそうであった。
今回はNFTのエアドロップを簡単に設定可能な、「NFT Drop」をデプロイする。
事前準備
1. ウォレットの準備とthirdwebアカウントの作成
thirdwebを利用するためにはWeb3のウォレットが必要となる。今回はMetamaskを利用してthirdwebを利用する。
Metamaskは、ChromeウェブストアからChrome拡張ダウンロードし、アカウントを作成する。
ウォレットの作成手順は以下のリンクなどを参照。
ウォレットの準備ができたら、thirdwebにアクセスする。
アクセス後「Connect Wallet」よりウォレットとの接続を行う。
利用するウォレットを選択する画面が表示されるため、「Metamask」を選択する。
初回の場合、サインインの要求画面が表示され流ので「Sign In」を選択する。
その後Metamaskの拡張機能が開き、thirdwebのページに対して署名が要求されるため、「署名」を選択する.
ダッシュボード画面に遷移する。画面右上にMetamaskのアイコンが表示されていれば、正常に接続されている状態となる。
2. OasysのTestnetに接続
Metamaskに設定を追加し、Oasysのテストネットに接続する。今回はOasysのテストネットの一つである、HUB-Testnetに接続する。
Metamaskの詳細メニューより、「設定」 > 「ネットワーク」を選択する。
現在接続可能なネットワークの一覧が表示されるので、「ネットワークを追加」を選択する
以下のネットワークの追加画面に遷移する。一般的なネットワークであれば検索エリアから追加が可能だが、Oasysのテストネットは検索では出てこないため、「ネットワークを手動で追加」から手動で追加する必要がある。
testnetの情報を入力する。「ネットワーク名」は任意の名称で、それ以外はこちらの情報を入力する。
項目 | 入力内容 |
---|---|
ネットワーク名 | 任意の名称。今回は「Oasys Testnet Hub」を選択する |
新しいPRC URL | https://rpc.testnet.oasys.games |
チェーンID | 9372 |
通貨記号 | OAS |
ブロックエクスプローラーのURL | https://explorer.testnet.oasys.games/ |
ネットワークが追加されたらポップアップが表示されるので、「Oasys Testnet Hubに切り替える」をクリックする。
画面左上を確認して「Oasys Tesnet Hub」と表示されていることを確認する。
デプロイに必要なサンプルのトークンは以下のURLから取得する。「Address」の箇所に自身のウォレットアドレスを入力する。
3. OasysのテストネットにNFTのデプロイ
NFTをOasysのテストネットにデプロイする。はじめにExploreのページに遷移する。
「NFT Drop」を選択し、詳細画面の「Deploy now」をクリックする。
メニューが表示されるので、必要情報を入力する。
項目 | 入力内容 |
---|---|
Image | (オプション)コントラクトのアイコン(オプション) |
Name | (必須)コントラクト名、任意の名称 |
Symbol | (オプション)コントラクトが発行するトークンの通貨。Metamask上でトークン数の後に10BTC や10ETH のように、単位として表示される |
Description | (オプション)トークンの概要 |
Royalties | (必須)NFTの二次販売のロイヤリティを受け取るアドレス。デフォルトで自身のウォレットアドレスが表示される |
Primary Sales | (必須)NFTの初期販売のロイヤリティを受け取るアドレス。デフォルトで自身のウォレットアドレスが表示され |
「Network / Chain」の項目には、先ほどMetamaskで登録したものと同じ、Oasysのテストネットの情報を入力する。入力が完了したら「Add Network」をクリックする。
設定が完了したら「Deploy Now」をクリックする。
Metamaskが起動してガス代の見積もりが提示されるため、「確認」をクリックする。
再度Metamaskが起動し、署名が要求されるため「署名」をクリックする。
デプロイが成功し、以下のダッシュボードが表示されたらNFTの作成完了。
4. NFTのMint
サイドバーの「Extensins > NFTs」をクリックする。
その後「Single Upload」にNFTをアップロードする。複数ファイルを同時にアップロードするときは、隣の「Batch Upload」を利用する。
デプロイが完了したので早速NFTをMintする。「Name」だけ必須項目でそれ以外は任意入力。今回は「Select file」にこのアカウントのアイコンをアップロードする。
※「Select file」でファイルアップロードしても、画面は更新されていない
完了したら「Lazy Mint NFT」でNFTをMintする。Metamaskの承認を許可し、しばらく待つとNFTが発行される。ダッシュボードに以下のように表示されれば作成が完了となる。
5.請求情報(Claim)の設定
現時点では、デプロイしたNFTは誰もエアドロップできない状態になっている。エアドロップできるようにするには、コントラクトにNFTの販売価格や購入可能なユーザを指定など、請求条件を設定する必要がある。
「Claim Conditions > Add Phase」よりNFTの請求条件を設定する。今回は誰でも請求できるように「Public」を指定する。
その後詳細な設定を入力していく。
各設定項目に入力する内容は以下の通り。
項目 | 入力内容 |
---|---|
Name | 管理者が識別するための名前、任意の名称で良い |
When will this phase start? | この請求情報が有効になる日 |
How many NFTs will you drop in this phase? | この請求情報でドロップ可能なNFTの数 |
How much do you want to charge to claim each NFT? | NFTのドロップに必要な、手数料を除いたトークン数 |
How many NFTs can be claimed per wallet? | 1つウォレットが獲得可能なNFT数 |
今回は特に指定せず、デフォルトのまま利用し「Save Phase」をクリックする。Metamaskの承認が完了ししばらくすると請求情報が一覧に表示される。
こちらで「Claim」の設定が完了となる。
6. エアドロップの実行
準備ができたので、エアドロップを試してみる。NFTsのダッシュボードの「Claim」ボタンから実行する。
「Claim」の数量を聞かれるので「1」を入力し、「Claim NFT」をクリックする。
実行するとNFTのOwner
が自分のウォレットアドレスになっている。
Oasysのテストネットにエアドロップ用のNFTをデプロイできた。
おわりに
thirdwebを利用することで、簡単にNFTを作成~デプロイまで実行できた。今までSolidityでスクラッチ開発していたが、よほど特殊な機能を持たない限り、こういったノーコードツールで実装できると良さそう。
thirdwebはSDKも充実していいるので、そこらへんも紹介したいですね。
フルスクラッチで実装する場合
コントラクトをPythonで実行する場合