<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.2.3) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY RFC2119 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC7515 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7515.xml">
<!ENTITY RFC8037 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8037.xml">
<!ENTITY RFC8032 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8032.xml">
<!ENTITY RFC7517 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7517.xml">
<!ENTITY RFC3986 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3986.xml">
<!ENTITY RFC8785 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8785.xml">
<!ENTITY RFC6234 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6234.xml">
<!ENTITY RFC4648 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4648.xml">
<!ENTITY RFC3339 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3339.xml">
<!ENTITY RFC6570 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6570.xml">
<!ENTITY RFC2104 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2104.xml">
<!ENTITY RFC7797 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7797.xml">
<!ENTITY RFC6838 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6838.xml">
<!ENTITY RFC6839 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6839.xml">
<!ENTITY RFC8259 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8259.xml">
<!ENTITY RFC6749 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6749.xml">
<!ENTITY RFC9635 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9635.xml">
<!ENTITY RFC9562 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9562.xml">
]>


<rfc ipr="trust200902" docName="draft-kroehl-agentic-trust-aae-02" category="info" submissionType="independent">
  <front>
    <title abbrev="AAE">Agent Authorization Envelope (AAE): A Machine-Evaluable Authorization Structure for Autonomous AI Agents</title>

    <author fullname="Lars Kersten Kroehl">
      <organization>CryptoKRI GmbH</organization>
      <address>
        <postal>
          <city>Zurich</city>
          <code>8001</code>
          <country>Switzerland</country>
        </postal>
        <email>lars@moltrust.ch</email>
      </address>
    </author>

    <date year="2026" month="September" day="06"/>

    <area>Applications</area>
    <workgroup>Independent Submission</workgroup>
    <keyword>autonomous agents</keyword> <keyword>AI agents</keyword> <keyword>authorization</keyword> <keyword>decentralized identity</keyword> <keyword>verifiable credentials</keyword> <keyword>W3C DID</keyword>

    <abstract>


<?line 78?>

<t>Autonomous AI agents now operate at production scale across financial,
commercial, and infrastructure domains — executing transactions, invoking
APIs, and taking consequential actions without direct human oversight at
each step. Existing authorization mechanisms (OAuth 2.0, API keys, ACLs)
were designed for human-initiated requests and do not capture the
machine-evaluable semantics required for autonomous agent authorization:
what the agent is mandated to do, what constraints bound its actions, and
for how long the authorization is valid.</t>

<t>This document specifies the Agent Authorization Envelope (AAE), a
structured authorization container for autonomous AI agents. AAE defines
three mandatory blocks — MANDATE, CONSTRAINTS, and VALIDITY — that
together constitute a machine-evaluable, cryptographically verifiable
authorization assertion. AAE is designed to be protocol-agnostic, binding
to W3C Decentralized Identifiers (DIDs) for agent identity and W3C
Verifiable Credentials (VCs) for issuance and signature, and is
independent of any specific AI framework, transport protocol, or
blockchain.</t>



    </abstract>



  </front>

  <middle>


<?line 99?>

<section anchor="introduction"><name>Introduction</name>

<t>The deployment of autonomous AI agents at scale creates an authorization
gap that existing Internet protocols do not address. When a human user
initiates a request, the authorization question is well-understood: who
is the user, what are they permitted to do, and has their session expired?
Protocols such as OAuth 2.0 <xref target="RFC6749"/> answer these questions for
human-delegated access.</t>

<t>When an autonomous agent initiates a request — potentially on behalf of
another agent, under a delegated mandate, with specific constraints on
permissible actions — the question requires a different answer. The agent
may be acting under a mandate issued hours earlier; its actions may be
bounded by value caps, action allowlists, or domain restrictions; and
the authorization may expire on a schedule that the receiving system
must be able to verify without contacting the issuing party.</t>

<t>No current IETF standard addresses this combination of requirements for
autonomous agents. OAuth 2.0 scopes are issuer-defined strings without
machine-evaluable semantics for agent mandates. SPIFFE/SVID addresses
workload identity but not authorization semantics. JWT claims are
flexible but unstructured for agent-specific use cases.</t>

<t>This document specifies the Agent Authorization Envelope (AAE) to fill
this gap. AAE is derived from a production deployment operational since
March 2026 <xref target="ARXIV-AAE"/> and is aligned with regulatory requirements
from Singapore IMDA <xref target="IMDA-MGF"/>, NIST <xref target="NIST-CAISI"/>, and the EU AI
Act (Regulation 2024/1689).</t>

<section anchor="regulatory-convergence"><name>Regulatory Convergence</name>

<t>Independent regulatory work has converged on the same authorization
structure that AAE implements. Two requirements from the Singapore IMDA
Model AI Governance Framework for Agentic AI, Version 1.5
<xref target="IMDA-MGF"/>, published 20 May 2026, are directly relevant.</t>

<t>First, on agent identity (§2.1.2, "Agent identity — Identification"),
the framework states:</t>

<ul empty="true"><li>
  <t>An agent should have its own unique, cryptographically verifiable
identity, such that it can identify itself to the organisation, its
human user, or other agents.</t>
</li></ul>

<t>The framework further recommends that agent identities be catalogued
and centrally managed, issued from and tracked by a centralised system
— the operational model that a DID-based trust registry implements.</t>

<t>Second, on authorization scope (§2.1.2, "Authorisation"), the framework
recommends that authorisations be scoped, time- or session-bound,
non-transferable, and follow the principle of least privilege by
default with explicit escalation paths; that they be bounded by the
authorising human's permissions; and that delegations of authority be
clearly recorded.</t>

<t>This maps directly to the three AAE blocks: MANDATE defines the scope
and action allowlist, CONSTRAINTS implement least-privilege and value
bounds, VALIDITY enforces time-bound non-transferable authorization, and
the delegation chain structure records authority provenance (Section 3).</t>

<t>A case study in the same framework (§2.3, "Terminal 3 case study")
describes an independent implementation of the same pattern: a
"Verifiable Credential of Intent" issued by a human principal to an
agent before each cycle, defining accessible records, applicable
constraints, and a declared ceiling amount. This is a real-world
deployment of pre-transaction scoped authorization that is structurally
equivalent to AAE.</t>

</section>
<section anchor="terminology"><name>Terminology</name>

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in
all capitals, as shown here.</t>

<t><strong>Agent:</strong> An autonomous software entity that takes actions on behalf of
a principal, potentially without per-action human approval.</t>

<t><strong>Principal:</strong> The human or organization that deploys and is ultimately
accountable for an agent's actions.</t>

<t><strong>Issuer:</strong> The entity that issues the AAE, typically a trust registry
or the principal directly.</t>

<t><strong>Relying Party:</strong> The system or service that receives a request from an
agent and evaluates the AAE to determine whether to process it.</t>

<t><strong>AAE:</strong> Agent Authorization Envelope — the structured authorization
container defined in this document.</t>

</section>
</section>
<section anchor="the-agent-authorization-envelope"><name>The Agent Authorization Envelope</name>

<t>An AAE is a W3C Verifiable Credential <xref target="W3C-VC"/> whose
<spanx style="verb">credentialSubject</spanx> carries an <spanx style="verb">aae</spanx> object. The <spanx style="verb">aae</spanx> object has three
mandatory members — <spanx style="verb">mandate</spanx>, <spanx style="verb">constraints</spanx>, and <spanx style="verb">validity</spanx> — defined
in the following subsections.</t>

<t>An AAE MUST be secured using JOSE. The Verifiable Credential is the
payload of a JSON Web Signature (JWS) <xref target="RFC7515"/> in compact
serialization, signed by the issuer using the Edwards-curve Digital
Signature Algorithm (EdDSA) with the Ed25519 curve, as specified for
JOSE in <xref target="RFC8037"/> and for the signature algorithm itself in
<xref target="RFC8032"/>. The issuer's signing key is a JSON Web Key (JWK)
<xref target="RFC7517"/> bound to the issuer's W3C DID <xref target="W3C-DID"/>: the JWS
protected-header <spanx style="verb">kid</spanx> parameter MUST be a DID URL that dereferences,
via the issuer DID document, to the corresponding verification method.</t>

<t>This document distinguishes two media types. An <em>unsecured AAE</em> — the
Verifiable Credential before JWS encapsulation — is a JSON object with
media type application/aae+json (Section 11). A <em>secured AAE</em> — the JWS
in compact serialization — is not a JSON document; it is transported
with media type application/jose <xref target="RFC7515"/>, and the media type of
its JWS payload is indicated by the <spanx style="verb">cty</spanx> protected-header parameter,
"aae+json".</t>

<section anchor="structure"><name>Structure</name>

<t>On the wire, a secured AAE is a JWS in compact serialization:</t>

<figure><sourcecode type="text"><![CDATA[
BASE64URL(UTF8(JWS Protected Header)) || '.' ||
BASE64URL(JWS Payload) || '.' ||
BASE64URL(JWS Signature)
]]></sourcecode></figure>

<t>The JWS Protected Header MUST contain:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "alg": "EdDSA",
  "cty": "aae+json",
  "kid": "did:moltrust:registry#key-1"
}
]]></sourcecode></figure>

<t><spanx style="verb">alg</spanx>: REQUIRED. MUST be "EdDSA"; the curve MUST be Ed25519, as
specified for JOSE in <xref target="RFC8037"/>.</t>

<t><spanx style="verb">cty</spanx>: REQUIRED. The media type of the JWS payload; MUST be "aae+json"
(Section 11). The "application/" prefix is omitted as permitted by
<xref target="RFC7515"/>. Per <xref target="RFC7515"/>, <spanx style="verb">cty</spanx> (content type) identifies the
secured payload; the <spanx style="verb">typ</spanx> parameter, if present, identifies the JWS
object itself and MUST NOT carry the payload media type.</t>

<t><spanx style="verb">kid</spanx>: REQUIRED. A DID URL identifying the issuer verification method.
It MUST dereference, via the issuer DID document, to an Ed25519
verification method authorized for the <spanx style="verb">assertionMethod</spanx> proof purpose.</t>

<t>The JWS Payload is the unsecured AAE: a W3C Verifiable Credential whose
media type is application/aae+json (Section 11).</t>

<figure><artwork><![CDATA[
{
  "@context": [
    "https://www.w3.org/ns/credentials/v2",
    "https://moltrust.ch/contexts/aae/v1"
  ],
  "type": ["VerifiableCredential", "AgentAuthorizationEnvelope"],
  "id": "urn:uuid:3f2b8c10-7c2e-4f1a-9b6d-1e2a3c4d5e6f",
  "issuer": "did:moltrust:registry",
  "validFrom": "2026-05-20T10:00:00Z",
  "credentialSubject": {
    "id": "did:example:agent-abc123",
    "aae": {
      "mandate": { ... },
      "constraints": { ... },
      "validity": { ... }
    }
  }
}
]]></artwork></figure>

<t>The Verifiable Credential MUST contain an <spanx style="verb">id</spanx> member whose value is a
URI <xref target="RFC3986"/> that is globally unique across all AAEs issued by the
issuer (for example, a UUID URN <xref target="RFC9562"/>). The Verifiable Credential
MUST NOT contain an embedded <spanx style="verb">proof</spanx> member; integrity and authenticity
are provided solely by the enclosing JWS.</t>

</section>
<section anchor="the-mandate-block"><name>The MANDATE Block</name>

<t>The MANDATE block specifies what the agent is authorized to do. It MUST
contain an <spanx style="verb">actions</spanx> array of permitted action identifiers and SHOULD
contain a <spanx style="verb">purpose</spanx> string describing the authorization context.</t>

<figure><sourcecode type="json"><![CDATA[
"mandate": {
  "actions": ["read", "book", "pay"],
  "purpose": "Travel booking on behalf of principal",
  "scope": "travel-vertical",
  "principal_did": "did:example:principal-xyz"
}
]]></sourcecode></figure>

<t><spanx style="verb">actions</spanx>: REQUIRED. Array of strings. Each string is a permitted action
identifier. Relying parties define their own action vocabularies;
interoperability is achieved through shared vertical schemas (see
Section 4).</t>

<t><spanx style="verb">purpose</spanx>: RECOMMENDED. Human-readable description of the authorization
context. Used for audit logs.</t>

<t><spanx style="verb">scope</spanx>: OPTIONAL. Restricts the MANDATE to a specific vertical or
service domain.</t>

<t><spanx style="verb">principal_did</spanx>: RECOMMENDED. The DID of the human or organization
ultimately accountable for the agent's actions.</t>

<t>The MANDATE block MAY also contain a <spanx style="verb">delegation</spanx> object or a
<spanx style="verb">delegation_policy</spanx> object; both are defined in Section 3.</t>

<t>The same principal may also be named in another identifier space — one
defined outside this document, whether by a further specification or by
a relying party's own enrolment records. Nothing in AAE requires two
such identifiers to agree, or even to be comparable, and no rule in this
document derives one from the other. Where a deployment needs the
question answered, it answers it with data: a table mapping both
identifier forms onto one canonical space, published as part of the
deployment. An identifier with no entry is unresolved, which is a
missing input rather than a conflict. Such a table is supplied, not
derived; a rule that only reads a table is not a rule this document can
state. See Section 9.</t>

<section anchor="grants"><name>Grants</name>

<t>The MANDATE block MAY contain a <spanx style="verb">grants</spanx> array. <spanx style="verb">grants</spanx> is OPTIONAL and
additive: it does not replace <spanx style="verb">actions</spanx>, which remains REQUIRED exactly
as this section specifies. An AAE that carries only <spanx style="verb">actions</spanx> is
complete and conforms to this document unchanged.</t>

<t>The two members describe the same authorization at two granularities.
<spanx style="verb">actions</spanx> names the action identifiers an agent is permitted to invoke
at all. A grant states the conditions under which one such action is
authorized at the moment it is attempted, and adding <spanx style="verb">grants</spanx> is what
turns an AAE into an envelope a relying party can enforce per
transaction.</t>

<t>Two rules keep the pair from becoming a way around itself.</t>

<t><strong>Presence of <spanx style="verb">grants</spanx> is binding.</strong> Where an AAE carries <spanx style="verb">grants</spanx>, a
relying party that does not evaluate them MUST reject the envelope. It
MUST NOT fall back to <spanx style="verb">actions</spanx> and MUST NOT return PERMIT on that
basis. An issuer who narrows an authorization by adding grants has to be
able to rely on that narrowing; if a verifier could ignore the grants
and read the coarser member instead, adding them would weaken the
envelope rather than tighten it, and the choice of verifier would decide
what the mandate means.</t>

<t><strong>Grants refine, they never extend.</strong> Every action a grant permits MUST
also appear in <spanx style="verb">mandate.actions</spanx>. <spanx style="verb">actions</spanx> is the outer bound and
<spanx style="verb">grants</spanx> is the refinement inside it; a grant naming an action the
mandate does not list is malformed, and the relying party MUST reject
the mandate rather than honour the grant.</t>

<t>Each element of <spanx style="verb">grants</spanx> is an object with four REQUIRED members:</t>

<figure><sourcecode type="json"><![CDATA[
"grants": [
  {
    "action_binding": "sha256:<64 lowercase hex characters>",
    "type_fields": ["verb", "asset", "chain"],
    "disposition": "allow",
    "constraints": [
      { "type": "exact", "field": "to", "value": "0xABCDEF01" },
      { "type": "range", "field": "amount", "lo": 0, "hi": 1000 }
    ]
  }
]
]]></sourcecode></figure>

<t><spanx style="verb">action_binding</spanx>: REQUIRED. The digest defined in Section 2.2.2. A
relying party MUST reject a grant whose <spanx style="verb">action_binding</spanx> is absent, is
not a string, or does not match the form <spanx style="verb">sha256:</spanx> followed by exactly
64 lowercase hexadecimal characters.</t>

<t><spanx style="verb">type_fields</spanx>: REQUIRED. The names of the members that make up the
action this grant binds, as defined in Section 2.2.2. It MUST be a
non-empty array of non-empty strings, MUST contain <spanx style="verb">verb</spanx>, and MUST NOT
repeat a name. A relying party MUST support at least 32 entries and MAY
reject a longer list. A grant failing any of these is malformed.
Repetition is not merely redundant: the comparison in Section 2.2.2 is
over sets, and a list with a duplicate claims a field count it does not
have.</t>

<t><spanx style="verb">disposition</spanx>: REQUIRED. One of <spanx style="verb">allow</spanx>, <spanx style="verb">hold</spanx>, or <spanx style="verb">forbid</spanx>. Any other
value makes the grant malformed and the relying party MUST reject the
mandate.</t>

