The statement layer vs the transparency layer
Two concerns, deliberately kept apart: what happened (a signed statement) and where it is recorded (a transparency log). The statement never depends on which log technology you choose.
Two layers
| Layer | Answers | Form |
|---|---|---|
| Statement | What action happened, signed by whom? | A COSE_Sign1 Signed Statement (the Agent Action Capsule profile). |
| Transparency | Was this statement recorded in an append-only log, and can that be proven? | A transparency service that registers the statement and witnesses it, returning a receipt. |
Why the separation matters
Keeping the statement independent of the log means a single capsule can be witnessed by more than one transparency service, and verified the same way regardless of how each log structures its proofs. The action layer never changes when the log changes — this is what we mean by verifiable-data-structure agnostic.
What this actually establishes
Auditor register — why the split is not just tidiness
A statement's validity as a signed claim — who said what, intact from the bytes — does not depend on any single log's uptime, jurisdiction, or continued existence. Only its witnessed status depends on the log: a statement can be self-attested today and witnessed tomorrow (or witnessed by a second, independent log later) without the statement itself changing at all. That's what makes "move or mix witnesses without changing the record" true, not a marketing claim — it follows directly from the layers being independently defined. See the translation page for how Registration, Receipt, and Witnessing are three distinct things that this separation keeps from blurring together.
How it works — the stack
Each layer is a separate, open-source library so the boundaries stay honest:
| Component | Role |
|---|---|
| agent-action-capsule | The profile — the Signed Statement format and the reference verifier. |
| capsule-emit | The producer — seal an action in one call, or wrap an existing tool with one decorator. |
| scitt-cose | The verifier — checks SCITT receipts across verifiable data structures. |
| capsule-anchor | The log — a neutral transparency service implementation (the witness). |
capsule-emit: Going deeper — the layers ↗