Live Demo

See the widget in action

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.

Protected sign in form

Demo only — nothing is submitted.

Challenge starts on your first click, tap, or keystroke.

PoW solve time

Varies by device and browser

What happens here

  1. 1

    Challenge fetched

    On your first interaction (click, tap, or keystroke), the widget calls /challenge in the background and receives a token with required difficulty.

  2. 2

    PoW solved in background

    A Web Worker iterates nonces, hashing each with the token until the result has the required leading zeros.

  3. 3

    Hidden fields injected

    On submit, captcha_token and captcha_solution are appended to your form automatically.

  4. 4

    Backend verifies

    Your server forwards the two values to /verify. No client-side secret is ever exposed.

Status panel states

idle Fetch started
Preparing protection…
solving Worker running
Verifying form protection…
ready Solution found
Protection active
error Missing key / failure
Verification unavailable
rate_limited 429 from /challenge
Please try again in 30 seconds

Ready to integrate?

Add data-captcha to your form and load the script. That's it.