DiscordとBotを学ぶ - NFTホルダーのみ入れるチャンネルの設定 -
はじめに
コミュニケーションツールにDiscordというのがあって、
管理者がサーバを自由に作成でき、
メインはチャットでの書き込み、音声でのやり取りもできる。
テーマごとにチャンネルを分けて、話題の管理も可能。
目的
今回は、特定のNFTを所持しているユーザのみ参加できるチャンネルを作成、設定したい。
目次
- はじめに
- 目的
- サーバ作成
- 参考サイト
- Bot Collab.Land導入
- Collab.Landのロールを最上位にする
- 限定用ロールを作成する
- 限定チャンネル作成
- Botの設定
- 接続側の確認
- ウォレットに接続
- 注意
- ご招待
サーバ作成
まずはサーバを作成しないと始まりません。
Discordを起動して(今回はPC版)+マークをクリック。
サーバの作成方法を選択。今回は「オリジナルの作成」を選択した。
サーバ名を入力して「新規作成」
サーバ作成はあっさり完了
参考サイト
以下サイトを参考に限定チャンネルを作っていきます。
Bot Collab.Land導入
限定チャンネルの機能を実現するにはCollab.LandというBotを使用する。
BotとはDiscordで何かと便利な機能を持つプログラム。
メジャーなものではアンケート機能を持つSimplePollなどがある。
Collab.Land にアクセス
作成したサーバを割り当てる。
Collab.Landのロールを最上位にする
ロール設定でCollab.Landが最上位になるように操作・設定する。
限定用ロールを作成する
NFTを持っているユーザのみを対象とするロールを作成する。
今回は拙作の迷言NFT↓
を所持しているユーザのみアクセスできるようにする。
限定チャンネル作成
「プライベートチャンネル」を選択して「次へ」
作成したロールを選択
チャンネルができたことを確認
これで、「迷言ホルダーのみ」チャンネルには「NFT限定-迷言」ロールを持っているユーザしか入れない。
Botの設定
クリックして進めていくと、↓の画面に展開する。
「Select role」をクリック
ContractAddress を Addressに設定。
TokenTypeはそのまま
TokenIDにコレクションのURLを設定
単体で制限したい場合には、TokenID欄にContractAddressを設定。
MinAmountは最小の所持値。この設定だと1個以上持っていれば入れる。
接続側の確認
テスト用にdiscordアカウントを作成して、そちらから作成したサーバに参加する。
当然限定チャンネルは見えない。
ウォレットに接続
迷言NFTを保持しているウォレットに接続すると、限定チャンネルの表示が確認できた。
逆に、NFTを保持していないウォレットに接続すると・・
非表示となった。
注意
接続時にネットワークが違うとエラーになるようだ。
例えば今回はイーサリウムのNFTを指定したが、認証でMetamaskでPolygonを選択しているとエラーになった。
また、一度MetaMaskとCollabLandを接続すると切断できない?今のところ切断の方法が不明。
ご招待
サーバに自分しか入ってないとテストしずらい。
テストのために試しに入ってもいいよーという方、以下のリンクから参加お願いします。
以上