EGO-LOG

40代2児の父。主にプログラム学習と開発、仮想通貨、メタバース、たまに関係ないことを綴る。

DiscordとBotを学ぶ - NFTホルダーのみ入れるチャンネルの設定 -

はじめに

コミュニケーションツールにDiscordというのがあって、

管理者がサーバを自由に作成でき、

メインはチャットでの書き込み、音声でのやり取りもできる。

テーマごとにチャンネルを分けて、話題の管理も可能。

discord.com

 

目的

今回は、特定のNFTを所持しているユーザのみ参加できるチャンネルを作成、設定したい。

 

目次

 

サーバ作成

まずはサーバを作成しないと始まりません。

Discordを起動して(今回はPC版)+マークをクリック。

サーバの作成方法を選択。今回は「オリジナルの作成」を選択した。

サーバ名を入力して「新規作成」

サーバ作成はあっさり完了

 

参考サイト

以下サイトを参考に限定チャンネルを作っていきます。

www.sho-t.net

 

Bot Collab.Land導入

限定チャンネルの機能を実現するにはCollab.LandというBotを使用する。

BotとはDiscordで何かと便利な機能を持つプログラム。

メジャーなものではアンケート機能を持つSimplePollなどがある。

 

Collab.Land にアクセス

作成したサーバを割り当てる。


Collab.Landのロールを最上位にする

ロール設定でCollab.Landが最上位になるように操作・設定する。



限定用ロールを作成する

NFTを持っているユーザのみを対象とするロールを作成する。

今回は拙作の迷言NFT↓

opensea.io

を所持しているユーザのみアクセスできるようにする。

 




限定チャンネル作成

「プライベートチャンネル」を選択して「次へ」

作成したロールを選択

チャンネルができたことを確認

これで、「迷言ホルダーのみ」チャンネルには「NFT限定-迷言」ロールを持っているユーザしか入れない。

Botの設定

クリックして進めていくと、↓の画面に展開する。

「Select role」をクリック

 

ContractAddress を Addressに設定。

TokenTypeはそのまま

TokenIDにコレクションのURLを設定

単体で制限したい場合には、TokenID欄にContractAddressを設定。

 

MinAmountは最小の所持値。この設定だと1個以上持っていれば入れる。

 

接続側の確認

テスト用にdiscordアカウントを作成して、そちらから作成したサーバに参加する。

当然限定チャンネルは見えない。

ウォレットに接続

迷言NFTを保持しているウォレットに接続すると、限定チャンネルの表示が確認できた。

 

逆に、NFTを保持していないウォレットに接続すると・・

非表示となった。

 

注意

接続時にネットワークが違うとエラーになるようだ。

例えば今回はイーサリウムのNFTを指定したが、認証でMetamaskでPolygonを選択しているとエラーになった。

また、一度MetaMaskとCollabLandを接続すると切断できない?今のところ切断の方法が不明。

 

ご招待

サーバに自分しか入ってないとテストしずらい。

テストのために試しに入ってもいいよーという方、以下のリンクから参加お願いします。

discord.gg

 

 

以上