How to Set Up a Discord Verification Gate to Stop Bots and Scam DMs
To set up a Discord verification gate, create a single #verify channel, give new members a restricted default role, and grant a "Verified" role only after they pass a check (a button, captcha, or account-age rule). Lock every other channel behind the Verified role so unverified bot accounts can never see your server or DM your members.
If your server just survived a wave of fake accounts spamming scam links or sliding into members' DMs with crypto offers, a verification gate is the single most effective fix. Done right, it stops automated bot accounts at the door while letting real people through in seconds. This guide walks through the exact channels, roles, and permissions you need, then shows how to wire it up cleanly with PeakBot.
Why a verification gate matters after a spam or scam wave
Most DM scams on Discord follow a predictable path. A botnet joins dozens of servers, scrapes the member list, then mass-DMs everyone with phishing links, fake Nitro giveaways, or "I accidentally reported you" support scams. The accounts are usually brand new, have no profile picture, and join in clusters within seconds of each other.
A verification gate breaks that chain in two places. First, it blocks the automated accounts that can't (or won't) complete a human step. Second, and just as important, it keeps unverified accounts from ever seeing your channels or member list in the first place, so even bots that slip in have nothing to scrape and nobody to DM.
Without a gate, your only defense is reactive: banning accounts after they've already spammed. With a gate, the spam never reaches your community. That shift from cleanup to prevention is the whole point.
Rules Screening vs a verified-role gate
Discord gives you a built-in feature called Membership Screening (the "Rules Screening" pop-up in Community servers). New members must tick a box agreeing to your rules before they can talk. It's free, native, and worth turning on.
But Rules Screening alone is weak against determined bots. It's a single checkbox with no human-verification step, and a scripted account can accept it just as easily as a person can. It also doesn't hide your channels, so a bot that accepts the rules immediately gains access.
A verified-role gate is stronger. Instead of relying on a checkbox, you:
- Give every new member a limited default role (or no access at all).
- Require an action that proves they're human, such as clicking a verification button or solving a captcha.
- Only then grant the "Verified" role that unlocks the rest of the server.
The best setup uses both: keep Rules Screening on for the agreement, and add a role gate behind it for real protection. For a broader look at hardening your server, our Discord moderation guide covers how verification fits alongside auto-mod and anti-raid.
Step 1: Create the verify channel and member role
Start with the two building blocks every gate needs: one channel where verification happens, and one role that marks who has passed.
- Create a channel named
#verify(or#start-here). Put it at the very top of your channel list so it's the first thing a new member sees. - Create a role named
Verified. Leave its permissions at the defaults for now; you'll use it in Step 3 to unlock channels. - Set the
#verifychannel permissions so that@everyonecan view and read it, but cannot send messages, add reactions, or use external emojis. The only thing a new member should be able to do here is complete the verification action.
The logic is simple: when someone joins, the only channel they can see is #verify. Everything else is invisible until they earn the Verified role. If you also run a welcome flow, point your greeting at this channel so new arrivals know exactly where to go. Our guide to setting up a Discord welcome message shows how to do that without sounding robotic.
Step 2: Add an account-age and captcha check
A bare "click here" button stops the laziest bots, but a serious botnet can script a click. Layer in two checks that are far harder to automate.
Account-age requirement. Most scam bots are throwaway accounts created hours or days before they're deployed. Set a minimum account age so accounts younger than, say, 7 days are flagged or held for manual review before they can verify. Legitimate users almost always have older accounts; bot farms rarely do. This one rule filters out a large share of low-effort raids on its own.
Captcha or human-step verification. Add a verification method that requires a genuine human action. Common options, from lightest to strictest:
- A button click that grants the role. Stops basic bots, minimal friction.
- A reaction-based check (react to verify). Similar strength to a button.
- A captcha that the user must solve, either in the channel or via a short DM/web step. This is the strongest option and the one to use if you've just been raided.
Pair the captcha with the account-age rule and you've eliminated nearly every automated joiner without asking real people to do anything more than tap a button or read a few distorted characters. Discord's own anti-spam tools (raid protection, the activity alerts in your Server Settings) work alongside this, not instead of it.
Step 3: Lock the rest of the server behind the role
This is the step people skip, and it's the one that actually stops DM scams. A verification button is pointless if unverified accounts can still see your channels and member list.
Go through your channel and category permissions and set them up like this:
- On
@everyone: deny View Channels on every category except the one holding#verify. - On the
Verifiedrole: allow View Channels on the categories you want members to access.
Because permissions cascade from categories to the channels inside them, you usually only need to set this on each top-level category, not every individual channel. The result: an account with no Verified role sees a server that contains exactly one channel, #verify, and nothing else. No member list to scrape. No channels to spam. No one to DM.
If your server has a lot of categories, it's worth doing a clean permission pass from scratch. Our Discord server setup guide walks through a sensible category and role structure you can gate this way.
Step 4: Test the new-member journey
Never trust a gate you haven't walked through yourself. Use a second Discord account (or ask a trusted member) to join as a fresh user and confirm the experience end to end.
Check each of these:
- On join, the new account sees only
#verifyand no other channels. - The account cannot see the member list or any message history.
- Completing the verification step grants the
Verifiedrole. - After verifying, the account can now see the channels you intended, and only those.
- An account younger than your age threshold is correctly held or blocked.
If any channel leaks through to the unverified account, the culprit is almost always a permission set on that specific channel overriding the category. Fix the override, then re-test. A gate is only as strong as its weakest unlocked channel.
Balancing security with a smooth first impression
A verification gate is a tradeoff. Crank it to maximum and you'll block every bot, but you'll also lose real people who don't want to solve a captcha and join a third-party site just to say hello. The right level depends on your situation.
- Calm server, no recent raids: a simple button-click gate plus Rules Screening is plenty. Keep friction near zero.
- Growing or mid-size server: add the account-age rule. It's invisible to normal users and quietly filters throwaway accounts.
- Actively being raided or scammed: turn on the full stack, captcha plus account age, until the wave passes. You can dial it back later.
Whatever level you pick, make the #verify channel clear. One short sentence explaining what to do and why beats a wall of rules. The goal is a gate that feels like a doorman, not a border checkpoint. PeakBot's context-aware AI moderation adapts strictness per channel instead of applying one blunt rule everywhere, which pairs well with a gate tuned to your traffic.
Wiring the verify channel and role with PeakBot
You can build a gate by hand with native Discord permissions, and the steps above work with any setup. The reason most owners reach for a bot is to handle the verification action itself, the button, the captcha, the auto-role grant, and to tie it into the rest of their moderation.
PeakBot is a free, AI-powered Discord bot that handles the moving parts of a verification gate alongside your other defenses:
- Reaction roles and welcome auto-role to grant
Verifiedautomatically when a member completes the verification step, all free with no time limit. - Anti-raid and anti-nuke protection that watches for the join clusters and mass-actions that signal a coordinated attack, layered on top of your gate.
- Context-aware AI moderation that reads message intent and adapts per channel, stricter in announcements, relaxed in off-topic, instead of matching a fixed keyword blocklist that bots learn to dodge.
- Full logging and analytics so you can see who's joining, who's verifying, and where spam is coming from.
PeakBot ships with 30+ free features and no trial period, which means you can stand up a complete verification gate, welcome flow, and moderation system without paying anything. If you later want the AI Server Builder, which generates a full custom server structure, gated channels included, from a plain-English description in under 60 seconds, that's part of Pro at $8.25/month per server (or $69/year).
Other bots cover pieces of this well. Carl-bot ($7.99/mo premium) is known for flexible reaction-role menus. Dyno ($4.99/mo premium) has long offered solid native auto-moderation. MEE6 ($11.95/mo premium) is the most recognizable name for leveling and onboarding. PeakBot's edge is bringing verification, anti-raid, moderation, welcome, and analytics into one free bot, so your gate isn't a bolted-on extra but part of one system.
Already powering 500+ Discord communities, PeakBot replaces MEE6, Carl-bot, Dyno, and TidyCord with a single setup. Add it from peakbot.pro, create your #verify channel and Verified role, and you have a working gate in minutes.
What's the difference between Discord's Rules Screening and a verification gate?
Rules Screening is Discord's native checkbox that makes new members agree to your rules before chatting. A verification gate goes further: it hides your channels behind a role and requires a human step (a button or captcha) to unlock them, so bots can't simply tick a box and gain access. Use both together for the strongest protection.
Will a verification gate stop scam DMs to my members?
Largely, yes. Most DM scams come from bot accounts that scrape your member list after joining. If unverified accounts can't see your channels or member list, they have no one to DM. Combine the gate with an account-age rule so throwaway accounts are filtered before they ever reach your community.
Does a verification gate scare away real new members?
It can if you over-tighten it. A simple button-click gate adds almost no friction and most users complete it in a second or two. Save the full captcha-plus-account-age setup for when you're actively being raided, then dial it back. A short, clear #verify channel message keeps the first impression smooth.
Can I set up a Discord verification gate for free?
Yes. The channel and role permissions are native Discord features that cost nothing. For the verification action and auto-role, PeakBot provides reaction roles, welcome auto-role, and anti-raid protection in its free tier with no trial period, so a complete gate costs nothing to run.
How do I test that my verification gate actually works?
Join your server with a second account as a fresh member. Confirm you can only see the #verify channel and not the member list, complete the verification step, and check that the Verified role unlocks exactly the channels you intended. If any channel leaks through, look for a permission override on that specific channel.
