🛡️ Humane Verification v2 + v3 Demo

Protected by Nicholas Armstrong’s Humane Verification v3

Implementation guide (overview)

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.

  1. Add Humane v3 state and helpers
    • Define window.humaneV3 with score, verified, token, pow, last_action, error_codes.
    • Implement hv3Baseline() using your own passive signals (promo, honeypot, etc.).
    • Implement hv3ProofOfWork(challenge, difficulty) using SHA‑256 in the browser.
    • Implement humaneV3Run(action, { powBoost }) to compute score, apply penalties/boosts, clamp to [0.10, 0.95], and log the score.
  2. Wire Humane v3 into forms
    • On submit, call await humaneV3Run("your-action-name", { powBoost: true }).
    • Log score, token, and action server‑side.
    • Do not block access based solely on score; use it as a signal for rate‑limiting, extra checks, or soft friction.
  3. Add Humane v2 (checkbox)
    • Add a checkbox labeled “Verify you are human”.
    • Require a trusted click (event.isTrusted) or a 5‑second pointer hold.
    • On success, generate a simple token (e.g., SHA‑256 of a random challenge) and store it in a hidden field.
  4. Combined mode (strongly recommended)
    • Require Humane v2 to pass before processing sensitive actions.
    • Run Humane v3 with PoW boost ({ powBoost: true }).
    • Log the HV3 score and token; treat low scores as “higher risk” but do not hard‑block solely on score.

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.

How Humane Verification v3 works

Passive verification

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.

Passive signals

Deterministic scoring

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.

Proof‑of‑Work (PoW)

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).

Verification modes

Humane Verification v3 status

Humane v3 Status:
Score: (waiting)
Token: (waiting)
PoW: (waiting)
Errors: (none)

Demo inputs (affect HV3 score)

HV3 mode

Humane Verification v2 (checkbox)

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.

Combined mode: Humane v2 + v3 (strongly recommended)

In this mode, Humane v2 must pass and Humane v3 runs in PoW boost mode. HV3 score is always logged.

Humane Verification JSON response

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…

Stuck? Troubleshoot

If “Verify you are human” seems to loop (resetting back to the unchecked state), it usually means:

To test loop behavior in this demo:

  1. Check “Simulate HV2 failure loop”.
  2. Click “Verify you are human” several times.
  3. You should see it reset with an error message and the loop counter increase.
  4. Once the loop counter is high enough, a troubleshooting hint appears below.