<t><spanx style="verb">constraints</spanx>: REQUIRED. An array, possibly empty, of the constraint
objects defined in Section 2.5. A relying party MUST support at least 64
members and MAY reject a longer array.</t>

<t>A mandate carrying <spanx style="verb">grants</spanx> MUST carry at least one grant. A relying
party MUST support at least 256 grants and MAY reject a longer array. A
relying party MUST reject a mandate that is absent, is not an object,
carries an empty or non-array <spanx style="verb">grants</spanx> member, exceeds a limit it has
set for itself, or contains a single malformed grant. Rejection in this
section means the DENY verdict of Section 6.1, not a transport-level
error.</t>

<t>Numeric bounds in this section and in Section 2.5 state <strong>minimum
capabilities, not ceilings</strong>. Where a number is given, a relying party
MUST support at least that value and MAY refuse input beyond a limit of
its own choosing. The numbers exist so that an issuer can predict what
any conforming verifier will accept, not to cap what an implementation
may do. Properties that carry security or determinism are not bounds and
stay MUST without qualification: an exact comparison, a closed type set,
integer-only arithmetic, a rejected empty path segment, and a comparison
that does not short-circuit.</t>

</section>
<section anchor="action-binding"><name>Action Binding</name>

<t><spanx style="verb">action_binding</spanx> commits a grant to one action. It is computed over the
action alone, so that a third party can recompute the binding without
seeing the rest of the transaction.</t>

<t>Let A be the JSON value the relying party evaluates as the action. The
binding is:</t>

<figure><sourcecode type="text"><![CDATA[
action_binding = "sha256:" || LOWERHEX( SHA-256( TAG || JCS(A) ) )

TAG = the 21 octets "aae:enforce-action:v1" followed by a single
      0x00 octet
]]></sourcecode></figure>

<t>JCS is the JSON Canonicalization Scheme of <xref target="RFC8785"/>, and SHA-256 is
as specified in <xref target="RFC6234"/>. The same two apply to every digest defined
in this document.</t>

<t>A domain tag MUST be used, and its value for this digest is
<spanx style="verb">aae:enforce-action:v1</spanx>. The tag separates this digest from every other
digest in this document and from any digest defined elsewhere. A relying
party MUST NOT accept a digest computed without the tag, and MUST NOT
accept an encoding other than lowercase hexadecimal.</t>

<t>This document now defines two digest constructions, and they
deliberately differ. The <spanx style="verb">delegator_aae_hash</spanx> of Section 3 takes the
exact ASCII octets of a parent AAE's JWS compact serialization as
retrieved — no domain tag, no canonicalization, encoded base64url
<xref target="RFC4648"/>. The <spanx style="verb">action_binding</spanx> defined here takes a JSON value,
canonicalizes it under <xref target="RFC8785"/>, prefixes a domain tag, and encodes
the result as lowercase hexadecimal. The difference follows from the
input: a JWS is already a fixed octet sequence, and re-encoding it would
destroy the very bytes the signature covers, whereas a JSON object has
no fixed serialization until one is imposed. Neither construction
substitutes for the other, and a value produced by one MUST NOT be
compared against a value produced by the other.</t>

<t>A grant binds an <strong>action type</strong>: the members of A identify what kind of
operation is authorized, not which particular instance of it.
<spanx style="verb">type_fields</spanx> names those members, and the two MUST agree exactly.</t>

<t>A MUST be a JSON object. A string, an array, a number, a boolean, a
null, or an absent action does not constitute an action type, and a
relying party MUST deny such a transaction.</t>

<t>The object test is what decides, and it is not the digest that decides
it. All of those values canonicalize: <xref target="RFC8785"/> produces octets for a
string, an array, a number, a boolean and a null alike, so a digest over
any of them is well formed. A well-formed digest over a non-object
therefore says nothing about whether an action was addressed, and a
relying party MUST NOT let a digest comparison stand in for the object
test. Where the digest is computed relative to that test does not change
the verdict — a non-object action matches no grant's <spanx style="verb">type_fields</spanx>, so
it is denied on the type predicate before any binding comparison is
reached (Section 2.2.3, steps 2 and 3). What MUST NOT happen is that a
digest computed over a non-object is compared against a grant's
<spanx style="verb">action_binding</spanx> and read as a match.</t>

<t>The member names of A MUST be exactly the names in the grant's
<spanx style="verb">type_fields</spanx>, compared as sets. A member of <spanx style="verb">type_fields</spanx> that A does
not carry, and a member of A that <spanx style="verb">type_fields</spanx> does not name, each make
the grant inapplicable to that transaction. If no grant's <spanx style="verb">type_fields</spanx>
matches the action, the verdict is DENY, and the relying party SHOULD
report which names were missing and which were outside the declared
type.</t>

<t>The values that distinguish one instance from another — amounts,
recipients, sequence numbers — MUST NOT be carried inside A. They travel
as siblings of the action in the transaction and are bounded by the
grant's constraints under Section 2.5. Placing such a value inside A
would make it part of the digest, so every payment would be a different
action and a grant could bind at most one of them.</t>

<t>A binding that commits to an action <strong>instance</strong> rather than an action
type — one whose digest covers the concrete values of a single
transaction — is outside this specification. This document neither
defines nor forbids such a construction; it is simply not the binding
specified here, and an implementation that offers both MUST keep them in
distinct members so that no verifier has to guess which one a digest
covers.</t>

</section>
<section anchor="grant-evaluation"><name>Grant Evaluation</name>

<t>A relying party evaluating a transaction against a mandate MUST proceed
as follows.</t>

<t><list style="numbers" type="1">
  <t>Compute the action binding of the transaction's action per
Section 2.2.2. If the transaction is absent or is not an object, or
if the action cannot be canonicalized, the verdict is DENY.  <vspace blankLines='1'/>
This step does not settle the object test of Section 2.2.2. An action
that is a string, an array, a number, a boolean or a null
canonicalizes and yields a well-formed digest, so it passes this
step; it is denied in step 2, which is where the object test takes
effect. An absent action is one such case: it canonicalizes as
<spanx style="verb">null</spanx>.</t>
  <t>Select every grant whose <spanx style="verb">type_fields</spanx> matches the action's member
names as sets. An action that is not a JSON object has no member
names and matches no grant, which is how a non-object action reaches
DENY (Section 2.2.2). A grant whose declared type the action does not
satisfy is skipped, not fatal: a mandate may carry grants for several
kinds of action, and only those of the kind at hand are considered.
If no grant's type matches, the verdict is DENY. The reason SHOULD
name the missing and the outside members, and for a non-object action
SHOULD say so; the predicate trace of Section 2.5.2 already carries
what a verifier needs to reconstruct the decision, so this document
does not fix the granularity of the reason string. The DENY itself is
not optional.</t>
  <t>Among the grants selected in step 2, take every one whose
<spanx style="verb">action_binding</spanx> equals the computed digest. The comparison MUST be
performed in constant time with respect to digest content.</t>
  <t>If no grant matches, the verdict is DENY. An action that no grant
addresses MUST NOT produce PENDING. Silence in a mandate is not a
route to authorization.</t>
  <t>If any matched grant carries <spanx style="verb">disposition: "forbid"</spanx>, the verdict is
DENY, and the relying party MUST NOT evaluate that grant's
constraints and MUST NOT consider any other matched grant. A
prohibition takes precedence over a permission for the same action.</t>
  <t>Otherwise, evaluate the matched grants in document order. For the
first grant all of whose constraints hold, the verdict is PERMIT if
its <spanx style="verb">disposition</spanx> is <spanx style="verb">allow</spanx> and PENDING if its <spanx style="verb">disposition</spanx> is
<spanx style="verb">hold</spanx>. Evaluation stops at that grant.</t>
  <t>If no matched grant satisfies all of its constraints, the verdict is
DENY.</t>
</list></t>

<t>A relying party that cannot carry out this procedure MUST NOT evaluate
the transaction against <spanx style="verb">mandate.actions</spanx> instead. Where <spanx style="verb">grants</spanx> is
present it is the operative member, and a verifier that does not
implement this section rejects the envelope rather than answering a
narrower question with a coarser one (Section 2.2.1). Rejection here is
the DENY verdict of Section 6.1, not a transport-level error.</t>

</section>
</section>
<section anchor="the-constraints-block"><name>The CONSTRAINTS Block</name>

<t>The CONSTRAINTS block specifies limits that bound the agent's actions
within the MANDATE.</t>

<t>Relying parties MUST enforce all constraints they recognize. A relying
party MUST reject an AAE if any constraint marked <spanx style="verb">required: true</spanx> is
unrecognized or cannot be evaluated. A relying party MAY ignore an
unrecognized constraint only if that constraint is explicitly marked
<spanx style="verb">required: false</spanx>. If the <spanx style="verb">required</spanx> member is absent, the constraint
MUST be treated as <spanx style="verb">required: true</spanx>.</t>

<figure><sourcecode type="json"><![CDATA[
"constraints": {
  "max_transaction_value": {
    "value": 500,
    "currency": "USD",
    "required": true
  },
  "allowed_domains": {
    "value": ["booking.example.com", "flights.example.com"],
    "required": true
  },
  "rate_limit": {
    "value": 10,
    "window": "PT1H",
    "required": false
  }
}
]]></sourcecode></figure>

<t>Constraint keys are extensible. This document defines three RECOMMENDED
constraint types:</t>

<t><list style="symbols">
  <t><spanx style="verb">max_transaction_value</spanx>: Maximum value of any single transaction.
MUST include <spanx style="verb">value</spanx> (number) and <spanx style="verb">currency</spanx> (ISO 4217).</t>
  <t><spanx style="verb">allowed_domains</spanx>: Allowlist of domains the agent may contact.</t>
  <t><spanx style="verb">rate_limit</spanx>: Maximum number of actions per time window.
MUST include <spanx style="verb">value</spanx> (integer) and <spanx style="verb">window</spanx> (an ISO 8601 duration,
e.g., "PT1H").</t>
</list></t>

<t>A relying party that enforces a <spanx style="verb">rate_limit</spanx> constraint marked
<spanx style="verb">required: true</spanx> MUST maintain sufficient state to count accepted
actions within the specified window. A relying party that cannot
maintain such state MUST reject an AAE containing a required
<spanx style="verb">rate_limit</spanx> constraint.</t>

</section>
<section anchor="the-validity-block"><name>The VALIDITY Block</name>

<t>The VALIDITY block specifies the temporal bounds of the authorization.</t>

<figure><sourcecode type="json"><![CDATA[
"validity": {
  "not_before": "2026-05-20T10:00:00Z",
  "not_after": "2026-05-20T18:00:00Z",
  "revocation_check": "https://api.moltrust.ch/aae/revocation/{id}",
  "single_use": false
}
]]></sourcecode></figure>

<t><spanx style="verb">not_before</spanx>: REQUIRED. An RFC 3339 <xref target="RFC3339"/> date-time, expressed in
UTC with the "Z" offset. The AAE MUST NOT be accepted before this time.</t>

<t><spanx style="verb">not_after</spanx>: REQUIRED. An RFC 3339 <xref target="RFC3339"/> date-time, expressed in
UTC with the "Z" offset. The AAE MUST NOT be accepted after this time.
Relying parties MUST reject expired AAEs.</t>

<t><spanx style="verb">revocation_check</spanx>: OPTIONAL. An HTTPS URI Template <xref target="RFC6570"/> for
checking AAE revocation status. The template MUST support the <spanx style="verb">{id}</spanx>
variable, expanding (with URI encoding) to the Verifiable Credential
<spanx style="verb">id</spanx>, and SHOULD support the <spanx style="verb">{did}</spanx> variable, expanding to
<spanx style="verb">credentialSubject.id</spanx>. If <spanx style="verb">revocation_check</spanx> is present, the relying
party MUST query the endpoint over HTTPS; the response MUST be a JSON
object containing at least an <spanx style="verb">id</spanx> member and a boolean <spanx style="verb">revoked</spanx>
member. The relying party MUST reject the AAE if the endpoint indicates
<spanx style="verb">revoked: true</spanx> or if the response cannot be parsed. If revocation
status cannot be determined — for example, on network failure or an
HTTP 5xx response — the relying party MUST reject the AAE. A relying
party MAY apply an explicit, locally configured, auditable fail-open
policy only for AAEs whose risk classification permits such behaviour;
such a policy SHOULD NOT be used for high-risk actions and MUST be
subject to explicit governance and audit logging.</t>

<t><spanx style="verb">single_use</spanx>: OPTIONAL. Boolean. Default: false. If true, the relying
party MUST maintain state keyed by the Verifiable Credential <spanx style="verb">id</spanx>
(Section 2.1) and MUST reject any subsequent presentation of an AAE
bearing the same <spanx style="verb">id</spanx> after the first successful authorization. A
relying party that cannot maintain such state MUST reject any AAE with
<spanx style="verb">single_use: true</spanx>. Where a relying party is deployed across multiple
nodes, the single-use state MUST be shared across all nodes that can
accept the AAE; otherwise the AAE could be replayed against a different
node. In this document, "invalidation" denotes relying-party-local
state; it does not invalidate the AAE globally.</t>

<t>If the Verifiable Credential contains a <spanx style="verb">validFrom</spanx> member, the relying
party MUST NOT accept the AAE before the later of <spanx style="verb">validFrom</spanx> and
<spanx style="verb">validity.not_before</spanx>. Issuers SHOULD set <spanx style="verb">validFrom</spanx> equal to or
earlier than <spanx style="verb">validity.not_before</spanx>.</t>

<t>A verdict under Section 2.5 is a function of the mandate and the
transaction. It says nothing about whether a condition that held when
the mandate was issued still holds at the moment the action is
attempted. Answering that requires state carried across presentations —
a counter that advanced, an identifier already spent, an attestation of
recency — and the runtime core of Section 2.5.3 holds none by
construction, since carrying such state would break the recompute
determinism that section requires. The members defined above bound the
authorization in time; they do not make it fresh. See Section 9.</t>

</section>
<section anchor="enforcement-constraint-language"><name>Enforcement Constraint Language</name>

<t>This section defines a constraint language used by grants
(Section 2.2.1). It is separate from the CONSTRAINTS block of
Section 2.3 and does not modify it. Section 2.3 defines an open,
extensible set of named constraint keys evaluated by a relying party
that may consult stored state; the language here is closed and evaluates
a single transaction with no state at all. The two coexist: an AAE MAY
carry a Section 2.3 CONSTRAINTS block and Section 2.2.1 grants, and a
relying party evaluates each on its own terms.</t>

<t>Recompute determinism is the reason for the separation. Two independent
verifiers MUST reach an identical result from identical inputs, and that
holds only if the constraint language is not a program.</t>

<section anchor="closed-type-set"><name>Closed Type Set</name>

<t>A constraint is an object with a <spanx style="verb">type</spanx> member. This document defines
exactly three types, and the set is closed. A relying party MUST
evaluate a constraint whose <spanx style="verb">type</spanx> is <spanx style="verb">exact</spanx>, <spanx style="verb">enum</spanx>, or <spanx style="verb">range</spanx> as
defined below, and MUST treat a constraint of any other type as failed.
An unrecognized type MUST NOT be ignored: what a verifier cannot
evaluate, it does not permit.</t>

<t>Each constraint names a <spanx style="verb">field</spanx>, a dotted path resolved against the
transaction by dictionary traversal only. A path segment MUST NOT be
empty. A relying party MUST support paths of at least 8 segments and MAY
reject a deeper path. A field that is not present is a failed predicate,
not an error.</t>

<t><list style="symbols">
  <t><spanx style="verb">exact</spanx> — <spanx style="verb">{ "type": "exact", "field": ..., "value": &lt;string&gt; }</spanx>. The
predicate holds when the transaction value is a string equal to
<spanx style="verb">value</spanx>. Comparison is byte-exact and performed in constant time.
There is no prefix matching, no suffix matching, no normalization and
no case folding. An address sharing a prefix with the expected value
fails.</t>
  <t><spanx style="verb">enum</spanx> — <spanx style="verb">{ "type": "enum", "field": ..., "values": [&lt;string&gt;, ...] }</spanx>.
