Agent identity evidence · Web Bot Auth
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.
The gap
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
01 · Record
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
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
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
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.
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.
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
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
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.