Skip to main content
The Witness capability is a flight recorder for decisions. Every decision your agent makes becomes a record: the registered agent, the model identity in effect, the tokenized inputs, the steps taken, and the outcome. Failures are recorded too, because a failure is evidence.

Why hash-chained

A log you can edit proves nothing. Each record is hashed together with the hash of the record before it, so the records form a chain. Change one field in one record and its hash changes, which breaks the link to every record after it. Recomputing the chain re-derives every hash from the raw records, so any tampering is not just detectable, the chain says exactly where it happened.

Verify it yourself

Anyone can recompute the chain. This is the point: you do not have to trust Rotavision, or even trust your own operators. GET /api/v1/chain/verify walks the records, recomputes, and returns whether the chain holds, how many records it checked, and the first sequence number where it broke, if any.
Tamper with a single field in any record and valid becomes false, with the break located precisely.

Signed evidence bundles

When you export a decision or an evidence pack, the bundle is Ed25519-signed over its exact bytes. A recipient checks the signature against your published key, so the artifact you hand an examiner is verifiable on its own, away from your systems, and cannot be altered without detection.
Signing is over the exact bytes of the bundle. Re-serializing or reformatting the JSON breaks the signature by design. Ship the bytes you signed.

Witness a decision

Open a witness session and record steps as they happen.

Chain API

The verify endpoint and the decision record shape.