Live demo

All six modes, running right now, on this page.

No signup, no API key, no console — just real widgets calling the real backend. Solve any one of them and the response token gets verified server-side; the verification result shows up below the widget.

What you're looking at: Each card below is an actual TrustedCaptcha widget configured to force a specific mode. They share one demo sitekey (published below — anyone can use it on trustedcaptcha.com). When you complete a challenge, the page POSTs the response token to our /api/v1/siteverify endpoint and shows the raw JSON response.

Demo credentials

These keys are bound to trustedcaptcha.com and www.trustedcaptcha.com. Anyone can use the sitekey on this domain. To use the captcha on your own site, sign up for your own keys.

Sitekey
0x5e843afee531b6361ffa3d7778b062cf20
Secret
0xdb9ac80121c50e361a4125534bdbe5da0dc8ece8d63c211fffdbd0723e3e0c52
Hosts
trustedcaptcha.com, www.trustedcaptcha.com
— 01 Smart click default · ~85% of users see only this

The frictionless one. A single checkbox that runs passive signals — pointer entropy, dwell time, browser hints. Most users pass without ever seeing a challenge.

— 02 Image grid visual challenge

A 4×4 selection grid. The category prompt asks for a specific type of object — "select all the boats" — and the user clicks tiles. Image URLs are HMAC-signed and single-use.

— 03 Math accessible · no images

Server-generated arithmetic, never reused. Accepts digit answers and spelled-out variants, with Levenshtein tolerance for typos. Works on screen readers without any audio fallback.

— 04 Logic multiple choice · curated

A common-sense multiple choice question — "which of these is a vegetable?" — pulled from a moderated pool. Vetted to avoid cultural specificity and ambiguity.

— 05 Audio WCAG 2.2 AA

A short spoken phrase synthesized via TTS. Type what you hear. Lenient matching for misspellings. Always available as a one-click fallback from any visual mode.

— 06 Invisible no UI · proof-of-work

Zero user interaction. The browser solves a SHA-256 proof-of-work in a Web Worker (typically 200–500 ms on a modern phone, longer on bots running at scale). Best for low-stakes forms.

↓ Click the button to trigger the invisible challenge programmatically. There's no widget UI — you'll see the result below directly.


Integrate this in your own form

The widgets above use exactly the same loader and the same backend that your own integration would use. The complete integration is two snippets:

<!-- 1. On your page -->
<script src="https://cdn.trustedcaptcha.com/widget/v1/api.js" async defer></script>

<form action="/signup" method="POST">
  <input name="email" type="email" required>
  <div class="trustedcaptcha" data-sitekey="YOUR_SITEKEY"></div>
  <button>Sign up</button>
</form>
// 2. On your server (PHP example)
$r = file_get_contents(
  'https://challenges.trustedcaptcha.com/api/v1/siteverify'
  . '?secret=' . urlencode($YOUR_SECRET)
  . '&response=' . urlencode($_POST['trustedcaptcha-response'])
);
$result = json_decode($r, true);
if (!$result['success']) die('Captcha failed');

Get your own keys →