Submit the form below to watch the PoW challenge run in real time. This demo does not sign you in or store submitted form data.
Demo only — nothing is submitted.
Challenge starts on your first click, tap, or keystroke.
PoW solve time
Varies by device and browser
PoW solved successfully. In a real integration, your backend would forward these to /verify.
PoW solve time
Varies by device and browser
Appended hidden fields
Send captcha_token + captcha_solution to /verify.
What happens here
Challenge fetched
On your first interaction (click, tap, or keystroke), the widget calls /challenge in the background and receives a token with required difficulty.
PoW solved in background
A Web Worker iterates nonces, hashing each with the token until the result has the required leading zeros.
Hidden fields injected
On submit, captcha_token and captcha_solution are appended to your form automatically.
Backend verifies
Your server forwards the two values to /verify. No client-side secret is ever exposed.
Status panel states
idle
Fetch started
solving
Worker running
ready
Solution found
error
Missing key / failure
rate_limited
429 from /challenge
Add data-captcha to your form and load the script. That's it.