A principal signs a permission for an agent: which actions, with which
services, within which limits, from when until when. The agent signs a
receipt for each action it takes; a service may countersign it. A
recorder appends receipts to a log and periodically signs its tree head,
which a Time-Stamping Authority (TSA) time-stamps. Later, with no network
access, a verifier checks the records and answers three separate
questions: whether the records are sound, whether every signature could
be verified on that device, and whether each recorded action stayed
within its permission.¶
This document specifies the records and the verifier's rules: evidence,
not enforcement. Nothing in this document stops an action when it is
attempted, and an action for which no receipt was written leaves no
trace in the agent's own log (Section 18). It does not specify an
enforcement point that refuses an action before it takes effect, how
records are carried, how keys and trust anchors are distributed, or what
to do about a finding (Section 15).¶
When an automated agent acts for a person, the questions asked afterward
are the same: was the action authorized, by whom, within what limits,
did the other party agree, and when? Authorization protocols answer at
the moment of a request, typically with tokens that are not kept as
evidence. This document specifies records that a third party can verify
later, without network access. Each record is signed by the party that
made it. Whoever keeps the log can still leave out or delay entries;
Section 18 states how far that reaches.¶
The content model (Sections 4 through 10) says
what each record holds, who signs it, and how a verifier judges it, apart
from how records are written as bytes. This document defines one
encoding (Section 11): JSON Web Signature (JWS) [RFC7515] over JavaScript
Object Notation (JSON) [RFC8259] in one canonical form [RFC8785];
Section 12 states what another encoding, such as one with
Concise Binary Object Representation (CBOR) Object Signing and Encryption
(COSE), has to define. Logs use the Merkle tree of [RFC9162], and
time-stamps come from a TSA [RFC3161]. Agents sign with Ed25519
[RFC8032] and the Module-Lattice-Based Digital Signature Algorithm
ML-DSA-87 [FIPS204] side by side; a signed tree head adds the Stateless
Hash-Based Digital Signature Algorithm SLH-DSA [FIPS205].¶
Other drafts (Section 13) already have principal-signed authorizations,
signed and hash-chained receipts for each action, passkey approval of one
exact action, signed budgets enforced when an action is attempted, and
delegation that only narrows. This document adds three things. First,
the permission that the principal signs with a passkey [WebAuthn]
carries limits that a verifier can check mechanically (totals, single
amounts, counts, and totals or counts within a rolling period) and
conditions (the other party's countersignature, or the principal's
approval of one action). Second, a cancellation can be acknowledged by
the agent. Third, it specifies a verifier that says, from the records
alone and after the fact, whether each recorded action, including a
helper agent's, stayed within the permission.¶
The records are evidence, not a verdict: a sound record can show an
agent acting outside its permission. This document is the core of a
published format description [FORMAT]; Section 15 lists the parts
specified only there.¶