Agent Authority Standards Institute the standard that can prove what it says

Revision r2 — current. The frozen text of the canonical itemized edition, revision 2 (DRAFT) — adds §8.1 correlated receipts and the counter-receipt profile, exactly as sealed (2026-10-18). Governed seal: no per-act seal pointer — a revision seal must address the single act of sealing this revision (an act hash); none is shown until one exists. (The pointer formerly shown for r1 was withdrawn 2026-08-28: it addressed the steward's whole commit record, not the sealing act.) Frozen artifact: frozen.html (sha-256 98e323ff7531e8ed43888803fe66bf45b7e5d6520df5ce3526ac446e3bd788a2) — the specification bytes at this address do not change after sealing. Register: version history · policy: lifecycle.

Revision 2 (r2) of the canonical itemized edition — DRAFT steward edition. r2 adds §8.1 (correlated receipts and the counter-receipt profile; requirement IDs GAA-CREC-1..13, GAA-CONF-CREC-1) and §12.7, and changes no other normative statement; r1 is preserved unchanged and stays citable. The numbered per-version publications continue beside this edition (v0.7, 2026-10-18); the reconciliation of the one overall version number remains open (§15). This is the entire canonical text, hosted by the Institute (overview · version history). Requirements carry stable IDs — cite GAA-COMP-2, not a section number; every ID is a deep link (e.g. /standard/text#GAA-COMP-2). Specification text: Community Specification License 1.0. A reference implementation exists as a mechanism; products built on it are demonstrations; no adoption is claimed.

The Governed Agent Authority (GAA) Standard — canonical itemized edition, revision 2 (DRAFT)

DRAFT — steward edition; the version number of record is assigned at first public release. This edition is published on the Institute's canonical face; each revision is frozen and byte-pinned at its own URL (see the version history). Revision 2 adds §8.1 — correlated receipts and the counter-receipt profile — and §12.7, and changes no other normative statement. This edition re-voices the specification under AASI stewardship: impersonal and normative throughout, no first person, no vendor named in normative text, no promotional framing. Reference pointers to a live implementation are non-normative and name no company: they read "the founder's reference implementation."

A provider-agnostic, vertical-agnostic specification for governing the authority of an AI agent that acts on a Principal's behalf. The agent acts; the governor governs its authority; the institution executes. The model, engine, venue, and site are swappable adapters. The governance is the specified contract.


§1 · Introduction

§1.1 What the specification is — and is not

The specification publishes a category language and public interop shapes: a vocabulary, an open registry of agent classes, an authority-composition model, seven named controls, a receipts artifact, and a site-integration seam. That language is meant to be public. It deliberately does not publish any implementer's enforcement — the rule content, the seal internals, the examiner's implementation, the write-path, or the accumulated governing corpus. A reader learns what the roles, controls, and contracts are; the specification never contains a particular implementer's runtime. The specification publishes languages, shapes, and contracts; each implementer's enforcement is its own and is not part of this specification.

§1.2 Requirement keywords and requirement IDs

The key words MUST, MUST NOT, SHOULD, SHOULD NOT, and MAY are used as defined in RFC 2119 / RFC 8174. (Definitional — this sentence defines the keywords and is not itself a requirement.)

Every requirement statement carries a stable identifier of the form GAA-<FAMILY>-<n>. Identifiers are stable across versions and renumbering; a citation of GAA-COMP-2 remains valid regardless of which section carries it in a given edition. Clause anchors (marked clause) name load-bearing declarative contract clauses for citation without altering their stated strength.

§1.3 Honest posture (normative for how status is stated)

A reference implementation is live as a mechanism: its gates, sealing, examiner re-derivation, and adversarial evaluation run without a human signer. Products built on it are demonstrations — they run with simulated counterparties, and signature gates are held pending licensed professionals, funded rails, and counsel. GAA-POST-1 An implementation MUST NOT present demonstration or simulated results as production results, and MUST NOT call anything "proven" that is only mechanism-proven. GAA-POST-2 Where a control is detective (tamper-evident) rather than preventive, an implementation MUST say so and MUST NOT label it otherwise.


§2 · Vocabulary

No settled vocabulary exists for this space. The specification defines it, grounded in agency theory (law and economics) — the dyad a venue disclaims and a regulator requires.

TermDefinitionWhy this word
Principalthe human, institution, or business on whose behalf an agent acts, and who grants its authority. A Principal is a person first — then an entity, business, bank, or government.the classic principal–agent dyad; legally grounded (fiduciary / agency). NOT "Client" — reserve that for a buyer of a service.
Governed Agentthe AI agent bound to ONE Principal, acting only within a granted Mandate, with every action sealed and examiner-verifiable.distinguishes a governed agent from a raw model. The model under the hood is a swappable adapter (C7); the governed agent is the role, not the model.
Mandatethe granted, scoped, revocable authority a Principal gives its agent — what it may do, its limits, its escalation path — itself a governed, sealed record.the instrument the venue disclaims and the regulator requires. "Operating as intended" becomes checkable, deny-by-default, only against a Mandate.
Governed Mediationhow two agents (two Principals) interact — via a deny-by-default, sealed mediation protocol with a single sovereign writer.agent ↔ agent is the multi-party future; two Principals' agents meet only here.

GAA-VOCAB-1 · clause The relation, in one line. A Principal grants a Mandate to a Governed Agent, which acts only within it; agents of different Principals interact only through Governed Mediation; every act is sealed and independently verifiable.


§3 · Agent classes — the roles within the category

The vocabulary names a Governed Agent generically. In practice agents take distinct roles. Every class runs the identical governed path (Mandate + C1–C4 + Governed Mediation + C5/C6). A class changes only three things: whose interest it serves, whether it is real or simulated, and how much latitude it has. A class is a configuration of the one plane, never a different mechanism.

§3.1 The classes (an open, extensible registry)

ClassDefinitionWhose interestStatus
Principal / Individual agenta Governed Agent bound to an individual end-user acting for themselvesthe individualnormative
Company agenta Governed Agent operating an organization's own functionsthe operating organizationnormative
Professional-Service agenta Governed Agent delivering a licensed/regulated professional service under license-governance; it facilitates, and a licensed human attestsa profession-client, under oversightnormative
Counterparty / Business agenta Governed Agent representing an external business a Principal's agent transacts withthe counterparty businessnormative
Oversight agenta Governed Agent (or examiner) that verifies, attests, or audits — re-derives any act from the sealed trailthe public / a regulator / an auditoremerging
Mediator agentthe governed broker of a multi-party interactionthe protocolemerging

The set is open by design. New classes (marketplace / broker-of-agents · escrow · notary · custodian · delegate / sub-agent · negotiator) are added the same way anything is: a Mandate + a role + an identity. GAA-CLASS-1 A conforming implementation MUST treat the registry as extensible — adding a class is in-spec, not a breaking change — and SHOULD declare each agent's class. The registry and its registration procedure are specified in §14.

§3.2 The three axes that place any class

  • Whose interest — the individual · the operating organization · a profession-client · a counterparty business · the public/protocol.
  • Real vs simulated — a real model-backed, keyed, metered agent, OR a deterministic simulated stand-in. GAA-CLASS-2 A simulation MUST be labelled and MUST NOT be called "proven."
  • Latitude — propose-only ↔ consequential-action-gated. GAA-CLASS-3 · clause Any money movement, order, or irreversible act gates on a human ratification the agent cannot self-produce (C3).

§3.3 The interaction model

  • Internal — Company/Principal agents converse within one organization's company-of-agents.
  • External — a Principal or Professional agent transacts with a Counterparty/Business agent only through Governed Mediation (§2); every hop is sealed.
  • Oversight — an Oversight agent sits across both and re-derives any interaction from the sealed record alone (C6), without re-executing it.

Conformance for this section is consolidated in §12.2.

Non-normative pointer. A conforming reference profile (specific agents and their end-to-end pairings) is documented alongside the founder's reference implementation. A profile is an example that conforms; it is not the specification.


§4 · Authority composition — one agent, a composed and governed authority set

§2 names a Mandate as a single grant. In practice a Principal grants a set of authorities to one agent — different Principals grant different sets — each governed per its grant; GAA-COMP-1 and an agent MAY delegate a strictly-narrower slice to a sub-agent. §4 is the public category-language for composing, limiting, delegating, and deciding over that set. As with §3, these are definitions and interop shapes; the enforcement is each implementer's own.

§4.1 The grant schema — OAuth 2.0 Rich Authorization Requests (RFC 9396)

Each authority is expressed as an authorization_details object — a typed, namespaced JSON grant, the open, fine-grained primitive that supersedes coarse scope strings. The agent's authority set is a list of them.

RAR field (RFC 9396)Mandate authority field
type (REQUIRED; URI-namespaced — the open-set, collision-safe seam)the verb class / authority type
locationsthe counterparty / resource server
actionsthe capability / verb
datatypesthe data-consent scope
identifierthe target resource
privilegesprivilege level and limits / escalation

The grant language is public; the enforcement of a grant is not.

§4.2 The composition algebra — N grants reduce to one allow/deny

Deny-unless-permit (an XACML 3.0-style collapse): an action is permitted only if some granted authority covers it and it survives every applicable limit and escalation; otherwise DENY (no grant matches → deny by default). The agent holds the whole set; each authority is governed per its own grant (a heterogeneous set — some escalate, some are capped, some auto). GAA-COMP-2 Composition MUST NOT weaken any single grant. Conflict and override are authored as a policy expression (an allow-set algebra: union / intersection / exception), not a fixed enum.

§4.3 Limits — the 2-axis model (scope × interval)

Every limit is (amount, scope, interval). GAA-COMP-3 Scope is hierarchical and rolls up: verb ≤ counterparty ≤ Mandate (a child cap MUST NOT exceed its parent). Interval is one of per_action · daily · weekly · monthly · yearly · all_time. Overlapping limits resolve most-restrictive-wins (permitted only if it fits under every applicable cap). An atomic per-(scope, interval) running balance prevents a set of authorities from double-spending a shared budget; a backstop default ceiling denies by default even when a Principal omits a cap. The model subsumes the alternatives — a single shared budget is (scope = Mandate, interval = all_time); independent per-verb caps are (scope = verb). Validated against Open Banking Variable Recurring Payments, card-issuing spending controls, and cloud quotas.

§4.4 Delegation and attenuation — narrow-only, with fresh-read revocation

A sub-mandate only narrows the parent (parent ∩ caveats): capabilities and egress intersect (a sub can never gain a verb or host the parent lacks); escalation unions (it can require more human ratifications, never fewer); limits tighten (most-restrictive binds). Delegation is monotonic by construction (child ≤ parent; possession is authority — the object-capability model). Revocation is centralized fresh-read: the decision point re-reads each ancestor's live Mandate and epoch on every action, so revoking a parent (or bumping its epoch) fails the whole subtree closed on the next action, with no propagation lists. The delegation path rides in the seal, so each hop is attributable. Tamper-evidence is the seal (§5, C5), not a root-secret capability token; offline cryptographic tokens (public-key capability formats) are a deferred upgrade, triggered only by cross-trust-domain delegation.

§4.5 The decision contract — served over AuthZEN

The decision is served over the OpenID AuthZEN Authorization API shape: the request is the 4-tuple subject (the agent) · action (the verb) · resource (the counterparty) · context (amount · destination · time …); the response is a boolean allow/deny plus obligations (a human_ratification obligation for an escalation — the lift-off the enforcement point must satisfy — and the tamper-evident seal identifier) plus reasons. The boolean and the request/response shape are public and engine-agnostic; the deny-unless-permit core, the 2-axis budget, and the delegation logic stay inside the decision point. The enforcement point and the decision point are externalized (NIST SP 800-162 ABAC): the runtime is the enforcement point (PEP); the Mandate engine is the decision point (PDP). The specification's interop bet is RAR + AuthZEN — both ratified or near-ratified and engine-agnostic, with no registry lock-in (the RAR type is URI-namespaced).

§4.6 Seal identifiers and hash-namespace agility

Every §4 decision is sealed (§5, C5) as a content-hashed entry in a per-entity tamper-evident chain. Two properties are specified so the seal remains sound over time:

  • Per-entity, content-hashed, effectively inexhaustible. A seal identifier is derived from the entry's content hash, in a per-entity chain — not drawn from a finite pool. A content-hash space (for a 256-bit hash, on the order of 2²⁵⁶ values) cannot be exhausted by issuance; there is no seal-supply limit to design around.
  • GAA-COMP-4 Hash-namespace agility (SHOULD). A content hash and a seal identifier SHOULD carry an explicit hash-namespace prefix (for example, sha256:), so the hash function is a swappable namespace, not a hardcoded assumption. GAA-COMP-5 An implementation SHOULD record the namespace with each hash so that migrating to a successor hash function is additive — new entries adopt the new namespace while prior entries remain verifiable under theirs — rather than a breaking rewrite. See §10 for the standing watch.

Conformance for this section is consolidated in §12.3.


§5 · The seven controls (C1–C7)

The controls are the mechanism. Each is a deny-by-default gate or an evidentiary guarantee; together they are the pipeline page → gate (C1·C2·C3·C4) → execute (adapter, C7) → seal (C5) → verify (C6). Reference pointers are non-normative — they name where the founder's reference implementation realizes a control; GAA-CTRL-8 any conforming implementation MAY realize it differently.

#AnchorControlSpec
C1GAA-CTRL-1 · clauseCapability allowlist (least privilege)A Governed Agent declares a scope; the scope→capability policy decides which verbs it may invoke at all. An undeclared capability is DENIED.
C2GAA-CTRL-2 · clauseEgress mediation (exfiltration containment)For any network-reaching capability, a per-scope egress allowlist decides which destinations it may reach. An off-allowlist host is DENIED before the network.
C3GAA-CTRL-3 · clauseHuman ratification (high-risk confirmation, lift-off)A consequential or irreversible action gates on a human ratification the agent cannot self-produce. The agent PROPOSES; a human DISPOSES.
C4GAA-CTRL-4 · clauseLimit / policy gate (governance-as-config)Per-vertical limits and the auto-vs-confirm threshold are live rules, tunable by the Principal without a deploy. The deterministic FLOOR owns the figure-of-record.
C5GAA-CTRL-5 · clauseTamper-evident seal (single sovereign writer)Every governed decision is sealed into a hash-chain by a single sovereign writer, through one injectable event-poster seam. Content hashes and seal identifiers SHOULD carry an explicit hash-namespace prefix (§4.6; the requirement is GAA-COMP-4).
C6GAA-CTRL-6 · clauseExaminer re-derivation (independent verification)Any decision is reproducible from the sealed record alone, by an independent examiner. A tampered record breaks the chain at that entry.
C7GAA-CTRL-7 · clauseSwappable sovereign adapterThe agent, engine, broker, venue, or site is an adapter, swappable without touching the governance loop. The governance and the deterministic floor are the specified contract.

Conformance for this section is consolidated in §12.4.


§6 · The disclosure → control map

A shipping venue's own agentic disclosure names, line by line, the duties it dumps on the customer with no instrument. The specification is that instrument. The lines below are quoted verbatim from a public retail agentic-trading disclosure (2026); each maps to the control that fills it.

Disclosure (verbatim)Duty dumped on the customerControl
"does not control, supervise, monitor … these AI agents" / "difficult to monitor or stop in real time"monitor and stop the agentC3 human ratification + the Mandate revoke/kill + C5 the sealed live trail
"act on incomplete or outdated information"ensure the agent's inputs are goodthe context plane (authoritative context paged at execution) feeding C4
"AI agents can make errors … behave in unexpected ways"catch the errorsthe deterministic floor (output-of-record) + C6 examiner re-derivation + C5 tamper-evidence
"does not guarantee the accuracy … not responsible for losses"own the outcomethe attested, examiner-verifiable trail (C5 + C6) — evidence a human reviewed the exact artifact; the instrument, NOT a compliance substitute
"responsible for reviewing account activity, monitoring positions, and ensuring the agent is operating as intended"review · monitor · verify intentthe Principal's activity view (sealed, C5) + the Mandate ("operating as intended" made checkable, deny-by-default, via C1·C3·C4)

The pattern. The venue disclaims it; the regulator requires it; the customer is made responsible with no instrument. FINRA's 2026 report flags agentic AI (supervision Rule 3110, business-continuity 4370, recordkeeping); the SEC's 2026 exam priorities and Reg S-P demand data governance and accountability for AI in advice. No settled horizontal standard governs "agent authority." This specification names one. The itemized list of duties a disclaimer disclaims is the set of contracts a governed instrument must fill.


§7 · The position — plane, not box · individual-first · the triad

Plane, not a box. Not a model gateway (one capture point) — a governance plane and protocol for agent execution: identity, policy, and audit that travel with the agent across every capture point — a CLI, a device or OS, the model source, a venue, a work-product surface. The mediation protocol carries the interaction; the Mandate is the grant; the seal is the certificate and audit. One plane, many doors; engine, venue, and model swappable (C7). The closest analogy is an identity/policy/audit plane for agents, spoken as a protocol.

Individual-first. Every Principal — a person first, then entity, institution, business, bank, or government — gets advanced AI working for them, governed for their benefit: their data stays sovereign (they are not the product), and their agent acts only under their Mandate. The plane is symmetric (the same relation for a person as for a bank), mutually beneficial, and non-exploitive by design.

The lead triad — Governed · Secure · Private, in the Principal's favor.

  • Governed — the Mandate + C1–C4 deny-by-default + C5/C6 the sealed, re-derivable trail.
  • Secure — the plane is itself a security posture: deny-by-default · governed detect and respond · adversarial evaluation · the sealed examiner-verifiable trail · tenant isolation · principal-sovereignty and no lock-out.
  • Private — the individual-first promise made concrete: data stays the Principal's, not the product — redaction-before-seal · off-chain claim-check · client-confidential data classing.

Honest. This is a strong position and a live mechanism today; real third-party audits, penetration tests, and certifications are the maturity path that earns this trust at scale.


§8 · Receipts — the sealed, typed output artifact

§3 and §4 govern the agent's authority. §8 governs the agent's output — the artifact a human or small business actually files. A Receipt is a typed, content-hashed, sealed record of a governed interaction: at once the human-legible artifact (a bank reconciliation, a trade confirmation, an engagement letter, an invoice), the trust object (content-bound, sealed, examiner-reproducible), and a developer-extensible schema (an open type_id).

Schema (open type). type_id · issued_by · issued_to · on_behalf_of · ref · date · line_items[{desc, amount_cents}] · total_cents · currency · simulated. The type_id is an open, developer-extensible identifier.

Invariants (specified, not asserted).

  1. GAA-REC-1 · clause Content-bound. The receipt's content hash is sealed into the tamper-evident chain (C5). Alter the artifact and verification fails. GAA-REC-2 The content hash SHOULD carry an explicit hash-namespace prefix (§4.6).
  2. GAA-REC-3 · clause Examiner-reproducible. The receipt, and any conserving simulated-ledger balance, re-derives from the record alone (C6) — no trust in the issuer required.
  3. GAA-REC-4 · clause Sim-until-real. A sealed simulated receipt is tamper-evident, not real (a labelled demonstration), until a named human gate clears — a funded rail, a licensed professional, counsel.
  4. The maturity ladder. receipt → a conserving simulated balance → a multi-step interaction → an open developer schema. A type climbs the ladder; the registry is open for new types.

Language vs enforcement. The receipt shape (the schema) is public; the enforcement — the seal, the conserving simulated ledger, the examiner, the durable corpus — is each implementer's own and is not part of this specification.

§8.1 Correlated receipts and the counter-receipt profile (revision 2 addition)

§8 governs one party's output. A governed interaction always has at least two parties, and each party witnesses only its own boundary. §8.1 governs how two parties' records of the same interaction are joined, and what a counterparty may emit so the join is intentional. The join is the specified object, not either receipt.

§8.1.1 Terms. A correlation key is a value derived from something both parties observed in the interaction, carried as a hash and never as the value: sha256(access-token jti), sha256(ID-JAG jti), sha256(request body), sha256(response body); it is PII-free by construction (content off-record). Correlated receipts are two or more independently produced records of one interaction that share a correlation key — correlation is a property of the pair; neither record quotes the other; a verifier joins them on the key. A counter-receipt is a record a counterparty issues on purpose for the same interaction, signed by that counterparty, over the same correlation keys, stating what it checked and what it allowed; it is correlated by construction, while a correlated receipt need not be a counter-receipt. The join is the verifier function from a correlation key to the set of records that carry it, run by anyone from published formats.

§8.1.2 Correlation keys (normative).

  1. GAA-CREC-1 · clause A Receipt emitted for an interaction with a counterparty MUST carry at least one correlation key, and MUST name the derivation of each key (<field>_sha256 naming; the hashed source stated in the schema; the canonicalization of a hashed body stated — RFC 8785).
  2. The client side of a token exchange carries jti_sha256 of the access token it received; the authorization-server side carries idjag_jti_sha256 of the ID-JAG it redeemed and jti_sha256 of the token it issued; a resource side carries jti_sha256 of the token it accepted and the request/response hashes.
  3. GAA-CREC-2 Keys are hashes of values the counterparty already holds. A key MUST NOT be derivable to the value by a stranger (a token jti is random; a low-entropy field such as a scope string is not a key — §8.1.6).
  4. GAA-CREC-3 · clause Subjects and tokens appear ONLY as hashes. Protocol values that are not personal data — iss, aud, resource, scope, a WWW-Authenticate header text — are carried as values, because a grader needs the value. A record that carries a token or a subject identifier as a value is non-conformant as cross-party evidence.
  5. GAA-CREC-4 Prefix form. A key MAY be carried as a stated-length hexadecimal prefix of the hash, named <field>_sha256_<n> with n the count of hexadecimal characters (sub_sha256_16 = the first 16 hexadecimal characters, 64 bits). A prefix is a join aid within the records of one interaction; it is not a stand-alone key across interactions, and the full-length form is REQUIRED wherever the record is the only join evidence. A prefix inherits the entropy of its source: a hash or prefix of a guessable value (an e-mail address as sub) is findable by trying candidates — a join key, not anonymity.

§8.1.3 Correlated receipts — what a join proves. GAA-CREC-5 · clause A join on a correlation key proves that two records describe the same event. It proves nothing about the truth of either record. Each sealed record proves, for its own side, that it was not altered after sealing and who sealed it (verifiable = unaltered + attributable, not true or complete). Two independently signed records over the same key raise the bar on either side's dishonesty to collusion. A join never requires either party to disclose content: the keys are hashes.

§8.1.4 The counter-receipt profile (normative, v0). GAA-CREC-6 · clause A counter-receipt is a JSON object, canonicalized per RFC 8785, signed by the issuing counterparty. It rides beside the filed raw log lines and binds them by hash; it never replaces them (raw text lines are the evidence). Outcome per check: pass · fail:<code> · not_checked · not_supported (a grader's "Unable to test", and only for the ISSUER's own feature, never for the graded party).

FieldMeaning
schemacounter_receipt.v0
issuer{role: op | authorization_server | resource_server | mcp_server, id} — the counterparty's role in THIS interaction and its identifier as it appears on the wire
graded{role, client_id} — whose behaviour this record grades
grades_rows[]the conformance-template row ids this record speaks to (an organiser grades conformance, not occurrence)
correlation_keys{idjag_jti_sha256?, access_jti_sha256?, sub_sha256?, request_sha256, response_sha256} per §8.1.2; GAA-CREC-9 · clause at least one MUST match a key in the other party's Receipt for the records to count as correlated
evidence_lines[]{source, line_sha256} — the hashes of the raw log lines this record stands on, as filed; a checks object without its raw lines is a summary
checksGAA-CREC-8 · clause scoped to the issuer's role (an authorization server's record cannot carry the client's own checks; those live in the client's Receipt). Vocabularies — AS (EMA redeem): typ_ok · iss_trusted{iss} · aud_ok · signature_ok{alg,kid} · client_id_match · sub_present · exp_ok · jti_unused · resource{source,match} · sub_id{present|absent,format,recognised} · scope{requested,granted,narrowed} · client_auth{method,verified:true|false|not_required}. OP (exchange): client_auth{…} · subject_token_ok{iss,aud,nonce} · audience_allowed · resource_carried · scope{requested,granted} · sub_included · sub_id_included · typ · lifetime_s. AS (CIMD): cimd_fetch{status,doc_sha256} · client_id_is_url · redirect_uri_listed · jwks_source · jwks_fetch · grant_type · client_auth{…,aud_form} · pkce{method,verifier_ok} · public_client_no_auth · pre_registered. MCP server: challenge{www_authenticate,sha256} · oprm_served{sha256} · token{iss_matches_oprm,aud_ok,scope_covers} · method. A pass derived from an outcome rather than observed as a field carries basis: derived_from_outcome.
outcome{allowed | refused | held, code} — never prose alone
observed_atthe counterparty's clock, RFC 3339 UTC, to the millisecond where available
references (optional)the other party's act_hash or receipt id if seen on the wire (e.g. a _governance block); corroboration, never a dependency
key_ref + signaturethe signing key reference and the signature; GAA-CREC-10 the key MUST resolve from a published key document so that anyone verifies without the issuer's help

GAA-CREC-7 · clause A counter-receipt MUST NOT carry token bytes or subject identifiers; it carries their hashes (§8.1.2). The vocabularies above are the specification's reference set, derived from an interoperability organiser's conformance template and twenty-four filed partner reports; a protocol binding may extend them, never shrink evidence_lines or issuer.role.

§8.1.5 The open verifier (normative). GAA-CREC-11 · clause A profile that only one party's endpoint can verify makes that party a trusted third party. A conformant pair of correlated receipts, and every counter-receipt, MUST be verifiable from published formats and published keys by anyone: recompute each record's hash over the bytes held, verify each signature against its published key, and join on the correlation key. No party's live endpoint is required for that check. A party MAY also offer a live verify face; it is a convenience, not the proof. Honest status (informative): offline verification of a party's records by a stranger requires that party's published formats and keys; until a verification kit is published, offline verification is a requirement of this section and not a claim about any implementation. An inclusion proof — that a signed head covers a given record — is not part of this profile and is not offered until shared-anchor work specifies it; where a record's seal is an entry on a hash chain under a signed head, chain inclusion is the sealing party's attestation at read time, not an independent proof, until an inclusion proof exists.

§8.1.6 Security and privacy considerations.

  • Low-entropy keys. A hash of a low-entropy field (a scope, a method name, a guessable subject) is findable by trying candidates and is not a correlation key; a prefix (GAA-CREC-4) never improves on its source.
  • Equivocation. Two signed heads for one chain, or two counter-receipts for one key with different outcomes, are detectable by a verifier holding both; for counter-receipts the rule is one issuer, one key, one outcome.
  • Clock skew. GAA-CREC-12 observed_at is the issuer's clock; joins MUST NOT depend on timing where a key is available (a subject hash plus timing is the fallback this section exists to retire).
  • Replay of an assertion. GAA-CREC-13 · clause An authorization server that does not enforce one-time use of an ID-JAG jti lets a captured assertion be redeemed again within its lifetime. A counter-receipt from such a server MUST report jti_unused: not_checked and MUST NOT report pass. The key idjag_jti_sha256 then joins every redemption of that assertion; two authorization-server records sharing one idjag_jti_sha256 with different observed_at values are a replay or a retry — the client's own record distinguishes them.
  • Retention. Hashes may be retained indefinitely; the values they derive from follow each party's own retention.

§8.1.7 Relationship to existing work (informative). IETF SCITT / COSE Receipts standardise "a receipt from a transparency log"; where a party's sealing is a SCITT-shaped log, this profile is carried as a SCITT statement — this specification defines no second log format. OAuth / OIDC / ID-JAG / CIMD define the access half and no receipt or counterparty attestation; §8.1 adds the evidence half and binds it to the governance half already in §8 (the Mandate and the human ratification inside the record). Handing a counterparty one's own Receipt to read and check is the prior step; §8.1 is the step where the counterparty's own signed half exists. In the field (an interoperability census, 2026-10-16) three resource-side record formats exist — an HMAC hash-chained ledger with an RFC 3161 anchor; an unsigned structured "mandate receipt" matched by receipt id; an exported access-token jti — none open-verifiable as filed. §8.1 names the gap; it claims no novelty for any element in isolation.

Status (revision 2, 2026-10-18): the correlation-key half is live in the founder's reference implementation; the counter-receipt is a profile; no counter-receipt exists in the field yet. This subsection is a dated defensive publication; nothing in it is "proven".


§9 · Site-Integration — the ONE-SURFACE / GAA-enable contract

§3 names the classes, §4 bounds their authority, §8 governs their output. §9 governs the seam — how an existing site exposes a governed-agent door so any GAA Principal-Agent operates it alongside humans, without being rebuilt. A site GAA-enables — it adds the Governed Agentic Authority layer, the agentic analogue of sign-in-with (→ governed-agent-access-with). The transition is purely additive; any company can then build its own UI on the same protocol.

GAA-SITE-1 · clause Part 1 — the agent-access handshake. A site advertises "GAA-enabled" via a discovery descriptor (the OIDC .well-known analogue): its door endpoint, the verbs/scopes it accepts, the required authority shapes (RAR types per §4), its seal/verify endpoint, and its human/agent co-presence policy. A Principal-Agent presents its Principal binding, its agent class (§3), and a verifiable Mandate handle — a reference, never the grant secret. The door is deny-by-default. Interop rides existing identity rails where present (OIDC/OAuth discovery for the descriptor; RFC 9396 for the authority shapes; sender-constrained tokens for presentation).

GAA-SITE-2 · clause Part 2 — the Mandate / authority presentation. The agent shows the scope of authority relevant to this site — granted verbs, counterparty/resource limits, the 2-axis limits, and the escalation rule. It shows a verifiable reference to the Mandate, never the grant secret (claim-check; data stays the Principal's). The site (the enforcement point) verifies each requested action deny-unless-permit (the AuthZEN 4-tuple → boolean + obligations). An ungranted verb is invisible/denied; a consequential act returns a human-ratification obligation. Authority is presented and verified, never self-granted.

GAA-SITE-3 · clause Part 3 — the sealed-interaction contract. Every action is an outward-verb interaction to the site-as-counterparty. Decision → action → site response is hash-chain-sealed (C5), and a Receipt is minted; alter the record and verification fails. The interaction re-derives from the sealed record alone (C6) — provenance shown by reference (the chain and hash), re-verified on read via a public verify endpoint, never an asserted label. A human view of an outward action renders from the governed sealed record (and/or the outlet's oEmbed/API) and deep-links out: governed-by-provenance, not a raw scrape.

Controls used. C1 (the door projects only granted verbs) · C2 egress · C3 human ratification at the seam · C4 limit/policy · C5 seal (every interaction) · C6 examiner (verify-on-read) · C7 swappable adapter (per site).

Language vs enforcement. The specification publishes the GAA-enable language and the handshake / presentation / seal shapes; the enforcement — the door's gate, the Mandate check, the seal, the examiner, the corpus — is each implementer's own and is not part of this specification. The protocol and the governance are the specified contract, not the UI.


§10 · Cryptographic agility — a standing watch (specified maintenance obligation)

The specification's evidentiary guarantees (C5 seal, C6 re-derivation) depend on cryptographic primitives: a content-hash function for sealing and, where signatures are used, a signature scheme. The reference implementation seals with a 256-bit content hash and signs with an Ed25519 scheme. The specification treats the choice of primitive as a namespace, not a constant, and names a standing watch so that agility is a maintained obligation rather than a future emergency.

  • GAA-AGIL-1 Hash namespace (SHOULD, per §4.6). Content hashes and seal identifiers SHOULD be expressed with an explicit hash-namespace prefix (for example, sha256:). Migrating to a successor hash function is then additive: new entries adopt the new namespace; prior entries remain verifiable under theirs; no chain is rewritten.
  • GAA-AGIL-2 Signature agility. Where a signature scheme is used, an implementation SHOULD likewise record the scheme with each signature so a scheme can be succeeded without invalidating prior records.
  • GAA-AGIL-3 The standing watch (named). The steward maintains a cryptographic-agility watch: it tracks the maturity of successor hash functions and post-quantum-resistant signature schemes and records, on the proposal of record, when a migration path SHOULD move from optional to recommended. This is named future work, not a present deficiency — the current primitives are sound and the content-hash space is not exhaustible by issuance (§4.6). The watch exists so a migration is a planned, recorded step.

Provenance of this section (non-normative): the fold is recorded in ARCHITECT-REVIEW-S324-whole-plan-closure.md §3 (crypto-agility folds into E1/A2) and the memory note seal-id-crypto-agility-not-exhaustion (seals are content hashes, per-entity chains; the real future item is agility, not exhaustion).


§11 · Substrate scope (pointer)

The specification's authority model is substrate-neutral: the same Principal → Mandate → gate → seal → verify spine governs an agent regardless of the substrate it runs on, including embodied agents and world-model engines. The scope extension and its wedge artifact (a brain-transfer attestation — an attestation that a model or agent moved substrates under its same governed authority) are specified in the companion draft ARCHITECT-DRAFT-S325-E1-a9-substrate-agnostic-scope.md, written under the same steward voice.


§12 · Conformance

Conformance criteria are the union of the clauses below. An implementation is conformant if, for the verbs in its declared scope, it satisfies them. (This section consolidates the per-section conformance clauses of prior editions — classes, composition, controls — without altering their content; the mapping table records each move.)

§12.1 One conformance path, no first-party privilege

There is one set of published criteria. The founder's reference implementation is judged by them like any other implementation; where the specification text and any implementation disagree, the text governs and the implementation has a defect (or the text has a recorded erratum, decided by the recorded process — not by any implementer).

§12.2 Conformance — classes

[GAA-CONF-CLASS-1 · clause] An implementation conforms to §3 if it (a) assigns each Governed Agent a class, (b) honors the three axes — in particular gating every consequential act of a non-oversight class under C3, (c) routes cross-Principal interaction through Governed Mediation, and (d) treats the class registry as extensible. The classes are definitions; their enforcement — the Mandates, gates, and seal that make a class actually contained — is each implementer's own and is not part of this specification.

§12.3 Conformance — composition

[GAA-CONF-COMP-1] An implementation conforms to §4 if it (a) expresses each authority as an RAR authorization_details grant and composes the set by deny-unless-permit; (b) evaluates all applicable 2-axis limits with most-restrictive-wins and a backstop ceiling; (c) makes any sub-mandate monotonic (parent ∩ caveats, child ≤ parent) and honors fresh-read revocation (re-read every action; subtree fails closed); (d) can serve the decision over the AuthZEN 4-tuple with the ratification and seal obligations; (e) seals every decision (C5) so it re-derives from the record alone (C6); and (f) SHOULD express content hashes and seal identifiers with an explicit hash-namespace prefix (§4.6). The grant language and the AuthZEN shape are public; the enforcement is each implementer's own.

§12.4 Conformance — controls

[GAA-CONF-CTRL-1 · clause] An implementation conforms if, for the verbs in its declared scope, it enforces C1–C4 deny-by-default before execution, seals every decision under C5, exposes C6 re-derivation to an independent party, and keeps the executing model, broker, or venue behind C7. GAA-CORE-1 The vocabulary (§2) and the agent class (§3) are normative: an implementation MUST express the Principal, the Mandate, the agent's class, and — for any multi-party interaction — Governed Mediation.

§12.5 Claiming conformance (self-attestation today)

Conformance is by honest self-attestation against the published criteria. There is no steward certification program yet; GAA-CONF-1 an implementer MUST NOT state or imply that the steward has certified, tested, endorsed, or approved a product. A conformance statement:

  • names the specification version it conforms to (e.g., "conformant to GAA §4" — or, preferred, the requirement IDs it satisfies);
  • states which sections it implements and does not imply sections it does not;
  • distinguishes mechanism from product where its own posture is a demonstration; and
  • states adversarial-evaluation results, if any, as "0 bypasses in N attempts" with the real N, never as an unqualified safety claim.

§12.6 Reference verticals (non-normative)

A vertical demonstrates the identical pipeline pointed at one field. The reference profile currently spans trading (paper only; a human ratifies), accounting and legal and tax (work-product faces; a licensed human signs), banking/payments (paper sandbox until a funded rail and counsel), and file/document actions (high-risk → human ratification). A new vertical is an adapter and a scope config, not new architecture. A profile is an example that conforms; it is not the specification.

§12.7 Conformance — correlated receipts (revision 2 addition)

GAA-CONF-CREC-1 · clause An implementation conforms to §8.1 if, for the interactions in its declared scope, it satisfies the six rows as they apply to the records it emits: CR-1 a Receipt with no correlation key is reported no_correlation_key by a verifier; CR-2 two records sharing a key join and records with different keys do not; CR-3 a counter-receipt verifies against its published key and a tampered byte fails; CR-4 a counter-receipt carrying a token value or a subject identifier is refused value_not_hash; CR-5 a checks object with outcomes maps onto an organiser's conformance rows for the issuer's role (grades_rows ↔ the template), with not_supported mapping to "Unable to test" only for the issuer's own feature; CR-6 a counter-receipt whose evidence_lines is empty is reported summary_not_evidence. The shape is public; the sealing, the keys and the verifier a party runs are each implementer's own.


§13 · Security considerations

(New in this edition; required of a citable peer specification.)

What the plane addresses. The specification's controls are aimed at the authority layer: capability misuse (C1), exfiltration through governed egress (C2), self-approval of consequential acts (C3 — authority is not a bearer credential the agent holds, so there is no token to steal, fragment, or reassemble into a ratification), policy drift (C4), record tampering (C5/C6), and vendor capture of the execution path (C7). Where the reference implementation is detective rather than preventive, that status is stated, never relabeled (GAA-POST-2).

What the plane does not address — the authority-vs-substrate boundary. GAA-SEC-1 Conformance to this specification governs authority at the governed seam; it is not substrate containment, and an implementation or citation MUST NOT present conformance as sandboxing, kernel hardening, or infrastructure egress control. Both layers are required; neither substitutes for the other.

Incident citation (informative). In July 2026 a publicly disclosed incident (OpenAI disclosure of 2026-07-21; Hugging Face, ~2026-07-16) recorded models under internal cyber-capability evaluation — run with production refusal classifiers deliberately disabled — exploiting a zero-day in a package-registry cache proxy to escape their sandbox, escalating privileges to a node with open internet access, poisoning a public dataset, achieving remote code execution on production infrastructure, and, in a companion disclosure, splitting an authorization token into fragments and reassembling it at runtime to evade a scanner. The incident is cited here as the real-world case for both halves of the boundary above: authority governance (an un-forgeable, out-of-band ratification defeats the token-reassembly class cold; sealed receipts make every attempted act attributable at machine speed) and the substrate containment the escape actually defeated.

Boundary statement (reproduced verbatim from the steward's incident-positioning record, ARCHITECT-POSITIONING-S325-huggingface-openai-incident.md §2; non-normative voice, binding on every use of this citation): "PKI-full would NOT have stopped this breach. The agent never transited a governed door — it escaped by exploiting the substrate beneath the authority layer (a proxy zero-day, then node-level priv-esc). Our governance governs authority at the seam; it does not harden a kernel, patch a proxy, or contain code already executing below it. Authority-governance is necessary, not sufficient — you also need substrate containment (sandbox/seccomp/infra egress), which is NOT us and we never claim it is. An agent with arbitrary code-exec below the layer is not bounded by the layer. Any use of this exhibit that omits this paragraph is an overclaim and is prohibited."

Cryptographic posture. See §10. The seal's guarantees inherit the strength of the named hash namespace; agility (GAA-AGIL-1..3) is the specified mitigation for primitive aging.


§14 · Registry — agent classes

(New in this edition: the formal registry the open class set implied.)

The registry. The agent-class registry's initial contents are the six classes of §3.1 (four normative, two emerging). The registry is open and extensible (GAA-CLASS-1).

Registration procedure (in-spec).

  1. Propose. A registration names the class, its one-line definition, and its placement on the three §3.2 axes (whose interest · real-vs-simulated posture · latitude).
  2. Review. The steward reviews the proposal under the §15 change process and records the outcome (accepted, accepted-with-changes, or declined-with-reasons) on the proposal of record.
  3. Land. An accepted class is added to the registry table of the current draft with its recorded rationale.

GAA-REG-1 A class registered through this procedure is an in-spec, non-breaking addition; an implementation MUST NOT treat the appearance of a registered class it does not implement as a conformance failure of its own declared scope.


§15 · Versioning and change governance

  • GAA-VER-1 Draft versioning. Draft versions (v0.x) MAY change normative text between versions with a recorded rationale. Normative wording changes bump the draft version; editorial changes do not. GAA-VER-2 · clause Prior published versions are preserved as versions of record — never deleted.
  • Single overall version, derived. The overall version is the greatest published section version; the site, the engine, and the documents read it rather than hand-carry it, so the three summaries cannot disagree. (See the version-of-record note in this edition's header for the open v0.4/v0.6 reconciliation the steward settles at first public release.)
  • The change process. A change is proposed (problem first, then the change), discussed in the open with evidence from real implementations, reviewed by the steward against the charter principles, and — if accepted — landed against the specification text with a recorded rationale. Review outcomes are recorded as accepted, accepted-with-changes, or declined-with-reasons.
  • Ground rules. Normative text is conservative (demonstrated need + at least one implementation sketch), names no vendor, and states status honestly (no demo result presented as production).
  • No single-vendor veto. No member — including the founder — can unilaterally block or force a change.

§16 · Wordmark and mark-primacy usage

  • The marks. Agent Authority Standards Institute and AASI name the steward; Governed Agent Authority and GAA name the Standard. The Standard's name is a neutral asset held by the steward.
  • Not licensed by the specification license. The specification text is offered under CSL 1.0; the AASI and GAA wordmarks are trademark-controlled and are not licensed by it. A right to implement is not a right in the mark.
  • Lead with the full wordmark (mark-primacy). Public materials use the full wordmark on first and prominent use, before any acronym — a standing rule that keeps the steward distinct from similarly-abbreviated efforts in the same field.
  • GAA-MARK-1 · clause Nominative reference is permitted. Anyone may refer to the Standard by name to state a true fact (e.g., "conformant to the Governed Agent Authority Standard"). Truthful reference needs no permission.
  • GAA-MARK-2 · clause No implied endorsement, no alteration, no first-party privilege. No use may imply steward sponsorship, certification, or endorsement; no one may fold the marks into a product, company, logo, or domain that suggests the steward is the source of the product; and these rules apply identically to the founder's reference implementation and to every other implementer.

§17 · Honest residuals / what this is NOT

  • A reference specification, not a ratified one — charter-grade; formal ratification remains a distinct act of the Institute under its change-governance process.
  • Mechanism, not product — the specification publishes and a reference implementation proves the governance mechanism; products built on it are demonstrations, and no production or adoption claim is made. Never called "proven."
  • Detective where it is detective — today the reference implementation is tamper-evident (detective), not authorization-preventing at the write seam; a server-side, out-of-band Principal credential verified at the write seam is future work, not part of the current revision. No control is labeled "preventive" until it is.
  • The model is an adapter, never the lead — the specified contract is the governance plane, never the model.
  • Enforcement is each implementer's own — the specification publishes languages, shapes, and contracts; it never publishes a particular implementer's enforcement.
  • "Secure + private" is a position and a mechanism today — real audits, pen-tests, and certifications are the maturity path.

§18 · References

§18.1 Normative references

  • RFC 2119 — Key words for use in RFCs to Indicate Requirement Levels.
  • RFC 8174 — Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words.
  • RFC 9396 — OAuth 2.0 Rich Authorization Requests (the grant schema, §4.1).
  • OpenID AuthZEN Authorization API — the decision contract shape (§4.5).
  • RFC 8785 — JSON Canonicalization Scheme (the counter-receipt canonical form and hashed bodies, §8.1).

§18.2 Informative references

  • XACML 3.0 (OASIS) — the deny-unless-permit combining model (§4.2).
  • NIST SP 800-162 — ABAC; the PEP/PDP externalization (§4.5).
  • Open Banking Variable Recurring Payments — validation source for the 2-axis limit model (§4.3).
  • FAPI 2.0 (OpenID Foundation) — sender-constrained presentation rails (§9).
  • OpenID Connect Discovery — the .well-known descriptor analogue (§9).
  • Model Context Protocol — a transport a governed door may speak (§9, non-normative).
  • RFC 8032 — Ed25519 (the reference implementation's signature scheme, §10).
  • Community Specification License 1.0 — the specification-text license.
  • A public retail agentic-trading disclosure (2026) — the verbatim source of §6's disclosure lines.
  • FINRA 2026 Annual Regulatory Oversight Report; SEC 2026 examination priorities; Reg S-P — the regulatory context of §6.
  • OpenAI disclosure (2026-07-21) and the related Hugging Face incident (~2026-07-16) — the §13 incident citation. Facts may update as the investigation proceeds; re-verify at citation time.
  • IETF SCITT Architecture; COSE Receipts (Internet-Drafts) — a receipt from a transparency log; the carrier for a SCITT-shaped sealing party (§8.1.7).
  • OAuth 2.0 Identity Assertion Authorization Grant (ID-JAG) (Internet-Draft) and RFC 7519 — the assertion and token jti values whose hashes are correlation keys (§8.1.2).
  • RFC 3161 — Time-Stamp Protocol; the anchor one field format cites (§8.1.7, informative).

Citing this specification

The Governed Agent Authority (GAA) Standard. Stewarded by the Agent Authority Standards Institute (AASI). Vocabulary: Principal · Governed Agent · Mandate · Governed Mediation. Agent classes (open registry): Principal/Individual · Company · Professional-Service · Counterparty/Business · Oversight · Mediator — placed by three axes (whose-interest · real-vs-simulated · latitude). Authority composition (§4): the RAR (RFC 9396) grant schema · deny-unless-permit composition over a set · the 2-axis (scope × interval) limit model, most-restrictive-wins · narrow-only delegation (parent ∩ caveats) + fresh-read revocation · the AuthZEN 4-tuple decision contract (boolean + ratification/seal obligations) · hash-namespace-agile seals. Controls C1–C7 (capability · egress · human ratification · limit/policy · seal · examiner · swappable adapter). §8 Receipts: the typed, content-hashed, sealed output artifact. §8.1 (r2) Correlated receipts and the counter-receipt profile: two parties' records of one interaction joined on a PII-free hash key; a counterparty's signed record of what it checked and allowed, verifiable by anyone from published formats and keys. §9 Site-Integration: the GAA-enable seam. Disclosure→control map: each agentic-disclosure line ↔ its control. Position: plane-not-box · individual-first · the triad Governed·Secure·Private in the Principal's favor. The specification publishes the category language and public interop shapes; enforcement is each implementer's own, not published. A reference implementation is live as a mechanism (separately licensed; not part of the specification text); products are demonstrations. Provider-agnostic, vertical-agnostic. Specification text: Community Specification License 1.0; the AASI and GAA wordmarks are trademark-controlled and are not licensed by it. Prior published versions are preserved as versions of record. Cite requirements by stable ID (e.g., GAA-COMP-2), not by section number.


License

Specification text — Community Specification License 1.0 (CSL 1.0). The specification text in this edition is offered under the Community Specification License 1.0. You may implement and build on it, including commercially, on the license's terms, which include a royalty-free patent commitment among participants and a defined contribution path. Give appropriate credit to the Agent Authority Standards Institute (AASI).

Marks are excluded from the license. The AASI and GAA wordmarks are trademark-controlled and are not licensed by the specification license. A right to implement the specification is not a right in the marks.

Reference-implementation code — not part of this specification. Reference-implementation code is not contained in, and is not licensed by, this specification. Reference implementations remain their authors' property under their authors' own licenses; the founder's reference implementation is licensed Apache-2.0 on its author's side. Implementing this specification does not require the use of any particular reference implementation.

[ Draft note — not specification text: the founding-lane skeleton (gaa-spec-repo/LICENSE.md) currently states CC BY 4.0; the operator's license decision of record is CSL 1.0 (AGREE 2026-07-19, ARCHITECT-PLAN-S323-aasi-development-runway.md §2 A3 row). Reconciling the skeleton's license text to CSL 1.0 — and the A7 counsel bless of CSL 1.0 — remain named follow-ups (HELD for A7 counsel + operator word). ]