The question every reviewer asks first is not "what does the record say" but "who could have changed it". This page answers that in plain English. Four layers, each independent of the others, and then the honest list of what they do not cover. The line for a customer: the agent cannot rewrite, the operator cannot rewrite, and if anyone somehow did, the other side's verifier would show exactly where.
Defence in depth is only worth the name if a single failure cannot defeat the whole. Here the agent, the database, the storage and the mathematics each refuse independently. Compromise one and the next still holds. Compromise all four and the change is still visible to anyone holding the public key.
The agent does not write evidence. It calls the gateway, and the gateway writes the record from its own process, with the signing key held behind a separate trust boundary: a key that never leaves that process, a KMS or HSM in production, or a single sealing authority the gateway forwards to. The agent holds no credential to the ledger, so there is no write path for a prompt injection or a hijacked model to use. For gated actions the approval record exists before the action is released. This is the "AI write blocker" principle, and it is how the code is built.
In the in-database enforcement stack the evidence table carries a trigger that fires before any DELETE, UPDATE or TRUNCATE and raises an exception: the evidence table is append-only, refused for all agents. A connection with a database credential can insert. It cannot alter or remove. Honest limit: a database superuser could drop the trigger. That is why the next two layers exist and why the first layer keeps agents away from database administration altogether.
In production the evidence service writes to object storage with Object Lock in Compliance mode. Until the retention period expires nothing can be overwritten or deleted by anyone, including the root account of the cloud tenancy. The ledger code refuses any modify or erase call against a write-once store and says so in the error. Where law requires erasure, it is done by destroying the record's key, never by rewriting the record, and the erasure is itself recorded.
Every record carries the hash of the record before it and an ES256 signature, with a post-quantum ML-DSA-65 signature alongside where the ledger has it enabled. Batches are Merkle-anchored and the root is timestamped by an RFC 3161 time-stamping authority. Change one byte and three things happen at once: the chain breaks at that record, the signature fails, and the external timestamp proves the original existed before the change. inferX and the standalone verifier both point at the exact record. This is what the live demonstration shows: tamper, rogue device, replay and suppression each turn red at the record where they happened.
A threat model that claims to cover everything is not a threat model. These are the residual risks, what the design does about each, and what remains your responsibility.