Skip to main content
Sanning records what your AI agents do, so a third party can check it later without taking your word for it, and without taking ours. Your agent hashes each step locally and sends Sanning a signed commitment to it. Sanning never receives the step itself. Those commitments are committed to a public record, and anyone holding the resulting evidence pack can verify it offline with an open-source kernel. Sanning is never in the trust path. If the Sanning control plane is unreachable, your counterparty can still verify evidence you have already handed them. That independence is the point of the design, not a feature of it.

The lifecycle

Three verbs, in order.
1

Anchor

Your agent commits to each step as it happens. One record per step, signed by a key you hold.
2

Read

You resolve your own records later, through the API or the console.
3

Verify

Your counterparty checks a pack you hand them, offline, against the open kernel.

What Sanning receives, and what it does not

This distinction decides how you write your integration, so it comes first rather than later. Files your tools produce are recorded by name, size and hash. The bytes stay where you put them.

Quickstart

Anchor your first record and verify it, in about ten minutes.

Who this is for

If you are building an agent and someone will later ask you to prove what it did, start with the Quickstart. If you have been handed an evidence pack and asked to check it, you do not need an account. Open verify.sanning.io and drop the pack on it, or run the open kernel yourself: