BotWitness, a mechanical mite with an orange lens BotWitness

Agent identity evidence · Web Bot Auth

Did that signature really belong to the agent?

AI agents now sign their requests: RFC 9421 HTTP message signatures, Ed25519 keys published in a /.well-known/…signatures-directory. But directories show only current keys: rotation erases the past. BotWitness archives the key directories of major agent operators daily (hashed and RFC-3161 timestamped) so a signature made yesterday stays verifiable years from now.

RFC 9421
HTTP message signatures
Ed25519
key material archived
IETF
standards-track (Web Bot Auth WG)
Daily
directory snapshot cadence

The gap

Verification expires, and the evidence should not

An agent's signature is only checkable against the key its operator was publishing at that moment. Operators rotate keys routinely; the directory quietly replaces itself. Six months later (when a disputed order, a scraping claim, or an impersonation case surfaces) the key that signed the request is gone from the live directory. Unless someone archived it, dated and sealed, that day. We do. And we watch the canonical path on operators who haven't published yet, so the day an agent goes verifiable is itself a dated event.

How it works

Certificate-transparency thinking applied to agent keys

01 · Record

Daily snapshots

We fetch each operator's /.well-known/http-message-signatures-directory every day and store the exact JWKS served, key IDs, curves, key material. Rolling freshness fields are ignored for change detection, so the archive records genuine rotations.

02 · Seal

Hash & timestamp

Every capture is SHA-256 hashed and bound to an independent RFC-3161 trusted timestamp, and every daily check joins a timestamped Merkle root, provable continuity, verified end to end.

03 · Prove

Key custody as-of date D

Which keys did the operator publish on the date the request was signed? Validate old signatures, date a rotation, or show an agent wasn't yet verifiable when the traffic claimed to be it.

Who needs it

When the dispute is about which agent it was

Agentic commerce

An AI agent placed the order, or did it? Chargebacks and disputes will turn on whether a signature matched the operator's published key on that date. That's a lookup in our archive.

Fraud & anti-spoofing

Impersonating a well-known agent is the obvious attack. A dated key archive lets you prove traffic couldn't have been the agent it claimed, the key it "signed" with never existed in the directory.

Publishers & CDNs

You allowed or blocked traffic based on a verification decision. When that decision is questioned later, cite the key state it was made against, from a neutral third party.

Live now

Query the stream today

Which operators we watch, and each directory's dated change history.

« watched key directories, since when, current status »
curl "https://bot-witness.com/watch?kind=wba"

« when chatgpt.com's directory appeared / rotated »
curl "https://bot-witness.com/watch/history?kind=wba&key=chatgpt.com"

Early access

Keys rotate, so somebody has to keep the record

Web Bot Auth is young; the archive of its first years is being written now, and it cannot be back-dated. Tell us which operators you need covered.