Key takeaways
- Token-gated Discord roles map wallet holdings to server permissions. Hold the required SPL token or NFT, get the role.
- A good setup starts in Discord, not in the gating tool. Create a clean role hierarchy before you publish a verification link.
- Solana gates usually check an NFT collection, an SPL token mint, or a threshold.
- The role should update after holdings change. If someone sells, transfers, or drops below the threshold, access should not last forever.
- Always test with a wallet that should pass and a wallet that should fail.
Token-gated Discord roles let a Solana community assign roles based on onchain ownership. A member connects a wallet, signs a free message, the gate checks their holdings, and Discord grants the right role automatically.
This is the setup most NFT and token founders actually need: not a big identity system, not KYC, not a spreadsheet of screenshots. Just a clean way to answer one question: does this wallet qualify for this role?

The cleanest setup starts with role design, then maps each role to one wallet rule.
Roles vs token gating
A Discord role is a permission layer. It decides which channels a member can see, what they can post, and sometimes how they are recognized in the member list.
Token gating is the rule that decides who gets the role.
Together, they create a holder space that stays tied to actual wallet ownership. The blockchain proves the member qualifies. Discord handles the permissions.
That separation matters. The gate should not be where you invent your whole server structure. Build the structure first, then connect the gate.
What you need before you start
Before touching any verification tool, collect the basics:
- a Discord server where you can manage roles and invite bots
- the SPL token mint or NFT collection you want to gate
- the minimum amount required for each role
- the exact Discord role names
- a public verification channel
- one test wallet that qualifies and one that does not
If you are not sure which asset identifier to use, slow down. Wrong mint addresses and wrong collection rules are the easiest way to create a support mess.
Step 1: create the Discord roles first
Create the roles inside Discord before wiring the gate.
For an NFT collection, the first role might be simple:
| Role | Rule | Opens |
|---|---|---|
| Holder | Holds at least 1 NFT | Holder chat |
| Collector | Holds 5 or more NFTs | Collector room |
| Whale | Holds 10 or more NFTs | High-conviction room |
| Partner | Holds a partner asset | Campaign channel |
For a token community, the roles usually come from token thresholds:
| Role | Rule | Opens |
|---|---|---|
| Token Holder | Holds at least 1,000 tokens | Main gated chat |
| Core Holder | Holds at least 10,000 tokens | Deeper discussion |
| Whale | Holds at least 100,000 tokens | Closer team access |
Keep the first version simple. You can always add a second ladder later. You cannot easily undo confusion after members already verified into ten overlapping roles.
Step 2: check role hierarchy
Discord has one boring rule that causes a lot of pain: a bot cannot assign roles above its own highest role.
After you add a gating bot, make sure the bot role sits above every role it needs to assign. If the bot is below Holder, it will fail even if the wallet qualifies.
This is usually the first thing to check when a member says, "I verified but I did not get the role."
Step 3: map each role to one wallet rule
Each role needs a clear rule:
- NFT collection gate: hold at least one NFT from the collection
- SPL token gate: hold at least a minimum token balance
- threshold gate: hold more than a defined amount
- partner gate: hold an NFT or token from another project
- combined gate: hold one asset and meet another requirement
Do not create rules that are hard to explain. If a member cannot understand why they did or did not qualify, your moderators will inherit the confusion.
The best rules sound like plain English:
Hold 1 NFT from this collection to unlock the Holder role.
or:
Hold at least 10,000 tokens to unlock the Core Holder room.
Step 4: publish one official verification path
A verification link should be easy to find and hard to fake.
Use one official channel for verification. Pin the link. Announce it from a trusted account. Tell members what they are signing.
A good verification message should make three things clear:
- the member signs a message, not a token transfer
- verification is gasless
- the gate checks holdings and assigns roles automatically
Never train members to trust random links dropped in chat. If your community is valuable, fake verification links will appear eventually.
Step 5: turn on recurring checks
A one-time holder check gets people in. Recurring checks keep the room honest.
People buy, sell, transfer, consolidate wallets, and move assets into custody or staking setups. If roles never update, the holder room slowly becomes stale.
For a serious community, the gate should be able to remove a role when the wallet no longer qualifies. That does not mean punishing sellers. It means the server reflects the current rule.
Step 6: test before announcing
Run a small test before you send the verification link to the whole server.
Test with:
- a wallet that should qualify
- a wallet that should fail
- a wallet near the threshold
- a role hierarchy check
- a channel permission check
For token thresholds, watch decimals. A token with six decimals can confuse teams if they enter a raw amount in the wrong format. For NFT gates, make sure the rule targets the intended collection, not a random mint or lookalike.
Common mistakes
The common failures are not glamorous. They are basic setup issues:
- the bot role is too low
- the wrong SPL mint was used
- the wrong NFT collection identifier was used
- channel permissions still allow
@everyone - tiers overlap in a confusing way
- members connect an empty wallet
- the team never explains what the signature does
- roles are assigned once and never resynced
Most support tickets disappear when the verification channel is clear, the rules are simple, and mods know how to debug wrong-wallet cases.
Where Ancla fits
Ancla is built for Solana teams that need token-gated Discord and Telegram access without forcing everything into a generic multichain workflow. You can gate by Solana holdings, map access to your community surfaces, and keep access updated as wallets change.
The practical advantage is speed. A founder should be able to create a holder role, publish the verification path, test a wallet, and launch without turning the server into an engineering project.
For the bigger strategy behind gating, read Solana Token Gating: The Complete Guide for Community Founders. For role taxonomy, read The Most Common Roles in NFT and Token Communities.
Ready to set up gated roles? Start with Ancla at ancla.club/select-plan.
Trusted by Solana communities running on Ancla
Frequently asked questions
A member connects a Solana wallet, signs a free message, and the gate checks whether that wallet holds the required SPL token or NFT before assigning the mapped Discord role.
Yes. A serious gating setup should recheck holdings and remove the role when a member no longer holds the required asset or drops below the threshold.
Yes. You can map different token or NFT thresholds to roles such as Holder, Collector, Core Holder, or Whale.
Yes. Solana communities commonly gate by SPL token mint, NFT collection ownership, or a combination of both.
The most common causes are a bot role that is too low in Discord, the wrong asset rule, the member connecting an empty wallet, or channel permissions not matching the role.