Three layers of defense, Five surfaces, No bot can win
Verification is the core of Caputchin. The gates work together; the surfaces are how you plug them into your stack. The default path is the widget plus a verify call from your backend. The other surfaces are there when the default does not fit.
How a verification flows.
The visitor opens your page. The widget runs the gates. A signed token crosses to your backend. Your backend asks us to confirm it.
- VisitorOpens your page
- Caputchin widgetLoads in your page
- Gaming anti-cheatRuns in a sandboxed iframe
- Your backendReceives the wrapped token
- /siteverifyCaputchin confirms the token
Each layer raises cost on a different attack.
No single layer is supposed to beat every attack alone. The point is composition: by the time a request reaches the game, it has already paid the tax of every gate in front of it. Honest map below.
| Attack pattern | Proof of work | Browser instrumentation | Gaming anti-cheat |
|---|---|---|---|
Curl and fetch scriptsBare HTTP scripts hitting your endpoint directly. | Addresses this attack | ||
Headless browsersPuppeteer, Playwright, or Selenium running in the background. | Addresses this attack | ||
Real-browser bot farmsReal Chrome instances on rented servers, sometimes humans driving them. | Addresses this attack | Addresses this attack | |
Solver-as-a-servicePaid solver farms that take a challenge and hand back the answer, often cheap human labor. | Addresses this attack | Addresses this attack | |
Frontier AI modelsVision and agent models that read image grids, solve OCR puzzles, and clear legacy CAPTCHAs in milliseconds. | Addresses this attack |
- Curl and fetch scriptsBare HTTP scripts hitting your endpoint directly.Layers that address it
- Browser instrumentation
- Headless browsersPuppeteer, Playwright, or Selenium running in the background.Layers that address it
- Browser instrumentation
- Real-browser bot farmsReal Chrome instances on rented servers, sometimes humans driving them.Layers that address it
- Proof of work
- Gaming anti-cheat
- Solver-as-a-servicePaid solver farms that take a challenge and hand back the answer, often cheap human labor.Layers that address it
- Proof of work
- Gaming anti-cheat
- Frontier AI modelsVision and agent models that read image grids, solve OCR puzzles, and clear legacy CAPTCHAs in milliseconds.Layers that address it
- Gaming anti-cheat
More than a game. A verification engine.
A tiny, varied game humans play in seconds and enjoy. Underneath, it runs the same anti-cheat playbook competitive multiplayer games use to catch cheaters: our servers set up every round before you play (server authority) and re-simulate it after (deterministic replay), so the game cannot be faked, only played. It is the layer no other CAPTCHA has, and the reason Caputchin exists.
Server-authoritative setup
- A signed, single-use ticket (30-minute window) mints the round. Spend it once and it can never be replayed.
- The game and its random seed are chosen on our servers, never in the browser, so nothing client-side can pick an easier target.
- A different game from the pool each time. A solver never knows which one it will face, so it cannot pre-train.
Same model as a competitive game server: the client sends only inputs, never the verdict.
Deterministic replay
- Your exact inputs are replayed on our servers under the same seed, inside a sealed isolate with no network and a hard time budget.
- Pass or fail is recomputed by that replay, never taken from the browser.
- Every game's code is hash-checked before it runs, so the artifact cannot be swapped underneath you.
Built on the same determinism lockstep multiplayer relies on: the round is re-simulated from the seed to confirm it was really played.
Sandboxed in your page
An isolated iframe with no network and no reach into your cookies, storage, or DOM.
Game variety
Different sites get different games, and the catalog keeps growing.
Sealed replay
The replay runs with no network and a hard CPU budget. Nothing gets in or out.
Tamper-proof code
Each game artifact is verified by hash before a single frame runs.
No profiling
We do not watch your mouse or timing. We re-run the round instead.
Two more gates, stacked alongside
Gaming anti-cheat never works alone. A proof-of-work gate and browser instrumentation run with it, each raising cost on a different attack pattern. Composed in series, every layer the attacker reaches has already paid a tax.
Integration surfaces
Five ways to put verification in front of a visitor. Pick whichever fits the shape of your code, your stack, or your team.
Common questions
How Caputchin verifies a visitor, and the surfaces you plug it into.
- What are the three verification layers?
- Proof of work, browser instrumentation, and a gaming anti-cheat challenge. They run in series, so by the time a request reaches the game it has already paid the cost of every gate in front of it.
- Do real visitors have to solve a puzzle?
- They play a short game that takes a few seconds. Proof of work and browser instrumentation run invisibly in the background, so the visitor only ever sees the game.
- Can Caputchin stop headless bots and AI solvers?
- Yes. Browser instrumentation filters headless tools and scripts, proof of work taxes compute at scale, and the server-authoritative game with deterministic replay defeats solver farms and frontier AI models.
- How do I check a result on my server?
- The widget hands the browser a one-time token. Your backend calls the verify endpoint to confirm that token before trusting the request. The default path is the web component plus that one verify call.
- What if the widget element does not fit my app?
- Use the runtime API to drive verification yourself, hosted verification to point a form at us with no backend code, or the mobile WebView embed for native iOS and Android apps.
Ship verification on a single site key. Free.
Sign up, mint a site key, drop the widget on one form. Upgrade later when you need a feature on a higher tier.
Start free