# Verify with a captcha

> Send someone a captcha and wait until they solve it.

Source: https://docs.buildcord.dev/nodes/members/captcha/

`member.captcha` checks that someone is human before the flow carries on. It sends them a message with a **Verify** button, which opens a captcha in their browser. Once they solve it, the run carries on down **Solved**. Use it to gate a verified role, or to slow down raids and spam bots.

The captcha is a proof-of-work check: their browser does a short sum, with no pictures to pick and no tracking.

## Settings

| Setting | What it does |
| --- | --- |
| Message | What the message with the button says. |
| Button | The button's label. The default is `Verify`. |
| Send to | Who gets it when the flow wasn't started by a command or button, such as a member joining. Empty is whoever started the flow. |
| Give up after | How long the link works: 60 seconds, 5 minutes, 10 minutes, 1 hour, 1 day, or any length up to a day. The default is 10 minutes. |

Started by a command or button, the message is a reply only they can see. Otherwise it's a direct message, which fails if they've turned off direct messages from the server's members.

## Ways out

| Way out | Taken when |
| --- | --- |
| `Solved` | They solved the captcha. |
| `Not solved in time` | The time ran out first. |

Turn on **If it fails** for a red way out, taken when the message couldn't be sent.

## Notes

- The run is saved while it waits and takes no memory. It works on the free plan.
- Each link works once, for one run, and only until the time runs out.
- A test run doesn't wait: choose which way it goes in the test's settings.

## Example

A verification channel has a message with a **Verify** button. Pressing it runs a flow that sends the captcha, then on **Solved** gives the `Verified` role with [Add role](https://docs.buildcord.dev/nodes/members/add-role) and replies "You're in."

## Related

- [Add role](https://docs.buildcord.dev/nodes/members/add-role)
- [Wait for a reply](https://docs.buildcord.dev/nodes/flow-control/wait-for-reply)
