> For the complete documentation index, see [llms.txt](https://discortics.com/llms.txt). A consolidated single-file corpus is available at [llms-full.txt](https://discortics.com/llms-full.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://discortics.com/guides/verification.md).

# Verification

Verification gives new members a check before they receive access roles. It doesn't remove existing members.

## Before you begin

- You need **Manage Server**.
- Discortics needs **Manage Server**, **Send Messages**, **Embed Links**, **Timeout Members**, **Ban Members**, **Kick Members**, and **Manage Roles**.
- Keep the Discortics role above every role it gives.
- Create a public `#verify-here` channel and a private staff log channel.

## Choose a mode

| Mode         | How members verify                                                               | Best for              |
| ------------ | -------------------------------------------------------------------------------- | --------------------- |
| **Captcha**  | Type the text in a distorted image. Not case-sensitive, expires after 15 minutes | Most servers          |
| **Password** | Enter a code you share, 4–100 characters. Case-sensitive                         | Private communities   |
| **Advanced** | Sign in on a website. Blocks VPNs and checks for linked accounts                 | Stopping alt accounts |

## Set up Captcha

### Dashboard Setup

1. Open **Dashboard → Verification**.
2. Choose **Captcha**.
3. Choose your log channel in **Setup**, then open **Panel** and select `#verify-here` as the panel channel.
4. In **Failed verification**, set the action to **Do nothing** for your first test.
5. Save with Verification off.
6. Open **Dashboard → Settings → Auto Roles**, choose at least one after-verification role, and save.
7. Return to **Dashboard → Verification**, reload, turn on Verification, and save.
8. Open **Panel** and select **Send Panel**.
9. Test with a member who isn't whitelisted.

### Discord Command Setup

1. Run `/verification settings`.
2. In **Setup**, choose **Captcha**.
3. Select your log channel.
4. Set the failure action to **Do nothing** for your first test.
5. Run `/settings autorole`, open **Manage**, choose at least one after-verification role, and save.
6. Return to `/verification settings` and select **Turn On**.
7. Select **Send Panel**, choose `#verify-here`, and optionally edit the title and description.
8. Test with a member who isn't whitelisted.

Dashboard settings are grouped into **Setup** (mode, password, Advanced checks, log channel, and failure action), **Panel** (channel, message, and join DMs), **Appeals** (Advanced appeals and ping roles), and **Bypasses** (trusted members). Switching tabs keeps unsaved changes; use the shared save bar to save or discard them.

## Access roles

Set these with `/settings autorole` or **Dashboard → Settings → Auto Roles**. See [Configure autoroles](/guides/welcome#configure-autoroles).

- **Before Verification** roles are given on join.
- **After Verification** roles are given once a member passes. Use these to unlock the server.

Make sure only members with those roles can see the rest of your server. Each group holds up to 5 roles on Public, 10 on Prime, and 20 on Custom.

## Settings

| Setting            | What it does                                                       |
| ------------------ | ------------------------------------------------------------------ |
| **Log Channel**    | Records each attempt's member, status, and reason. Keep it private |
| **Panel channel**  | Where the Dashboard's **Send Panel** posts. Discord asks each time |
| **Password**       | Set a new one any time. The current password can't be viewed       |
| **Failure action** | What happens when a member fails. See below                        |
| **Whitelist**      | Members who skip the check                                         |
| **Reset**          | Clears all verification settings. Autoroles aren't changed         |

> [!WARNING]
> **Reset** can't be undone. It removes your whitelist, password, and failure action.

### Failure action

Captcha and Password apply this after three wrong attempts. Advanced applies it when a check rejects the member. The default is **Kick**.

| Action         | What it does                                              |
| -------------- | --------------------------------------------------------- |
| **Do nothing** | No penalty. They can try again straight away              |
| **Warn**       | Issues a formal warning                                   |
| **Mute**       | Stops them speaking for a set time                        |
| **Timeout**    | Applies Discord's timeout for a set time                  |
| **Kick**       | Removes them. They can rejoin and try again               |
| **Soft Ban**   | Removes them and deletes one day of messages, then unbans |
| **Ban**        | Bans them. Set a duration, or `none` for a permanent ban  |

Durations look like `15m` or `1h`. You can also choose whether to DM the member.

### Whitelist

Open **Whitelist** in `/verification settings` and use **Add Members** or **Remove Members** with comma-separated user IDs, or paste IDs on the Dashboard. Each server can whitelist up to 10,000 members, and verification must be turned on to add new ones.

Whitelisted members skip the challenge and get both role groups when they join. To approve someone manually, run `/verification whitelist user:@member`. This applies only to this server.

## Customise the panel

- **Dashboard:** use the message builder for text, images, links, and one verification button or dropdown. Save before you send.
- **Discord:** **Send Panel** always sends the default message with a **Verify** button. You can change its title and description for that send.

Sending creates a new message and doesn't update older panels.

## How members verify

1. A new member joins and gets any **Before Verification** roles.
2. They use the button or dropdown on the panel, or run `/verify`.
3. Discortics shows them a private captcha or password prompt.
4. They select **Enter Code** and type their answer.
5. A correct answer gives them the **After Verification** roles.

They have three tries. Captcha difficulty and the 15-minute expiry can't be changed.

## Advanced verification

Select **Advanced** in `/verification settings` or **Dashboard → Verification**.

1. A member selects **Verify** and gets a private link, valid for one hour.
2. They sign in with Discord and read the privacy notice.
3. The page checks their connection and device, and shows the result.

Members can decline and stay unverified.

### What it checks

| Check                       | What it does                                                                               |
| --------------------------- | ------------------------------------------------------------------------------------------ |
| **Network screening**       | Blocks known VPN and Tor addresses and listed network providers                            |
| **Linked accounts**         | Allows one linked account per server. Others must leave before one can verify              |
| **Account-switch cooldown** | Waits 14 days after another linked account leaves. The same account can return immediately |
| **Current bans**            | A Discord ban on a linked account blocks the others in that server                         |

**Alt checks** are on by default. Turn them off with **Alt checks** on the Dashboard or **Alt Checks** in `/verification settings`. This keeps network screening, but stops browser fingerprinting, new IP or device matching records, and the linked-account, ban, and cooldown rules.

There's no permanent main account, so members can use account A in one server and B in another.

> [!NOTE]
> Shared networks and similar devices can cause incorrect matches. A block isn't proof of identity or wrongdoing. Members can ask your staff to review it.

### Premium options

On Prime or Custom:

- **Switch Cooldown:** set the cooldown from 0 to 365 days. Downgrading returns it to 14 days.
- **Appeals:** let members submit one appeal of up to 200 characters. Choose up to three ping roles, and optionally **DM on join**. Appealing doesn't give access.

### Approve or review a member

Use `/verification whitelist user:@member`, or **Choose an Action → Whitelist this user** on a verification log. This gives the access roles and skips the challenge, linked-account, and cooldown checks in this server.

A ban on a linked account still blocks access until that account is unbanned. Discortics needs **Ban Members** or **View Audit Log** to check bans.

**Timing:** Ten rejected rejoins within 24 hours causes a ban. A first-time rejection has 15 minutes to retry. A failed rejoin gets the failure action immediately, unless Appeals is on, which gives 15 minutes.

### Help a member who can't verify

**"You are unverified".** Their browser or privacy settings may be blocking the checks. In Brave, turn Shields off for the verification site and retry. They can also try another browser or ask staff for a review.

**iCloud Private Relay is listed.** Safari itself is supported, but the relay is blocked.

- **iPhone or iPad:** Safari → Page Menu → Show IP Address.
- **Mac:** Safari → View → Reload and Show IP Address.
- Then reload and retry. See [Apple's guide](https://support.apple.com/102022).

### Your data

- Advanced links Discord accounts across participating servers using network and browser or device fingerprints.
- IP and fingerprint matching values are stored as keyed hashes, with account and server IDs, verification state, timestamps, and technical matching details. Raw IPs and device observations aren't stored in verification records.
- These records stay while the member is in a server using Advanced, then for one year after they leave the last one.
- They contain no GPS, city, country, or location history. Moderators see the result and reason, never the raw data.
- Cloudflare separately processes connection information and the security challenge.

Read the [privacy policy](/privacy).

## Staff shortcuts

On Prime or Custom, right-click a member and use **Apps → Verify Request** to send a verification DM, or **Whitelist** to choose which modules exempt them. Verify Request doesn't reset their verification or remove roles.

Failure logs offer **Whitelist this user**, and appeal logs also offer **Reject Appeal**. Each asks you to confirm and writes a new log.

## Commands

| Command                         | What it does                      | Permission    |
| ------------------------------- | --------------------------------- | ------------- |
| `/verification settings`        | Set up verification and the panel | Manage Server |
| `/verification whitelist user:` | Approve a member in this server   | Manage Server |
| `/verify`                       | Start verification privately      | None          |

## Troubleshooting

**The panel isn't showing.** Check that Verification is on and Discortics has **Send Messages** and **Embed Links**. Use **Send Panel** to post it again.

**A warning says verification might not work.** The Setup tab lists what's missing.

**Roles aren't being given.** Give Discortics **Manage Roles**, move it above the roles, and check they're in the right group.

**The panel's Send button is disabled.** Save all required fields first.

Prefer one-line commands? See [Direct Commands](/guides/command-arguments).
