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

# Verification

> Require new members to pass a verification challenge before accessing your server.

Verification protects your server from bot raids and automated join attacks by requiring new members to complete a quick visual challenge before gaining access to your channels.

<Check>
  New members are quarantined to a single verification channel. They must enter a code from a generated image using an interactive keypad — taking about 5 seconds for a real person, but blocking automated bots.
</Check>

### How It Works

1. A new member joins your server and can only see the **verification channel**
2. They click the **Verify Me** button
3. An image with a randomized 6-digit code appears, along with a phone-style keypad
4. The member enters the code by clicking the number buttons, then submits
5. On success, they receive the **Verified role** and gain access to all channels
6. On failure, the configured punishment is applied (kick, ban, or timeout)

<Info>
  The verification code is embedded in a server-generated image with visual noise, making it resistant to automated bots and OCR. Each user gets a unique code that regenerates on every failed attempt.
</Info>

### Setting Up Verification

You can set up verification from the **dashboard** or from **Discord**.

#### From the Dashboard

<Steps>
  <Step title="Open the Dashboard">
    Go to [dashboard.hashbot.com](https://dashboard.hashbot.com) and select your server.
  </Step>

  <Step title="Navigate to Verification">
    Click **Verification** in the sidebar under Hashbot.
  </Step>

  <Step title="Select Channel and Role">
    Choose a **verification channel** and **verified role** from the dropdowns, or click the **+** button next to each to auto-create a `#verify` channel or `Verified` role.
  </Step>

  <Step title="Choose Punishment">
    Select what happens when a member fails verification: **Kick** (can rejoin), **Ban** (permanent), or **Timeout** (temporary mute).
  </Step>

  <Step title="Enable">
    Click **Enable Verification**. The bot will send the verification panel to the selected channel automatically.
  </Step>
</Steps>

<Warning>
  Make sure the bot's role is **higher** than the Verified role in your server's role hierarchy (Server Settings > Roles). If it's lower, the bot won't be able to assign the role and verification will fail silently.
</Warning>

#### From Discord (with auto-permissions)

Run `/verification setup` with no parameters to launch the interactive wizard:

```
/verification setup
```

The wizard walks you through 4 steps:

1. **Select or create** a verification channel
2. **Select or create** a Verified role
3. **Choose** the fail punishment (Kick, Ban, or Timeout)
4. **Auto-lock channels** — automatically configures all public channels to require the Verified role (skips already-private channels)

For quick setup without the wizard:

```
/verification setup channel:#verify role:@Verified punishment:KICK
```

### Configuration Options

| Setting                  | Default    | Description                                              |
| ------------------------ | ---------- | -------------------------------------------------------- |
| **Verification Channel** | —          | The channel where new members verify                     |
| **Verified Role**        | —          | The role assigned on successful verification             |
| **Max Attempts**         | 3          | Number of tries before punishment is applied             |
| **Timeout**              | 10 minutes | Time limit to complete verification before auto-kick     |
| **Fail Punishment**      | Kick       | What happens when a member fails — Kick, Ban, or Timeout |
| **Log Verifications**    | Enabled    | Log verification results to the guild log channel        |

All settings can be changed at any time from the dashboard or via Discord commands.

### Fail Punishment Options

| Punishment  | Behavior                                                                  |
| ----------- | ------------------------------------------------------------------------- |
| **Kick**    | Member is removed but can rejoin and try again. Best for most servers.    |
| **Ban**     | Member is permanently banned. Use during active raids.                    |
| **Timeout** | Member is temporarily muted for a configurable duration. Gentlest option. |

### Security

Verification provides multiple layers of bot protection:

* **Image-based codes** — the 6-digit code is rendered in an image with visual noise, defeating text scrapers
* **Unique per-user codes** — each member gets a different code, preventing replay attacks
* **Code regeneration** — a new code is generated after each failed attempt
* **Low brute-force odds** — 1,000,000 possible combinations with only 3 attempts = 0.0003% chance of guessing
* **Time limit** — members who don't verify within the timeout are automatically removed
* **Works with existing filters** — members flagged by name/PFP filters are banned before reaching verification

### Troubleshooting

<Warning>
  **Verification succeeds but no role assigned?** The bot's role must be **above** the Verified role in your server's role hierarchy. Go to Server Settings > Roles and drag Hashbot's role higher than the Verified role.
</Warning>

* **Empty channel/role dropdowns on dashboard** — the bot may not be in the server, or the server data hasn't loaded yet. Refresh the page.
* **"Already verified" message** — the user already has the Verified role. Remove it manually if you want them to re-verify.
* **Bot can't send messages in verify channel** — ensure the bot has View Channel, Send Messages, Embed Links, and Attach Files permissions in the verification channel.

### Commands

| Command                                          | Description                                  |
| ------------------------------------------------ | -------------------------------------------- |
| `/verification setup`                            | Launch the interactive setup wizard          |
| `/verification setup channel: role: punishment:` | Quick setup with parameters                  |
| `/verification status`                           | View current configuration and stats         |
| `/verification panel`                            | Resend the verification panel to the channel |
| `/verification verify user:`                     | Manually verify a member (manager only)      |
| `/verification disable`                          | Disable verification                         |

### Managing from the Dashboard

The dashboard at [dashboard.hashbot.com](https://dashboard.hashbot.com) provides:

* **Full setup from the web** — select channel, role, and punishment without needing Discord
* **Create channel/role** — auto-create a `#verify` channel or `Verified` role with the **+** button
* **Change settings anytime** — update the channel, role, max attempts, timeout, and punishment
* **Stats overview** — total verifications, success rate, failures, and timeouts
* **Verification logs** — filterable table of all verification attempts with outcome, attempts, punishment, and date
* **Resend panel** — re-send the verification button to the channel
* **Enable/disable toggle** — turn verification on or off instantly
