A hand holding a phone during a short colour test, the thumb about to tap the answer

Human proof for AI agent actions

Before an agent acts, demand proof of an attentive human.

A standard approval only proves that a button was clicked. GateGuard verifies the person with a passkey, runs a short cognitive check on their phone, and seals the result in a proof signed twice, once with a post-quantum algorithm.

PROOF ggp_01M77V6H36NK

Approved, 12:19:54 UTC

Passkey verified
Cognitive check completed, 15 trials
Signed: ES256 and ML-DSA-65
Anchored in Bitcoin

A click on Approve proves very little.

Agents now act on their own, and the usual safeguard is a person pressing a button. A click does not show who pressed it, what they read, or whether they were paying attention. GateGuard records all three.

WHO

The right person

A passkey on their own phone, unlocked with a fingerprint, a face or the device code. No password, nothing to phish.

WHAT

The exact action

The sentence the person read is sealed into the proof. Change one character afterwards and the proof no longer verifies.

PRESENT

Actually paying attention

A short cognitive check on the phone. Which check ran, how many trials and whether it was completed are recorded in the proof.

What your auditor sees

A STANDARD APPROVAL LOG

user:   admin
action: deploy v2.4.1
status: approved

A script can write these three lines. Nothing shows that a person was there, or what they read.

A GATEGUARD PROOF

Passkey verified for the named approver
The exact sentence they read, sealed by its hash
Cognitive check completed, 15 trials
Two signatures: ES256 and post-quantum ML-DSA-65
A timestamp anchored in Bitcoin

Every line can be checked offline against published keys, years later, without calling us.

How it works

01

Request

Your system makes one API call with the action and the exact sentence the approver must read. You get a link back and send it to that person.

02

Authenticate

The person reads the sentence on their phone and approves or denies with their passkey. A request can be decided only once.

03

Cognitive check

Fifteen quick colour trials, or a reflex round first for sensitive actions. The stimuli are drawn on the screen, not written into the page.

04

Seal

The decision is signed and sent to you by webhook or API. Keep the proof with the action it authorised, and verify it whenever you need to.

What a proof establishes

A small signed document. Anyone holding it can check it against our published public keys, without calling us.

The decision and the moment

Approved or denied, with the time it was issued.

The human factor

Passkey verified on the device. A passkey that syncs through a cloud account is flagged as such.

Presence

Which check ran, how many trials, whether it was completed, and whether the signals can be trusted.

Two signatures

ES256 today, and ML-DSA-65 for the day quantum computers matter.

A timestamp no one can rewrite

The batch containing the proof is anchored in Bitcoin, with an inclusion proof you can check yourself. A proof cannot be backdated.

Calibration before scoring

The cognitive check is measured and recorded on every approval. A presence score is published only once the model is calibrated on labelled data, so that a proof never carries a number we cannot defend. Until then each proof states it: calibrated is false, band is unrated.

proof.jsonexample
{
  "v": 2,
  "proof_id": "ggp_01M77V6H36NK...",
  "action": "agent.deploy",
  "decision": "approved",
  "display_sha256": "05353e2d1767...",
  "human_factor": {
    "method": "webauthn",
    "user_verified": true
  },
  "issued_at": "2026-11-12T12:19:54Z",
  "presence": {
    "model": "presence-v1",
    "calibrated": false,
    "band": "unrated",
    "challenge": {
      "kind": "stroop",
      "trials": 15,
      "completed": true,
      "level": "standard"
    },
    "signals": "trusted",
    "flags": ["synced_passkey"]
  },
  "sig": {
    "es256":   { "kid": "e6IaEt7...", "value": "0wLNUMH..." },
    "mldsa65": { "kid": "stpTaIm...", "value": "R5JYfSA..." }
  }
}

Shortened from a real proof issued on 12 November 2026.

Built for

AI agents

A human gate before an agent deploys to production, spends money or deletes data. The approval is tied to one action, not to a session.

Finance

Transfers, refunds and beneficiary changes. The amount and the beneficiary are in the sentence the approver read.

Security operations

Privileged access, production changes, alarm overrides. Each one leaves a proof that stands on its own in an audit.

Designed to be checked

Keys in hardware

The signing key lives in an Azure hardware security module and cannot be exported.

Offline verification

Public keys are published. A proof can be verified without any call to GateGuard.

Anchored in Bitcoin

Proofs are grouped in batches and timestamped on the Bitcoin blockchain through OpenTimestamps. A proof cannot be backdated.

Little data, by design

No photo, no voice, no biometric image. IP addresses are never stored in clear.

Patent pending

The underlying technology is covered by several patent applications filed with INPI, the French patent office.

Run a pilot on one action

Pick one action that should never happen without a human, and put GateGuard in front of it. Integration is one API call and one webhook. Pricing is agreed per pilot.