The predicate holds when the transaction value is a string exactly
equal to one member. <spanx style="verb">values</spanx> MUST be a non-empty array; a relying
party MUST support at least 512 members and MAY reject a larger set.
Every member MUST be compared; an implementation MUST NOT
short-circuit on the first match, so that the position of the match is
not observable.</t>
  <t><spanx style="verb">range</spanx> — <spanx style="verb">{ "type": "range", "field": ..., "lo": &lt;integer&gt;,
"hi": &lt;integer&gt; }</spanx>. The predicate holds when the transaction value is
an integer and <spanx style="verb">lo &lt;= value &lt;= hi</spanx>, both bounds inclusive. Bounds and
value MUST be integers; a relying party MUST support integers of
absolute value up to at least 10^15 and MAY reject a larger magnitude.
Floating-point numbers, decimal fractions and exponent notation are
not values of this type, and neither is a JSON boolean. A constraint
whose bounds are inverted fails.</t>
</list></t>

<t>Every predicate MUST be explainable in one line, MUST evaluate
deterministically, and MUST NOT depend on a clock, a counter, stored
state, or any input other than the constraint and the transaction.</t>

</section>
<section anchor="predicate-trace"><name>Predicate Trace</name>

<t>A verdict MUST carry a predicate trace: an ordered array with one entry
per predicate the relying party evaluated, in evaluation order. Each
entry is an object:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "predicate": "range",
  "field": "amount",
  "value": 500,
  "bound": { "lo": 0, "hi": 1000 },
  "result": "PASS"
}
]]></sourcecode></figure>

<t><spanx style="verb">value</spanx> is what the transaction carried at <spanx style="verb">field</spanx>, and <spanx style="verb">bound</spanx> is what
the constraint required. <spanx style="verb">result</spanx> is <spanx style="verb">PASS</spanx> or <spanx style="verb">FAIL</spanx>. These five
members are the digested ones (Section 2.5.3). An entry MAY carry a
further <spanx style="verb">reason</spanx> member for a human reader; it is diagnostic and is not
digested.</t>

<t>A verdict reporting only its outcome is not conformant: the trace is
what makes the outcome checkable predicate by predicate, and it is the
difference between a signed result and a recomputable one.</t>

<t>The trace MUST include the structural predicates as well as the
constraint predicates — whether a mandate was present, whether the
action bound to a grant, and which disposition applied — so that a DENY
reached before any constraint was evaluated still says why.</t>

<t><spanx style="verb">value</spanx> and <spanx style="verb">bound</spanx> are transaction content and constraint content in
the clear. A verdict record therefore discloses what was tested and what
it was tested against, to everyone who holds the record. That is a
property of this design rather than an oversight, and Section 7.8 states
what a relying party has to do about it.</t>

</section>
<section anchor="recompute-determinism"><name>Recompute Determinism</name>

<t>A relying party MUST produce a verdict core containing nothing that
cannot be reconstructed from the mandate, the transaction, and the
caller-supplied predecessor digest. It MUST NOT include server time,
random values, stored counters, or accumulated budget.</t>

<t>The core is:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "enforce_version":    "<string>",
  "mandate_digest":     "sha256:<64 lowercase hex characters>",
  "transaction_digest": "sha256:<64 lowercase hex characters>",
  "action_digest":      "sha256:<64 lowercase hex characters>",
  "verdict":            "PERMIT | DENY | PENDING",
  "grant_index":        0,
  "trace":              [],
  "prev_core_digest":   "sha256:<64 lowercase hex characters>"
}
]]></sourcecode></figure>

<t><spanx style="verb">grant_index</spanx> is an integer or null, and <spanx style="verb">prev_core_digest</spanx> is a digest
string or null. <spanx style="verb">trace</spanx> carries the predicate entries of Section 2.5.2.</t>

<t><spanx style="verb">mandate_digest</spanx> and <spanx style="verb">transaction_digest</spanx> are computed as in
Section 2.2.2 with the domain tags <spanx style="verb">aae:enforce-mandate:v1</spanx> and
<spanx style="verb">aae:enforce-transaction:v1</spanx> respectively, each followed by a 0x00
octet.</t>

<t>The core digest is computed the same way as every other digest in this
document:</t>

<figure><sourcecode type="text"><![CDATA[
core_digest = "sha256:" || LOWERHEX( SHA-256( TAG || JCS(core) ) )

TAG = the 19 octets "aae:enforce-core:v1" followed by a single
      0x00 octet
]]></sourcecode></figure>

<t>Canonicalization is what makes the guarantee below reachable at all:
without a fixed serialization, two verifiers producing the same core
object would still produce different octets from it.</t>

<t><strong>Only reproducible fields are digested.</strong> The core carries no free
text. Every predicate entry in <spanx style="verb">trace</spanx> contributes its structured
members — <spanx style="verb">predicate</spanx>, <spanx style="verb">field</spanx>, <spanx style="verb">value</spanx>, <spanx style="verb">bound</spanx>, <spanx style="verb">result</spanx> — and those
are functions of the mandate and the transaction, so a second
implementation derives them rather than copying them. The
human-readable <spanx style="verb">reason</spanx>, both the one on the verdict and the one on each
predicate entry, is diagnostic output: a relying party MUST return it in
the response, and it MUST NOT be part of the digested core. A reason
string is written for a person reading a log; wording that two
implementations need not agree on has no place in a value they must
agree on byte for byte.</t>

<t>Two independent verifiers evaluating the same mandate and the same
transaction MUST produce byte-identical core digests. A verifier that
cannot make this guarantee MUST NOT claim conformance with this section.</t>

</section>
</section>
</section>
<section anchor="delegation-chains"><name>Delegation Chains</name>

<t>An agent may act under a mandate delegated from another agent. An AAE
issued directly by a principal, and not itself delegated, is a <em>root
AAE</em>: it has no <spanx style="verb">delegation</spanx> member, and its effective delegation depth
is 0. A root AAE that authorizes onward delegation MUST include a
<spanx style="verb">delegation_policy</spanx> object in its MANDATE block with a non-negative
integer <spanx style="verb">max_depth</spanx> member; this value is the parent's effective
maximum depth for the first delegation link.</t>

<figure><sourcecode type="json"><![CDATA[
"mandate": {
  "actions": ["read", "book"],
  "delegation_policy": { "max_depth": 2 }
}
]]></sourcecode></figure>

<t>A <em>delegated AAE</em> carries a <spanx style="verb">delegation</spanx> object in its MANDATE block:</t>

<figure><sourcecode type="json"><![CDATA[
"mandate": {
  "actions": ["read"],
  "delegation": {
    "delegator_did": "did:example:parent-agent",
    "delegator_aae_id": "urn:uuid:parent-aae-123",
    "delegator_aae_uri": "https://aae.example/p/parent-aae-123",
    "delegator_aae_hash": "sha-256:5b7e2c...",
    "depth": 1,
    "max_depth": 2
  }
}
]]></sourcecode></figure>

<t><spanx style="verb">delegator_did</spanx>: REQUIRED in delegation context. The DID of the
delegating agent.</t>

<t><spanx style="verb">delegator_aae_id</spanx>: REQUIRED in delegation context. The <spanx style="verb">id</spanx> of the
parent AAE.</t>

<t><spanx style="verb">delegator_aae_uri</spanx>: REQUIRED in delegation context, unless the parent
AAE is embedded in the request by the transport binding. A URI from
which the relying party can retrieve the parent AAE.</t>

<t><spanx style="verb">delegator_aae_hash</spanx>: OPTIONAL. A hash of the parent secured AAE. If
present, the value MUST have the form <spanx style="verb">sha-256:&lt;base64url-encoded-digest&gt;</spanx>.
The digest input MUST be the exact ASCII octet sequence of the parent
AAE JWS compact serialization as retrieved, without additional
whitespace, decoding, re-encoding, or JSON canonicalization. SHA-256 is
as defined in <xref target="RFC6234"/>. If the computed digest does not match the
value in <spanx style="verb">delegator_aae_hash</spanx>, the relying party MUST reject the
delegated AAE.</t>

<t><spanx style="verb">depth</spanx>: REQUIRED in delegation context. Integer. The delegation depth
of this AAE. It MUST equal the parent AAE's effective delegation depth
plus 1. The effective delegation depth of a root AAE is 0; the
effective delegation depth of a delegated AAE is its <spanx style="verb">delegation.depth</spanx>.</t>

<t><spanx style="verb">max_depth</spanx>: REQUIRED in delegation context. Integer. The maximum
delegation depth permitted for this branch of the chain. It MUST be
less than or equal to the parent AAE's effective maximum depth — the
parent's <spanx style="verb">delegation.max_depth</spanx> if the parent is a delegated AAE, or
the root AAE's <spanx style="verb">mandate.delegation_policy.max_depth</spanx> if the parent is a
root AAE. A relying party MUST reject a delegated AAE whose <spanx style="verb">depth</spanx>
exceeds its <spanx style="verb">max_depth</spanx>, and MUST reject any delegation whose parent is
a root AAE that has no <spanx style="verb">delegation_policy</spanx>.</t>

<t>A relying party MUST be able to retrieve the parent AAE in order to
verify a delegation chain. The parent AAE's <spanx style="verb">credentialSubject.id</spanx> MUST
equal the delegated AAE's <spanx style="verb">delegation.delegator_did</spanx>. Which DID is
permitted to sign a delegated AAE — the signing-authority rule — is
specified in the Verification Algorithm (Section 5).</t>

<t>Delegated AAEs MUST NOT grant actions not present in the parent AAE.
Delegated AAEs MUST be strictly subordinate to their parent AAE. For
the purposes of this document, "equal to or more restrictive" is
defined per element as follows:</t>

<t><list style="symbols">
  <t><strong>Actions</strong>: The delegated <spanx style="verb">mandate.actions</spanx> MUST be a subset of the
parent <spanx style="verb">mandate.actions</spanx>. If the delegated MANDATE contains the
<spanx style="verb">delegate</spanx> action, the parent MANDATE MUST also contain it.</t>
  <t><strong>Numeric upper-bound constraints</strong> (for example,
<spanx style="verb">max_transaction_value</spanx>): The delegated <spanx style="verb">value</spanx> MUST be less than or
equal to the parent <spanx style="verb">value</spanx>.</t>
  <t><strong>Rate-limit constraints</strong> (<spanx style="verb">rate_limit</spanx>): A delegated <spanx style="verb">rate_limit</spanx>
constraint is equal to or more restrictive than the parent only if
the relying party can prove that no execution pattern permitted by
the delegated rate limit would violate the parent rate limit. In the
absence of a profile defining such comparison semantics, the
delegated <spanx style="verb">rate_limit</spanx> MUST use the same <spanx style="verb">window</spanx> value as the parent
constraint, and the delegated <spanx style="verb">value</spanx> MUST be less than or equal to
the parent <spanx style="verb">value</spanx>; if the windows differ and no such profile
applies, the delegated AAE MUST be rejected.</t>
  <t><strong>Allowlist constraints</strong> (for example, <spanx style="verb">allowed_domains</spanx>): The
delegated <spanx style="verb">value</spanx> MUST be a subset of the parent <spanx style="verb">value</spanx>.</t>
  <t><strong>Validity</strong>: The delegated <spanx style="verb">validity.not_before</spanx> MUST be greater than
or equal to the parent <spanx style="verb">validity.not_before</spanx>, and the delegated
<spanx style="verb">validity.not_after</spanx> MUST be less than or equal to the parent
<spanx style="verb">validity.not_after</spanx>.</t>
  <t><strong>Delegation depth</strong>: The delegated <spanx style="verb">delegation.depth</spanx> MUST equal the
parent AAE's effective delegation depth plus 1; the delegated
<spanx style="verb">delegation.max_depth</spanx> MUST be less than or equal to the parent AAE's
effective maximum depth; and <spanx style="verb">delegation.depth</spanx> MUST NOT exceed
<spanx style="verb">delegation.max_depth</spanx>.</t>
</list></t>

<t>Every constraint present in the parent AAE that is marked
<spanx style="verb">required: true</spanx>, or for which the <spanx style="verb">required</spanx> member is absent and is
therefore treated as <spanx style="verb">required: true</spanx> (Section 2.3), MUST also be
present in the delegated AAE and MUST either be marked <spanx style="verb">required: true</spanx>
or omit the <spanx style="verb">required</spanx> member. A delegated AAE MUST NOT omit, downgrade,
or change to <spanx style="verb">required: false</spanx> any parent constraint that is required by
this rule. A delegated AAE MAY introduce additional constraints,
provided they do not contradict the parent constraints. For
currency-valued constraints (for example, <spanx style="verb">max_transaction_value</spanx>), the
delegated constraint MUST use the same currency as the parent
constraint, unless the relying party has an explicitly configured and
auditable currency-conversion policy; if the currencies differ and no
such policy exists, the delegated AAE MUST be rejected.</t>

<t>If a relying party cannot determine whether a delegated element is
equal to or more restrictive than the corresponding parent element,
the delegated AAE MUST be rejected.</t>

<t>A delegation chain as described here is presented by the agent and
evaluated by the party it approaches. <xref target="PEDIGREE"/> describes delegation
identity from the supplier side of the same relationship — how a
delegating system mints and narrows the authority it hands on. It is
cited here for the reader's orientation only. This document defines no
dependency on it, derives no requirement from it, and its own
verification algorithm is unchanged by it.</t>

</section>
<section anchor="action-vocabulary-schemas"><name>Action Vocabulary Schemas</name>

<t>Interoperability across relying parties requires shared action
vocabularies. This document defines a minimal common vocabulary:</t>

<texttable>
      <ttcol align='left'>Action</ttcol>
      <ttcol align='left'>Semantics</ttcol>
      <c><spanx style="verb">read</spanx></c>
      <c>Retrieve information without side effects</c>
      <c><spanx style="verb">write</spanx></c>
      <c>Create or modify state</c>
      <c><spanx style="verb">delete</spanx></c>
      <c>Remove state</c>
      <c><spanx style="verb">pay</spanx></c>
      <c>Initiate a payment or financial transfer</c>
      <c><spanx style="verb">invoke</spanx></c>
      <c>Call an external API or service</c>
      <c><spanx style="verb">delegate</spanx></c>
      <c>Issue a delegated AAE to a sub-agent</c>
</texttable>

<t>Vertical-specific vocabularies (travel, finance, healthcare) SHOULD be
published as extensions to this base vocabulary, as stable and
versioned schemas at publicly accessible URIs. This document does not
create an IANA registry for action vocabularies.</t>

</section>
<section anchor="verification-algorithm"><name>Verification Algorithm</name>

<t>A relying party receiving an agent request with an attached AAE MUST
perform the following checks in order:</t>

<t><list style="numbers" type="1">
  <t><strong>Signature verification</strong>: Parse the JWS in compact serialization
and read the protected header. The <em>signing DID</em> is the DID portion
of the <spanx style="verb">kid</spanx> parameter. Resolve the signing DID, dereference the
referenced verification method, and confirm that (a) the
verification method is present in that DID document, (b) it is
authorized for the <spanx style="verb">assertionMethod</spanx> proof purpose, (c) it contains
or resolves to a JWK with <spanx style="verb">kty: "OKP"</spanx> and <spanx style="verb">crv: "Ed25519"</spanx>, and
(d) the JWS signature validates under that key. Reject the AAE if
the signing DID cannot be resolved, the verification method is
absent or not authorized for <spanx style="verb">assertionMethod</spanx>, the key is not
Ed25519, the <spanx style="verb">alg</spanx> is not "EdDSA", or the signature is invalid.  <vspace blankLines='1'/>
The relying party MUST then verify signing authority. For a
non-delegated AAE (no <spanx style="verb">mandate.delegation</spanx> member), the signing DID
MUST be identical to the Verifiable Credential <spanx style="verb">issuer</spanx>. For a
delegated AAE, the signing DID MUST satisfy one of the following:
(a) it is identical to <spanx style="verb">mandate.delegation.delegator_did</spanx>, and the
Verifiable Credential <spanx style="verb">issuer</spanx> is also identical to that DID; or
(b) it is explicitly authorized by <spanx style="verb">mandate.delegation.delegator_did</spanx>
to issue delegated AAEs on that delegator's behalf, where the
authorization is represented by a verification method or service
entry in the delegator's DID document. If signing authority cannot
be established under the applicable rule — or, for case (b), the
relying party does not understand the authorization mechanism — the
AAE MUST be rejected.</t>
  <t><strong>Payload and schema validation</strong>: Parse the JWS payload as
UTF-8-encoded JSON. The payload MUST be a W3C Verifiable Credential
containing <spanx style="verb">id</spanx>, <spanx style="verb">issuer</spanx>, <spanx style="verb">credentialSubject.id</spanx>, and
<spanx style="verb">credentialSubject.aae</spanx>. The <spanx style="verb">aae</spanx> object MUST contain <spanx style="verb">mandate</spanx>,
<spanx style="verb">constraints</spanx>, and <spanx style="verb">validity</spanx>. The protected-header <spanx style="verb">cty</spanx> parameter
MUST equal "aae+json". Reject the AAE if any required member is
absent, has the wrong JSON type, or otherwise violates the
structural requirements of this document.</t>
  <t><strong>Temporal validity</strong>: Confirm current time is within
