Skip to main content
Sanning publishes a commitment to your records on a public record, so that a third party can confirm the records existed at a time without asking you or us. It publishes one commitment per interval, not one per event.

Received and witnessed are not the same moment

Received means Sanning holds the record: your agent anchored it, and it is in the index. Witnessed means a stamp covering that record has reached the public record. A record is received the moment you anchor it, and witnessed only once its interval closes and is published. The console’s Records page states which of the two applies to each row; do not read “received” as “witnessed” for a record whose interval has not closed yet. The public record is Arweave. A stamp is an Arweave transaction, and your pack carries its transaction id, so your counterparty can fetch it from any Arweave gateway without asking Sanning.

How it works

Every record anchored inside an interval becomes a leaf in a Merkle tree. When the interval closes, Sanning signs the tree’s root together with the interval bounds, and publishes that. Your pack carries the signed stamp and an inclusion proof from your record’s leaf to that root. Your counterparty checks the proof offline. Confirming the published transaction is a separate, online step they can take whenever they like.

Why an interval

Cost. Ten thousand events in an interval cost the same to witness as one. Per-event publishing would make continuous evidence too expensive to run. Privacy. The published commitment is a root and an interval, not a list of what you did. An observer sees that an organization anchored something, not what. Proof size. An inclusion proof is a handful of hashes. Your counterparty verifies one record without holding anyone else’s.

What it means for you

A pack cannot be built until the interval containing its records is sealed and published. Anchoring and handing over are minutes apart, not seconds.
If you build a pack too early, the command tells you:
That means not yet. It does not mean the records are missing. Wait for the interval to close and run it again.

How long you wait, and what sets it

Three things add up, and only the first depends on when you anchored: Read the interval off the stamp rather than off this page. Every stamp carries interval_start and interval_end, so the width that applied to your records is inside the artifact you were handed. It is measured in minutes, and Sanning tunes it: a shorter interval hands evidence over sooner and costs more to witness, and this page would go stale the day it changed. A useful planning rule while you build: anchoring and handing over are minutes apart, not seconds, and a bundle run immediately after a run races your own newest records. The interval is also the time resolution of what you can prove. A stamp says these records existed by the time this interval closed, not the second each one was anchored. Ordering is not affected by any of this: each record commits to the one before it, so a deletion leaves a hole and a reorder breaks the chain, whatever the interval width.

What is published, and what is not

The organization reference is keyed rather than a plain hash of the name, deliberately. Organization names are low-entropy, and a plain digest would let anyone confirm a guess.