![見出し画像](https://assets.st-note.com/production/uploads/images/119910302/rectangle_large_type_2_7903df8528132e8cc9a330f34f0483da.png?width=1200)
CollabLand と MintRallyで、Discordにトークンゲートを作成する方法
NFTを発行したら、こんなこと思いませんか。このNFTの保有者だけが入れるコミュニティとか、NFT保有者だけが見れるチャンネルとか作れたらいいなぁ。。
たとえば、NFT付きのプレーリーカードと組み合わせて「2023年に会った人だけ」とか「実際にお店に訪れてくれた人だけ」のチャンネルを作って特典を渡すとか。
いわゆる「トークンゲート」と言われる機能。
はい。これ、NFTの無料発行ツールであるMintRally と Collab.Landと組み合わせると、けっこう簡単に作れるんです!
しかもMintRally特有の「◯ 回参加した人対象」にすることもできるので、よりエンゲージメントを高めた設定も可能です。
ということで、今回はCollab.LandとMintRallyで、Discordにトークンゲートを作る方法をご紹介します。
ゴール - やりたいこと
想定しているゴールはこんな感じ。※ ユーザ側から見た動きです。
![](https://assets.st-note.com/img/1698218733642-P7LNlR9BcS.png?width=1200)
MintRallyで特定のNFTを取得したユーザがDiscordにアクセス
Collab.Landのbotをクリック
ウォレットアドレスからNFT保有者であるかどうか判定し、保有していればRoleが付与される
3のRoleがついたユーザだけが見れるチャンネルにアクセス可能となる
0. 準備
それでは、設定の準備をしていきましょう。
<前提>
今回の記事では、すでにMintRallyでイベントを作成し、配布するNFTがアップロードされていることを前提としています。
MintRallyでのイベント作成の方法はコチラを参考にしてください。
まずは、ゲーティングをかけたいNFTの情報をメモしておきましょう。
MintRallyで作成した対象イベントのNFTの詳細ページ「View on OpenSea」をクリックし、Openseaに掲載されている「Traits」の2つの情報「EVENTGROUPID」と「EVENTNAME」をメモしておきます。
![](https://assets.st-note.com/img/1698221513507-d1GkXF5aaX.png?width=1200)
つぎに、上記のNFT保有者に付与したいRoleをDiscordの設定で作ります。
Discordの「サーバー設定」>「ロール」>「ロールの作成」で作成します。ここでは、試しに「POM」というロールを作っておきました。
![](https://assets.st-note.com/img/1698219580840-XgcRwrPfCU.png?width=1200)
MintRallyの「特定のイベントグループ」の「特定のイベント名」のNFTを持っている人(正確にはウォレットアドレス)がDiscordに入り、Collab.Landのbotをクリックしたら、上記のRoleが自動的に付与されるということです。
それでは、実際に設定していきましょう。
1. Collab.Landの設定
- Collab.LandとDiscordの接続
Discordの「サーバー設定」>「Appディレクトリ」>「Collab.Land」を検索し「サーバーに追加」をクリックします。
![](https://assets.st-note.com/img/1698221985665-RqaNhHwdJN.png?width=1200)
外部アプリケーションとの認証のポップアップが表示されるのでOKを押し、次に進みます。Collab.LandとDiscordが接続できると、管理画面にDiscordのサーバーが表示されるはずです。
![](https://assets.st-note.com/img/1698222284914-6Rw3PgolAw.png?width=1200)
- Collab.Landにトークンゲートのロールを設定
接続できたDiscordの「TGRs」をクリックし、「+ Select role」をクリック
![](https://assets.st-note.com/img/1698239370916-kQmy1cD6LR.png?width=1200)
準備したRoleを選択し、Apply
![](https://assets.st-note.com/img/1698273364389-OGbPiu30kg.png?width=1200)
MintRallyの情報を入力します。
Chain Type:Polygon
Token Type:ERC721
Address:0x7d895Ca96caa5344EC0b732c6e1DEfa560671e14
※MintRallyのContract Addressはコチラにも記載してあります。
![](https://assets.st-note.com/img/1698239509266-aUb6u23ZuC.png?width=1200)
さらに、「Attibutes」をクリックし、「+ Add metadata」で、NFTの詳細情報も入力します。
![](https://assets.st-note.com/img/1698239726990-TWqOupNWal.png?width=1200)
ポップアップでメタデータの入力画面が表示されるので、メモしておいたEVENTGROUPIDとEVENTNAMEを入力し、Save Traitsをクリック
![](https://assets.st-note.com/img/1698239793374-IQe9oh5weP.png?width=1200)
これで、Collab.Landの設定ができました。
2. Discordの設定
つぎに、重要だけど見逃しがちな、Roleの順序を確認しておきます。
Discordの「サーバー設定」>「ロール」にいき、Collab.Landというロールの下に追加したRoleがあるかどうか確認しておきます。
※Collab.LandというロールはDiscordと接続したときに、自動で作られます。
この上下の順序が逆の場合、Collab.Landのbotが機能しないので、かならず確認しておきましょう。
![](https://assets.st-note.com/img/1698240586978-nia8Efdby4.png?width=1200)
3. テスト
これで必要な設定ができました。最後にテストです!
Collab.Land と Discordの接続をした際に、自動的に「collabland-join」というチャンネルができているはずです。
そのチャンネルで「Let's go!」をクリックしてみましょう。
![](https://assets.st-note.com/img/1698242581065-6VaKf0kXL3.png?width=1200)
設定したNFTを保有しているウォレットアドレスかどうかを確認し、Use Connected Wallets をクリック
![](https://assets.st-note.com/img/1698242602059-eV6YxNwjFE.png?width=1200)
対象のNFTを保有しているアドレスだったので、ちゃんと設定しておいたRole「POM」がつきました!!!
![](https://assets.st-note.com/img/1698242645185-AiV8VkeO0a.png?width=1200)
アカウント名をクリックして、プロフィールを開くと、こちらにもRoleとして表示されていることが確認できました。
![](https://assets.st-note.com/img/1698242819106-ABmRK5k6lC.png?width=1200)
これでトークンゲートの設定が完了です!
あとは、このRoleのみが入れるDiscordのチャンネル作成しておけばOKです。チャンネル設定> プライベートを有効設定 > 追加したRole のみアクセスできるように設定します。
おまけ: 複数回イベントに参加した人のみにRoleをつけたい場合
最後に、MintRally独自の設定をご説明します。MintRallyでは、イベントの参加回数に応じて、取得してもらうNFTを出し分けすることができます。
(詳しくはMintRallyの設定ページをご覧ください。)
たとえば、MintRallyでイベントグループのうち、6回イベントに参加した人にだけ特別なNFTを配布するよう設定した場合、OpenSeaではこのようにLevelsという情報がそのNFTに付加されます。
![](https://assets.st-note.com/img/1698243405340-k4syz6Z8Hl.png?width=1200)
この情報を、Collab.LandのAttributesのMetadataの設定で追加しておけば、「あるイベントグループ」に「6回参加した人」だけにRoleを追加する、ということができます。
▼ 以下のようにRequiredParticipateCount で値を入力します
![](https://assets.st-note.com/img/1698273518220-DAWtEZJO7h.png?width=1200)
コアに活動してくれているコントリビューターにだけ特典を渡すなど、さらにエンゲージメントを高めることもできるというわけです!
さて、今回はCollab.Land と MintRallyを使ったトークンゲートについてご説明しました。意外と簡単だなぁと思ったのではないでしょうか?
ぜひ活用してみてくださいね〜!!
MintRallyはオープンソースで開発されています。このプロダクトを応援したい場合は、こちらのGitHubの右上にあるStar☆をポチッと押していただけると、励みになります!ぜひお願いします!
また、コントリビューターも募集しております。MintRallyのサービスを作ることに興味あるかたは、ぜひ一緒に開発していきましょう。
この記事が気に入ったらサポートをしてみませんか?