<spanx style="verb">not_before</spanx> and <spanx style="verb">not_after</spanx>. Reject if outside bounds. Beyond these
two members, Section 2.4 requires that a relying party MUST NOT
accept the AAE before the later of <spanx style="verb">validFrom</spanx> and
<spanx style="verb">validity.not_before</spanx> where the Verifiable Credential carries a
<spanx style="verb">validFrom</spanx> member. That requirement is normative in Section 2.4 and
is neither restated nor altered here; it is recalled because an
implementer working from this algorithm alone would otherwise have no
reason to look for it.</t>
  <t><strong>Subject binding</strong>: The relying party MUST establish that the agent
presenting the AAE controls <spanx style="verb">credentialSubject.id</spanx> before accepting
it.  <vspace blankLines='1'/>
The relying party MUST generate a fresh, unpredictable nonce of at
least 128 bits and send it to the agent together with an audience
identifier that names this relying party and the <spanx style="verb">aae_id</spanx> of the
envelope under verification. The nonce MUST carry a proof of its own
origin that the relying party can check without consulting stored
state — a keyed authenticator over the nonce and its expiry is
sufficient — so that condition (c) below does not require a lookup
merely to establish provenance.  <vspace blankLines='1'/>
The agent MUST return a JWS in compact serialization whose payload is
the UTF-8 encoding of a JSON object with exactly these four members:  <vspace blankLines='1'/>
    <figure><sourcecode type="json"><![CDATA[
{
  "nonce":  "<relying-party nonce>",
  "aud":    "<relying-party audience identifier>",
  "iat":    "<RFC 3339 UTC timestamp>",
  "aae_id": "<Verifiable Credential id>"
}
]]></sourcecode></figure>
  <vspace blankLines='1'/>
A payload carrying any further member, or missing one of these, MUST
be rejected. The protected header MUST contain <spanx style="verb">"alg": "EdDSA"</spanx> and a
<spanx style="verb">kid</spanx> DID URL whose DID portion equals <spanx style="verb">credentialSubject.id</spanx>.  <vspace blankLines='1'/>
The relying party MUST reject the AAE unless all of the following
hold:  <vspace blankLines='1'/>
(a) the challenge-response signature is valid under a key controlled
by <spanx style="verb">credentialSubject.id</spanx>; (b) the referenced verification method is
authorized under the <spanx style="verb">authentication</spanx> relationship in the resolved
DID document — <spanx style="verb">assertionMethod</spanx> does not satisfy this, because the
two relationships answer different questions; (c) the nonce was
generated by this relying party and has not been used before;
(d) <spanx style="verb">aud</spanx> identifies this relying party; (e) <spanx style="verb">aae_id</spanx> equals the
Verifiable Credential <spanx style="verb">id</spanx>; and (f) <spanx style="verb">iat</spanx> lies within the relying
party's accepted clock-skew window.  <vspace blankLines='1'/>
Condition (c) has two halves that are satisfied differently.
Provenance follows from the authenticator on the nonce and needs no
state. Single use does need state: the relying party MUST record each
accepted nonce and MUST reject a second presentation of it. A relying
party SHOULD store only a digest of the nonce rather than the nonce
itself; the check is an equality test, and the stored value never has
to be read back.  <vspace blankLines='1'/>
<strong>Nonce format and lifetime.</strong> The nonce is opaque to the agent,
which returns it unchanged. Its structure is fixed here so that
condition (c) is checkable without a lookup and so that a third party
can distinguish a malformed challenge from a rejected one:  <vspace blankLines='1'/>
    <figure><sourcecode type="text"><![CDATA[
nonce = <random> "." <expiry> "." <authenticator>

<random>        at least 128 bits of unpredictable data,
                lowercase hexadecimal
<expiry>        the absolute expiry, as seconds since the Unix
                epoch, in decimal
<authenticator> HMAC-SHA-256 over the ASCII string
                  <random> "." <expiry> "." <aud> "." <aae_id>
                under a key held by the relying party,
                encoded base64url without padding
]]></sourcecode></figure>
  <vspace blankLines='1'/>
HMAC is as specified in <xref target="RFC2104"/> and base64url as in
<xref target="RFC4648"/>. Three properties follow from what is inside the
authenticated input, and each is required. The expiry is
authenticated, so the party presenting a nonce cannot extend it; a
relying party MUST verify the authenticator, in constant time,
<em>before</em> reading the expiry as a bound, and MUST reject a nonce whose
expiry has passed. The audience is authenticated, so a nonce minted
naming one relying party MUST NOT verify at another. The envelope is
authenticated, so a nonce minted for one <spanx style="verb">aae_id</spanx> MUST NOT verify for
another, and a challenge answered for a cheap envelope cannot be
replayed against an expensive one.  <vspace blankLines='1'/>
The key MUST be domain-separated from every other authenticator the
relying party issues, so that a token minted in one flow never
verifies in another.  <vspace blankLines='1'/>
The lifetime is local policy and this document fixes no value; it
MUST be finite, and it MUST be the value carried in the token rather
than one applied at verification time. A relying party MUST reject a
challenge response whose nonce does not match the form above, whose
authenticator does not verify, or whose expiry has passed — in that
order, since the later tests read fields the authenticator has not
yet vouched for.  <vspace blankLines='1'/>
<strong>Single use and the used-nonce store.</strong> The store is keyed by a
digest of the nonce and holds nothing else that a verifier reads
back. Three rules make it a replay barrier rather than a cache. The
record MUST be created as part of accepting the response, in a way
that a second concurrent presentation of the same nonce cannot also
succeed; an insert that fails because the key already exists is the
rejection, and a read-then-write is not sufficient, because two
presentations can both read absence. The record MUST be retained at
least until the nonce's own expiry, since evicting earlier reopens
replay for the remainder of the lifetime; retention beyond expiry is
not required, because an expired nonce is already rejected by the
origin check. And where the store cannot be reached, the relying
party MUST fail closed and reject the response: single use is the one
condition that cannot be established from the token alone, so an
unavailable store means the condition is unestablished, not
satisfied.  <vspace blankLines='1'/>
<strong><spanx style="verb">iat</spanx>, the nonce lifetime, and clock skew.</strong> <spanx style="verb">iat</spanx> is an RFC 3339
<xref target="RFC3339"/> timestamp carrying a UTC offset, not a JWT NumericDate;
a relying party MUST reject an <spanx style="verb">iat</spanx> that is not such a string or
that carries no offset. Condition (f) is a two-sided window, and the
two sides are not the same quantity. <spanx style="verb">iat</spanx> MUST NOT be later than the
relying party's clock plus its accepted skew — this side is clock
skew alone, since a response cannot legitimately be signed in the
future. <spanx style="verb">iat</spanx> MUST NOT be earlier than the relying party's clock
minus the nonce lifetime and the skew — this side is the lifetime the
nonce already carries, so a response claiming to predate the earliest
moment its challenge could have been minted is refused regardless of
what the nonce says. The nonce expiry and <spanx style="verb">iat</spanx> bound the exchange
from opposite directions and neither replaces the other: the expiry
bounds how long the relying party will still accept the nonce, <spanx style="verb">iat</spanx>
bounds when the agent claims to have signed, and a relying party MUST
check both.  <vspace blankLines='1'/>
<strong>JOSE profile for the challenge response.</strong> The response is an
externally supplied JWS, and "exactly four members" is a statement
about a token only once the parser is pinned down. This profile pins
it down.  <list style="symbols">
      <t>The response MUST be a compact JWS with three parts. A relying
party MUST bound its size before it decodes, parses, or verifies
anything.</t>
      <t><spanx style="verb">alg</spanx> MUST be "EdDSA" and the curve MUST be Ed25519 <xref target="RFC8032"/>. A
relying party MUST verify against an explicit allowlist of
algorithms and MUST NOT take the algorithm to use from the header
of the token it is checking.</t>
      <t>The payload MUST be base64url-encoded. A relying party MUST reject
<spanx style="verb">"b64": false</spanx> <xref target="RFC7797"/> and MUST reject a detached payload.</t>
      <t>A relying party MUST reject a protected header carrying <spanx style="verb">crit</spanx>.
This profile defines no critical extension, so any value of <spanx style="verb">crit</spanx>
names something the relying party does not implement, and
<xref target="RFC7515"/> requires rejection in exactly that case.</t>
      <t>Duplicate member names MUST be rejected rather than resolved, in
the protected header and in the payload alike. Without that rule,
"exactly four members" describes a parser and not a token: a
last-wins parser reads a payload naming <spanx style="verb">nonce</spanx> twice as four
members and accepts what a first-wins parser rejects. The header
carries the same risk in a sharper form — a header naming <spanx style="verb">kid</spanx>
twice, or <spanx style="verb">alg</spanx> twice, leaves the verification method and the
algorithm decided by the parser rather than by the token — so a
relying party MUST apply the rule before it reads any header member
and before it fetches any key.</t>
      <t>The payload MUST be a JSON object with exactly the four members
named above.</t>
      <t>A relying party MUST reject a challenge response whose header
carries the content type of an AAE envelope, so that an envelope
cannot be presented as its own proof of possession.</t>
    </list>
<strong>DID URL comparison and resolution failure.</strong> <spanx style="verb">kid</spanx> MUST be a DID
URL: a DID, a "#", and a non-empty fragment naming a verification
method. A relying party MUST reject a <spanx style="verb">kid</spanx> with no fragment, with an
empty fragment, or with an empty DID part. The DID portion of <spanx style="verb">kid</spanx>
MUST equal <spanx style="verb">credentialSubject.id</spanx> compared as an exact octet
sequence; a relying party MUST NOT normalize, percent-decode,
case-fold, or resolve either side before comparing. It MUST reject a
non-ASCII <spanx style="verb">kid</spanx> — look-alike characters would otherwise let two
distinct DIDs compare as one to a reader while differing to the
verifier — and MUST reject a <spanx style="verb">kid</spanx> containing "/", "\", or "..",
which have no meaning in this position and reach path handling in a
resolver that treats the value as a locator. Where the DID cannot be
resolved, where the resolved document names no verification method
matching <spanx style="verb">kid</spanx>, or where the DID method is one the relying party does
not implement, the relying party MUST reject: a resolution failure is
never a reason to skip condition (b). Where resolution would require
an outbound request, see Section 5.2.  <vspace blankLines='1'/>
This challenge-response exchange is the proof of possession defined
by this document. A relying party that performs it needs no separate
transport-level or protocol-level possession input to establish that
the presenting agent controls <spanx style="verb">credentialSubject.id</spanx>.</t>
  <t><strong>Single-use check</strong>: If <spanx style="verb">validity.single_use</spanx> is true, the relying
party MUST perform an atomic check-and-record operation keyed by the
Verifiable Credential <spanx style="verb">id</spanx>. An <spanx style="verb">id</spanx> that has already been recorded
MUST be rejected. Where the relying party is deployed across
multiple nodes, this state MUST be shared across all nodes;
concurrent presentations of the same <spanx style="verb">id</spanx> MUST NOT both succeed.</t>
  <t><strong>Action check</strong>: Confirm the requested action is present in
<spanx style="verb">mandate.actions</spanx>. Reject if absent.</t>
  <t><strong>Constraint evaluation</strong>: For each constraint in the CONSTRAINTS
block, the relying party MUST enforce every constraint it
recognizes. If a recognized constraint marked <spanx style="verb">required: true</spanx> (or
with <spanx style="verb">required</spanx> absent) cannot be evaluated, the relying party MUST
reject the AAE. If a recognized constraint marked <spanx style="verb">required: false</spanx>
cannot be evaluated, the relying party MAY ignore that constraint.
If a constraint is unrecognized, the relying party MUST reject the
AAE unless that constraint is explicitly marked <spanx style="verb">required: false</spanx>.
The relying party MUST reject the AAE if any enforced constraint is
violated.</t>
  <t><strong>Revocation check</strong> (if applicable): If <spanx style="verb">validity.revocation_check</spanx>
is present, the relying party MUST query the endpoint over HTTPS and
evaluate the result as specified for <spanx style="verb">revocation_check</spanx> in
Section 2.4, including the limited fail-open exception defined there.</t>
  <t><strong>Delegation chain</strong> (if applicable): Where the AAE under
verification is delegated, the relying party MUST verify the whole
chain of ancestors, not only the envelope presented to it.  <vspace blankLines='1'/>
<strong>Wire format for the chain.</strong> Ancestors travel in a member
<spanx style="verb">ancestor_jws</spanx>, an array of compact JWS strings. The array is <em>not</em>
ordered: a relying party MUST index the supplied ancestors by the
Verifiable Credential <spanx style="verb">id</spanx> each one carries, and MUST walk the chain
by following <spanx style="verb">mandate.delegation.delegator_aae_id</spanx> from the presented
AAE outward. Requiring an order would add a second thing that can be
wrong without adding anything a verifier needs, since the pointer
already says which parent belongs to which child. A relying party
MUST bound the supplied material before verifying any of it, and MUST
support at least 16 inline ancestors.  <vspace blankLines='1'/>
Each link is then checked against the parent actually supplied.
<spanx style="verb">mandate.delegation.delegator_aae_id</spanx> names the parent; if no
supplied ancestor carries that <spanx style="verb">id</spanx>, the verdict is DENY — unless the
delegation names only <spanx style="verb">delegator_aae_uri</spanx>, which is deferred
(Section 5.2). <spanx style="verb">mandate.delegation.delegator_aae_hash</spanx> MUST match
that parent: the digest is taken over the exact ASCII octet sequence
of the inline JWS as supplied, with no canonicalization, no domain
tag, encoded base64url <xref target="RFC4648"/> — the construction of Section 3.
"As retrieved" here means as received in the request: there is no
fetch, so the octets the caller handed over are the octets that are
hashed, and a mismatch is DENY. The parent's <spanx style="verb">credentialSubject.id</spanx>
MUST equal the child's <spanx style="verb">mandate.delegation.delegator_did</spanx>. The same
<spanx style="verb">id</spanx> MUST NOT be supplied twice: two ancestors claiming one identity
make the chain ambiguous, and the relying party MUST reject rather
than pick one.  <vspace blankLines='1'/>
A relying party conforming to this revision MUST NOT fetch an
ancestor over the network; retrieval by <spanx style="verb">delegator_aae_uri</spanx> is
addressed in Section 5.2. Steps 1 and 2 MUST be performed over every
ancestor. Steps 4 and 5 MUST NOT be: subject binding and single-use
consumption concern the envelope actually presented, and an ancestor
is not being presented.  <vspace blankLines='1'/>
Across every delegation step, the child MUST be no broader than its
parent: every action in the child's <spanx style="verb">mandate.actions</spanx> MUST also
appear in the parent's; a numeric limit MUST NOT exceed the parent's,
and only limits denominated in the same currency are comparable, so a
differing currency MUST be rejected rather than converted; a
<spanx style="verb">rate_limit</spanx> MUST NOT exceed the parent's and is comparable only
where the window is identical; an allowlist MUST be a subset of the
parent's; the validity window MUST nest, with <spanx style="verb">not_before</spanx> no earlier
than the parent's and <spanx style="verb">not_after</spanx> no later; every constraint the
parent marks <spanx style="verb">required: true</spanx> MUST be present in the child and MUST
NOT be relaxed to <spanx style="verb">required: false</spanx>; and where a constraint type is
unrecognized and parent and child differ in it, the relying party
MUST reject the chain rather than assume the difference is narrowing.  <vspace blankLines='1'/>
<strong>Grant attenuation.</strong> Where either AAE in a delegation step carries
<spanx style="verb">grants</spanx> (Section 2.2.1), the narrowing rules apply to the grants as
well. Checking only <spanx style="verb">mandate.actions</spanx> would leave the finer member
unconstrained, and a child could then permit under conditions its
parent forbids while still naming only actions the parent allows.  <vspace blankLines='1'/>
Every grant in the child MUST be covered by a grant in the parent:
one whose <spanx style="verb">action_binding</spanx> is equal, and whose constraints the
child's constraints imply. A child grant that no parent grant covers
is an extension of authority, and the relying party MUST reject the
chain.  <vspace blankLines='1'/>
The three dispositions order as <spanx style="verb">allow</spanx> &lt;= <spanx style="verb">hold</spanx> &lt;= <spanx style="verb">forbid</spanx>, from
most permissive to least. A child MUST NOT move a disposition down
this order: <spanx style="verb">allow</spanx> may become <spanx style="verb">hold</spanx> or <spanx style="verb">forbid</spanx> and <spanx style="verb">hold</spanx> may
become <spanx style="verb">forbid</spanx>, while <spanx style="verb">hold</spanx> or <spanx style="verb">forbid</spanx> becoming <spanx style="verb">allow</spanx> MUST be
rejected. The order is what makes "no broader than its parent"
decidable for a member that is not a number.  <vspace blankLines='1'/>
For the three constraint types of Section 2.5, a child constraint
implies its parent's when, for <spanx style="verb">exact</spanx>, the child's <spanx style="verb">value</spanx> equals
the parent's — an <spanx style="verb">exact</spanx> constraint admits exactly one value, so a
differing one is neither narrower nor broader but simply another
constraint, and the relying party MUST reject it; for <spanx style="verb">enum</spanx>, the
child's <spanx style="verb">values</spanx> are a subset of the parent's; and for <spanx style="verb">range</spanx>, the
child's interval lies inside the parent's, with <spanx style="verb">lo</spanx> no lower than
the parent's <spanx style="verb">lo</spanx> and <spanx style="verb">hi</spanx> no higher than the parent's <spanx style="verb">hi</spanx>. A
constraint present in the parent and absent from the child removes a
bound and MUST be rejected, whatever its <spanx style="verb">required</spanx> flag says.  <vspace blankLines='1'/>
The relying party MUST maintain the set of AAE <spanx style="verb">id</spanx> values already
visited on the current path and MUST reject the chain if any <spanx style="verb">id</spanx>
appears more than once. It MUST apply a recursion limit equal to the
smaller of 8 and the smallest <spanx style="verb">max_depth</spanx> observed anywhere in the
chain. The effective expiry of the presented AAE is the minimum
<spanx style="verb">not_after</spanx> over the whole chain.  <vspace blankLines='1'/>
The <spanx style="verb">delegator_aae_hash</spanx> construction above is the one of Section 3,
and deliberately not the one Section 2.2.2 defines for
<spanx style="verb">action_binding</spanx>. A value produced by one MUST NOT be compared
against a value produced by the other; Section 2.2.2 states why the
two differ.  <vspace blankLines='1'/>
For the signing authority of a delegated AAE, the relying party MUST
accept case (a) of step 1 — the signing DID is identical to
<spanx style="verb">mandate.delegation.delegator_did</spanx> and to the Verifiable Credential
issuer. Case (b), where the delegator's DID document authorizes
another DID to issue on its behalf, MUST be rejected by a relying
party that does not understand the authorization mechanism, which is
what this revision requires; see Section 5.2.</t>
</list></t>

