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

# Verification System

> Captcha-based member verification for new joiners

The Verification cog provides a captcha-based member verification system. New members are prompted to complete a verification challenge before gaining access to the server.

## Verification Modes

| Mode    | Behavior                                                            |
| ------- | ------------------------------------------------------------------- |
| `auto`  | Bot automatically DMs a captcha link to new members on join.        |
| `panel` | Users click a button in a designated channel to start verification. |
| `blind` | Verification is skipped entirely (members pass automatically).      |

## Verification Flow

1. Member joins or clicks the verification button.
2. Bot sends a captcha link via DM (or the configured verification channel).
3. The captcha API polls until the member passes, fails, or the session expires.
4. On pass: verified role is assigned, unverified role is removed.
5. On VPN/proxy detection or alt detection: the configured action (ban, kick, or log only) is applied.
6. On expiry: the configured expire action is applied.

## Commands

All commands are nested under `/verify`.

### `/verify`

| Command               | Description                                                               |
| --------------------- | ------------------------------------------------------------------------- |
| `/verify panel`       | Posts the verification button panel to the current channel.               |
| `/verify request`     | Starts or restarts the caller's own verification session.                 |
| `/verify manverify`   | Manually verifies a member, bypassing captcha. Requires verify staff.     |
| `/verify manunverify` | Removes verification from a member. Requires verify staff.                |
| `/verify status`      | Shows a member's verification status and any known alt accounts.          |
| `/verify add_alt`     | Manually links two Discord accounts as an alt pair. Bot owner only.       |
| `/verify verbose`     | Toggles verbose logging (raw API payload) for this guild. Bot owner only. |

### `/verify config`

| Command                         | Description                                                                           |
| ------------------------------- | ------------------------------------------------------------------------------------- |
| `/verify config channel`        | Sets the channel (or thread) where users receive verification instructions.           |
| `/verify config logchannel`     | Sets the channel where verification logs are posted.                                  |
| `/verify config verifiedrole`   | Sets the role assigned to members after successful verification.                      |
| `/verify config unverifiedrole` | Sets the role assigned to new members awaiting verification.                          |
| `/verify config mode`           | Sets the verification mode: `auto`, `panel`, or `blind`.                              |
| `/verify config vpnaction`      | Sets the action taken when a VPN or proxy is detected: `ban`, `kick`, or `log`.       |
| `/verify config altaction`      | Sets the action taken when an alt account is detected: `ban`, `kick`, or `log`.       |
| `/verify config expireaction`   | Sets the action taken when a verification session times out: `ban`, `kick`, or `log`. |

## Permission Requirements

Verify staff commands (manverify, manunverify, panel, status) require `Administrator` or the configured verify staff role. Config commands require `Administrator`. `add_alt` and `verbose` require bot owner.
