The mechanism to arrive able to redeem fairly.
A gate is a door in front of a moment — a presale, a drop, a vote, a signup. A real person signs up, passes once on their own phone, and lands where you run it holding a single-use token. You set who may pass. We never decide; we report what happened.

Sign up. Get notified. Go through.
A gate is not a bouncer that only says no. It holds a place before the doors open, checks one real person at the moment they open, and hands them off to wherever you run the sale — a waiting room, a line, or straight into your own lottery.
We hold your place.
Sign up with a passkey days early. The gate knows you are real before the on-sale exists, so the rush is not the first time anyone is checked.

One real person, one turn.
A real person, over 18 if you asked, two per person. Set when you place it — and nothing can be added to it afterwards.

Straight to wherever you run it.
Passed, and we take them where you chose — your waiting room, your line, your lottery. The pass carries a token your code checks.

On your page, or to one person.
Placed, a gate waits where the moment is: a page, an API call, a link in a bio, a tool your own agent calls. Sent, your server puts the same gate in front of one named person — it lands in their BotShield app, and you can call it again any time. That is Verify with BotShield, and it is where the SMS code used to go. What travels back is a token bound to the person who passed — never a bearer object, so a forwarded one opens nothing.
Where the moment is.
Web · API · Agent · Link. The person arrives; the gate asks, on their own phone, and hands them off.

One person, by name.
From your server, to one named person. It lands in their BotShield app; recall it any time. No text message is ever sent.

Scans. Entries. Redeemed.
Every placement counts arrivals, passes issued and what you confirmed back — the footfall number the web never had, because a session is not a person.
Arrivals.
Everyone who reached that placement — a page, a link, a code.
Passes issued.
A real person, through the gate, once — holding a token.
What you confirmed back.
The token used at your end: a ticket, a code, a seat.
BotShield Gates FAQ
How do I run a presale where each real person gets one turn?
What can replace SMS codes for a presale or a promo?
Can I send a verification to one customer from my server?
How do I confirm a real customer at the moment they buy, without an ID upload?
How do I stop one person taking many turns without tracking people across websites?
Where does the customer land after the gate?
What does a gate count, and what does it store?
Can a gate check age without a date of birth?
A gate counts on verified accounts.
Verify your accounts first. Then talk to us about the gate you want to place.
BotShield runs in your browser.
Sign in with Apple or Google, add a passkey, and approve what your agents ask — the same account the phone app will use.
Open app.botshield.ai →