<t>Steps 1–7 are REQUIRED. Steps 8–9 are conditional on presence of the
relevant fields.</t>

<section anchor="verification-dependencies"><name>Verification Dependencies</name>

<t>The checks above are evaluated by the relying party against the presented
AAE and its ancestors. This document defines no step in which the relying
party contacts the organization that originated the authorization in order
to obtain an authorization decision: the AAE carries the authorization and
the relying party evaluates it.</t>

<t>The algorithm does depend on data the relying party may have to retrieve:</t>

<t><list style="symbols">
  <t>the DID documents needed to resolve the signing DID in step 1 and, where
step 4 is performed, <spanx style="verb">credentialSubject.id</spanx>;</t>
  <t>each ancestor AAE of a delegation chain in step 9, obtained from
<spanx style="verb">delegation.delegator_aae_uri</spanx> unless the transport binding conveys the
ancestor inline as described in Section 3;</t>
  <t>the endpoint named in <spanx style="verb">validity.revocation_check</spanx>, queried over HTTPS,
where that member is present (step 8).</t>
</list></t>

<t>These are retrieval dependencies, not authorization callbacks. This
document does not constrain how a relying party obtains them, and Section 3
already contemplates an ancestor conveyed inline rather than fetched.
Verification therefore requires no synchronous call to the originating
organization, but characterising it as offline without qualification is
inaccurate for any AAE that carries a delegation chain or a
<spanx style="verb">revocation_check</spanx> member.</t>

</section>
<section anchor="deferred-verification-capabilities"><name>Deferred Verification Capabilities</name>

<t>Four capabilities named elsewhere in this document are not available in
this revision, and all four wait on the same thing: a relying party can
only make them safe once it can perform outbound requests through a
proxy that constrains where those requests may go. Until such a proxy
exists, a conforming implementation refuses rather than pretends.</t>

<t><list style="symbols">
  <t><strong>Ancestor retrieval by <spanx style="verb">delegator_aae_uri</spanx>.</strong> Step 9 verifies
ancestors supplied inline. A relying party MUST NOT dereference
<spanx style="verb">delegator_aae_uri</spanx> in this revision.</t>
  <t><strong>DID methods requiring outbound resolution.</strong> This affects the
subject in step 4 and the delegator in step 9 alike: where the DID
cannot be resolved locally, the relying party rejects rather than
fetches.</t>
  <t><strong>Revocation checking (step 8).</strong> A relying party that cannot perform
the lookup rejects an AAE carrying <spanx style="verb">revocation_check</spanx> fail-closed,
rather than reporting a check it did not perform. What rests on this
limitation is the <em>discovery</em> half of Section 7.5 — establishing that
a parent has been revoked. The consequence half of that section is not
deferred: a relying party that already knows of the revocation MUST
treat the descendants as invalid, and no egress path is needed to obey
a rule about what it already holds.</t>
  <t><strong>Case (b) delegated signing authority.</strong> Establishing that a
delegator's DID document authorizes another DID requires resolving
that document, which is the second item above.</t>
</list></t>

<t>The condition for a future revision is an egress path that constrains
outbound requests and is available to the relying party. All four become
specifiable together, because one capability unlocks all of them.
Section 9 lists the relying-party revocation lookup under the same
condition; it is this list's third item seen from the roadmap side.</t>

</section>
</section>
<section anchor="verdicts-and-ratification"><name>Verdicts and Ratification</name>

<section anchor="verdict-vocabulary"><name>Verdict Vocabulary</name>

<t>Evaluating a transaction against a mandate yields exactly one of three
verdicts.</t>

<t><list style="symbols">
  <t><strong>PERMIT</strong> — a grant bound the action, all of that grant's constraints
held, and its disposition is <spanx style="verb">allow</spanx>. PERMIT is reachable in no other
way.</t>
  <t><strong>PENDING</strong> — a grant bound the action, all of its constraints held,
and its disposition is <spanx style="verb">hold</spanx>. PENDING states that the mandate defers
this action to a decision that has not been made. It MUST NOT be
produced for an action no grant addresses.</t>
  <t><strong>DENY</strong> — every other outcome. A missing or structurally invalid
mandate, a missing transaction, an action that cannot be
canonicalized, an unaddressed action, a matched <spanx style="verb">forbid</spanx> grant, an
unknown constraint type, an unparseable value, and a matched grant
whose constraints do not hold all produce DENY.</t>
</list></t>

<t>DENY is the default. A relying party that cannot evaluate MUST deny;
absence of a mandate is never a route to PERMIT.</t>

</section>
<section anchor="verdict-records-and-chaining"><name>Verdict Records and Chaining</name>

<t>A verdict record consists of the core of Section 2.5.3 and its digest. A
record is immutable. A relying party MUST NOT edit a record after it is
produced.</t>

<t>Verdict records MAY be chained. A record's <spanx style="verb">prev_core_digest</spanx> carries
the core digest of the record it follows, or null at the start of a
chain. The caller holds the chain; this document does not require a
chain to be published, stored, or anchored to any ledger.</t>

<t>A ratification record is the exception. Its <spanx style="verb">prev_core_digest</spanx> MUST be
present and MUST equal the core digest of the record it ratifies. A
ratification is a statement about one specific prior record, and a
chaining field pointing anywhere else would describe a different history
than the one the ratification asserts. A verifier MUST reject a
ratification record whose <spanx style="verb">prev_core_digest</spanx> is absent or does not equal
the digest it claims to ratify.</t>

</section>
<section anchor="ratification"><name>Ratification</name>

<t>A verdict may need a status it did not have when it was produced — an
action held under PENDING that the mandating party later authorizes, or
a denial that party subsequently confirms. This document corrects such
history by appending, never by editing.</t>

<t>A ratification is a second signed record referencing a prior verdict
record by its core digest. It carries a <spanx style="verb">decision</spanx>, which is either
<spanx style="verb">APPROVED</spanx> or <spanx style="verb">DISAPPROVED</spanx>, and it reports a <spanx style="verb">status</spanx>, which is either
<spanx style="verb">RATIFIED</spanx> or <spanx style="verb">REJECTED</spanx>. The decision is what the ratifying party
asserts; the status is what the verifier established about that
assertion. A decision takes effect for the prior record only when the
status is RATIFIED. When the status is REJECTED, the prior record keeps
the verdict it had, and the ratification records why the assertion did
not hold.</t>

<t><strong>What the decision is about.</strong> <spanx style="verb">APPROVED</spanx> and <spanx style="verb">DISAPPROVED</spanx> are
statements about the <strong>action</strong>, not about the verdict record.
<spanx style="verb">APPROVED</spanx> says the authority authorizes the action the prior record
describes; <spanx style="verb">DISAPPROVED</spanx> says it does not. Reading them the other way —
as an endorsement or a rejection of the verdict — would make <spanx style="verb">APPROVED</spanx>
mean "the denial was right" in one row of the matrix below and "the
action may proceed" in another, and a party signing a statement would
not know which it had signed. One reading, fixed here: the decision is
about the action.</t>

<t>The four combinations of a ratifiable prior verdict and a decision
therefore resolve as follows, in every case only where <spanx style="verb">status</spanx> is
<spanx style="verb">RATIFIED</spanx>:</t>

<texttable>
      <ttcol align='left'>Prior verdict</ttcol>
      <ttcol align='left'>Decision</ttcol>
      <ttcol align='left'>The action is</ttcol>
      <ttcol align='left'>The prior record</ttcol>
      <c>PENDING</c>
      <c>APPROVED</c>
      <c>authorized</c>
      <c>unchanged; it still reads PENDING</c>
      <c>PENDING</c>
      <c>DISAPPROVED</c>
      <c>not authorized; the hold ends in a refusal</c>
      <c>unchanged; it still reads PENDING</c>
      <c>DENY</c>
      <c>APPROVED</c>
      <c>authorized despite the denial — an override by the mandating party</c>
      <c>unchanged; it still reads DENY</c>
      <c>DENY</c>
      <c>DISAPPROVED</c>
      <c>not authorized; the denial is confirmed</c>
      <c>unchanged; it still reads DENY</c>
</texttable>

<t>Where <spanx style="verb">status</spanx> is <spanx style="verb">REJECTED</spanx>, none of the four rows takes effect: the
assertion did not hold, and the action's authorization is whatever the
prior verdict already made it.</t>

<t>Two consequences of the table are normative. A relying party MUST NOT
edit or re-issue the prior record in any row — the effective
authorization is read from the pair (prior verdict, decision) carried in
the ratification, and no fourth verdict value is produced. And the third
row, DENY with APPROVED, is an authorization the mandate itself did not
give: a relying party MUST NOT treat the resulting record as a PERMIT of
Section 6.1, MUST record that the authorization derives from a
ratification rather than from a grant, and MUST bound it to the one
transaction the prior record's <spanx style="verb">transaction_digest</spanx> names. A
ratification authorizes one transaction, never a class of them.</t>

<t>The signed statement binds three things together:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "ratify_version": "3.0",
  "ratifies": "sha256:<64 lowercase hex characters>",
  "decision": "APPROVED",
  "authority": "<DID>"
}
]]></sourcecode></figure>

<t>It is signed over the domain tag <spanx style="verb">aae:enforce-ratify-statement:v1</spanx>
followed by a 0x00 octet and the <xref target="RFC8785"/> canonicalization of that
object. Binding all three means an APPROVED signature cannot be moved to
another record, cannot be reread as DISAPPROVED, and cannot be
attributed to a different authority.</t>

<t><spanx style="verb">ratify_version</spanx> is inside the signed bytes, so it is not decoration: a
party that builds the statement with a different value produces a
different signature over the same decision.</t>

<t>A ratification record carries its own core, with its own structure. It
is not a verdict core with different values: it has no <spanx style="verb">verdict</spanx>, no
<spanx style="verb">action_digest</spanx> and no <spanx style="verb">grant_index</spanx>, and it carries members a verdict
core does not. Stating it by reference to Section 2.5.3 would leave a
third-party verifier guessing which of those members survive, so it is
written out here.</t>

<figure><sourcecode type="json"><![CDATA[
{
  "ratify_version":   "<string>",
  "ratifies":         "sha256:<64 lowercase hex characters>",
  "prior_verdict":    "DENY | PENDING",
  "decision":         "APPROVED | DISAPPROVED",
  "status":           "RATIFIED | REJECTED",
  "authority":        "<DID string or null>",
  "mandate_digest":   "sha256:<64 lowercase hex characters>",
  "trace":            [],
  "prev_core_digest": "sha256:<64 lowercase hex characters>"
}
]]></sourcecode></figure>

<t><spanx style="verb">ratifies</spanx> is the core digest of the record being ratified, and
<spanx style="verb">prior_verdict</spanx> is that record's verdict — only <spanx style="verb">DENY</spanx> and <spanx style="verb">PENDING</spanx> are
ratifiable, so no other value appears here. <spanx style="verb">status</spanx> is what the
verifier established and <spanx style="verb">decision</spanx> is what the authority asserted; a
<spanx style="verb">decision</spanx> takes effect for the prior record only where <spanx style="verb">status</spanx> is
<spanx style="verb">RATIFIED</spanx>. <spanx style="verb">authority</spanx> is null exactly where <spanx style="verb">status</spanx> is <spanx style="verb">REJECTED</spanx> and
no authority was established. <spanx style="verb">mandate_digest</spanx> is copied from the prior
record's core, which is what binds the ratification to the same mandate
the verdict was reached under. <spanx style="verb">prev_core_digest</spanx> equals <spanx style="verb">ratifies</spanx>, as
Section 6.2 requires; it is carried explicitly so that the chaining
member has the same name and meaning in both record types. <spanx style="verb">trace</spanx>
entries are the structured five members of Section 2.5.2; as in
Section 2.5.3, the human-readable <spanx style="verb">reason</spanx> — on the record and on each
entry — is diagnostic and is not digested.</t>

<t>The digest is computed as everywhere else in this document, under its
own tag:</t>

<figure><sourcecode type="text"><![CDATA[
core_digest = "sha256:" || LOWERHEX( SHA-256( TAG || JCS(core) ) )

TAG = the 26 octets "aae:enforce-ratify-core:v1" followed by a
      single 0x00 octet
]]></sourcecode></figure>

<t>The separate tag keeps a ratification core from ever colliding with a
verdict core: the two structures could otherwise be confused by a
verifier that only compared digests. A later record that chains onto a
ratification points at this digest.</t>

<t>Like a verdict record, a ratification record is deterministic. Its
inputs are exactly three: the prior verdict record, the decision, and
the authority proof of Section 6.4. The mandate is the fourth thing a
recomputation needs — without it the authority cannot be derived and the
mandate digest cannot be bound — and it is not a fourth input, because
it travels as a member of the authority proof. Stating it that way
matters: a third party holding a prior record, a decision and a proof
holds the mandate too, and recomputes the record without contacting the
verifier or fetching anything. A proof without its <spanx style="verb">mandate</spanx> member is
not a proof, and Section 6.4 gives it no other route in.</t>

</section>
<section anchor="authority-witness-not-ruler"><name>Authority (Witness, not Ruler)</name>

<t>The authority ratifying a record MUST derive from the mandate the prior
record refers to. Two sources are permitted, both inside the mandate:
the issuing principal, and a role the mandate names. A verifier MUST NOT
accept a ratification from any other party, and in particular MUST NOT
recognize the operator of the verification service, a registry, or any
central supervising role as an authority by virtue of its position.</t>

<t>The public key against which the signature is checked MUST be taken from
the mandate and MUST NOT be taken from the proof. A proof that carries
its own key establishes nothing.</t>

<t><strong>Where the authorities are named.</strong> The two sources are two named
members of the mandate, and a third party checking a ratification reads
exactly these:</t>

