> ## Documentation Index
> Fetch the complete documentation index at: https://docs.prowlbot.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Gate Server Access with Prowl's Verification System

> Stop raiders and bot accounts with reaction roles, image captchas, and account-age gates. Configure every step from the Prowl dashboard at prowlbot.xyz.

Every public Discord server faces the same threats: coordinated raids, bot accounts, and drive-by trolls. Prowl's verification system puts a configurable gate between the join event and full server access, letting you choose exactly how much friction is appropriate for your community.

## Why Verification Matters

Without a verification layer, any account that joins your server has immediate access to every public channel. Verification breaks that pattern by:

* **Filtering bots** that cannot interact with prompts or solve captchas
* **Slowing raids** so your moderators have time to respond
* **Reducing spam** from users who are never willing to complete even a basic step

<Tip>
  Pair verification with Prowl's [Automation](/features/automation) anti-raid and minimum account age features for layered protection.
</Tip>

## Verification Modes

Prowl offers four verification types. You choose one when setting up verification.

<CardGroup cols={2}>
  <Card title="Button" icon="hand-pointer" href="/features/verification#button">
    The user clicks a button to receive the verified role. Simple and low-friction.
  </Card>

  <Card title="Reaction" icon="face-smile" href="/features/verification#reaction">
    The user reacts to an emoji on a message to receive the verified role.
  </Card>

  <Card title="Captcha" icon="shield-check" href="/features/verification#captcha">
    The user must solve a short alphanumeric captcha presented in a modal.
  </Card>

  <Card title="reCAPTCHA" icon="robot" href="/features/verification#recaptcha">
    The user completes a Google reCAPTCHA challenge in their browser.
  </Card>
</CardGroup>

### Button

The simplest mode. Prowl posts a message in your verification channel containing a button. When the user clicks it, Prowl assigns the **Verified Role** immediately.

This mode stops most unsophisticated bot raids because automated accounts typically cannot interact with Discord UI components.

### Reaction

Similar to Button, but uses a reaction emoji instead of a button component. Prowl posts a message with an emoji prompt, and the user reacts to it to receive the verified role.

You can customise which emoji is used for the reaction.

### Captcha

Prowl presents the user with a modal containing a random 6-character alphanumeric code. The user must type the correct code to complete verification.

* **Pass:** Prowl assigns the Verified Role.
* **Fail:** The user must try again with a new code.

This mode is effective against bot accounts that can react to messages but cannot read text from images.

### reCAPTCHA

Prowl sends the user to an external browser-based reCAPTCHA challenge. This requires a Google reCAPTCHA site key and secret key configured in your server settings.

* **Pass:** Prowl assigns the Verified Role.
* **Fail or timeout:** The user must try again.

## Setting Up Verification

<Steps>
  <Step title="Open Verification Settings">
    Log in at [prowlbot.xyz](https://prowlbot.xyz), select your server, and click **Verification** in the left sidebar.
  </Step>

  <Step title="Enable Verification">
    Toggle **Enable Verification** at the top of the page.
  </Step>

  <Step title="Choose a Channel">
    Select the channel where Prowl should post the verification prompt.
  </Step>

  <Step title="Assign the Verified Role">
    Choose the **Verified Role** that will be granted on successful verification.
  </Step>

  <Step title="Choose Verification Type">
    Select one of the four types: Button, Reaction, Captcha, or reCAPTCHA.
  </Step>

  <Step title="Deploy the Panel">
    Click **Save Changes**, then use `/verify deploy` to post the verification panel to your chosen channel.
  </Step>
</Steps>

## All Verification Commands

| Command                                 | Description                                                   | Permission    |
| --------------------------------------- | ------------------------------------------------------------- | ------------- |
| `/verify setup <channel> <role> <type>` | Set up the verification system with a channel, role, and type | Administrator |
| `/verify deploy`                        | Repost the verification panel                                 | Administrator |
| `/verify config`                        | View the current verification settings                        | None          |
| `/verify remove`                        | Remove the verification system entirely                       | Administrator |

## Gating Channels Behind Verification

To restrict channels to verified members only, you use Discord's built-in permission system in combination with the role Prowl assigns.

<Steps>
  <Step title="Create an Unverified Role">
    Create a role called `Unverified` or `Pending` in your Discord server settings.
  </Step>

  <Step title="Deny Channel Access to the Unverified Role">
    For every channel that unverified users should not see, open **Edit Channel → Permissions**, add the Unverified role, and deny **View Channel**.
  </Step>

  <Step title="Create a Verification Channel">
    Create a `#verify` channel and give the Unverified role **View Channel** access (but not **Send Messages**). This is the only channel unverified users can see.
  </Step>
</Steps>

<Info>
  Make sure your `@everyone` role does not have blanket View Channel permissions on your main channels, otherwise the channel-gating above will not work as expected.
</Info>

## Tips for Balancing Security vs. Friction

<CardGroup cols={2}>
  <Card title="Start Simple" icon="play" href="/features/verification#button">
    Begin with Button verification. It stops the majority of bot raids with minimal friction for real users. Escalate to Captcha only if raids persist.
  </Card>

  <Card title="Announce Your Process" icon="bullhorn" href="/features/verification#gating-channels-behind-verification">
    Put a `#welcome` channel before `#verify` in your channel list. Explain what to expect so real users are not confused or put off.
  </Card>

  <Card title="Use Account Age Gates" icon="calendar-days" href="/features/automation">
    Combine verification with Prowl's [Automation](/features/automation) minimum account age feature to automatically kick accounts younger than a configurable threshold.
  </Card>

  <Card title="Monitor the Logs" icon="chart-line" href="/configuration/logging">
    Review your verification log channel regularly. A sudden spike in failed verifications is an early warning sign of an incoming raid.
  </Card>
</CardGroup>
