About
Gamma's Discord bots can be added and configured in minutes and have no ongoing costs or maintenance. This setup guide will walk you through the process.
Getting started
We recommend reading the instructions below in their entirety before proceeding. Once ready, step one will require you to visit a link to install the bot on your server.
- Install the bot in your community's Discord server by visiting this link: Install Bot
- Select an existing channel or create channels you'd like to use for the bot feed. This might be something like #sales or #marketplace-events or similar. You can post to multiple channels if you'd like to split different feeds into different channels. Make sure your bot has permission to access and post to the channel. If you don't see the bot in the sidebar within the channel, it likely doesn't have permission to access the channel.
- Verify that the bot has sufficient permissions to post to the selected channel. You can do so by calling the following command:
-
/check-bot-permissions
-
- Once the bot is part of the channel, the server owner can type /ordinals-sales (or any other /-watch command), and will be able to select the collection and feed to subscribe to.
Example subscription setup
You can watch an example of subscribing to a specific bot feed in the video below.
Subscription commands available
Ordinals
/ordinals-listings
/ordinals-sales
/view-channel-subscriptions
/remove-channel-subscription
Stacks
/stacks-watch-listings
/stacks-watch-sales
/stacks-watch-unlistings
/stacks-watch-offers
/stacks-watch-auctions
/stacks-watch-dao
/stacks-watch-stacks-blocks
/view-channel-subscriptions
/remove-channel-subscription
Discord account verification
Ordinals
Discord account verification is coming soon for ordinals / Bitcoin addresses. We're working with wallet providers to ensure message signing to prove identity of a Bitcoin address containing ordinals.
Stacks
Discord server owners and community members alike can use the Discord account verification process to link their Discord account to their Stacks address(es) and Gamma profile(s).
This process uses Discord OAuth to securely share Discord account ownership details and basic profile information back to Gamma. You'll be informed exactly what data is being shared when you begin the process below. Similarly, the process uses your connected Gamma wallet and secure message signing to verify the ownership of your Stacks address, Gamma profile, and blockchain holdings.
This process allows server owners to validate community members based on their holdings, allowing for NFT-gated communities and information sharing on Discord.
How to link Discord accounts to Stacks addresses
- To connect a Discord account to a Stacks address, Discord admins and users will call the same command, listed below:
/verify
- A message will appear from the bot instructing the user to begin the process which will first require the user to verify information being shared from Discord to Gamma
- The user will be redirected to a Gamma page to perform the same process for their Stacks address and Gamma profile. If the user is not currently connected with their wallet to Gamma, they will be asked to connect and sign a message authenticating their session.
- Once completed, the user will be told that the process has completed successfully and that they can safely close their browser window.
Role assignment based on verified holdings
After you've configured the Gamma bot in your Discord server, you can use the bot's role mapping feature to create gated communities based on NFT holdings. We also support a more granular role mapping based on a given trait's presence in a user's NFT holdings, for example, "Red background".
The below steps also assume that you've already created Discord roles and role-gated channels. Information on how to do this process can be found in this Discord knowledge base article.
Managing role mappings (NFT holdings)
- To create a new role mapping, call the below command in any channel to begin the role mapping process:
/create-role-mapping
- Next, you'll enter the role, the collection, and the number of NFTs that meet the threshold to qualify for the selected role. When finished, you can hit enter to create the role mapping.
- To review and remove existing role mappings, you'll follow a similar process but instead use the below commands:
/view-role-mappings
/remove-role-mapping
Managing trait-based role mappings (NFT holdings of a given trait)
- To create a new trait-based role mapping, call the below command in any channel to begin the role mapping process:
/create-trait-role-mapping
- Next, you'll enter the role, the collection, the trait category and trait name, and the number of NFTs that meet the threshold to qualify for the selected role. When finished, you can hit enter to create the role mapping.
- To review and remove existing role mappings, you'll follow a similar process but instead use the below commands:
/view-role-mappings
/remove-role-mapping
Syncing user roles based on role mappings
Even if a user is actively holding the NFTs required to be granted a mapped role, their status as a holder must be synced with the bot in order for roles to be granted. This process works the same way in reverse if the user sells or transfers away their once-verified holdings.
A server owner can sync roles for all users within their server, or an individual user can sync their own roles using the same command. After a user successfully links their Discord account to their Stacks address, they'll be automatically instructed to run the sync roles command.
- To sync roles, a server owner or individual user can call this command
/sync-roles
Managing permissions to view and interact with bot commands
By default, the bot's admin commands (e.g. /watch-listings) will appear to all users within the server. However, only Server Admins will actually be able to call such commands successfully.
If a Discord users / server members attempts to use the bot commands, the bot will send an error message saying the user does not have permission to run the command. This does not apply to community commands such as /floor which is available to all users within a channel where the user and bot can both post.
If you'd like to restrict users from interacting with the bot within some channels (including community commands), you can have the bot post to a channel that is read-only to community members. You can then remove the bot's access from community channels where it isn't needed. If a user cannot post to the channel, they won't have the ability to call a bot's function.
Hiding all commands from users (not recommended)
If you'd like to hide commands from being seen by users at all, you can remove the “Application Commands” permission at the Discord server level for users. This is located within the main server settings. Please note that this setting prevents all slash commands on all bots within your server.
Other help and troubleshooting
View Available Commands
Hit the slash key ( / ) to view and scroll through a list of all available commands. When you start typing the words for the command you are looking for, this will instantly filter out commands that don't match your search.
Missing Manage Roles permission
If you request an action from the bot that requires elevated permissions (e.g. Manage Roles permission), the bot will return an error indicating it requires elevated permissions. You can click the provided link to grant the bot the necessary permissions.
Other issues or questions
If you need additional help getting started or troubleshooting issues with your bot, we recommend opening a support ticket with your request.
Comments
0 comments
Please sign in to leave a comment.