How to set up verification on a Discord server
Step-by-step guide to Discord server verification: verification levels, a verified role, channel permissions, rules screening and a verification bot.
By the Double Counter teamUpdated 9 min read
Key takeaways
- Server verification means new members see one channel and must pass a check before a “verified” role unlocks the rest.
- It has three parts: Discord's verification level, a role-and-permissions gate, and something that decides who gets the role.
- The gate only works if @everyone is locked out of your channels. A verified role that unlocks nothing is the most common mistake.
- Reaction roles and captchas only prove a human clicked. A verification bot can also catch alt accounts, VPNs and raids.
- Never use @everyone as the verified role, keep the bot's role above the verified role, and test with a second account approved by staff.
Verification is the front door of a Discord server. Done well, real members get in within seconds and spam bots, raiders and banned members do not get in at all. Done badly, it either lets everyone through or loses half your newcomers at a puzzle.
This guide builds a complete verification system from scratch: the settings Discord already gives you, the role and permission structure, and a verification bot for the checks Discord cannot do. It takes about fifteen minutes.
What “verification” means on Discord
The word covers three different things, and people often mix them up:
- Account verification: a user confirming their email address or phone number with Discord.
- Verified servers and bots: the checkmark Discord gives to official communities and to bots it has reviewed.
- Server (member) verification: a gate you build so that new members must pass a check before they can see or post in your channels.
This article is about the third. Every member verification system, whatever tool runs it, has the same shape: newcomers land in a restricted area, pass a check, and receive a role that unlocks the server.
Step 1: set Discord's verification level
Open Server Settings → Safety Setup and choose a verification level. It decides what an account needs before it can send messages:
| Level | Requirement |
|---|---|
| None | No restriction. |
| Low | A verified email address on the Discord account. |
| Medium | Also registered on Discord for more than 5 minutes. |
| High | Also a member of your server for more than 10 minutes. |
| Highest | A verified phone number on the Discord account. |
Medium suits most communities. High and Highest add real friction for legitimate newcomers and are better kept for periods when the server is under attack. Whatever you choose, treat it as a speed bump: an email address or a phone number costs an attacker very little.
Step 2: build the gate with a verified role
- Create a role called
Verified(or Member). Give it no special permissions for now. - Create a verification channel, for example
#verify. Allow@everyoneto view it and read its history. Deny Send Messages so it cannot be flooded. - Lock everything else. On each category, deny View Channel for
@everyoneand allow it forVerified. Channels synced to their category follow automatically. - Hide the verification channel from verified members by denying View Channel for
Verifiedthere. It keeps the member list of that channel short and avoids confusion. - Create a staff-only log channel, for example
#verification-logs, where the bot will report what it sees.
Step 3: choose what decides who gets the role
This is the part that determines how much protection you actually get.
| Method | What it proves | What it misses |
|---|---|---|
| Rules screening or Onboarding | The member clicked through your rules. | Everything else. Scripts click too. |
| Reaction or button role | Someone pressed a button. | Bots, alts, banned members. |
| Captcha bot | A human is present. | Humans you banned, alt accounts, VPNs. |
| Verification bot with alt detection | A human, on a real connection, not already known under another account. | A small share of determined evaders; staff review covers them. |
Rules screening is worth enabling anyway: it is free and makes sure people have seen your rules. Just do not mistake it for security. If your problem is banned members coming back, alt accounts or raids, only the last row addresses it.
Step 4: add a verification bot
The steps below use Double Counter, which is free for most servers. The structure is the same with any verification bot.
- Invite the bot and open the dashboard. Check in Server Settings → Roles that its role is above
Verified. - Make three choices in the setup: the channel for verifying users (
#verify), the role for verified users (Verified), and the channel for logs. - Pick how members receive their link.
- On join: the bot sends each new member a private verification link by DM. This is the default and the fastest for members.
- On click: nothing happens until the member presses a Verify button in your verification channel. Run
/panelthere to post the button. Choose this if many of your members keep their DMs closed, or if you use Discord Onboarding.
- Decide what happens on detection. Alerts in the log channel are on by default. You can add auto-ban for detected alts, a kick for members who never finish verifying, and a minimum account age.
- Save. Every member who joins from now on is checked: one click on a link made for them, about 3 seconds, with no Discord login and no puzzle.
The setup documentation has screenshots of each screen, and a separate page explains how to combine the bot with Discord Onboarding.
Step 5: test it, then explain it to your members
Test the gate
- Use View Server as Role (Server Settings → Roles) with
@everyoneto confirm that an unverified member sees the verification channel and nothing else. - If you test with a second account of your own, approve it with
/manverifyinstead of opening its verification link. A real alt checker will, correctly, detect your test account as your alt.
Write a short welcome message
Pin something like this in the verification channel:
- Press Verify (or check your DMs) and open your personal link.
- Turn off your VPN or Private Relay while you verify.
- Never open a link sent to someone else, and never share yours.
- Our verification never asks for your password, a QR code scan or an app authorisation.
The last line matters. Scammers imitate verification bots to steal accounts, usually by asking members to scan a QR code or log in on a fake page. If your members know what your real verification looks like, they will recognise a fake one.
Common problems and fixes
- Members verify but get no role. The bot's role is below the verified role, or the link expired before they finished. Move the role up; the member presses Verify again for a fresh link.
- Members never receive the DM. Their DMs are closed. Switch to the Verify button, or enable the option that reminds them in the verification channel.
- “VPN detected” for someone without a VPN. Usually iCloud Private Relay, Cloudflare WARP or Discord's in-app browser. See avoiding VPN false positives.
- A trusted member is flagged as an alt. Check the log entry, then approve them with
/manverifyif the second account is legitimate. - Existing members were not checked. That is expected: only members who verify after setup are screened.