<figure><sourcecode type="json"><![CDATA[
"principal": {
  "did": "<DID>",
  "public_key": "<32 octets, hexadecimal>"
},
"ratification_authorities": [
  {
    "did": "<DID>",
    "public_key": "<32 octets, hexadecimal>",
    "role": "<string>"
  }
]
]]></sourcecode></figure>

<t><spanx style="verb">mandate.principal</spanx> is the issuing principal and contributes one
authority. <spanx style="verb">mandate.ratification_authorities</spanx> is an OPTIONAL array; a
relying party MUST support at least 64 entries and MAY ignore entries
beyond a limit of its own, and ignoring an entry can only make a
ratification harder to establish, never easier, so the limit is
fail-closed by construction.</t>

<t>An entry contributes an authority only where it carries <strong>both</strong> a <spanx style="verb">did</spanx>
string and a <spanx style="verb">public_key</spanx> string. An entry with a DID and no key names a
party whose signature cannot be checked, which is not an authority; a
relying party MUST NOT treat it as one and MUST NOT fall back to any
other key for it.</t>

<t><spanx style="verb">role</spanx> is a label, not a permission. A relying party MUST NOT interpret
it, MUST NOT derive any capability from its value, and MUST NOT require
it: what is checked is that the claimed authority's DID appears in one
of the two members above, and that the signature verifies under the key
given there. The role is reported alongside the result so a reader can
see which of the two sources applied. This is what makes "a role the
mandate names" checkable by a third party: there is no role vocabulary
to agree on, only two member names and a DID.</t>

<t>An issuer MUST NOT name the same DID twice across the two members. Two
entries for one DID with different keys make the mandate ambiguous about
which key is authoritative, and a verifier resolving that ambiguity by
position would make the outcome depend on document order.</t>

<t><strong>The authority proof.</strong> The proof is an object with three REQUIRED
members:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "mandate": {},
  "authority": "<DID>",
  "signature": "<64 octets, hexadecimal>"
}
]]></sourcecode></figure>

<t><spanx style="verb">mandate</spanx> is the full mandate, supplied because the prior record carries
only its digest. The paragraph below binds it by recomputing its digest
against the prior record's <spanx style="verb">mandate_digest</spanx>; it is never trusted as
supplied.</t>

<t><spanx style="verb">authority</spanx> is the DID the signer claims. It is compared against the
DIDs of the two members above as an exact octet sequence, in constant
time. A relying party MUST NOT normalize, percent-decode, case-fold, or
otherwise transform either side before comparing, and MUST NOT accept a
DID URL carrying a fragment or a path in this member: the value is a
DID, not a verification-method reference.</t>

<t><spanx style="verb">signature</spanx> is the raw Ed25519 signature over the statement bytes of
Section 6.3 — the domain tag, a 0x00 octet, and the <xref target="RFC8785"/>
canonicalization of the statement object — encoded as hexadecimal.</t>

<t>The cryptographic profile is fixed: EdDSA over Ed25519 <xref target="RFC8032"/>, a
32-octet public key and a 64-octet signature, both hexadecimal. There is
no JOSE container here and no algorithm agility: the signature is over
the statement bytes directly, so there is no header a party could vary
and nothing to negotiate. A relying party MUST reject a key or a
signature of any other length, and MUST treat every decoding failure as
a failed signature predicate rather than as an error — a malformed proof
is a rejected ratification, not a crash.</t>

<t>Because a verdict record carries only the mandate's digest, the
ratifying party supplies the mandate alongside the proof. The verifier
MUST bind it by recomputing the mandate digest per Section 2.5.3 and
comparing it against the prior record's <spanx style="verb">mandate_digest</spanx>. A mandate that
does not match makes the proof worthless and the status MUST be
REJECTED.</t>

<t>A verifier MUST set the status to REJECTED, and MUST leave the prior
record's verdict standing, when any of the following holds: the
authority proof is absent or malformed; the supplied mandate does not
match the prior record's mandate digest; the claimed authority is
neither the issuing principal nor a role named in the mandate; or the
signature does not verify under the mandate-held key. Each of these MUST
appear as a failed predicate in the ratification's trace.</t>

<t>Only DENY and PENDING may be ratified. A PERMIT has no status to change,
and an attempt to ratify one is a caller error rather than a rejected
ratification.</t>

<t>The line between the two outcomes is worth stating, because both refuse
the request and only one of them produces a record. A <strong>rejected
ratification</strong> is a result: the question was well posed and the answer
is that the authority did not hold, so there is a record with a status
of REJECTED and a trace saying which predicate failed. A <strong>caller
error</strong> is not a result: the question itself does not line up, so there
is nothing to record. A relying party MUST treat as a caller error, and
MUST NOT produce a ratification record for: a <spanx style="verb">decision</spanx> that is neither
<spanx style="verb">APPROVED</spanx> nor <spanx style="verb">DISAPPROVED</spanx>; a prior record whose <spanx style="verb">core_digest</spanx> does
not match its own core; a prior record carrying no <spanx style="verb">mandate_digest</spanx>; a
prior verdict that is not DENY or PENDING; and a supplied
<spanx style="verb">prev_core_digest</spanx> that names a record other than the one being ratified
(Section 6.2). Everything else — a missing proof, a mandate that does
not bind, an authority the mandate does not name, a signature that does
not verify — is a REJECTED record with a trace.</t>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<section anchor="replay-attacks"><name>Replay Attacks</name>

<t>AAEs with broad temporal validity windows are susceptible to replay
attacks. Implementations SHOULD use short <spanx style="verb">not_after</spanx> windows (minutes
to hours for high-value actions) and SHOULD implement nonce-based
replay protection at the transport layer.</t>

<t>The verdict of Section 2.5.3 is a function of the mandate and the
transaction and of nothing else. It carries no server time, no counter,
and no record of what has been presented before. That is deliberate — it
is what makes a verdict recomputable by a third party who was not
present when it was reached — and it is also a limit that has to be read
as one.</t>

<t>A PERMIT is not a single-use authorization. The same mandate and the
same transaction produce the same PERMIT every time they are evaluated,
at this relying party and at any other. Section 2.5 provides no replay
protection, no cumulative budget across presentations, and no rate
limit. An agent holding a mandate whose <spanx style="verb">range</spanx> constraint bounds a
transfer at 1000 can obtain a PERMIT for a transfer of 1000, and then
obtain it again: the constraint bounds each transfer, never their sum. A
relying party that reads a PERMIT as "this action has not yet been
authorized" reads something the verdict does not say.</t>

<t>Where replay protection matters, it MUST come from the protocol around
the verdict rather than from the verdict. A relying party acting on a
PERMIT MUST establish freshness and consumption by its own means — a
nonce it minted for this presentation, an identifier it records as spent
before acting, or an idempotency key on the action it is about to
perform. A relying party that does none of these MUST NOT rely on the
verdict for either property.</t>

<t>Step 4 of Section 5 provides exactly this for the envelope: a challenge
bound to a nonce this relying party minted, and a used-nonce store that
refuses the second presentation. Nothing equivalent exists at the
enforcement layer in this revision. Section 9 names the condition under
which it could — state carried across presentations, together with a
resolution of what such state does to the recompute guarantee of
Section 2.5.3, since a verdict that depends on a counter is no longer a
function of the mandate and the transaction alone. Until that is
resolved, the absence is a property of this document and not an omission
from it.</t>

</section>
<section anchor="constraint-bypass"><name>Constraint Bypass</name>

<t>Relying parties that silently ignore unrecognized constraints create
a security gap. Relying parties MUST treat unrecognized constraints
with <spanx style="verb">required: true</spanx> as grounds for rejection.</t>

</section>
<section anchor="key-compromise"><name>Key Compromise</name>

<t>If an issuer's signing key is compromised, all AAEs signed by that key
are potentially invalid. Issuers MUST have an operational key-rotation
procedure and SHOULD publish revocation endpoints. Issuers SHOULD
retain verification material for retired signing keys for at least as
long as AAEs signed by those keys can remain valid, unless a key was
retired because of compromise. Issuers SHOULD provide a mechanism for
real-time revocation signaling to relying parties; continuous access
evaluation profiles defined by other standards bodies are one such
mechanism.</t>

</section>
<section anchor="delegation-amplification"><name>Delegation Amplification</name>

<t>Delegation chains that do not enforce constraint monotonicity allow
sub-agents to acquire permissions exceeding those of their parent.
Implementations MUST enforce that delegated AAEs are strictly
subordinate to their parent AAEs in actions, constraints, and validity.</t>

</section>
<section anchor="delegation-revocation"><name>Delegation Revocation</name>

<t>The previous revision carried two SHOULD statements here. They do not
stand on the same ground, and this revision separates them.</t>

<t><strong>Issuer.</strong> If a parent AAE or a delegator agent is compromised, the
issuer MUST revoke the parent, and MUST treat all downstream delegated
AAEs as revoked. The revocation MUST propagate along the delegation
chain to every descendant reachable from the revoked node.</t>

<t>Revocation of the parent MUST NOT be withheld because the cascade could
not be completed. Of the two ways this can fail, a compromised parent
still reported as valid is the worse one, and withholding its revocation
is the only way this rule could fail open. An issuer that cannot
propagate to every descendant MUST therefore report two things at once:
the parent as revoked, and the cascade as incomplete. A descendant of a
revoked parent whose own status could not be set is <strong>unknown</strong>, and a
relying party MUST treat unknown as invalid here — the same outcome as
an explicit revocation, reached without claiming a status the issuer
never established.</t>

<t>The rule places no depth limit on the cascade, because depth is a
property of a deployment and not of this format. An implementation that
bounds its propagation has an incomplete cascade in the sense above and
reports it as such; it does not report a complete one.</t>

<t><strong>Relying party.</strong> Two statements, and only one of them waits on a
capability this revision defers.</t>

<t>A relying party that has determined that a parent AAE in a delegation
chain is revoked MUST treat every descendant AAE in that chain as
invalid. This is unconditional, and it costs nothing to satisfy: the
sentence applies only once the revocation is already known — from a
status list the relying party already holds, from material presented
alongside the envelope, or from a check it performed earlier. No lookup
follows from it. A SHOULD here would permit a relying party to accept a
descendant of a parent it already knows to be revoked, which is not a
limitation of any deployment but a decision to disregard what it knows.</t>

<t>What stays deferred is the <em>discovery</em> of revocation, not the
<em>consequence</em> of it. A relying party SHOULD NOT dereference a revocation
endpoint at evaluation time in this revision: doing so safely requires
an egress path that constrains outbound requests, and until one exists,
a conforming implementation rejects an AAE carrying <spanx style="verb">revocation_check</spanx>
fail-closed rather than reporting a check it did not perform
(Section 5.2). Section 9 names the condition under which the discovery
half becomes normative too.</t>

</section>
<section anchor="clock-skew-and-time-synchronization"><name>Clock Skew and Time Synchronization</name>

<t>AAE validity depends on relying-party evaluation of <spanx style="verb">not_before</spanx>,
<spanx style="verb">not_after</spanx>, and challenge-response timestamps. Relying parties SHOULD
use authenticated time synchronization and SHOULD define a maximum
accepted clock-skew window. For high-value actions, relying parties
SHOULD keep the accepted skew to the minimum operationally feasible
value. Excessive clock-skew windows can allow premature use of an AAE
or its continued use after expiration.</t>

</section>
<section anchor="on-chain-anchoring"><name>On-Chain Anchoring</name>

<t>When AAEs are anchored to a public ledger for tamper-evident audit
trails, implementations MUST ensure that no personally identifiable
information (PII) is written on-chain. AAE content SHOULD be hashed
before anchoring; the hash, timestamp, and issuer DID are sufficient
for audit purposes.</t>

<t>Where a verdict record is anchored for audit, committing to a sensitive
argument value rather than writing it in the clear would let an auditor
confirm that an agent stayed inside a bound without the value itself
becoming public. Any such commitment has to bind to anchored reality
rather than to caller-supplied input, since a commitment over a claim is
not a commitment over anything checkable. This document defines no such
mechanism; see Section 9.</t>

</section>
<section anchor="predicate-trace-disclosure"><name>Predicate Trace Disclosure</name>

<t>Section 2.5.2 requires every verdict to carry a predicate trace, and
every entry of that trace carries <spanx style="verb">value</spanx> — what the transaction held at
the constrained field — and <spanx style="verb">bound</spanx> — what the constraint required. A
conforming verdict therefore discloses the transaction values that were
tested and the limits they were tested against, in the clear, to
everyone who holds the record. A recipient address compared under
<spanx style="verb">exact</spanx>, an amount compared under <spanx style="verb">range</spanx>, a jurisdiction compared under
<spanx style="verb">enum</spanx>: all three appear verbatim in the trace, and the trace is inside
the digested core of Section 2.5.3.</t>

<t>This is not incidental and it is not minimized. The trace is what makes
a verdict checkable predicate by predicate rather than merely signed,
and a trace with the values removed would not support the recompute
guarantee: a second implementation could no longer derive the same core,
only accept the first one's word for it. The property that makes the
verdict verifiable is the same property that makes it disclosing, and
this revision does not offer both.</t>

<t>Three consequences are normative. A relying party MUST treat a verdict
record as carrying transaction content, with the same care it applies to
the transaction itself. A relying party MUST NOT forward, publish,
transmit to a third party, or anchor a verdict record whose trace
carries values it is obliged to protect, unless the recipient is already
entitled to those values; Section 7.7 requires that no personally
identifiable information be written on-chain when a record is anchored
for audit, the trace is precisely the member of a verdict record that
can carry it, and an anchoring pipeline that hashes the record without
inspecting the trace has satisfied Section 7.7 only by accident. And
where a relying party retains verdict records, it MUST apply to them the
retention limit it applies to the transactions they describe: a record
kept after the transaction has been deleted keeps the deleted values.</t>

<t>An issuer has one mitigation available inside this revision, and it is a
blunt one: not to constrain a sensitive value in a grant at all, and to
bound it outside the enforced path instead. That trades away the
enforcement the grant would have provided, which is why it is a
mitigation and not a solution.</t>

<t>Section 9 names selective hash commitments as the intended remedy — a
commitment to a value rather than the value itself, so that an auditor
can confirm an agent stayed inside a bound without the bound or the
value becoming public. Section 7.7 describes what such a mechanism would
have to bind to. Neither defines one, and until one exists, the
disclosure above is the behaviour a conforming implementation exhibits.</t>

</section>
<section anchor="resource-exhaustion-and-input-limits"><name>Resource Exhaustion and Input Limits</name>

<t>The minimum capabilities of Sections 2.2.1 and 2.5.1 — 256 grants, 64
constraints per grant, 512 enum members, 32 type-field names, paths of 8
segments — are floors a conforming verifier has to reach, not sizes it
has to accept without limit (Section 2.2.1). Read together with the
comparison rules they describe a worst case, and the worst case is
caller-supplied: a mandate at every floor, evaluated against one
transaction where every matched grant fails on its last constraint,
reaches 256 x 64 x 512 = 8 388 608 string comparisons, over values the
caller chose the length of. The predicate trace grows with it, entry by
entry, and the trace is digested.</t>

<t>The comparison rules themselves are not where to economize. The
constant-time <spanx style="verb">exact</spanx> comparison and the non-short-circuiting <spanx style="verb">enum</spanx>
comparison exist so that timing does not reveal how close a value came
or where in an enumeration it matched, and an implementation that
abandons either to save work has traded a denial-of-service surface for
a side channel. Both remain MUST without qualification.</t>

<t>The input is where to economize. A relying party MAY set hard limits of
its own, applied before evaluation begins, on the length of any string
in the mandate or in the transaction; on the total serialized size of
the mandate and of the transaction; on the depth and the member count of
the transaction object; and on the number of entries a predicate trace
may reach. Such limits are local policy and this document fixes no value
for any of them, for the same reason it states capabilities as floors:
an issuer needs to know what any conforming verifier will accept, and a
verifier needs to remain free to protect itself above that.</t>

<t>Where an input exceeds a limit, the relying party MUST reject
fail-closed. Rejection here is the DENY verdict of Section 6.1, decided
before evaluation rather than during it. A relying party MUST NOT
truncate the input, MUST NOT evaluate a prefix of it, and MUST NOT
return PERMIT on a mandate it evaluated only in part — a partial
evaluation that stops at a limit has not established that the remaining
grants were absent, only that it did not read them.</t>

<t>Two points follow specifically for the trace. A <spanx style="verb">value</spanx> or a <spanx style="verb">bound</spanx>
read from a caller-supplied transaction enters the trace and therefore
the digested core, so a limit on input string length is also the only
limit on how large a verdict record can grow. And a relying party that
refuses an oversized input MUST report the refusal as a DENY with its
reason recorded rather than as a transport error, so that the caller can
distinguish a refusal to evaluate from a failure to reach the verifier —
the two call for different responses, and conflating them makes an
overload look like an outage.</t>

</section>
</section>
<section anchor="privacy-considerations"><name>Privacy Considerations</name>

<t>AAEs contain the agent's DID and may contain the principal's DID.
Relying parties SHOULD NOT log full AAE payloads unless required for
regulatory audit purposes. Where audit logs are required, implementations
SHOULD apply data minimization: log the AAE identifier, action taken,
timestamp, and outcome — not the full MANDATE or CONSTRAINTS payload.</t>

<t>Even when only hashes of AAEs are anchored on a public ledger,
timestamps, issuer DIDs, subject DIDs, and repeated hash-publication
patterns can leak metadata and enable linkability across an agent's
activity. Implementations SHOULD assess linkability risk before
anchoring AAEs on a public ledger and SHOULD avoid publishing stable
identifiers on-chain unless required.</t>

</section>
<section anchor="future-work"><name>Future Work</name>

<t>This document specifies what a conforming implementation can be held to
today. Four further items are known and scoped, and each is left out of
the normative text for one reason: no deployed implementation supports
it yet. Each is named here with the condition under which it becomes
normative in a revision of this document, and each is discussed where
its subject is treated. Until its condition holds, an item in this
section places no requirement on an implementation, and no
implementation should claim conformance with it.</t>

<t><list style="symbols">
  <t><strong>Relying-party revocation lookup</strong> (Section 7.5). Only the discovery
half is left open. The consequence half is normative in this revision:
a relying party that already knows a parent to be revoked MUST treat
its descendants as invalid. What waits is the lookup that would
establish the revocation in the first place, which becomes normative
once the outbound request path is constrained by an egress proxy and
relying-party revocation lookup is a deployed capability. Section 5.2
lists this alongside the three other capabilities waiting on the same
egress path; they become specifiable together.</t>
  <t><strong>Principal identity across identifier spaces</strong> (Section 2.2).
Becomes normative once a mechanism exists that derives the
correspondence between two principal identifiers — a rule by which a
relying party establishes that two identifiers name the same principal
without a deployment-local table — rather than being handed it as
deployment-local data.</t>
  <t><strong>Freshness and condition liveness</strong> (Section 2.4). Becomes normative
once state carried across presentations is deployed and its
relationship to the recompute guarantee of Section 2.5.3 is resolved.
A verdict that depends on a counter is no longer recomputable from
mandate and transaction alone, so the two cannot simply be placed side
by side.</t>
  <t><strong>Selective hash commitments</strong> (Section 7.7). Becomes normative once a
reader of the anchoring ledger is wired, so that a commitment can bind
to what the chain actually holds.</t>
</list></t>

</section>
<section anchor="test-vectors"><name>Test Vectors</name>

<t><strong>What the vectors cover.</strong> Every normative requirement in
Sections 2.2.1, 2.2.2, 2.2.3, 2.5, 6.1, 6.2, 6.3 and 6.4 has a test
vector. Those sections are the enforcement path: grants and the type
form, <spanx style="verb">action_binding</spanx>, grant evaluation, the constraint language and
its trace, the verdict vocabulary, verdict chaining, and ratification
with its guards.</t>

<t><strong>What they do not cover</strong>, stated so the claim is not read wider than
it is. The vectors do not exercise step 4 of Section 5 (subject
binding), step 9 of Section 5 (delegation chains), or Section 7.5
(revocation). Those steps run over a JWS, a resolved DID document and,
in the case of revocation, state the vectors cannot carry; a static
input-plus-expected-digest file is the wrong instrument for them, and no
file in this set claims otherwise. Conformance with this document as a
whole is therefore not established by this set alone. Conformance with
the sections listed above is.</t>

<t><strong>Where they are.</strong> The vectors are published at
https://github.com/MoltyCel/aae-conformance-vectors under
<spanx style="verb">vectors/enforce/</spanx>. The normative reference is immutable and is the
pair, not the repository:</t>

<figure><sourcecode type="text"><![CDATA[
set version:  1.4.0
tag:          v1.4.0
commit:       531f880155ea1ce993a7ca74137b12c255d5b2ee
]]></sourcecode></figure>

<t>A repository moves; a commit id does not. An implementer citing
conformance with this section MUST name the commit, because a later set
version can change an expected digest without changing a single
requirement of this document — version 1.4.0 differs from 1.3.0 in
exactly that way, and in no other. The tag <spanx style="verb">v1.3.0</spanx> remains and
identifies the set as it stood before <spanx style="verb">reason</spanx> left the digested core.</t>

<t>There are 26 vectors, and they are paired rather than merely present: a
requirement is covered by the case that satisfies it and by the cases
that violate it. Ten cover the type form and <spanx style="verb">action_binding</spanx> — the
positive case, an instance value carried inside the action, a missing
type field, four non-object actions, a grant without <spanx style="verb">type_fields</spanx>,
<spanx style="verb">type_fields</spanx> without <spanx style="verb">verb</spanx>, and a repeated name. Eight cover the
constraint language, with <spanx style="verb">exact</spanx>, <spanx style="verb">enum</spanx> and <spanx style="verb">range</spanx> each in a holding
and a failing form, plus an unrecognized type and a path with an empty
segment. Three cover the verdict vocabulary: an explicit hold reaching
PENDING, an unaddressed action that must not, and a forbidding grant
outranking an allowing one. Five cover ratification and its guards.</t>

<t>Each vector states its expected verdict <strong>and the core digest a
conforming implementation has to reproduce from the input alone</strong>. The
digest is the conformance target rather than the verdict: an
implementation that returns the right verdict from a different core has
guessed the outcome, not recomputed the decision. Because the domain tag
is part of every digest, each vector also states the tags it was built
under and the kernel version that wrote them; a verifier can then tell a
tag mismatch from a logic mismatch when a digest fails to reproduce.</t>

<t>Two properties make the set falsifiable rather than self-confirming. All
26 expected values were reproduced by a second implementation written
separately from the one that generated them, agreeing on every verdict
and on every core digest byte for byte. And each vector is evaluated
twice — once as published, once with every object's keys in reverse
order — which a canonicalizing implementation answers with the same
digest and an implementation serialising in insertion order does not.</t>

<t>Conformance with the sections this set covers is therefore something a
third party recomputes, not something an implementer asserts. For the
sections it does not cover, this document offers no such instrument, and
an implementer claiming conformance with them says so on its own
authority.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<section anchor="media-type-registration"><name>Media Type Registration</name>

<t>IANA is requested to register the following media type in the "Media
Types" registry, following the procedures of <xref target="RFC6838"/> and the
structured syntax suffix rules of <xref target="RFC6839"/>:</t>

<dl>
  <dt>Type name:</dt>
  <dd>
    <t>application</t>
  </dd>
  <dt>Subtype name:</dt>
  <dd>
    <t>aae+json</t>
  </dd>
  <dt>Required parameters:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Optional parameters:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Encoding considerations:</dt>
  <dd>
    <t>Same as for application/json <xref target="RFC8259"/>; UTF-8.</t>
  </dd>
  <dt>Security considerations:</dt>
  <dd>
    <t>See Section 7 of this document.</t>
  </dd>
  <dt>Interoperability considerations:</dt>
  <dd>
    <t>This media type uses the "+json" structured syntax suffix
<xref target="RFC6839"/>. Processors that do not understand application/aae+json
MAY process it as application/json.</t>
  </dd>
  <dt>Published specification:</dt>
  <dd>
    <t>This document.</t>
  </dd>
  <dt>Applications that use this media type:</dt>
  <dd>
    <t>Autonomous AI agent frameworks, authorization servers, policy
engines, and relying parties that issue or evaluate Agent
Authorization Envelopes.</t>
  </dd>
  <dt>Fragment identifier considerations:</dt>
  <dd>
    <t>As specified for the "+json" structured syntax suffix in
<xref target="RFC6839"/>.</t>
  </dd>
  <dt>Additional information:</dt>
  <dd>
    <t>Deprecated alias names for this type: N/A.
Magic number(s): N/A.
File extension(s): .aae.json.
Macintosh file type code(s): N/A.</t>
  </dd>
  <dt>Person &amp; email address to contact for further information:</dt>
  <dd>
    <t>Lars Kersten Kroehl <eref target="mailto:lars@moltrust.ch">lars@moltrust.ch</eref></t>
  </dd>
  <dt>Intended usage:</dt>
  <dd>
    <t>COMMON</t>
  </dd>
  <dt>Restrictions on usage:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Author:</dt>
  <dd>
    <t>Lars Kersten Kroehl</t>
  </dd>
  <dt>Change controller:</dt>
  <dd>
    <t>Lars Kersten Kroehl, CryptoKRI GmbH</t>
  </dd>
</dl>

<t>This registration applies to the unsecured JSON AAE payload. A secured
AAE in JWS compact serialization is not a JSON document and is
transported using the application/jose media type defined in
<xref target="RFC7515"/>; this document does not register a separate media type for
the secured form.</t>

</section>
<section anchor="no-further-iana-actions"><name>No Further IANA Actions</name>

<t>This document requests no other IANA actions.</t>

<t>This revision introduces several closed vocabularies and several domain
tags, and none of them is offered for registration. The <spanx style="verb">disposition</spanx>
values of Section 2.2.1, the constraint types of Section 2.5.1, the
verdict vocabulary of Section 6.1, the decision and status values of
Section 6.3, and the domain tags used by the digests of Sections 2.2.2,
2.5.3 and 6.3 are closed sets defined by this document. A value outside
one of these sets is not an extension; it is an input a conforming
verifier rejects. Extension therefore happens by a new revision of this
document, not by an addition to a registry.</t>

<t>The reason is stated in Section 2.5.1 and is a security property rather
than an editorial preference: what a verifier cannot evaluate, it does
not permit. A registry would make these sets open at exactly the point
where that section requires them to be closed, and two verifiers reading
different registry snapshots could then reach different verdicts on the
same input — which Section 2.5.3 forbids.</t>

</section>
</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">

<reference anchor="W3C-DID" target="https://www.w3.org/TR/did-core/">
  <front>
    <title>Decentralized Identifiers (DIDs) v1.0</title>
    <author >
      <organization>W3C</organization>
    </author>
    <date year="2022" month="July" day="19"/>
  </front>
</reference>
<reference anchor="W3C-VC" target="https://www.w3.org/TR/vc-data-model-2.0/">
  <front>
    <title>Verifiable Credentials Data Model v2.0</title>
    <author >
      <organization>W3C</organization>
    </author>
    <date year="2024" month="May" day="08"/>
  </front>
</reference>
&RFC2119;
&RFC8174;
&RFC7515;
&RFC8037;
&RFC8032;
&RFC7517;
&RFC3986;
&RFC8785;
&RFC6234;
&RFC4648;
&RFC3339;
&RFC6570;
&RFC2104;
&RFC7797;
&RFC6838;
&RFC6839;
&RFC8259;


    </references>

    <references title='Informative References' anchor="sec-informative-references">

&RFC6749;
&RFC9635;
&RFC9562;
<reference anchor="SPIFFE" target="https://spiffe.io/">
  <front>
    <title>SPIFFE: Secure Production Identity Framework for Everyone</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="ARXIV-AAE" target="https://arxiv.org/abs/2605.06738">
  <front>
    <title>From Specification to Deployment: Empirical Evidence from a W3C VC + DID Trust Infrastructure for Autonomous Agents</title>
    <author initials="L. K." surname="Kroehl" fullname="Lars Kersten Kroehl">
      <organization></organization>
    </author>
    <date year="2026" month="May"/>
  </front>
</reference>
<reference anchor="IMDA-MGF" target="https://www.imda.gov.sg/-/media/imda/files/about/emerging-tech-and-research/artificial-intelligence/mgf-for-agentic-ai.pdf">
  <front>
    <title>Model AI Governance Framework for Agentic AI, Version 1.5</title>
    <author >
      <organization>Singapore IMDA</organization>
    </author>
    <date year="2026" month="May" day="20"/>
  </front>
</reference>
<reference anchor="NIST-CAISI" >
  <front>
    <title>NIST AI 100-1: Artificial Intelligence Risk Management Framework</title>
    <author >
      <organization>NIST</organization>
    </author>
    <date year="2023" month="January"/>
  </front>
</reference>
<reference anchor="PEDIGREE" target="https://datatracker.ietf.org/doc/draft-rampalli-pedigree-00/">
  <front>
    <title>PEDIGREE: Verifiable Delegation Identity for Agentic AI Systems</title>
    <author initials="K." surname="Rampalli" fullname="K. Rampalli">
      <organization>Glyphzero Labs Inc.</organization>
    </author>
    <date year="2026" month="April" day="25"/>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-rampalli-pedigree-00"/>
</reference>


    </references>

</references>


<?line 2145?>

<section anchor="example-travel-booking-agent"><name>Example: Travel Booking Agent</name>

<t>A travel booking agent operating under an 8-hour mandate with a $500
transaction cap. The example shows the JWS protected header and the
JWS payload (the unsecured Verifiable Credential); on the wire these
are BASE64URL-encoded and concatenated with the signature as a JWS in
compact serialization (Section 2.1).</t>

<t>JWS protected header:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "alg": "EdDSA",
  "cty": "aae+json",
  "kid": "did:moltrust:registry#key-1"
}
]]></sourcecode></figure>

<t>JWS payload:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "@context": [
    "https://www.w3.org/ns/credentials/v2",
    "https://moltrust.ch/contexts/aae/v1"
  ],
  "type": ["VerifiableCredential", "AgentAuthorizationEnvelope"],
  "id": "urn:uuid:9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
  "issuer": "did:moltrust:registry",
  "validFrom": "2026-05-20T08:00:00Z",
  "credentialSubject": {
    "id": "did:example:travel-agent-001",
    "aae": {
      "mandate": {
        "actions": ["read", "book", "pay"],
        "purpose": "Business travel booking",
        "scope": "travel-vertical",
        "principal_did": "did:example:enterprise-corp"
      },
      "constraints": {
        "max_transaction_value": {
          "value": 500, "currency": "USD", "required": true
        },
        "allowed_domains": {
          "value": ["flights.example.com", "hotels.example.com"],
          "required": true
        }
      },
      "validity": {
        "not_before": "2026-05-20T08:00:00Z",
        "not_after": "2026-05-20T16:00:00Z",
        "single_use": false
      }
    }
  }
}
]]></sourcecode></figure>

</section>
<section anchor="relationship-to-existing-standards"><name>Relationship to Existing Standards</name>

<t>AAE is designed as a complement to, not a replacement for, existing
authorization standards:</t>

<t><list style="symbols">
  <t><strong>OAuth 2.0 / GNAP</strong> (<xref target="RFC6749"/>, <xref target="RFC9635"/>): Handle
human-delegated access tokens. AAE handles machine-to-machine agent
authorization with richer semantics.</t>
  <t><strong>SPIFFE/SVID</strong> (<xref target="SPIFFE"/>): Handles workload identity in service
meshes. AAE handles authorization semantics layered above identity.</t>
  <t><strong>W3C Verifiable Credentials</strong>: AAE is issued as a VC, leveraging
the existing VC ecosystem for issuance, verification, and revocation.</t>
  <t><strong>W3C DIDs</strong>: AAE subjects and issuers are identified by DIDs,
enabling decentralized, portable agent identity.</t>
</list></t>

</section>
<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>The AAE specification is derived from the MolTrust production
deployment documented in <xref target="ARXIV-AAE"/>. The author thanks Harald
Rössler (DSNCON GmbH) for infrastructure and security review.</t>

</section>
<section anchor="changes-since-01"><name>Changes Since -01</name>

<t>This revision is substantive. It adds an enforcement layer that -01 did
not have, states two verification steps that -01 described without
saying how a verifier satisfies them, and says plainly which
capabilities are not yet available. An AAE that conforms to -01 still
conforms to this revision: every member added here is OPTIONAL, and the
wire format and verification algorithm of -01 are unchanged for an
envelope that does not use them.</t>

<t>New material:</t>

<t><list style="symbols">
  <t>Section 2.2.1 (Grants), 2.2.2 (Action Binding) and 2.2.3 (Grant
Evaluation): an OPTIONAL <spanx style="verb">grants</spanx> array that states the conditions
under which one action is authorized at the moment it is attempted,
and the tagged digest that binds a grant to an action type.</t>
  <t>Section 2.5 (Enforcement Constraint Language), with its closed type
set, its predicate trace, and the recompute determinism the trace
serves. This is separate from the CONSTRAINTS block of Section 2.3,
which is unchanged.</t>
  <t>Section 5.2 (Deferred Verification Capabilities): four capabilities
that wait on one egress path, named together rather than scattered.</t>
  <t>Section 6 (Verdicts and Ratification): the PERMIT / DENY / PENDING
vocabulary, verdict records and their chaining, and ratification with
its authority rule — the authority derives from the mandate, never
from the proof.</t>
  <t>Section 7.8 (Predicate Trace Disclosure) and Section 7.9 (Resource
Exhaustion and Input Limits).</t>
  <t>Section 9 (Future Work) and Section 10 (Test Vectors).</t>
</list></t>

<t>Changed material:</t>

<t><list style="symbols">
  <t>Section 5, step 4 (Subject Binding): the nonce format and its
lifetime, the used-nonce store and its retention rule, the two-sided
<spanx style="verb">iat</spanx> window, a JOSE profile for the challenge response, and the DID
URL comparison rule. The six conditions of -01 are unchanged.</t>
  <t>Section 5, step 9 (Delegation Chain): the wire format for inline
ancestors, the attenuation rules for grants, and the recursion limit.</t>
  <t>Section 7.1 (Replay Attacks): a paragraph stating that a PERMIT under
Section 2.5 is not a single-use authorization, and that freshness and
consumption have to come from the protocol around the verdict.</t>
  <t>Section 7.5 (Delegation Revocation): both SHOULD statements of -01
§6.5 are separated by normative rank. The issuer statement rises to
MUST and gains the incomplete-cascade rule; the relying-party
statement rises to MUST for the case where the revocation is already
known, while the lookup that would establish it stays deferred.</t>
  <t>Section 11 (IANA Considerations): an explicit statement that this
document requests no registry for its vocabularies or domain tags, and
why.</t>
  <t>Four normative references added: <xref target="RFC8785"/>, <xref target="RFC4648"/>,
<xref target="RFC2104"/> and <xref target="RFC7797"/>, each carrying a MUST introduced by this
revision.</t>
</list></t>

<t>Renumbering: Security Considerations moves from 6 to 7, Privacy
Considerations from 7 to 8, IANA Considerations from 8 to 11, and
References from 9 to 12.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA8S963oc15Et+D+fIgf+IRJdVSR4kwTYngOTlAxbEjkkZXW3
j4dIVCWANKsqqyuzAMKW+jvvcOYd5j3mUc6TTKwVEfuSVQCpnh/TPXNaLGTu
3JfYcY8V4/G46Jt+Xh+We8cX9bIvjzf9Zbtu/lH1TbssXy6v6nm7qst7x8cv
7x+Wx+X31fSyWdbjl1fVfFOdzevBG2/79Wbab9Z1ed6u8bd22S7aTVcen5T8
QrdXVGdn6/oKnzx+uVfM2umyWsgMZuvqvB9/WLf15Xxc4dlmOpbhun5cVfX4
4aNiWvX1Rbu+OSyb5XlbdJuzRdN18tl3N6saP87qVS3/z7Ivima1Piz59qOH
D7+Wl6t1XckKVqt5M+Vcu+K6XX+4WLeb1WF5Et8t34Zxi+JDfSNPzQ6LshyX
VVwO59fxV1lZ8q8q3Q7+Mqun8td1NW/+Uc/KBp9o+hv+6apeN+cNt3G6rvmX
aq7j/PT4efni5EVR6IA6gfPNfK6b9V217so/1+uur5fln7ln8kRZtuuLamlf
Pyyfr29WffvnNyflt4uzP/KBqXz7sPz3zbqZXuoP7UzG++Krhw8PvrAfNjJd
eejtddP/o17Pq+WMf6gXVTM/LOfy6f+2aOfc3ImMUizb9UK+eFVjljLxsUz8
kK84cb3I9uCEKz1vZPrlPXm2u19eHUwe7vGVuF5bzyGG5D9ncv6H5aOHjx6N
H345PvhaP1GtL+r+sLzs+1V3+ODB9fX15PrxRF588O7Ng1kzG0/bdf3AZvaX
5/nE/hJP4Hk8gfJF1Vfl97Iz8/Lq0a+Z2ZPxw6fjh199xsyupmN5qxov8JWx
fOSBEK2QdbKVb755/uzLJ1/bf3797PFT/8+nzx7hP9++Pvnmm5f5iuy38m09
xTV8vW5nciNxN0+M9Mpv1kJDIH5e0pdChTftst7bOelu1Zyf15OmxQ4ev/nX
k7+M5drmn/xm3S7Kt6t6Klupd6vs2/JFvZq3Nwv55mH5crFqhOKquXwNN2Aq
/AEvVaTzvzwv/wXEXr4DScldPF9X3a2MxLjI9oncfTPCET2TI9q51Gr9sbni
8VRn3YNHzx4+nTx89uVjHObJ9y+Ox99/+02+biUQuf/ftrKHywrLyvf2WNmY
PDMqhdTAU8qDydNb6elts7yoVkKv/OL2vMePHt5KWs1iVk0u2qtJd/Fg/GBR
z5rqAX57cN7M607W1G76B/WiXl/IR8Z9Pb0cy80er+uurtbTS1k+7uRU6H/c
LPt6Pm8ucFAPFhfnY1lLYMlVM1nNzmUaP5y8fTd+fnzy9iTfFvyOXTl4+HB8
ICw3jCsnG8ct3zTdB5EnSxkXRBJ37tbdwcD5njwePzyQX16/fHHy7ZuXA7IM
v5bJLX9Rz+uLKr8P+UmVb2+EdhY7SWxs/7cUYdMdln+elG+qxaqSNYU/KBXu
+gvX8O38ZnUpXLUVQj3rZEemk61jfjJ+pBTaybzrDlzBJ4AdXC/rfvwC0tKF
5to+NV7JqV+sa5GWu+kEHEfY8PRDvZ40dX9OahcJ/OD2cYQtjcci1846vCiS
NRfqKvrKZXtdiqKwllWUVV+uItfp5NbLb9N123XleYNbIqQwKqbtQmiR/10K
HUKkp7d+1oq0WXbl//of/1dZfxRe1gvVikCvll3FgbuRvHLVfpCfi+PXJ52O
0lf4QWTYsqv/Y6PsvLQXSpFnl3IJylmzrqd9eblZVMsSV7drLi57mXdRi3pT
yumvJuXLj03Hb2YSvVzIvREJ2y1EdL2C7lMK6x6VMoNSdAWZxfHz77r7xXWN
NcjZXSxF4IHA+DW5WY1MqZff1phfJ1uHac9a2cG+nFYrLr6/rIuFaVp10LQ6
EcCg0Y7vyhp04KFWkk/4sLi+lAOREe2vTVfKMDPOQbj0rB2VfAJbJtvb4DSF
VeBEMDnfaygBXIYc9LzFUWDEbGtkZJlrM5sUxbtL+YfQ1YY3u1PRUHd86dOK
pnytCJQwG3xF5tnLLOv1cPGBGCelDCKbL8RWd0V/KXRsSxbdsTybt9MPSlff
H//w4vjdy1H5/NUPb9+9OT754d1bJaO/HH938uLk3b/xsV62p+hbuUiX8lXu
U9NvQOjl1iGNRJGDznWxrlaXEHjzm0TLK/KlVJ1ccPyXzhhb5hQjJ3NW4xr1
7bSFOrxs5avTUXkmWi5IXh6givgpxYqbpAfv7A4LhOJyi+5z7y/P7T1RgjcU
angDE6twIHZduyLRt8v2XH698ZMmGz13fj7SaytirQ8rGgk3LHgUcp2a5USZ
zKKZzWSXit+AzwUWAnLCZXJ1gh/bxYSEipXbiDIt9I2rNdDHRbjyOIWl2O12
hhpm1vllrGYzkY1CTT9diiZRGbvYyJEVfovlC36PRzsuBP9gN+NaBN9YbhUU
k7adHcqla4tGbwTGtFtY6e2/KYWXLpo+uaTY9MuKLzRr4QU0UGQdKzCC/714
HabfbYSHyYOBO5X//Kdpkr/8IsN0wpswSleHCXY47kI51EwFJO7ddIr1F4Vu
wHKb0+zYB96YVdsrNQn1yyTP6stqfi7HVlSysbhEfH1Ucj/k3fhNY00j8upI
TilzkmPk5sgGnFGy6Ar0psY1OZPE3GbQYdfkjVz+pHzn/FD47A2uGoYRcvAZ
2Tx4BWRaIjbkSomeNJe7dZRyxlLfL8gy5cmzGzDBTQ1eDrapQlB2or2eC8l1
IHwTbjJDWVSj4xyRw27TEIbXQ8ZOVkLgl/VsM6+VjPG8yLK6ucLkOyouxQJK
NJaE7RHqIf+5CdKPDFRXi9exQvz3SvS/GznsH9pSDAdu1snLd9+INMRWrGd+
H8jFhXBFfgsv0knKhbTdXvAigpq2jOVJQpHdVJh9R2rnDq/Hyq6FzciOLC+C
rL5TDEbeZscl31Dz58Hbv4g5EWZMS3/eVtH8Ls9kJ3jLs90OY0/KP/30rpzO
q2bBaRbnc2EZ+Dxe3CwT8RRmMQ7kKhdazl8+/P9ZFOL8RH+fF9xzYV+JqFiL
mThzOyrRuFJOSZVMfhQtSPTIaV18D12feqawhWDPkTGAqQulqgDi/VvXF5u5
is30fAt+M7dVZDQ3kn75ZURVXX6KJgJ+pIImy375ozDt4lhUsHtv9AuYNqzn
BwfPvvr6vuzab35Tvokff97KpqxpNhRF6qpJJkibCwxyag/PcGHwuU7k0EAO
RD2T14hbuljNdXnCHa7bAUFjwRhrYKD9ly3AIt+u1eZMuIPcbNkFsYlueEAj
3g9VVuc4gblcgmUvu/NNs4bEAUPIRfu9/+f/fjQ5mDwauT8v/AXs0dUDtdH3
7o/Ib4KcxlWXO3RYFL8vj33oTm7hHJLnqibba69FBi4b4bKfUHV+H749UpHE
nW6g5C7tT8KUZMhaRINQOaai3quO0xvhbzJKFLtknYn80NuVLuB8s+afZcdg
XSxnnX412yVcvjPcz76atxfC3QvQpalRsoYFTdLZyHm/XjCQLg0nsvjKn286
8Czluy6B0ktH745NAi6O8VmFN+g7A/WKSBDaTWivKN7K5JczPd2cOU3JFpIj
1j93fpxldpzF1i6kj3MPOKJ8qm8W9Ri7a2rFmNJsVCzlP6m7ifRU7Rb7cN5C
mvFjK2HW00YmDxEwr8V+w09XjYhz4ZQ3hXD1ajPvlZuIGJs3U6GAGlqarmlV
9Zci+1yYURQnohSGkE8bQorE8EVXugLgglMHmAXbvjMdES/2lM/TOaT3DUlj
LaM7Z16ImI53zOhQbQZwBbUWDt1UcKtC+Qp2j8QzlPKZRRFPV3doHHcI71Jb
UPVBlINgeNRwBU7xJZyNGmTD48jpYxQ0iLgPJbXrMrI7XX6X7I0IjqtaOdc9
IT2+9Rgs+JgiTN7dzIRCE1Ya7xtp8bFQ4jucB+j9cfLS3n05/266bs5UFU/t
hbAnQYEIwwtJQCU/FCNwt3sWT0NtX/Z7fkd5JZVTGEnKY3KY1bLQu39Wn4Np
076f3kxByjxKGvjUcyncbXtkKzVOAEaW6J5K/9BXRTOA7BfNa84hFnCaQ60U
kmpUHa7mY9mk+azILZfVuh4nbgy7g4OrrryyCwcHxlRAIAm1YBxZmlCnyknd
+1Z42Y3yww81paGc8t73P759tzfS/1v+8Ir//ebl//HjyZuXL/Dfb/94/N13
4T/0iUL+8erH7+zv+K/45vNX33//8ocX+rL8Wg5++v743/aUDvdevX538uqH
4+/2lHZSJYhGDg1cOBrXsiM0N2j+klzgDSr+8Px1efBElIj/TayXRwcHsF70
H18dfPlE/nEtZomeSLuUu6v/JBOR05PbjkFk46CJN8LrcXod5JlIMBESteze
/j6l5OH+PgVe1Fi79ry/xjRNeip/qj7UUe/P7ZpIdqPM+nGlWxjW2A5cyVSm
KBevmnMWr/1lzARHaK6pdRbPcSYHaupcXxPu2ixEbAt9CB2DCnlbqJSaDP8i
TJofO6HC7V9KF8jLZJrp8UvZy5uVyfVqILGKdp3yf7lszkL5iTcyHVyL17Ap
/EsqJVXKrK+aqelear5kJqRJXLu6WKhq/32cHK1iIRuQfo2jp9yXH2VXcZtF
edDzPX7J071L0Xa5fZvLqYguJ7dShiSNm8hF3vUhYalL194t8LGTvf3znxqp
Iom3XV2cxuDg283Z32WfT4Wo1/AN45BPq6o+LVv+QS3b9BdzGohAK6ITbFEv
zuAkwtJPzXg6HZWnCa871at1SpeekMgpH7YNKEweqCpA23Nz1tWBymyhZDvQ
MxiLmokWh0f/9OrtS53n7vWrV6RYVTc02SDJyz+9ffVD+VN9Jgq4uaHKe3/6
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
gAB3MV/ORkYHo2GtIHxhsh4yKdxoMhOS1o/Ccl7OZ57ydRZtJZNFtHuwIJhk
LYrtl7BzMY1hNAR9LaoHSXEb5NmQqzEtnS9W4bDhA+TOz6gNa6+sbF2zQ5aL
EH5PBWsg5anUUcyFeUUIxrWredgO0JMW6RL3UeNVWSD+LVaihfE3iNzdvI72
F/14GbVaDbtQ5jukpjnddFfURcjw4YZHyPzZWPmnxfxmbeXhTDZCEgivUwLz
mEwlsK5llWIDdDJHERTyaEsFTaAfhi2n3zUf28gXyemhXEBrbhKqOt3bixms
UOyCS0DWAnO3gCd0mmr/W7WnWWC02O1rBx29wUZG1D2cR8wClrTRFBrWkmlh
Tuq9gf1nGXpkihoOpFHzqVCMCZ+nM/WlLuTzfPJYjFbLQiQpoUW5zLHcUHrc
OEGw3sa/+9o9ntNZwUlGechpdcOCfWQUHooXtLC2+ITFThX+dgMQPQQwGnmB
XNc2OepuWKusKC9eyYdYzogutYjLashPyWvRJryHZOU9drrlVQdAW9TKGpkM
A4JgnTCJbHmxj4Pz94MrgVGdfDq/vLoYnJ1fXdq7dqDzVWoIRL58jT9QGb2R
DZK1KskGRe1AtMCnU0DOq4qJ/KuQZOtDKSsbntHmfRRuKUD4GfNc07K4g1Zj
IX2DC8uZeO/TyezOwBMKKjZX8c+1iBQ8Co/PK4U+YNys6+Quzii8U9slCwEZ
efHVd42TicVj5VZGjZ1JDnrB/JUfrzrElxrTSWb7KWXtfnOWn8aFvRWgq6n5
qD9yFdFdSHzBB0MUsBoXL0heOg/zGrRzArl3xrYMo8KJoMIyqh7MVJUP3j1+
Wl5LsMIMoShDXD4vPLcIV6e+goCmlfjnaaM0UgzWLFROaJHrxNRXiZKwgOb6
zDXKrZmpzkI7VIBA47JNBHX6NvDAlyIcRinliYjYqIRnzTgsbAkitzVxqg1R
HAlsFQjrKeogM13IgILSAWWaarZq9FtFTdbsoFuJ4jDnpYMLLVTbA1Qq7+LH
QoFv3gT/97CzvwUJDQ1IhqR/Tm1LP76Cr7u6XSN/OYlBAStIC+pO/pH4pQex
JJiVKPTtbiNMJWsVMFURlGAptepUE5G5J4nN5FHRShNCNItSBzJMFhtbgT24
23gQUhMM4qU346wbAqkBUyIivMgV5A3kw6qc46T2kDeYKB7+FeJS+52eCJ9S
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
AA==

-->

</rfc>

