見出し画像

CollabLand と MintRallyで、Discordにトークンゲートを作成する方法

NFTを発行したら、こんなこと思いませんか。このNFTの保有者だけが入れるコミュニティとか、NFT保有者だけが見れるチャンネルとか作れたらいいなぁ。。
たとえば、NFT付きのプレーリーカードと組み合わせて「2023年に会った人だけ」とか「実際にお店に訪れてくれた人だけ」のチャンネルを作って特典を渡すとか。

いわゆる「トークンゲート」と言われる機能。

はい。これ、NFTの無料発行ツールであるMintRally と Collab.Landと組み合わせると、けっこう簡単に作れるんです!

しかもMintRally特有の「◯ 回参加した人対象」にすることもできるので、よりエンゲージメントを高めた設定も可能です。

ということで、今回はCollab.LandとMintRallyで、Discordにトークンゲートを作る方法をご紹介します。


ゴール - やりたいこと

想定しているゴールはこんな感じ。※ ユーザ側から見た動きです。

  1.  MintRallyで特定のNFTを取得したユーザがDiscordにアクセス

  2. Collab.Landのbotをクリック

  3. ウォレットアドレスからNFT保有者であるかどうか判定し、保有していればRoleが付与される

  4.  3のRoleがついたユーザだけが見れるチャンネルにアクセス可能となる

0. 準備

それでは、設定の準備をしていきましょう。

前提
今回の記事では、すでにMintRallyでイベントを作成し、配布するNFTがアップロードされていることを前提としています。
MintRallyでのイベント作成の方法はコチラを参考にしてください。

まずは、ゲーティングをかけたいNFTの情報をメモしておきましょう。

MintRallyで作成した対象イベントのNFTの詳細ページ「View on OpenSea」をクリックし、Openseaに掲載されている「Traits」の2つの情報「EVENTGROUPID」と「EVENTNAME」をメモしておきます。

つぎに、上記のNFT保有者に付与したいRoleをDiscordの設定で作ります。

Discordの「サーバー設定」>「ロール」>「ロールの作成」で作成します。ここでは、試しに「POM」というロールを作っておきました。

 

MintRallyの「特定のイベントグループ」の「特定のイベント名」のNFTを持っている人(正確にはウォレットアドレス)がDiscordに入り、Collab.Landのbotをクリックしたら、上記のRoleが自動的に付与されるということです。

それでは、実際に設定していきましょう。

1. Collab.Landの設定

- Collab.LandとDiscordの接続

Discordの「サーバー設定」>「Appディレクトリ」>「Collab.Land」を検索し「サーバーに追加」をクリックします。

外部アプリケーションとの認証のポップアップが表示されるのでOKを押し、次に進みます。Collab.LandとDiscordが接続できると、管理画面にDiscordのサーバーが表示されるはずです。

- Collab.Landにトークンゲートのロールを設定

接続できたDiscordの「TGRs」をクリックし、「+ Select role」をクリック

準備したRoleを選択し、Apply

MintRallyの情報を入力します。

Chain Type:Polygon
Token Type:ERC721
Address:0x7d895Ca96caa5344EC0b732c6e1DEfa560671e14
※MintRallyのContract Addressはコチラにも記載してあります。

さらに、「Attibutes」をクリックし、「+ Add metadata」で、NFTの詳細情報も入力します。

ポップアップでメタデータの入力画面が表示されるので、メモしておいたEVENTGROUPIDEVENTNAMEを入力し、Save Traitsをクリック

これで、Collab.Landの設定ができました。

2. Discordの設定

つぎに、重要だけど見逃しがちな、Roleの順序を確認しておきます。

Discordの「サーバー設定」>「ロール」にいき、Collab.Landというロールの下に追加したRoleがあるかどうか確認しておきます。
※Collab.LandというロールはDiscordと接続したときに、自動で作られます。

この上下の順序が逆の場合、Collab.Landのbotが機能しないので、かならず確認しておきましょう。

3. テスト

これで必要な設定ができました。最後にテストです!

Collab.Land と Discordの接続をした際に、自動的に「collabland-join」というチャンネルができているはずです。

そのチャンネルで「Let's go!」をクリックしてみましょう。

設定したNFTを保有しているウォレットアドレスかどうかを確認し、Use Connected Wallets をクリック

対象のNFTを保有しているアドレスだったので、ちゃんと設定しておいたRole「POM」がつきました!!!

アカウント名をクリックして、プロフィールを開くと、こちらにもRoleとして表示されていることが確認できました。

これでトークンゲートの設定が完了です!

あとは、このRoleのみが入れるDiscordのチャンネル作成しておけばOKです。チャンネル設定> プライベートを有効設定 > 追加したRole のみアクセスできるように設定します。

おまけ: 複数回イベントに参加した人のみにRoleをつけたい場合

最後に、MintRally独自の設定をご説明します。MintRallyでは、イベントの参加回数に応じて、取得してもらうNFTを出し分けすることができます。
(詳しくはMintRallyの設定ページをご覧ください。)

たとえば、MintRallyでイベントグループのうち、6回イベントに参加した人にだけ特別なNFTを配布するよう設定した場合、OpenSeaではこのようにLevelsという情報がそのNFTに付加されます。

この情報を、Collab.LandのAttributesのMetadataの設定で追加しておけば、「あるイベントグループ」に「6回参加した人」だけにRoleを追加する、ということができます。

▼ 以下のようにRequiredParticipateCount で値を入力します

コアに活動してくれているコントリビューターにだけ特典を渡すなど、さらにエンゲージメントを高めることもできるというわけです!

さて、今回はCollab.Land と MintRallyを使ったトークンゲートについてご説明しました。意外と簡単だなぁと思ったのではないでしょうか?

ぜひ活用してみてくださいね〜!!

MintRallyはオープンソースで開発されています。このプロダクトを応援したい場合は、こちらのGitHubの右上にあるStar☆をポチッと押していただけると、励みになります!ぜひお願いします!

また、コントリビューターも募集しております。MintRallyのサービスを作ることに興味あるかたは、ぜひ一緒に開発していきましょう。


この記事が気に入ったらサポートをしてみませんか?