Protected by Nicholas Armstrong’s Humane Verification v3
This demo shows how to implement Humane Verification v3 (passive scoring + optional PoW) and Humane Verification v2 (checkbox + pointer‑hold) on a single static page. Below is the high‑level integration flow; the full scripts are already embedded in this file.
window.humaneV3 with score, verified, token, pow, last_action, error_codes.hv3Baseline() using your own passive signals (promo, honeypot, etc.).hv3ProofOfWork(challenge, difficulty) using SHA‑256 in the browser.humaneV3Run(action, { powBoost }) to compute score, apply penalties/boosts, clamp to [0.10, 0.95], and log the score.await humaneV3Run("your-action-name", { powBoost: true }).score, token, and action server‑side.event.isTrusted) or a 5‑second pointer hold.{ powBoost: true }).Demo notice: this page is a demonstration only. It never blocks or punishes users based on score. Scores are logged and displayed for inspection, not for enforcement.
Humane Verification v3 is built around three principles: passive verification, deterministic scoring, and optional proof‑of‑work (PoW). It never requires user interaction and never blocks access based solely on a score.
Humane v3 computes a baseline score (for example, 0.9 for typical users) and adjusts it based on simple, transparent signals. The same inputs always produce the same score.
PoW is an optional, invisible computation that asks the browser to find a nonce such that a SHA‑256 hash
of challenge + nonce starts with a certain number of leading zeros. This:
In this demo, you can run Humane v3 in two modes: with PoW boost (recommended) and without PoW boost (test mode where PoW runs but does not affect score).
Humane v2 requires a deliberate click and can fall back to a 5‑second pointer hold if needed. It is permitted alone, but using it together with v3 is strongly recommended.
In this mode, Humane v2 must pass and Humane v3 runs in PoW boost mode. HV3 score is always logged.
This reflects the latest Humane v3 run (and v2 state when combined). In real deployments, you would log this server‑side instead of showing it to users.
Waiting to run Humane Verification…
If “Verify you are human” seems to loop (resetting back to the unchecked state), it usually means:
To test loop behavior in this demo: