<?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 4.0.5) -->


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

<!ENTITY RFC8259 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8259.xml">
<!ENTITY RFC3986 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3986.xml">
<!ENTITY RFC7515 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7515.xml">
<!ENTITY RFC7517 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7517.xml">
<!ENTITY RFC7519 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7519.xml">
<!ENTITY RFC7638 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7638.xml">
<!ENTITY RFC8725 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8725.xml">
<!ENTITY RFC7800 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7800.xml">
<!ENTITY RFC8032 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8032.xml">
<!ENTITY RFC8037 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8037.xml">
<!ENTITY RFC9864 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9864.xml">
<!ENTITY RFC8785 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8785.xml">
<!ENTITY RFC9278 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9278.xml">
<!ENTITY RFC9396 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9396.xml">
<!ENTITY RFC9562 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9562.xml">
<!ENTITY RFC6749 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6749.xml">
<!ENTITY RFC9201 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9201.xml">
<!ENTITY RFC8414 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8414.xml">
<!ENTITY RFC8126 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml">
<!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 I-D.ietf-oauth-status-list SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-oauth-status-list.xml">
<!ENTITY I-D.ietf-oauth-transaction-tokens SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-oauth-transaction-tokens.xml">
<!ENTITY I-D.ietf-oauth-identity-chaining SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-oauth-identity-chaining.xml">
<!ENTITY I-D.ietf-wimse-arch SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-wimse-arch.xml">
<!ENTITY I-D.li-oauth-delegated-authorization SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.li-oauth-delegated-authorization.xml">
<!ENTITY I-D.mcguinness-oauth-mission SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.mcguinness-oauth-mission.xml">
<!ENTITY I-D.ietf-wimse-aims SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-wimse-aims.xml">
<!ENTITY I-D.asor-wimse-agent-delegation-chain SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.asor-wimse-agent-delegation-chain.xml">
<!ENTITY I-D.chen-oauth-agent-authz-use-cases SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.chen-oauth-agent-authz-use-cases.xml">
<!ENTITY RFC2693 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2693.xml">
<!ENTITY RFC7942 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7942.xml">
<!ENTITY RFC8949 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8949.xml">
<!ENTITY RFC8392 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8392.xml">
<!ENTITY RFC8693 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8693.xml">
<!ENTITY RFC9052 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9052.xml">
<!ENTITY RFC9334 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9334.xml">
<!ENTITY RFC9449 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9449.xml">
<!ENTITY RFC9068 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9068.xml">
<!ENTITY RFC8707 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8707.xml">
]>


<rfc ipr="trust200902" docName="draft-niyikiza-oauth-attenuating-agent-tokens-02" category="std" consensus="true" submissionType="IETF">
  <front>
    <title abbrev="Attenuating Agent Tokens">Attenuating Authorization Tokens for Agentic Delegation Chains</title>

    <author fullname="Niki Aimable Niyikiza">
      <organization>Tenuo</organization>
      <address>
        <email>niki@tenuo.ai</email>
      </address>
    </author>

    <date year="2026" month="October" day="26"/>

    <area>Security</area>
    <workgroup>Web Authorization Protocol (OAuth)</workgroup>
    

    <abstract>


<?line 211?>

<t>This document defines Attenuating Authorization Tokens (AATs), a signed
credential format for task-scoped delegation in AI agent systems. An AAT
encodes the tools an agent may invoke and the argument constraints that
apply to those invocations. A token holder authorized to delegate can
derive a token offline with equal or narrower authority, subject to the
parent token's depth and lifetime limits. The resulting delegation chain
is verifiable offline by any enforcement point that has the root
issuer's trust anchor key.</t>

<t>This specification profiles the OAuth Rich Authorization Requests format
(RFC 9396) for tool-level capability claims, adds delegation-chain
claims, and defines a core constraint vocabulary for argument
restrictions. The chain verification algorithm authenticates each
delegation step and enforces monotonic attenuation without network
contact with the root issuer.</t>



    </abstract>



  </front>

  <middle>


<?line 229?>

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

<t>AI agent systems increasingly decompose a user request into delegated
steps performed by multiple agents, services, or tools. Each step may
need authority derived from the user or an originating service, but
rarely needs the full authority available to the workflow as a whole.</t>

<t>A token broad enough to support a multi-step workflow can carry more
authority than an intermediate agent needs for its current step. Prompt
injection, model hallucination, or compromise can then exercise that
excess authority. Attenuation limits this exposure by letting each
delegation step pass onward only the authority needed for the next step.</t>

<t>A gap analysis of agent authorization use cases
<xref target="I-D.chen-oauth-agent-authz-use-cases"/> describes a related gap: when
a task passes through several agents, a resource server has no standard
way to verify that the delegation chain is legitimate and authorized by
the user, which also complicates enforcing progressively narrower
permissions along it.</t>

<t>AATs let a token holder derive, without contacting the authorization
server, a token that constrains a receiving agent to specific tools and
argument values for a specific task, and let any enforcement point
verify offline that each token in the resulting chain is no broader than
its parent. Section 1.1 describes how AATs build on OAuth 2.0 Token
Exchange <xref target="RFC8693"/> and Rich Authorization Requests <xref target="RFC9396"/>.</t>

<t>AATs apply the capability model <xref target="DENNIS66"/> to OAuth-based agent
systems. Authority travels in unforgeable tokens scoped to specific
operations; a holder can attenuate a token before passing it on but
cannot amplify it <xref target="SALTZER75"/> <xref target="MILLER06"/>. Enforcement points verify
the leaf token and the delegation path that produced it offline, so the
authorization server is not a participant in each hop. That matters for
agentic workflows that invoke tools in rapid succession, cross trust
boundaries, or run with intermittent connectivity. AATs add this
delegation and attenuation layer to OAuth 2.0 <xref target="RFC6749"/> token issuance
and scoping and to WIMSE <xref target="I-D.ietf-wimse-arch"/> workload identity; they replace
neither.</t>

<t>The same structure addresses a distinct problem, the confused deputy
<xref target="HARDY88"/>: a deputy that combines a caller-supplied resource
designation with the deputy's own standing authority can be induced to
perform an action the caller could not perform directly. Capability
systems address this by carrying designation and authority together in
an unforgeable artifact. AATs apply that pattern to agentic delegation:
the invoker can derive a token whose tool and argument constraints
designate the task's resource and authority, and the agent acts under
that received token rather than under ambient authority of its own. AATs
make this possible but do not force it: an agent that also holds a
broader token can still act under that one. Deployments get the benefit
by giving each agent only the token derived for its task, under its own
holder key (Section 9.10); Section 9.1 describes the resulting
guarantees and limits.</t>

<t>An AAT combines four mechanisms that the rest of this document builds
on:</t>

<t><list style="symbols">
  <t><strong>Capabilities as claims.</strong> A profile of Rich Authorization Requests
(RAR) <spanx style="verb">authorization_details</spanx> lists the tools a holder may invoke and
typed constraints on each argument (Section 3).</t>
  <t><strong>Attenuation invariants.</strong> A holder derives a child token offline,
and the child can only narrow tools, argument constraints, delegation
depth, and lifetime (Section 4).</t>
  <t><strong>Chain linkage.</strong> Each child is signed by the key its parent names in
<spanx style="verb">cnf.jwk</spanx> and carries a hash of its parent, so the chain verifies back
to a trust anchor without contacting the issuer (Sections 4.2 and
4.6).</t>
  <t><strong>Holder binding.</strong> Every token names a holder key, and each tool
invocation carries a proof-of-possession (PoP) JWT signed by the leaf
holder over the tool and its exact arguments (Sections 3.2 and 7).</t>
</list></t>

<t>Root tokens are issued at an OAuth token endpoint and later tokens are
derived locally (Section 6); an enforcement point verifies the chain and
the proof in one algorithm (Section 8).</t>

<t>The following diagram shows the delegation flow this specification
enables:</t>

<figure><artwork><![CDATA[
Root Issuer
       |
       | issues root AAT (Section 6.1)
       v
Orchestrating Agent
       |
       | derives AAT (Section 6.2)
       v
Planning Agent
       |
       | derives AAT (Section 6.2)
       v
Tool-Invoking Agent
       |
       | presents AAT with PoP JWT (Section 7)
       v
Enforcement Point
  (verifies chain offline, Section 8)
]]></artwork></figure>

<t>At each derivation step, authority can stay the same or narrow, but
never widen. This document defines the token format, derivation, proof
of possession, the presentation an enforcement point receives (Section
7.4), and verification. It leaves four things to deployments or
companion specifications: token revocation, which would reintroduce the
online dependency that offline verification avoids (Section 9.8); a CBOR
encoding (Appendix D); where a presentation is carried, since agent
frameworks carry tool calls over different protocols, for example MCP
<xref target="MCP"/>, A2A <xref target="A2A"/>, or plain HTTP, and each needs its own binding;
and how a user's authority, obtained for example through an
authorization code grant with consent, is reflected in a root token.</t>

<section anchor="building-on-oauth"><name>Building on OAuth</name>

<t>OAuth 2.0 Token Exchange <xref target="RFC8693"/> lets a client obtain a new token,
possibly with reduced scope, from the authorization server (AS), which
decides each reduction. Prior actors appear in nested <spanx style="verb">act</spanx> claims,
which are informational only and are not considered in access control
decisions (<xref target="RFC8693"/>, Section 4.1). AATs move the reduction to the
token holder: a holder derives a narrower token locally, every
derivation is signed and linked to its parent, and an enforcement point
verifies the whole chain offline. The AS takes part only in issuing the
root token.</t>

<t>Rich Authorization Requests (RAR) <xref target="RFC9396"/> give OAuth tokens
structured authorization details. AATs profile RAR for tool-level
claims (Section 3.3) and define how a holder derives narrower
authorization details and how an enforcement point verifies a chain of
such derivations.</t>

<t>Explicit agent consent in the authorization code flow establishes who
the agent is and that the user approved the delegation. AATs carry the
authority that follows: the tools the agent may invoke and the argument
values it may use.</t>

</section>
<section anchor="design-goals"><name>Design Goals</name>

<t><list style="numbers" type="1">
  <t><strong>Least privilege at the invocation boundary.</strong> An agent's
authorization token encodes which tools it may call and with what
argument constraints, scoped to the task, not to the full authority
of the user or agent that delegated it.</t>
  <t><strong>Offline derivation.</strong> A token holder can derive a more restrictive
token without contacting the root issuer.</t>
  <t><strong>Independent chain verification.</strong> Any enforcement point holding
the trust anchor can verify the complete delegation chain without
network calls.</t>
  <t><strong>Verifiable attenuation.</strong> A derived token cannot grant broader
authority than its parent, and this property can be verified from the
signed chain.</t>
  <t><strong>JWT/JWS interoperability.</strong> AATs are JWS-signed JWTs <xref target="RFC7519"/>
<xref target="RFC7515"/>, so deployments can verify chains with existing JSON
Object Signing and Encryption (JOSE) infrastructure and no new
cryptographic dependencies. Appendix D notes what a CBOR/CWT
encoding would need.</t>
</list></t>

</section>
<section anchor="relationship-to-prior-work"><name>Relationship to Prior Work</name>

<t>Macaroons <xref target="MACAROONS"/> introduced contextual caveats: any holder
attenuates a token by appending a caveat, and the target service checks
every caveat at runtime. Macaroons chain HMACs, so verification uses the
root secret, and third-party caveats let a holder require proof from
another service. AATs verify against the root issuer's public key
alone, so enforcement points that are not the root issuer, including
ones in other trust domains, need no shared secret and no call back to
the issuer. AATs also bind every token to a holder key and express
attenuation as typed constraints whose narrowing any party can check
(Section 4.5). Section 9.4 discusses the re-keying that HMAC chaining
provides and how AATs approximate it.</t>

<t>SPKI/SDSI <xref target="RFC2693"/> established public keys as principals,
delegation certificates, and attenuation by reduction: a chain's
authority is the intersection of its certificates' tags. AATs carry the
same three ideas over JWT claims and typed tool constraints: holder keys
in <spanx style="verb">cnf.jwk</spanx>, chains verified against a root key, and narrowing by the
subsumption relation of Section 4.5. An enforcement point checks at each
hop that a derived token's tool and argument constraints are no broader
than its parent's, so the leaf token states the tool and argument
authority being exercised.</t>

<t>Biscuit <xref target="BISCUIT"/> replaces the Macaroons HMAC chain with public-key
signatures: each block after the first is signed with the private key
whose public key the previous block carries, so an attenuated token
verifies against the root public key alone. Biscuit expresses policies
in a Datalog variant evaluated at verification time. AATs use typed
constraints with structural subsumption, a bound on delegation depth,
and holder-bound proof of possession at each invocation.</t>

<t>UCAN <xref target="UCAN"/> chains signed delegations, links them by content hash,
and lets each delegation constrain the arguments of an invocation, which
the invoker signs; the arguments must satisfy the policy of every
delegation in the chain. AATs check at each hop that a derived token's
constraints are subsumed by its parent's (Section 4.5), so the leaf
token states the tool and argument authority exercised and the
enforcement point evaluates only the leaf's constraints. AAT root tokens
are issued by an OAuth authorization server, and AATs profile RAR.</t>

<t>Transaction tokens <xref target="I-D.ietf-oauth-transaction-tokens"/> and identity
and authorization chaining <xref target="I-D.ietf-oauth-identity-chaining"/> carry
identity, actor, transaction, and authorization context across services
and trust domains. Guidance on AI agent authentication and
authorization <xref target="I-D.ietf-wimse-aims"/> builds agent authorization on
OAuth 2.0 access tokens, token exchange <xref target="RFC8693"/>, and these two
specifications. AATs add holder-derivable attenuation of tool and
argument authority within a delegation chain, verified offline by the
enforcement point, and can be used alongside them.</t>

<t>Delegated Authorization Tokens <xref target="I-D.li-oauth-delegated-authorization"/>
are key-bound tokens that let an OAuth client delegate part of its
authorization to another client without contacting the authorization
server. The resource server checks the ordered chain, the restrictions
at each step, and a DPoP proof <xref target="RFC9449"/> signed with the leaf token's
key. Permissions are carried in <spanx style="verb">scope</spanx> and <spanx style="verb">authorization_details</spanx>;
an authorization details type can be narrowed along a chain only if
its specification defines containment rules for it. AATs define such a
type for tools and their arguments (Section 4.5).</t>

<t>The Agent Delegation Chain <xref target="I-D.asor-wimse-agent-delegation-chain"/>
profiles JWT access tokens <xref target="RFC9068"/> for offline delegation between
agents, with DPoP <xref target="RFC9449"/> for proof of possession and a token
status list <xref target="I-D.ietf-oauth-status-list"/> for revocation. Each token
names the accountable principal in <spanx style="verb">sub</spanx> and the acting agent in
<spanx style="verb">client_id</spanx>. It reuses this document's chain claim names, with
different semantics for <spanx style="verb">del_max_depth</spanx>.</t>

<t>Mission-Bound Authorization <xref target="I-D.mcguinness-oauth-mission"/> records an
approved task and its authority at the authorization server as a
Mission. Every access token issued under a Mission carries a subset of
that authority and is issued by the authorization server, gated on the
Mission's state. A companion profile, Mission Offline Attenuation
<xref target="MISSION-ATTENUATION"/>, profiles AATs so that holders can also narrow
offline: the authorization server issues an AAT root token from the
Mission's approved authority, holders derive narrower tokens without
contacting it, and enforcement re-checks the Mission's state at each
presentation, so revoking the Mission stops the whole chain.</t>

<t>Recent work argues that safe agent delegation needs an explicit,
bounded transfer of authority at each step <xref target="DEEPMIND26"/>, and that
capability controls enforced at the tool boundary can defend against
prompt injection <xref target="CAMEL25"/>. AATs carry tool and argument limits in the
token and enforce them at the tool boundary.</t>

<t>Appendix A relates the proof-of-possession mechanism to DPoP
<xref target="RFC9449"/>. Changes from the previous revision are listed in Appendix
F.</t>

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

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>

<?line -18?>

<t><strong>Attenuating Authorization Token (AAT):</strong> A signed credential as defined
in this document. An AAT encodes tool-level capability claims and supports
offline derivation of derived tokens with authority equal to or narrower
than the parent's.</t>

<t><strong>Root Token:</strong> An AAT with no parent token, <spanx style="verb">del_depth: 0</spanx>, and
<spanx style="verb">par_hash</spanx> absent. A root token is signed by the private key
corresponding to a trust anchor and establishes the authority ceiling for
all derived tokens. A root token is a chain position, not a distinct
token type.</t>

<t><strong>Root Issuer:</strong> The entity that mints root tokens. The root issuer
holds the private key corresponding to a trust anchor and is responsible
for verifying agent identity and requested authority before issuance.
In the token endpoint profile of Section 6.1, the root issuer is an
OAuth authorization server (AS).</t>

<t><strong>Issuer:</strong> The signer of an AAT: the root issuer for a root token, and
the deriver for a derived token.</t>

<t><strong>Presentation:</strong> The chain and PoP JWT that a presenter sends to an
enforcement point for one tool invocation (Section 7.4).</t>

<t><strong>Binding:</strong> A specification of how presentations are carried over a
particular protocol, such as MCP or HTTP. Bindings are outside the
scope of this document.</t>

<t><strong>Presenter:</strong> The party that presents a chain and a PoP JWT to an
enforcement point. An invocation is authorized only when the presenter
is the holder of the leaf token.</t>

<t><strong>Token Holder:</strong> The entity that possesses an AAT and the private key
corresponding to its <spanx style="verb">cnf.jwk</spanx> claim. The token holder is the party
authorized to derive further tokens from it, subject to the chain's depth
limits. The holder of the leaf token is also the party authorized to
present the chain for tool invocation by signing the PoP JWT. In agent
systems, a token holder is typically an agent.</t>

<t><strong>Derived Token:</strong> An AAT produced by a token holder from a parent AAT,
also referred to as a child token. A derived token's authority is a
subset of its parent's authority (equal or narrower). Derivation does
not require a round-trip to the root issuer.</t>

<t><strong>Deriver:</strong> The token holder that creates a derived token from its own
token (Section 6.2).</t>

<t><strong>Tool:</strong> An addressable function or API operation that an agent may
invoke. A tool is identified by a string identifier. Tool identifiers
are compared as exact strings; see Section 3.3.1 for requirements.</t>

<t><strong>Argument Constraint:</strong> A predicate over a tool argument value that the
argument <bcp14>MUST</bcp14> satisfy for the invocation to be authorized. Constraints
are evaluated at the enforcement point before invocation.</t>

<t><strong>Capability Claim:</strong> The set of (tool, argument constraints) pairs
encoded in an AAT's <spanx style="verb">authorization_details</spanx> claim.</t>

<t><strong>Attenuation:</strong> The process of deriving a token with a capability
claim that authorizes a subset of what the parent token's capability
claim authorizes.
Attenuation is the only permitted direction of derivation.</t>

<t><strong>Chain:</strong> An ordered sequence of AATs from root to leaf, where each
token was derived from its predecessor.</t>

<t><strong>Leaf Token:</strong> The last token in a chain. The leaf token is the one
presented to the enforcement point for authorization. The PoP JWT is
signed by the private key corresponding to the leaf token's <spanx style="verb">cnf.jwk</spanx>.</t>

<t><strong>Enforcement Point:</strong> The component that receives a tool
invocation request, verifies the presented token chain, evaluates
argument constraints, and permits or denies execution. In OAuth terms,
it plays the role of a resource server for the tools it guards. In
agent systems, it typically fronts a tool server, such as an MCP server
<xref target="MCP"/>.</t>

<t><strong>Trust Anchor:</strong> A public key, bound to the issuer identifier of the
root issuer that holds the corresponding private key, that enforcement
points are configured to trust as the root of a delegation chain. Root
tokens are signed by the private key corresponding to a trust anchor.</t>

<t><strong>Proof of Possession (PoP):</strong> A cryptographic demonstration that the
presenter of a token controls the private key corresponding to the
public key bound in the token's <spanx style="verb">cnf</spanx> claim. In this specification, the
holder of the leaf token signs the PoP JWT with the private key
corresponding to the leaf token's <spanx style="verb">cnf.jwk</spanx>.</t>

</section>
<section anchor="token-structure"><name>Token Structure</name>

<section anchor="chain-position-and-invocation-semantics"><name>Chain Position and Invocation Semantics</name>

<t>This specification does not define separate token types for delegation
and execution. An AAT's role is determined by its position in the
presented chain.</t>

<t>The root token establishes the authority ceiling. Intermediate tokens
record attenuations made by holders along the delegation path. The leaf
token is the token whose holder presents a PoP JWT and whose capability
claims are evaluated against the requested tool invocation.</t>

<t>A holder of any AAT <bcp14>MAY</bcp14> derive a child token when <spanx style="verb">del_depth</spanx> is
strictly less than <spanx style="verb">del_max_depth</spanx>. The derived token <bcp14>MUST</bcp14> carry
authority equal to or narrower than the parent token, as enforced by the
capability monotonicity invariant (I4, Section 4.5). A token <bcp14>MUST NOT</bcp14> be
accepted for a tool invocation except as the leaf of a successfully
verified chain.</t>

</section>
<section anchor="common-claims"><name>Common Claims</name>

<t>The following claims are defined for AATs. All claims listed as
<bcp14>REQUIRED</bcp14> <bcp14>MUST</bcp14> be present. Claims listed as <bcp14>OPTIONAL</bcp14> <bcp14>MAY</bcp14> be omitted;
their absence carries the semantics described in the table.</t>

<texttable>
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Required</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">jti</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Unique token identifier. <bcp14>SHOULD</bcp14> be a UUIDv7; a UUID <bcp14>MUST</bcp14> be encoded as a lowercase hyphenated string <xref target="RFC9562"/>.</c>
      <c><spanx style="verb">iss</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>The signer: the root issuer's URI, or for a derived token a JWK Thumbprint URI of the signing key (below).</c>
      <c><spanx style="verb">iat</spanx></c>
      <c>NumericDate</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Issuance time (Section 4.4).</c>
      <c><spanx style="verb">exp</spanx></c>
      <c>NumericDate</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Expiration time (Section 4.4).</c>
      <c><spanx style="verb">cnf</spanx></c>
      <c>object</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Confirmation claim <xref target="RFC7800"/> whose <spanx style="verb">jwk</spanx> member is the holder's public key. Private key members <bcp14>MUST NOT</bcp14> appear.</c>
      <c><spanx style="verb">aud</spanx></c>
      <c>string or array of strings</c>
      <c><bcp14>OPTIONAL</bcp14></c>
      <c>Enforcement points at which this token and its descendants may be presented (below).</c>
      <c><spanx style="verb">del_depth</spanx></c>
      <c>integer</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Delegation depth: 0 for root tokens, parent's plus 1 otherwise (Section 4.3).</c>
      <c><spanx style="verb">del_max_depth</spanx></c>
      <c>integer</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Maximum delegation depth permitted in this chain (Section 4.3).</c>
      <c><spanx style="verb">par_hash</spanx></c>
      <c>string</c>
      <c><bcp14>MUST</bcp14> (derived) / <bcp14>MUST NOT</bcp14> (root)</c>
      <c>Digest of the parent token's signing input (Section 4.6).</c>
      <c><spanx style="verb">authorization_details</spanx></c>
      <c>array</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Tool capability claims (Section 3.3).</c>
</texttable>

<t>Implementations <bcp14>MUST</bcp14> support Ed25519 <xref target="RFC8032"/>, JWS <spanx style="verb">alg</spanx> value
<spanx style="verb">"Ed25519"</spanx> (<xref target="RFC9864"/>), with keys represented as OKP JWKs
(<xref target="RFC8037"/>), for token signing and verification.
Implementations <bcp14>MAY</bcp14> support additional asymmetric algorithms
(Section 9.11).</t>

<t>In AATs and PoP JWTs, NumericDate values and the integer claims
<spanx style="verb">del_depth</spanx> and <spanx style="verb">del_max_depth</spanx> are JSON numbers with no fraction or
exponent part. An <spanx style="verb">aud</spanx> value, or a PoP JWT's <spanx style="verb">aat_aud</spanx> (Section 7.2),
identifies an enforcement
point when it is identical, by exact string comparison, to an audience
identifier configured at that enforcement point.</t>

<t><spanx style="verb">aud</spanx> has the semantics of <xref target="RFC7519"/> Section 4.1.3. A holder that
knows where a token will be presented <bcp14>SHOULD</bcp14> set <spanx style="verb">aud</spanx> when deriving it,
like a contextual caveat <xref target="MACAROONS"/> or a resource indicator
<xref target="RFC8707"/>; a holder that does not know leaves it unset, since a wrong
value makes the token unusable where it is presented. Every <spanx style="verb">aud</spanx> in a
chain is checked (Section 8, step 6c), so derivation can add or narrow
an audience restriction but cannot remove one.</t>

<t><xref target="RFC8725"/> Section 3.9 asks that a JWT intended for more than one
relying party carry <spanx style="verb">aud</spanx>. An AAT may omit it because an AAT is never
presented alone: every invocation also carries a PoP JWT from the leaf
holder (I6), and when several enforcement points accept the same chain,
Section 9.5 ensures each proof is accepted by only one of them.</t>

<t>In both root and derived tokens, <spanx style="verb">iss</spanx> is a URI. For root tokens,
<spanx style="verb">iss</spanx> is a URI identifying the root issuer, consistent with
conventional OAuth usage. For derived tokens, <spanx style="verb">iss</spanx> is a JWK
Thumbprint URI <xref target="RFC9278"/> of the form
<spanx style="verb">urn:ietf:params:oauth:jwk-thumbprint:sha-256:&lt;thumbprint&gt;</spanx>, where
<spanx style="verb">&lt;thumbprint&gt;</spanx> is the SHA-256 JWK thumbprint (<xref target="RFC7638"/>) of the
signing key. This makes I1 verifiable offline: the enforcement
point can confirm that the thumbprint embedded in <spanx style="verb">derived.iss</spanx>
matches <spanx style="verb">parent.cnf.jwk</spanx> without any external lookup.</t>

<t>This specification intentionally omits the <spanx style="verb">sub</spanx> claim. In conventional
OAuth tokens, <spanx style="verb">sub</spanx> identifies the resource owner or principal on whose
behalf the token is issued. In an AAT chain, <spanx style="verb">cnf.jwk</spanx> identifies the
holder key and the presenter proves control of its private key; binding
that key to a human, service, or organization is deployment-specific.
A <spanx style="verb">sub</spanx> claim set by a delegating party would not create such a binding.
Profiles that require a subject identifier <bcp14>MAY</bcp14> define one in additional
JWT claims (see Appendix B.4).</t>

</section>
<section anchor="capability-claims-via-authorizationdetails"><name>Capability Claims via <spanx style="verb">authorization_details</spanx></name>

<t>This specification profiles <xref target="RFC9396"/> for tool-level capability
claims. An AAT capability entry is an <spanx style="verb">authorization_details</spanx> entry
whose <spanx style="verb">type</spanx> is set to <spanx style="verb">"attenuating_agent_token"</spanx>. Such an entry <bcp14>MUST</bcp14>
include a <spanx style="verb">tools</spanx> member that maps tool identifiers to constraint maps.
<xref target="RFC9396"/> Section 2.1 recommends collision-resistant type values and
establishes no registry of types; whether to register this type or use
a URI is an open issue for the working group.</t>

<figure><sourcecode type="json"><![CDATA[
{
  "authorization_details": [
    {
      "type": "attenuating_agent_token",
      "tools": {
        "read_file": {
          "path": {
            "constraint_type": "one_of",
            "values": ["/data/q3-report.pdf", "/data/q4-report.pdf"]
          }
        },
        "search_index": {
          "query": {
            "constraint_type": "one_of",
            "values": ["public filings", "public releases"]
          },
          "limit": { "constraint_type": "range", "max": 100 }
        }
      }
    }
  ]
}
]]></sourcecode></figure>

<t>A tool entry with an empty constraint map <spanx style="verb">{}</spanx> is valid and indicates
that the tool is authorized without argument restrictions.</t>

<t>Enforcement points check every invocation against its tool's constraint
map in closed-world mode (Section 8, step 6b): an argument the map does
not name <bcp14>MUST</bcp14> be rejected unless the map carries the <spanx style="verb">"*"</spanx> entry
described below, and a named argument absent from the invocation <bcp14>MUST</bcp14> be
rejected unless its constraint is optional. Named arguments are
required by default, so an invocation cannot evade a constraint by
omitting its argument. To authorize an argument without restricting its value while keeping the
map closed, the issuer names it with a <spanx style="verb">wildcard</spanx> constraint (Section
3.4).</t>

<t><strong>Optional arguments.</strong> A top-level entry in a constraint map <bcp14>MAY</bcp14> carry
the member <spanx style="verb">optional</spanx> with the boolean value <spanx style="verb">true</spanx>. The argument may
then be omitted; when present, it <bcp14>MUST</bcp14> satisfy the constraint.
<spanx style="verb">optional</spanx> defaults to <spanx style="verb">false</spanx> and <bcp14>MUST NOT</bcp14> appear on a constraint
nested inside <spanx style="verb">all</spanx> or <spanx style="verb">any</spanx>. Subsumption (Section 4.5) compares
constraints without this member; Section 4.5 states separately how it
attenuates.
An omitted argument takes the tool's own default, which the enforcement
point cannot see, so issuers <bcp14>SHOULD</bcp14> mark an argument optional only
when that default is acceptable (Section 9.12).</t>

<t><strong>Unnamed arguments.</strong> The reserved key <spanx style="verb">"*"</spanx> in a constraint map gives
the constraint for every argument the map does not name. In this
specification its value <bcp14>MUST</bcp14> be a <spanx style="verb">wildcard</spanx> constraint without an
<spanx style="verb">optional</spanx> member, so <spanx style="verb">"*"</spanx> permits arguments the issuer did not name,
with any value. An empty constraint map is equivalent to <spanx style="verb">{"*":
{"constraint_type": "wildcard"}}</spanx>, and enforcement points treat it that
way (Section 8, steps 4p and 6b). The key <spanx style="verb">"*"</spanx> does not name a tool
argument; a tool argument literally named <spanx style="verb">"*"</spanx> is treated as unnamed.
Because <spanx style="verb">"*"</spanx> admits any argument the tool accepts, including arguments
added in later versions of the tool, issuers <bcp14>SHOULD NOT</bcp14> use it for tools
with side effects (Section 9.12).</t>

<t>For example, the following entry pins <spanx style="verb">path</spanx>, bounds the optional
<spanx style="verb">head</spanx> and <spanx style="verb">tail</spanx> line counts without requiring them, and permits any
other argument:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "https://tools.example.com/fs/read_text_file": {
    "path": { "constraint_type": "exact",
              "value": "/srv/api/README.md" },
    "head": { "constraint_type": "range", "max": 200,
              "optional": true },
    "tail": { "constraint_type": "range", "max": 200,
              "optional": true },
    "*": { "constraint_type": "wildcard" }
  }
}
]]></sourcecode></figure>

<t>The <spanx style="verb">authorization_details</spanx> array <bcp14>MAY</bcp14> contain entries of other types
alongside the <spanx style="verb">attenuating_agent_token</spanx> entry, consistent with the
extensibility model of <xref target="RFC9396"/>. Enforcement points implementing this
specification process only entries with <spanx style="verb">type</spanx> set to
<spanx style="verb">attenuating_agent_token</spanx> and <bcp14>MUST</bcp14> ignore entries of other types.
Although <xref target="RFC9396"/> Section 2 permits several entries of one type,
every AAT <bcp14>MUST</bcp14> contain exactly one entry with <spanx style="verb">type:
"attenuating_agent_token"</spanx>; its <spanx style="verb">tools</spanx> member holds all of the token's
tool-level capability claims.</t>

<t>Within <spanx style="verb">authorization_details</spanx>, derivation attenuates only the <spanx style="verb">tools</spanx>
member of the <spanx style="verb">attenuating_agent_token</spanx> entry. A holder can add or
change other members of that entry, other entries, and claims this
specification does not define, so an enforcement point <bcp14>MUST NOT</bcp14> derive
authority from them in a derived token unless a profile defines how they
attenuate.</t>

<section anchor="tool-identifier-requirements"><name>Tool Identifier Requirements</name>

<t>Tool identifiers are the keys of the <spanx style="verb">tools</spanx> map in an
<spanx style="verb">authorization_details</spanx> entry. The following requirements apply.</t>

<t>Tool identifiers <bcp14>MUST</bcp14> be unique within the <spanx style="verb">tools</spanx> map of a single
token. An <spanx style="verb">authorization_details</spanx> entry containing duplicate tool
identifier keys is malformed and <bcp14>MUST</bcp14> be rejected.</t>

<t>Tool identifiers are compared as exact strings. Enforcement points <bcp14>MUST
NOT</bcp14> apply Unicode normalization, URI normalization, case folding,
percent decoding, or alias resolution when matching tool identifiers in
the token, the PoP JWT, and the requested invocation. This rule applies
only to tool identifier matching. Argument values are evaluated
according to the semantics of their constraint type; a registered
constraint type <bcp14>MAY</bcp14> define normalization as part of its <spanx style="verb">check</spanx> or
<spanx style="verb">subsumes</spanx> procedure.</t>

<t>Tool identifiers <bcp14>SHOULD</bcp14> be URIs (<xref target="RFC3986"/>). URI-format identifiers
provide namespace isolation across agents and reduce semantic collision
when multiple agents expose tools with identical local names.
Deployments spanning multiple agents or trust domains <bcp14>SHOULD</bcp14> use
URI-format identifiers; single-agent deployments <bcp14>MAY</bcp14> use local
identifiers where collision is not a concern.</t>

<t>A tool identifier carries no inherent authorization semantics beyond
naming a capability. The root issuer is responsible for verifying that
requested tools are recognized and that the requester is authorized to
receive authority for them before minting a root token (Section 6.1.3).</t>

</section>
</section>
<section anchor="argument-constraints"><name>Argument Constraints</name>

<t>Each argument constraint is an object with a <spanx style="verb">constraint_type</spanx> member
and type-specific members. The following constraint types are defined
normatively. The <spanx style="verb">check</spanx> predicate and <spanx style="verb">subsumes</spanx> relation for each type
are normative and fully determined: independent implementations
evaluating either against the same inputs produce identical results.</t>

<t>The core constraint set is intentionally limited to constraint types
with simple, deterministic, format-independent <spanx style="verb">check</spanx> and <spanx style="verb">subsumes</spanx>
rules. Domain-specific matchers and policy-language constraints, such as
resource-identifier matchers, URI or path normalization rules, or
authorization policy expressions, are not core constraint types. They
<bcp14>MUST</bcp14> be defined as registered extension constraint types (Section 5;
see Appendix C for policy languages). The registration process confirms
that the extension defines an unambiguous runtime <spanx style="verb">check</spanx> predicate and
a decidable, sound, and deterministic <spanx style="verb">subsumes</spanx> procedure.</t>

<texttable>
      <ttcol align='left'>constraint_type</ttcol>
      <ttcol align='left'>Additional Members</ttcol>
      <ttcol align='left'>Semantics</ttcol>
      <c><spanx style="verb">exact</spanx></c>
      <c><spanx style="verb">value</spanx> (any scalar)</c>
      <c>Argument <bcp14>MUST</bcp14> equal <spanx style="verb">value</spanx> exactly.</c>
      <c><spanx style="verb">range</spanx></c>
      <c><spanx style="verb">min</spanx> (number, optional), <spanx style="verb">max</spanx> (number, optional), <spanx style="verb">min_inclusive</spanx> (boolean, optional, default true), <spanx style="verb">max_inclusive</spanx> (boolean, optional, default true)</c>
      <c>Argument <bcp14>MUST</bcp14> be a number satisfying the specified bounds. Both bounds are optional. <spanx style="verb">min_inclusive</spanx> and <spanx style="verb">max_inclusive</spanx> control whether the respective bound is included in the valid range; both default to true (closed interval).</c>
      <c><spanx style="verb">one_of</spanx></c>
      <c><spanx style="verb">values</spanx> (array)</c>
      <c>Argument <bcp14>MUST</bcp14> be a member of <spanx style="verb">values</spanx>.</c>
      <c><spanx style="verb">not_one_of</spanx></c>
      <c><spanx style="verb">excluded</spanx> (array)</c>
      <c>Argument <bcp14>MUST NOT</bcp14> be a member of <spanx style="verb">excluded</spanx>.</c>
      <c><spanx style="verb">contains</spanx></c>
      <c><spanx style="verb">required</spanx> (array)</c>
      <c>Argument, which <bcp14>MUST</bcp14> be an array, <bcp14>MUST</bcp14> contain every element listed in <spanx style="verb">required</spanx>.</c>
      <c><spanx style="verb">subset</spanx></c>
      <c><spanx style="verb">allowed</spanx> (array)</c>
      <c>Argument, which <bcp14>MUST</bcp14> be an array, <bcp14>MUST</bcp14> be a subset of <spanx style="verb">allowed</spanx>.</c>
      <c><spanx style="verb">wildcard</spanx></c>
      <c>(none)</c>
      <c>Any value is accepted.</c>
      <c><spanx style="verb">all</spanx></c>
      <c><spanx style="verb">constraints</spanx> (array)</c>
      <c>Logical AND of nested constraints. See Section 4.5 for subsumption rules.</c>
      <c><spanx style="verb">any</spanx></c>
      <c><spanx style="verb">constraints</spanx> (array)</c>
      <c>Logical OR of nested constraints. See Section 4.5 for subsumption rules.</c>
</texttable>

<t>Constraint values and arguments are compared by their JSON
Canonicalization Scheme (JCS) serializations (<xref target="RFC8785"/>), the same
canonical form used to compare a PoP JWT's arguments with the
invocation (Section 8, step 7f); <spanx style="verb">contains</spanx> and
<spanx style="verb">subset</spanx> treat their arrays as sets.</t>

<t>JCS serializes a number through its IEEE 754 double-precision value
(<xref target="RFC8785"/> Section 3.2.2.3), so distinct JSON numbers can share a
canonical form: <spanx style="verb">9007199254740993</spanx> and <spanx style="verb">9007199254740992</spanx> both serialize
as <spanx style="verb">9007199254740992</spanx>. A tool that reads the original text would then
act on a value no constraint evaluated. A JSON number is admissible
when the JCS serialization of its double-precision value denotes the
same mathematical value as the input number: <spanx style="verb">0.1</spanx>, <spanx style="verb">1e20</spanx>, and
<spanx style="verb">9007199254740994</spanx> are admissible; <spanx style="verb">9007199254740993</spanx> and
<spanx style="verb">1.00000000000000001</spanx> are not. Arguments and constraint values <bcp14>MUST</bcp14>
contain only admissible numbers. A parser or protocol binding <bcp14>MUST</bcp14>
preserve the exact mathematical value until this check is complete;
once an input has been reduced to a double, lost precision cannot be
recovered. Values that need more precision, such as large identifiers,
are carried as strings.</t>

<t>A constraint is well-formed when:</t>

<t><list style="symbols">
  <t>it has no members other than <spanx style="verb">constraint_type</spanx>, <spanx style="verb">optional</spanx>, and the
members its type defines (the table above, or the type's registration
for an extension type);</t>
  <t><spanx style="verb">exact.value</spanx> is a string, number, boolean, or null, and the
<spanx style="verb">constraints</spanx> member of <spanx style="verb">all</spanx> and <spanx style="verb">any</spanx> is an array;</t>
  <t><spanx style="verb">one_of.values</spanx> is a non-empty array, and <spanx style="verb">excluded</spanx>, <spanx style="verb">required</spanx>, and
<spanx style="verb">allowed</spanx> are arrays;</t>
  <t>in a <spanx style="verb">range</spanx>, <spanx style="verb">min</spanx> and <spanx style="verb">max</spanx> are numbers, <spanx style="verb">min</spanx> is not greater than
<spanx style="verb">max</spanx>, and <spanx style="verb">min_inclusive</spanx> and <spanx style="verb">max_inclusive</spanx> are booleans present
only with the corresponding bound;</t>
  <t>every number in it is admissible (above); and</t>
  <t><spanx style="verb">optional</spanx>, where present, is a boolean on a top-level constraint-map
entry, and a <spanx style="verb">"*"</spanx> entry is a <spanx style="verb">wildcard</spanx> constraint with no <spanx style="verb">optional</spanx>
member (Section 3.3).</t>
</list></t>

<t>Enforcement points <bcp14>MUST</bcp14> reject a token containing a constraint that is
not well-formed (Section 8, steps 3n and 4o).</t>

<t>Enforcement points <bcp14>MUST</bcp14> reject invocations where any argument violates
its associated constraint. Enforcement points <bcp14>MUST</bcp14> deny authorization if
they encounter a <spanx style="verb">constraint_type</spanx> they do not recognize (fail-closed
behavior): an unrecognized constraint is a restriction the issuer
intended, and skipping it would remove that restriction. This
fail-closed rule applies only to constraint types within
<spanx style="verb">authorization_details</spanx>. Enforcement points <bcp14>MUST</bcp14> ignore unrecognized
top-level JWT claims; a token <bcp14>MUST NOT</bcp14> be rejected solely because it
contains claims outside those defined in this specification.</t>

<t>Composite constraint types (<spanx style="verb">all</spanx>, <spanx style="verb">any</spanx>) are recursive.
MAX_CONSTRAINT_DEPTH is an implementation-defined finite integer
specifying the maximum nesting depth of a constraint tree. A constraint
other than <spanx style="verb">all</spanx> or <spanx style="verb">any</spanx> has depth 1; an <spanx style="verb">all</spanx> or <spanx style="verb">any</spanx> has depth one
more than its deepest clause.
Implementations <bcp14>MUST</bcp14> enforce a finite MAX_CONSTRAINT_DEPTH to prevent
resource exhaustion from pathologically deep constraint trees. A value
of 32 is <bcp14>RECOMMENDED</bcp14>. Enforcement points <bcp14>MUST</bcp14> reject any constraint tree
whose nesting depth exceeds MAX_CONSTRAINT_DEPTH.</t>

</section>
<section anchor="jws-protected-header"><name>JWS Protected Header</name>

<t>AATs are compact-serialization JWTs <xref target="RFC7519"/> signed as JWS
<xref target="RFC7515"/>. The JWS Protected Header of every AAT <bcp14>MUST</bcp14> contain:</t>

<texttable>
      <ttcol align='left'>Header Parameter</ttcol>
      <ttcol align='left'>Required</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">alg</spanx></c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Signature algorithm. <bcp14>MUST</bcp14> be on the enforcement point's allowlist (Section 9.11).</c>
      <c><spanx style="verb">typ</spanx></c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>JWT type. <bcp14>MUST</bcp14> be <spanx style="verb">aat+jwt</spanx>.</c>
</texttable>

<t>The JWS Protected Header of every PoP JWT <bcp14>MUST</bcp14> contain <spanx style="verb">alg</spanx> as above
and <bcp14>MUST</bcp14> contain <spanx style="verb">typ</spanx> set to <spanx style="verb">aat-pop+jwt</spanx>.</t>

<t>Enforcement points <bcp14>MUST</bcp14> reject an AAT whose <spanx style="verb">typ</spanx> is absent or is not
<spanx style="verb">aat+jwt</spanx>, and <bcp14>MUST</bcp14> reject a PoP JWT whose <spanx style="verb">typ</spanx> is absent or is not
<spanx style="verb">aat-pop+jwt</spanx>. Explicit typing follows <xref target="RFC8725"/> Section 3.11. It
prevents an AAT from being accepted where a PoP JWT is required, and
vice versa.</t>

<t>Additional header parameters <bcp14>MAY</bcp14> be present. The verification key for an
AAT or PoP JWT comes only from the configured trust anchors or from a
<spanx style="verb">cnf.jwk</spanx> in the chain: enforcement points <bcp14>MUST NOT</bcp14> use a key supplied
by a header parameter such as <spanx style="verb">jwk</spanx>, <spanx style="verb">jku</spanx>, <spanx style="verb">x5c</spanx>, or <spanx style="verb">x5u</spanx>; a token
carrying one is verified as if it were absent. Enforcement points <bcp14>MAY</bcp14>
use <spanx style="verb">kid</spanx> only to select among configured trust anchors. Enforcement
points <bcp14>MUST</bcp14> ignore other header parameters they do not recognize. If
<spanx style="verb">crit</spanx> is present, it <bcp14>MUST</bcp14> be processed per <xref target="RFC7515"/> Section 4.1.11:
an enforcement point <bcp14>MUST</bcp14> reject a token whose <spanx style="verb">crit</spanx> is not a non-empty
array of strings or lists a parameter the enforcement point does not
understand.</t>

<t>The JWS Payload is the serialized claims object. An enforcement point
<bcp14>MUST</bcp14> verify the signature over the JWS Signing Input exactly as
presented and <bcp14>MUST NOT</bcp14> re-serialize or canonicalize the payload before
verification. Issuers and derivers <bcp14>SHOULD</bcp14> serialize AAT payloads as
JCS-canonical JSON <xref target="RFC8785"/> so that the signing input, and therefore
<spanx style="verb">par_hash</spanx> (Section 4.6), is reproducible across implementations.</t>

</section>
<section anchor="examples"><name>Examples</name>

<section anchor="root-token"><name>Root Token</name>

<t>Protected header:</t>

<figure><sourcecode type="json"><![CDATA[
{"alg":"Ed25519","typ":"aat+jwt"}
]]></sourcecode></figure>

<t>Payload:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "jti": "01957a3f-4e23-7b01-a9d1-0050569c2e4f",
  "iss": "https://auth.example.com",
  "iat": 1741600000,
  "exp": 1741603600,
  "del_depth": 0,
  "del_max_depth": 3,
  "cnf": {
    "jwk": {
      "kty": "OKP",
      "crv": "Ed25519",
      "x": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo"
    }
  },
  "authorization_details": [
    {
      "type": "attenuating_agent_token",
      "tools": {
        "read_file": {
          "path": {
            "constraint_type": "one_of",
            "values": ["/data/q3-report.pdf", "/data/q4-report.pdf"]
          }
        },
        "search_index": {}
      }
    }
  ]
}
]]></sourcecode></figure>

</section>
<section anchor="derived-token"><name>Derived Token</name>

<t>The protected header is the same as the root token's. Payload:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "jti": "01957a41-0081-7c20-bf3a-00a0c91e1234",
  "iss": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:kPrK...",
  "iat": 1741600120,
  "exp": 1741601920,
  "del_depth": 1,
  "del_max_depth": 3,
  "par_hash": "m-4p_oLqO3pUuExBdJy1oeWhSHqkHgkSU2CFl12csjM",
  "cnf": {
    "jwk": {
      "kty": "OKP",
      "crv": "Ed25519",
      "x": "rAl9xvTDAeUADPnIWlGpFHtGg4Y8OqcQE5N4XYNdLPs"
    }
  },
  "authorization_details": [
    {
      "type": "attenuating_agent_token",
      "tools": {
        "read_file": {
          "path": {
            "constraint_type": "exact",
            "value": "/data/q3-report.pdf"
          }
        }
      }
    }
  ]
}
]]></sourcecode></figure>

<t>Note that the derived token:</t>

<t><list style="symbols">
  <t>Has <spanx style="verb">iss</spanx> set to the JWK Thumbprint URI of the root's <spanx style="verb">cnf.jwk</spanx>,
abbreviated above; the full thumbprint is
<spanx style="verb">kPrK_qmxVWaYVA9wwBF6Iuo3vVzz7TxHCTwXBygrS4k</spanx>.</t>
  <t>Carries a <spanx style="verb">par_hash</spanx> linking it to its parent, computed over the
root token with its header and payload serialized as JCS as shown
above.</t>
  <t>Has <spanx style="verb">del_depth</spanx> incremented to 1.</t>
  <t>Restricts <spanx style="verb">read_file</spanx> to a single file rather than either file
authorized by the parent.</t>
  <t>Omits <spanx style="verb">search_index</spanx>, which the parent permitted. Tool omission
is valid attenuation.</t>
  <t>Expires 1800s after its own issuance, versus the parent's 3600s
window.</t>
</list></t>

</section>
</section>
</section>
<section anchor="attenuation-invariants"><name>Attenuation Invariants</name>

<t>Every presented chain <bcp14>MUST</bcp14> satisfy the following invariants: I1
through I5 at each derivation step, and I6 for the presentation. The
verification algorithm in Section 8 enforces these invariants;
enforcement points <bcp14>MUST</bcp14> reject any chain that violates any invariant.</t>

<section anchor="capability-lattice-model-non-normative"><name>Capability Lattice Model (Non-Normative)</name>

<t>This subsection gives an informal model, a capability lattice, for
reading the normative invariants that follow. Verifiers check the
structural rules of Section 4.5, not this relation; those rules are
sound with respect to it, as Section 5.1 also requires of extension
types.</t>

<t>For a token <spanx style="verb">T</spanx>, define its capability set <spanx style="verb">C(T)</spanx> as the set of <spanx style="verb">(tool,
args)</spanx> pairs that <spanx style="verb">T</spanx> authorizes (that is, the pairs for which <spanx style="verb">T</spanx> would
permit invocation). The core security property of this specification is:</t>

<figure><artwork><![CDATA[
C(child) ⊆ C(parent)
]]></artwork></figure>

<t>Every delegation step moves down or stays at the same position in this
partial order. A derived token can only authorize a subset of what its
parent authorized. It cannot add tools, loosen argument constraints, or
extend the chain's authority in any dimension this specification
defines (Sections 3.3 and 4).</t>

<t>Argument spaces are typically infinite, so Section 4.5 defines <spanx style="verb">⊆</spanx>
structurally, and those rules alone decide validity. They are
conservative: some attenuations that are valid in the semantic sense
below, such as an <spanx style="verb">exact</spanx> under a parent <spanx style="verb">any</spanx>, are rejected.</t>

<t>A parent constraint <spanx style="verb">c_parent</spanx> semantically subsumes a derived
constraint <spanx style="verb">c_child</spanx> if every argument value that satisfies <spanx style="verb">c_child</spanx>
also satisfies <spanx style="verb">c_parent</spanx>. Section 4.5 defines the structural relation
<spanx style="verb">c_child ⊑ c_parent</spanx> that verifiers evaluate: it holds only for pairs
that are semantically subsuming, but some semantically subsuming pairs
fail it.</t>

<t>The root token's capability set is the ceiling for the entire chain:
no derived token at any depth can exceed what the root authorized.</t>

<t>Token lifetime (I3) is a mandatory attenuation dimension orthogonal to
the capability lattice. A derived token with <spanx style="verb">C(child) == C(parent)</spanx> is
still strictly more constrained if its <spanx style="verb">exp</spanx> is earlier than its
parent's. Time-to-live (TTL) bounds are enforced independently of
capability monotonicity. Both must hold for a chain to be valid.</t>

<t>Invariants I1 through I6 are the normative enforcement mechanism for
this property. I4 (Section 4.5) directly enforces <spanx style="verb">C(child) ⊆
C(parent)</spanx>. The remaining invariants enforce the conditions under which
that comparison is meaningful: that the chain is cryptographically
linked (I1, I5), that depth and time bounds are respected (I2, I3), and
that the presenter holds the key (I6).</t>

</section>
<section anchor="i1-delegation-authority"><name>I1: Delegation Authority</name>

<figure><artwork><![CDATA[
derived.iss == jwk_thumbprint_uri(parent.cnf.jwk)
]]></artwork></figure>

<t>where <spanx style="verb">jwk_thumbprint_uri</spanx> constructs the <xref target="RFC9278"/> URI from the
key's SHA-256 thumbprint. The entity that signed the derived token
<bcp14>MUST</bcp14> be the holder of the parent token. Authority flows from parent
holder to derived token issuer. This invariant establishes a
cryptographic holder-key trail: each link in the chain was signed by the
party that held the preceding token. Attributing that key to a human,
service, organization, or control plane is a deployment responsibility.</t>

</section>
<section anchor="i2-depth-monotonicity"><name>I2: Depth Monotonicity</name>

<figure><artwork><![CDATA[
derived.del_depth == parent.del_depth + 1
derived.del_depth <= parent.del_max_depth
derived.del_depth <= derived.del_max_depth
derived.del_depth <= MAX_DELEGATION_DEPTH
derived.del_max_depth <= parent.del_max_depth
]]></artwork></figure>

<t>Delegation depth increments exactly by one at each link. A presented
chain is a single linear path: it cannot skip depths or contain the same
token instance more than once. Broader delegation activity may form a
graph across multiple derived tokens and chains, but each invocation is
verified against one ordered root-to-leaf path. <spanx style="verb">del_max_depth</spanx> is an
absolute ceiling, not a remaining count. A token is terminal (its holder
cannot derive further tokens) when <spanx style="verb">del_depth == del_max_depth</spanx>. A root
token with <spanx style="verb">del_max_depth: 0</spanx> is therefore immediately terminal and
cannot produce any derived tokens.</t>

<t>The <spanx style="verb">del_max_depth</spanx> claim is an issuer-imposed bound on chain growth. It
limits resource exhaustion and bounds the number of offline trust
extensions that can occur under one root grant. Issuers use this value
to express the maximum delegation depth they are willing to authorize
for the grant. Intermediate token holders can only lower
<spanx style="verb">del_max_depth</spanx>, never raise it (I2), so the root issuer's depth bound
is enforced by chain verification across the entire chain.</t>

<t>Issuers <bcp14>SHOULD</bcp14> set <spanx style="verb">del_max_depth</spanx> to accommodate the expected
delegation topology (Appendix B.2). Once a chain reaches it, no
descendant can extend it; more depth requires a new root grant.</t>

<t>MAX_DELEGATION_DEPTH is an implementation-defined finite integer
specifying the maximum permitted delegation chain depth. Implementations
<bcp14>MUST</bcp14> enforce a finite maximum delegation depth to prevent resource
exhaustion, and <bcp14>SHOULD</bcp14> size it to their deployment topology (Appendix
B.2). So that chains verify across implementations, MAX_DELEGATION_DEPTH
<bcp14>MUST</bcp14> be at least 8, and root issuers <bcp14>SHOULD NOT</bcp14> set <spanx style="verb">del_max_depth</spanx>
above 8 unless every enforcement point that will verify the chain
accepts a larger value.</t>

<t>The <spanx style="verb">del_max_depth</spanx> claim in any token in the chain <bcp14>MUST NOT</bcp14> exceed the
implementation's MAX_DELEGATION_DEPTH.</t>

<section anchor="implementation-resource-limits"><name>Implementation Resource Limits</name>

<t>MAX_TOKEN_SIZE is an implementation-defined finite integer specifying
the maximum encoded size of a single token in bytes. Implementations
<bcp14>MUST</bcp14> enforce this limit to prevent memory exhaustion from pathologically
large tokens. A value of 65536 bytes (64 KiB) is <bcp14>RECOMMENDED</bcp14>.</t>

<t>MAX_CHAIN_SIZE is an implementation-defined finite integer specifying
the maximum total encoded size of a chain in bytes. Implementations <bcp14>MUST</bcp14>
enforce this limit. A value of 262144 bytes (256 KiB) is <bcp14>RECOMMENDED</bcp14>.</t>

</section>
</section>
<section anchor="i3-ttl-monotonicity"><name>I3: TTL Monotonicity</name>

<figure><artwork><![CDATA[
derived.exp  <= parent.exp
derived.exp  >  now
derived.exp  >  derived.iat
derived.iat  >= parent.iat
derived.iat  <= now + MAX_IAT_SKEW
derived.exp  <= derived.iat + MAX_TOKEN_LIFETIME
]]></artwork></figure>

<t>MAX_IAT_SKEW is an implementation-defined finite integer specifying the
maximum number of seconds a token's <spanx style="verb">iat</spanx> may be in the future relative
to the enforcement point's clock. Implementations <bcp14>MUST</bcp14> enforce a finite
MAX_IAT_SKEW. A value of 30 seconds is <bcp14>RECOMMENDED</bcp14>.</t>

<t>MAX_TOKEN_LIFETIME is an implementation-defined finite integer
specifying the maximum permitted duration in seconds between a token's
<spanx style="verb">iat</spanx> and <spanx style="verb">exp</spanx>. Implementations <bcp14>MUST</bcp14> enforce a finite
MAX_TOKEN_LIFETIME. A value of 90 days is <bcp14>RECOMMENDED</bcp14> as an upper bound;
deployments <bcp14>SHOULD</bcp14> use significantly shorter lifetimes in practice (see
Appendix B.5).</t>

<t>A root token satisfies the relations that do not mention <spanx style="verb">parent</spanx>,
with <spanx style="verb">root</spanx> in place of <spanx style="verb">derived</spanx>. A token that violates these relations <bcp14>MUST</bcp14> be rejected; a
derived token cannot outlive its parent. A deriver whose clock lags the parent's
issuer sets <spanx style="verb">iat</spanx> to <spanx style="verb">parent.iat</spanx> (Section 6.2, step 2).</t>

</section>
<section anchor="i4-capability-monotonicity"><name>I4: Capability Monotonicity</name>

<figure><artwork><![CDATA[
tools(derived) ⊆ tools(parent)
∀ tool ∈ tools(derived):
  constraints(derived, tool) ⊑ constraints(parent, tool)
]]></artwork></figure>

<t>A derived token <bcp14>MUST NOT</bcp14> authorize tools that the parent did not
authorize. For each tool that appears in both parent and derived token,
with both constraint maps normalized so that an empty map is
<spanx style="verb">{"*": {"constraint_type": "wildcard"}}</spanx> (Section 3.3):</t>

<t><list style="symbols">
  <t>Each argument key the derived map names <bcp14>MUST</bcp14> also be named by the
parent's map, unless the parent's map contains <spanx style="verb">"*"</spanx>. A key named only
under the parent's <spanx style="verb">"*"</spanx> is an argument the parent already permitted
with any value, so constraining it narrows.</t>
  <t>An argument the parent requires <bcp14>MUST</bcp14> remain required in the derived
map. Making an optional argument required narrows; the reverse would
admit invocations that omit an argument the parent requires.</t>
  <t>The derived map <bcp14>MAY</bcp14> omit a key other than <spanx style="verb">"*"</spanx> that the parent
names only if the parent marks it optional and the derived map does
not contain <spanx style="verb">"*"</spanx>. The omitted argument then becomes forbidden, which
narrows; if the parent requires it, every derived invocation would
lack it.</t>
  <t>The derived map <bcp14>MAY</bcp14> contain <spanx style="verb">"*"</spanx> only if the parent's map does.
Dropping <spanx style="verb">"*"</spanx> narrows; adding it would admit arguments the parent
forbids.</t>
</list></t>

<t>For each argument key named in both maps, the derived constraint <bcp14>MUST</bcp14> be
at least as restrictive as the parent's constraint.</t>

<t>These rules do not let a derived token forbid one argument while keeping
<spanx style="verb">"*"</spanx>: the argument would return under <spanx style="verb">"*"</spanx>. A deriver that needs this
drops <spanx style="verb">"*"</spanx> and names the arguments it keeps.</t>

<t>Constraint subsumption is defined per constraint type. The following
table lists every valid (parent, derived) pair of core types; each row
is a parent type, and each entry a derived type that the parent
subsumes, under the stated condition. Every other pair is invalid and
<bcp14>MUST</bcp14> be rejected, unless a registered extension constraint type
declares it (Section 5.1).</t>

<texttable>
      <ttcol align='left'>Parent</ttcol>
      <ttcol align='left'>Valid derived constraints</ttcol>
      <c><spanx style="verb">exact</spanx></c>
      <c><spanx style="verb">exact</spanx> with the same value</c>
      <c><spanx style="verb">range</spanx></c>
      <c><spanx style="verb">range</spanx> at least as tight (below); <spanx style="verb">exact</spanx> whose value is a number the parent range accepts</c>
      <c><spanx style="verb">one_of</spanx></c>
      <c><spanx style="verb">one_of</spanx> whose values are a non-empty subset of the parent's; <spanx style="verb">exact</spanx> whose value is a member of the parent's values</c>
      <c><spanx style="verb">not_one_of</spanx></c>
      <c><spanx style="verb">not_one_of</spanx> whose excluded values are a superset of the parent's</c>
      <c><spanx style="verb">contains</spanx></c>
      <c><spanx style="verb">contains</spanx> whose required elements are a superset of the parent's</c>
      <c><spanx style="verb">subset</spanx></c>
      <c><spanx style="verb">subset</spanx> whose allowed elements are a subset of the parent's</c>
      <c><spanx style="verb">all</spanx></c>
      <c><spanx style="verb">all</spanx> in which every parent clause subsumes at least one derived clause (below)</c>
      <c><spanx style="verb">any</spanx></c>
      <c><spanx style="verb">any</spanx> in which every derived clause is subsumed by at least one parent clause (below)</c>
      <c><spanx style="verb">wildcard</spanx></c>
      <c>any constraint</c>
</texttable>

<t>A derived <spanx style="verb">one_of</spanx> cannot be empty; to authorize no value, the deriver
omits the tool. A derived <spanx style="verb">not_one_of</spanx> under a parent <spanx style="verb">one_of</spanx> is
invalid: it accepts values outside the parent's set, and the parent
cannot be verified to subsume it without domain knowledge.</t>

<t>The rules for <spanx style="verb">range</spanx>, <spanx style="verb">all</spanx>, and <spanx style="verb">any</spanx> need more detail:</t>

<t><list style="symbols">
  <t><strong>range:</strong> A derived <spanx style="verb">range</spanx> constraint is valid only if its
bounds are at least as restrictive as the parent's
(derived <spanx style="verb">min &gt;= parent min</spanx>, derived <spanx style="verb">max &lt;= parent max</spanx>).
A missing bound on the parent is treated as unbounded; a
missing bound on the derived constraint is only valid if the parent
bound is also missing. When a derived bound equals the parent's, it
<bcp14>MUST NOT</bcp14> be inclusive where the parent's is exclusive; an exclusive
derived bound under an inclusive parent bound is valid, since it is
strictly tighter. A derived bound strictly inside the parent's may
have either inclusivity. These rules apply to <spanx style="verb">min</spanx> and
<spanx style="verb">min_inclusive</spanx> and to <spanx style="verb">max</spanx> and <spanx style="verb">max_inclusive</spanx> alike.</t>
  <t><strong>all:</strong> A derived <spanx style="verb">all</spanx> constraint attenuates a parent <spanx style="verb">all</spanx>
if every parent clause subsumes at least one derived clause.
Formally: for each <spanx style="verb">clause_p</spanx> in <spanx style="verb">parent.all.constraints</spanx>, there
<bcp14>MUST</bcp14> exist a <spanx style="verb">clause_d</spanx> in
<spanx style="verb">derived.all.constraints</spanx> such that <spanx style="verb">clause_d ⊑ clause_p</spanx> per this
section. A single derived clause <bcp14>MAY</bcp14> satisfy more than one parent
clause. The derived constraint <bcp14>MAY</bcp14> add additional clauses, which
only further restrict the accepted value set. If any parent clause
subsumes no derived clause, the check <bcp14>MUST</bcp14> fail. An <spanx style="verb">all</spanx>
constraint whose <spanx style="verb">constraints</spanx> array is empty is invalid in both
the parent and the derived position and <bcp14>MUST</bcp14> be rejected; an empty
conjunction would accept every value while appearing to constrain
it.  <vspace blankLines='1'/>
This matching rule is sound: if <spanx style="verb">C_d ⊑ C_p1</spanx> and <spanx style="verb">C_d ⊑ C_p2</spanx>, then
<spanx style="verb">C_d.check(v)</spanx> implies both <spanx style="verb">C_p1.check(v)</spanx> and <spanx style="verb">C_p2.check(v)</spanx>, so
<spanx style="verb">all([C_d])</spanx> is a valid attenuation of <spanx style="verb">all([C_p1, C_p2])</spanx>. Requiring a
one-to-one assignment of derived clauses to parent clauses adds
backtracking without adding soundness, and rejects valid
attenuations such as <spanx style="verb">all([wildcard, wildcard])</spanx> to
<spanx style="verb">all([exact(5)])</spanx>.  <vspace blankLines='1'/>
    <figure><artwork><![CDATA[
function check_all_subsumption(parent_clauses, derived_clauses):
  for C_p in parent_clauses:
    if not any(subsumes(C_p, C_d) for C_d in derived_clauses):
      return FAIL
  return PASS
]]></artwork></figure>
  </t>
  <t><strong>any:</strong> A derived <spanx style="verb">any</spanx> constraint attenuates a parent <spanx style="verb">any</spanx>
constraint if every clause in the derived constraint is
subsumed by at least one clause in the parent constraint,
using the per-type subsumption rules defined in this section.
Formally: for each <spanx style="verb">clause_d</spanx> in
<spanx style="verb">derived.any.constraints</spanx>, there <bcp14>MUST</bcp14> exist a <spanx style="verb">clause_p</spanx> in
<spanx style="verb">parent.any.constraints</spanx> such that <spanx style="verb">clause_d ⊑ clause_p</spanx>.
Dropping, narrowing, or splitting clauses is valid. A derived
clause that no single parent clause subsumes is invalid, even when
the parent's clauses together accept every value it accepts. An
<spanx style="verb">any</spanx> constraint whose <spanx style="verb">constraints</spanx> array is empty is invalid in
both the parent and the derived position and <bcp14>MUST</bcp14> be rejected.
Cross-type subsumption
between clauses is permitted: for example, a derived clause
of <spanx style="verb">exact("pdf")</spanx> is subsumed by a parent clause of
<spanx style="verb">one_of(["pdf", "csv"])</spanx> under the cross-type rules in this section.  <vspace blankLines='1'/>
Example: a parent token carries
<spanx style="verb">any([exact("pdf"), exact("csv"), exact("xlsx")])</spanx>. A derived
token <bcp14>MAY</bcp14> carry <spanx style="verb">any([exact("pdf"), exact("csv")])</spanx> because
each derived clause is subsumed by a parent clause. A derived
token <bcp14>MUST NOT</bcp14> carry <spanx style="verb">any([exact("pdf"), exact("docx")])</spanx>
because <spanx style="verb">exact("docx")</spanx> is not subsumed by any parent
clause.</t>
</list></t>

</section>
<section anchor="i5-cryptographic-linkage"><name>I5: Cryptographic Linkage</name>

<figure><artwork><![CDATA[
derived.par_hash ==
  base64url-nopad(SHA-256(parent token signing input))
]]></artwork></figure>

<t>Token signatures and <spanx style="verb">par_hash</spanx> serve distinct security roles. Signature
verification authenticates each token under the verification key
selected for that token: a trust anchor for a root token, or the parent
token's <spanx style="verb">cnf.jwk</spanx> for a derived token. Delegation authority (I1) then
checks that the child issuer corresponds to the parent holder key.
However, these checks do not by themselves bind the child to a unique
parent token instance when the same holder key has multiple compatible
parent tokens. The <spanx style="verb">par_hash</spanx> claim provides that token-instance binding
by committing the child to exactly one parent token's signing input.</t>

<t>Each derived token is cryptographically bound to its parent by including
the SHA-256 digest of the parent token's signing input in the
<spanx style="verb">par_hash</spanx> claim, base64url-encoded without padding (<xref target="RFC7515"/>
Appendix C). For JWT/JWS AATs, the parent token signing input is
the JWS Signing Input: the ASCII string
<spanx style="verb">BASE64URL(JWS Protected Header) || '.' || BASE64URL(JWS Payload)</spanx> as
defined in <xref target="RFC7515"/> Section 5.1.</t>

<t>This binding prevents grant-context substitution: pairing a child with
a different parent held by the same key, which would discard
restrictions only the real parent carries (Section 9.1.1).</t>

</section>
<section anchor="i6-proof-of-possession"><name>I6: Proof of Possession</name>

<figure><artwork><![CDATA[
pop_signature verifies under leaf.cnf.jwk
]]></artwork></figure>

<t>The presenter of a token chain <bcp14>MUST</bcp14> demonstrate control of the private
key corresponding to the leaf token's <spanx style="verb">cnf.jwk</spanx>. Proof of Possession is
defined in Section 7.</t>

</section>
</section>
<section anchor="extension-constraint-registry"><name>Extension Constraint Registry</name>

<t>Implementations <bcp14>MAY</bcp14> support extension constraint types beyond those
listed in Section 3.4. Every extension constraint type <bcp14>MUST</bcp14> be
registered in the IANA "Attenuating Authorization Token Constraint
Types" registry (Section 11.2), whose expert review checks that its
subsumption procedure is sound. An
implementation that evaluates an unregistered constraint type does not
conform to this specification for chains that contain it. The registry
does not require all implementations to support every registered
extension.</t>

<section anchor="attenuation-compliance-requirement"><name>Attenuation Compliance Requirement</name>

<t>The capability monotonicity invariant (I4, Section 4.5) applies to
extension constraint types without exception. An extension constraint
type <bcp14>MUST NOT</bcp14> be registered unless its registration defines all of the
following.</t>

<t><strong>A subsumption verification procedure.</strong> The registration <bcp14>MUST</bcp14> provide
a complete, formal definition of what it means for one instance of the
constraint to be at least as restrictive as another instance of the same
constraint type. This procedure <bcp14>MUST</bcp14> satisfy three properties:</t>

<t><list style="numbers" type="1">
  <t><strong>Decidable.</strong> The procedure <bcp14>MUST</bcp14> terminate in time polynomial
in the size of its inputs. If deciding containment for the
type's constraint language is more expensive than that, the
registration <bcp14>MUST</bcp14> prescribe a conservative syntactic strategy
that meets this bound and <bcp14>MUST</bcp14> formally justify that the
strategy is sound (never accepts a non-subsuming pair). The
registration <bcp14>MUST</bcp14> state the worst-case cost of both the
procedure and the type's <spanx style="verb">check</spanx> predicate (Section 9.6).</t>
  <t><strong>Sound.</strong> The procedure <bcp14>MUST NOT</bcp14> return true unless the
semantic subsumption relation holds. That is, if the procedure
returns true for (C_parent, C_child), then for all argument
values v: C_child.check(v) implies C_parent.check(v). The
procedure <bcp14>MAY</bcp14> be conservative: it <bcp14>MAY</bcp14> return false for
semantically subsuming pairs that it cannot verify, but it
<bcp14>MUST NOT</bcp14> return true for non-subsuming pairs.</t>
  <t><strong>Deterministic.</strong> Two independent implementations of the
procedure <bcp14>MUST</bcp14> produce identical results for the same inputs.
The procedure <bcp14>MUST</bcp14> be specified precisely enough to ensure
this. Ambiguity in the specification of the procedure is
grounds for rejection of the registration.</t>
</list></t>

<t>This specification does not prescribe the internal mechanism of the
subsumption verification procedure. Registrations <bcp14>MAY</bcp14> use structural
comparison of token claims, formal type-checking, proof-carrying tokens,
or any other mechanism that satisfies the three properties above. See
Appendix C for non-normative guidance on policy languages with decidable
containment algorithms.</t>

<t>A registration <bcp14>MUST NOT</bcp14> define a member named <spanx style="verb">optional</spanx>, which Section
3.3 reserves.</t>

<t><strong>Cross-type subsumption rules.</strong> The registration <bcp14>MUST</bcp14> list every
(parent type, child type) pair involving the new type and a core type
defined in Section 3.4 or a previously registered extension type that
is a valid attenuation, with its conditions. Enforcement points <bcp14>MUST</bcp14>
treat unlisted pairs as invalid. A parent <spanx style="verb">wildcard</spanx> subsumes every
type, including extension types, and need not be listed.</t>

</section>
<section anchor="enforcement-point-obligations"><name>Enforcement Point Obligations</name>

<t>When an enforcement point encounters an extension constraint type during
chain verification, it <bcp14>MUST</bcp14>:</t>

<t><list style="numbers" type="1">
  <t>Apply the type's subsumption procedure and <spanx style="verb">check</spanx> predicate as
defined by its registration. An enforcement point that does not
implement the type <bcp14>MUST</bcp14> reject the chain (fail-closed).</t>
  <t>Evaluate the subsumption relation at every chain link where
the constraint appears, as part of the I4 check. A chain link
where the parent constraint does not subsume the derived
constraint <bcp14>MUST</bcp14> be rejected.</t>
  <t>Evaluate the constraint's <spanx style="verb">check</spanx> predicate against the
presented argument value during authorization. If the predicate
returns false, the invocation <bcp14>MUST</bcp14> be denied.</t>
</list></t>

</section>
</section>
<section anchor="issuance-and-derivation"><name>Issuance and Derivation</name>

<section anchor="root-issuer-support-and-root-token-issuance"><name>Root Issuer Support and Root Token Issuance</name>

<t>The token endpoint is used only for root AAT issuance. Derived tokens
are created locally by token holders as described in Section 6.2 and do
not require token endpoint interaction. Enforcement points verify
presented chains offline as described in Section 8.</t>

<section anchor="root-issuer-discovery"><name>Root Issuer Discovery</name>

<t>A root issuer that supports AAT issuance <bcp14>SHOULD</bcp14> advertise this
capability by including <spanx style="verb">attenuating_agent_token</spanx> in the existing
<spanx style="verb">authorization_details_types_supported</spanx> authorization server metadata
parameter <xref target="RFC9396"/>, if it publishes metadata <xref target="RFC8414"/>.</t>

</section>
<section anchor="agent-token-request"><name>Agent Token Request</name>

<t>An agent requesting a root AAT <bcp14>MUST</bcp14> include a <spanx style="verb">req_cnf</spanx> parameter in its
token endpoint request (in the OAuth 2.0 sense, the agent acts as the
client for this request). This specification profiles the <spanx style="verb">req_cnf</spanx>
token request parameter defined by <xref target="RFC9201"/> for AAT root token
issuance. The parameter carries a key confirmation object whose JSON
syntax and semantics follow <xref target="RFC7800"/> Section 3.1. This document does
not define a new OAuth token endpoint key-confirmation parameter. The
value <bcp14>MUST</bcp14> be a JSON object containing a <spanx style="verb">jwk</spanx> member with the agent's
public key in JWK format <xref target="RFC7517"/>. In a form-encoded token request,
the parameter value is the JSON serialization of this object, encoded
as for <spanx style="verb">authorization_details</spanx> (<xref target="RFC9396"/> Section 3). This is the
key that the root issuer will bind into the root token's <spanx style="verb">cnf.jwk</spanx>
claim.</t>

<t>The key submitted in <spanx style="verb">req_cnf</spanx> is the AAT holder key that will be
embedded in the root token's <spanx style="verb">cnf.jwk</spanx>. This key is distinct from any
credential the client uses to authenticate to the token endpoint. Client
authentication establishes which OAuth client is requesting issuance;
<spanx style="verb">req_cnf</spanx> establishes which key will hold the issued AAT and derive or
present downstream tokens. Deployments <bcp14>MAY</bcp14> require these credentials to
be controlled by the same workload or agent.</t>

<figure><artwork><![CDATA[
POST /token HTTP/1.1
Host: as.example.com
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials
&authorization_details=%5B%7B%22type%22%3A%22attenuating_agent_
  token%22%2C...%7D%5D
&req_cnf=%7B%22jwk%22%3A%7B%22kty%22%3A%22OKP%22%2C...%7D%7D
]]></artwork></figure>

<t>The request <bcp14>MUST</bcp14> also include <spanx style="verb">authorization_details</spanx> in RAR format
<xref target="RFC9396"/> with <spanx style="verb">type</spanx> set to <spanx style="verb">attenuating_agent_token</spanx>, enumerating
the tools and argument constraints the agent is requesting authority to
invoke or delegate.</t>

</section>
<section anchor="root-token-issuance"><name>Root Token Issuance</name>

<t>Upon a valid request, the AS constructs and returns a root AAT. The AS:</t>

<t><list style="numbers" type="1">
  <t>Sets <spanx style="verb">iss</spanx> to the AS's own URI.</t>
  <t>Sets <spanx style="verb">jti</spanx> to a unique token identifier, <bcp14>RECOMMENDED</bcp14> to be
a UUIDv7 value per <xref target="RFC9562"/>.</t>
  <t>Sets <spanx style="verb">iat</spanx> to the current time and <spanx style="verb">exp</spanx> to the token's
expiry time, subject to the constraints in Section 4.4.</t>
  <t>Sets <spanx style="verb">del_depth</spanx> to 0, <spanx style="verb">del_max_depth</spanx> to the maximum
delegation depth permitted for this grant, and omits
<spanx style="verb">par_hash</spanx>.</t>
  <t>Sets <spanx style="verb">cnf.jwk</spanx> to the public key submitted in the agent's
<spanx style="verb">req_cnf</spanx> request parameter. The root issuer <bcp14>MUST</bcp14> validate that
the submitted key is well-formed and is a public key. The root
issuer <bcp14>MUST</bcp14> verify that the agent possesses the corresponding
private key. The mechanism for this proof is deployment-specific,
for example a signature by the <spanx style="verb">req_cnf</spanx> key over a challenge the
root issuer supplies.</t>
  <t>For each tool identifier in the requested <spanx style="verb">authorization_details</spanx>,
verifies that the tool is recognized by the root issuer and that the
requester is authorized to receive authority for it. The mechanism
for mapping requester identity to tool authority is
deployment-specific and outside the scope of this specification.</t>
  <t>Sets <spanx style="verb">authorization_details</spanx> to the capability claims granted. The
granted claims <bcp14>MUST</bcp14> attenuate the requested claims under the rules
of Section 4.5, treating the request as the parent, and <bcp14>MUST NOT</bcp14>
include a tool that failed verification in step 6. If no requested
tool can be granted, the root issuer <bcp14>MUST</bcp14> reject the request with
the <spanx style="verb">invalid_authorization_details</spanx> error (<xref target="RFC9396"/> Section 5).</t>
  <t>Signs the token with the AS's own private key, using the JWS
Protected Header defined in Section 3.5.</t>
</list></t>

<t>The AS returns the token in a standard OAuth 2.0 token endpoint response
(<xref target="RFC6749"/> Section 5.1) with the following field values:</t>

<figure><artwork><![CDATA[
{
  "access_token": "<compact-serialized AAT JWT>",
  "token_type": "aat",
  "expires_in": <seconds until exp>,
  "authorization_details": [<the granted entries>]
}
]]></artwork></figure>

<t>As <xref target="RFC9396"/> Section 7 requires, the response carries the granted
<spanx style="verb">authorization_details</spanx>, which equal those in the token.</t>

<t>The <spanx style="verb">token_type</spanx> value <spanx style="verb">"aat"</spanx> is registered in Section 11.3. This
specification uses the token endpoint so that existing OAuth 2.0
deployments can issue root tokens; other issuance profiles are out of
scope. Clients <bcp14>MUST NOT</bcp14> treat the returned token as a bearer token: its
only valid use is as the root of an AAT delegation chain presented to
an enforcement point (Section 8). The AS does not store or track
derived tokens, which holders create without contacting it.</t>

</section>
</section>
<section anchor="token-derivation"><name>Token Derivation</name>

<t>A holder of any AAT whose <spanx style="verb">del_depth</spanx> is strictly less than
<spanx style="verb">del_max_depth</spanx> <bcp14>MAY</bcp14> derive a child token as follows.</t>

<t><list style="numbers" type="1">
  <t>Set <spanx style="verb">jti</spanx> to a fresh unique token identifier, <bcp14>RECOMMENDED</bcp14> to
be a UUIDv7 value per <xref target="RFC9562"/>.</t>
  <t>Set <spanx style="verb">iat</spanx> to the current time, but not earlier than <spanx style="verb">parent.iat</spanx>.
Set <spanx style="verb">exp</spanx> to any value &lt;= <spanx style="verb">parent.exp</spanx>, subject to the
constraints in Section 4.4 (see Appendix B.5 for guidance).</t>
  <t>Select the set of tools to authorize. This set <bcp14>MUST</bcp14> be a
subset of the tools authorized by the parent token.</t>
  <t>For each tool, construct a constraint map whose keys satisfy
the key rules of Section 4.5 relative to the parent's map, with
each constraint at least as restrictive as the parent's
corresponding constraint (or the parent's <spanx style="verb">"*"</spanx> constraint, for a
key the parent does not name).</t>
  <t>Set <spanx style="verb">authorization_details</spanx> to an array containing exactly one
<spanx style="verb">attenuating_agent_token</spanx> entry whose <spanx style="verb">tools</spanx> member contains the
tools and constraint maps selected in steps 3 and 4.</t>
  <t>Set <spanx style="verb">del_depth</spanx> to <spanx style="verb">parent.del_depth + 1</spanx>.</t>
  <t>Set <spanx style="verb">del_max_depth</spanx> to any integer value greater than or equal
to <spanx style="verb">child.del_depth</spanx> and less than or equal to
<spanx style="verb">parent.del_max_depth</spanx>. Setting <spanx style="verb">del_max_depth</spanx> equal to
<spanx style="verb">child.del_depth</spanx> produces a terminal token that cannot be
further delegated; higher values permit further delegation up
to the parent's ceiling. Both bounds are inclusive; the upper
bound enforces I2.</t>
  <t>Set <spanx style="verb">par_hash</spanx> as defined in Section 4.6.</t>
  <t>Set <spanx style="verb">cnf.jwk</spanx> to the intended holder's public key. The
value <bcp14>MUST</bcp14> be a public key; private key material <bcp14>MUST NOT</bcp14>
appear in this field. When the child is delivered across a
process or trust boundary, <spanx style="verb">cnf.jwk</spanx> <bcp14>MUST NOT</bcp14> be the parent's
key: a recipient holding the parent's key could also present
the parent's token (Section 9.1.1).</t>
  <t>Set <spanx style="verb">aud</spanx> if the holder knows where the token will be presented
   (Section 3.2). A parent's <spanx style="verb">aud</spanx> need not be copied.</t>
  <t>Set <spanx style="verb">iss</spanx> as defined in Section 3.2.</t>
  <t>Sign the token with the private key corresponding to the
parent token's <spanx style="verb">cnf.jwk</spanx>, using the JWS Protected Header
defined in Section 3.5.</t>
</list></t>

<t>Derivation is performed locally by the token holder. No authorization
server communication is required.</t>

<t>A derivation in which none of the authority dimensions is strictly
narrowed (the tool set is identical, all constraints are unchanged,
<spanx style="verb">del_max_depth</spanx> is unchanged, and <spanx style="verb">exp</spanx> is unchanged) is technically
valid by the invariants. Such a child has the same capability and
lifetime authority as its parent while consuming one delegation depth.
It does not improve least privilege, but deployments may use it for
holder-key handoff. Enforcement points <bcp14>MAY</bcp14> log same-scope derivations as
anomalous according to deployment policy.</t>

</section>
</section>
<section anchor="proof-of-possession"><name>Proof of Possession</name>

<section anchor="rationale"><name>Rationale</name>

<t>A token without proof of possession can be replayed by any party that
obtains a copy of the token. In agent systems, tokens flow through
model context, tool invocation results, and inter-agent message
channels, all of which are observable by other components. PoP
binds a specific invocation to the private key of the leaf
token's holder. It is also what makes attenuation hold: every token
in a chain names a holder key, so a party that obtains the bytes of
a broader ancestor token cannot invoke with it (Section 9.1.1).</t>

</section>
<section anchor="pop-jwt-structure"><name>PoP JWT Structure</name>

<t>The holder of the leaf token produces a PoP JWT for each tool
invocation. The PoP JWT is a compact serialization signed with the
holder's private key. It <bcp14>MUST</bcp14> contain the required claims listed below.</t>

<texttable>
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Required</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">jti</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Fresh random identifier. The holder <bcp14>MUST NOT</bcp14> reuse a <spanx style="verb">jti</spanx> value across PoP JWTs it produces. When a UUID is used, it <bcp14>MUST</bcp14> be encoded as a lowercase hyphenated string per <xref target="RFC9562"/>. Whether an enforcement point can detect reuse depends on whether stateful <spanx style="verb">jti</spanx> tracking is deployed (see Section 9.5).</c>
      <c><spanx style="verb">iat</spanx></c>
      <c>NumericDate</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Time of PoP creation. <bcp14>MUST</bcp14> reflect the actual time of creation. Enforcement points validate this against a clock tolerance window (Section 9.9).</c>
      <c><spanx style="verb">aat_id</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>The <spanx style="verb">jti</spanx> of the leaf token being presented.</c>
      <c><spanx style="verb">aat_hash</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Base64url-encoded SHA-256 digest of the leaf token's signing input, computed as for <spanx style="verb">par_hash</spanx> (Section 4.6). Binds the proof to the exact leaf token presented, following the DPoP <spanx style="verb">ath</spanx> claim (<xref target="RFC9449"/> Section 4.2).</c>
      <c><spanx style="verb">aat_tool</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>The tool identifier being invoked. <bcp14>MUST</bcp14> exactly match a key in the <spanx style="verb">tools</spanx> map of the leaf token's <spanx style="verb">authorization_details</spanx>. Tool identifier matching follows the exact-string comparison rules in Section 3.3.1.</c>
      <c><spanx style="verb">aat_aud</spanx></c>
      <c>string</c>
      <c><bcp14>OPTIONAL</bcp14></c>
      <c>Presentation audience: identifies the party to which the holder presents this PoP JWT, with the semantics of the JWT <spanx style="verb">aud</spanx> claim (<xref target="RFC7519"/> Section 4.1.3) and the target binding of DPoP <spanx style="verb">htu</spanx> (<xref target="RFC9449"/>). It names the next hop, never a resource behind it that the holder cannot see (Section 9.5). When present, an enforcement point <bcp14>MUST</bcp14> reject a PoP JWT whose <spanx style="verb">aat_aud</spanx> does not identify itself. An enforcement point <bcp14>MAY</bcp14> require the claim.</c>
      <c><spanx style="verb">nonce</spanx></c>
      <c>string</c>
      <c><bcp14>OPTIONAL</bcp14></c>
      <c>A value previously supplied by this enforcement point, following the server-provided nonce pattern of DPoP (<xref target="RFC9449"/> Section 9). An enforcement point that requires a nonce <bcp14>MUST</bcp14> reject a PoP JWT that omits it or carries a value the enforcement point did not issue or no longer accepts. How the nonce reaches the holder is transport-specific and out of scope. The claim name is the registered <spanx style="verb">nonce</spanx> claim (<xref target="OIDC.Core"/>, as updated by <xref target="RFC9449"/> Section 12.7.1).</c>
      <c><spanx style="verb">hta</spanx></c>
      <c>object</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>The tool arguments for this invocation. Keys are argument names; values are argument values.</c>
</texttable>

<t>The PoP JWT <bcp14>MUST</bcp14> be signed using the private key corresponding to the
leaf token's <spanx style="verb">cnf.jwk</spanx>. The enforcement point verifies the PoP JWT
signature against the leaf token's <spanx style="verb">cnf.jwk</spanx>.</t>

<t>Protected header:</t>

<figure><sourcecode type="json"><![CDATA[
{"alg":"Ed25519","typ":"aat-pop+jwt"}
]]></sourcecode></figure>

<t>Payload:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "jti": "c980f2a1-4a37-4e88-bb3c-9defd37c1a45",
  "iat": 1741600300,
  "aat_id": "01957a41-0081-7c20-bf3a-00a0c91e1234",
  "aat_hash": "sha256_base64url_of_leaf_token_signing_input",
  "aat_tool": "read_file",
  "aat_aud": "https://tools.example.com",
  "hta": { "path": "/data/q3-report.pdf" }
}
]]></sourcecode></figure>

</section>
<section anchor="verification"><name>Verification</name>

<t>PoP verification is only meaningful against a leaf token whose chain has
been fully verified per Section 8. An enforcement point <bcp14>MUST</bcp14> complete
chain verification (Section 8, steps 1-5) before evaluating the PoP JWT.
A valid PoP JWT against an unverified or invalid chain <bcp14>MUST NOT</bcp14> result
in authorization.</t>

<t>The enforcement point verifies the PoP JWT as specified in Section 8,
step 7; any failed check denies the invocation.</t>

<t>The <spanx style="verb">iat</spanx> check is stateless and bounds replay to the tolerance window:
a captured PoP JWT remains usable until its <spanx style="verb">iat</spanx> leaves the window. It
<bcp14>MUST NOT</bcp14> be the only replay control for tool invocations that have side
effects or are not idempotent. For those, the enforcement point <bcp14>MUST</bcp14>
track accepted <spanx style="verb">jti</spanx> values, retaining each one until its <spanx style="verb">iat</spanx>
leaves the window (Section 8, step 7i). The enforcement point
determines which of its tools have side effects; tokens do not carry
this. Replicas of one enforcement point, such as instances behind a
load balancer, <bcp14>MUST</bcp14> share <spanx style="verb">jti</spanx> state.</t>

<t>Accepting a PoP JWT at most once across a deployment additionally
requires that no other enforcement point accept the same proof: either
by sharing <spanx style="verb">jti</spanx> state or by binding the proof to one enforcement point
through chain audience, <spanx style="verb">aat_aud</spanx>, or a nonce (Section 9.5).</t>

</section>
<section anchor="presentation"><name>Presentation</name>

<t>A presentation is what a holder sends to an enforcement point for one
tool invocation: the delegation chain and the PoP JWT for that
invocation. This specification defines what a presentation contains, not
how it is carried; a binding to a particular protocol defines where the
presentation travels and how the enforcement point obtains the
invocation's tool identifier and arguments (Section 1).</t>

<t>When a binding carries a presentation as JSON, it uses an object with
these members:</t>

<texttable>
      <ttcol align='left'>Member</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">aat_chain</spanx></c>
      <c>array of strings</c>
      <c>The chain in root-to-leaf order, each token in JWS Compact Serialization.</c>
      <c><spanx style="verb">aat_pop</spanx></c>
      <c>string</c>
      <c>The PoP JWT in JWS Compact Serialization.</c>
</texttable>

<figure><sourcecode type="json"><![CDATA[
{
  "aat_chain": [
    "eyJhbGciOiJFZDI1NTE5Ii...",
    "eyJhbGciOiJFZDI1NTE5Ii..."
  ],
  "aat_pop": "eyJhbGciOiJFZDI1NTE5Ii..."
}
]]></sourcecode></figure>

<t>The two members are the <spanx style="verb">chain</spanx> and <spanx style="verb">pop_jwt</spanx> inputs of the Section 8
algorithm. A binding <bcp14>MUST</bcp14> preserve the order of the chain and <bcp14>MUST NOT</bcp14>
separate a PoP JWT from the chain it was produced for. Enforcement
points <bcp14>MUST</bcp14> ignore members they do not recognize. A chain of several
tokens can exceed the header size limits of common HTTP intermediaries
(Appendix B.3), so bindings <bcp14>SHOULD</bcp14> carry the presentation in a message
body or in protocol metadata rather than in an HTTP header field.</t>

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

<t>The enforcement point receives a chain of tokens ordered from root to
leaf and <bcp14>MUST</bcp14> execute the following algorithm. Any failure <bcp14>MUST</bcp14> result
in denial.</t>

<t>Verification requires only the token chain and the configured trust
anchors; no network calls or authorization server availability are
required. An enforcement point that tracks PoP <spanx style="verb">jti</spanx> values (Section
7.3) or issues nonces (step 7h) maintains that state outside the
inputs of this algorithm.</t>

<figure><artwork><![CDATA[
Inputs:
  chain:         ordered array of signed JWTs, [root, ..., leaf]
                 (aat_chain in a presentation, Section 7.4)
  trust_anchors: set of (issuer, public key) pairs trusted as
                 root issuers
  tool:          the tool being invoked
  args:          the arguments being passed to the tool
  pop_jwt:       the PoP JWT for this invocation
                 (aat_pop in a presentation, Section 7.4)

Algorithm:

1. If chain is empty, DENY.

2. Verify chain size limits:
   a. Verify the encoded size of each token does not exceed
      MAX_TOKEN_SIZE. If any token exceeds this limit, DENY.
   b. Verify the total encoded size of the chain does not exceed
      MAX_CHAIN_SIZE. If the chain exceeds this limit, DENY.
   c. For each token, decode the base64url payload segment and
      extract only the top-level `jti` member using minimal JSON
      parsing.
      If a string-valued `jti` field cannot be extracted, DENY.
      Collect all extracted `jti` values; if any value appears
      more than once in the presented chain, DENY (token-instance
      cycle detection). The extracted `jti` values MUST be treated
      as untrusted until each token's signature is verified.

3. Verify root token:
   a. Verify the root token's JWS alg header is on the
      implementation's permitted algorithm allowlist and is
      consistent with the verifying trust anchor key's kty and
      crv parameters. Verify the JWS typ header equals
      "aat+jwt". If alg is "none", not on the allowlist,
      inconsistent with the key type, or typ is absent or not
      "aat+jwt", DENY. If a crit header is not a non-empty
      array of strings, or lists a parameter this enforcement
      point does not understand, DENY.               (Sec 3.5)
   b. Verify the root token signature against the public key
      of a trust anchor. After signature verification succeeds,
      parse the root token's claims, rejecting any JSON object
      with duplicate member names, and verify root.iat and
      root.exp are present and are NumericDate values (Section
      3.2). If not, DENY. All subsequent root checks (3c through
      3n) operate on parsed claims.
   c. Verify root.del_depth is an integer (Section 3.2) equal to
      0.
   d. Verify root.par_hash is absent.
   e. Verify root.exp > now.
   f. Verify root.iat <= now + MAX_IAT_SKEW.
   g. Verify root.exp > root.iat.
   h. Verify root.exp <= root.iat + MAX_TOKEN_LIFETIME.
   i. Verify root.del_max_depth is a non-negative integer
      (Section 3.2) not exceeding MAX_DELEGATION_DEPTH. If absent
      or invalid, DENY.
   j. Verify root.jti is present and is a non-empty string.
      If absent or not a string, DENY.
   k. Verify root.iss is present, is a URI, and equals the
      issuer of the trust anchor whose key verified the
      signature in step 3b (RFC 8725, Section 3.8). If
      absent, not a URI-formatted string, or not equal, DENY.
   l. Verify root.cnf is present, contains a `jwk` member, and
      that the `jwk` encodes a public key (MUST NOT contain a
      private key parameter such as `d` for EC/OKP keys or
      `p`, `q` for RSA keys). If absent or invalid, DENY.
   m. Verify root.authorization_details is present and is a
      non-empty array containing exactly one entry with type
      "attenuating_agent_token", and that the entry's `tools`
      member is present and is a JSON object whose values are
      JSON objects. If not, DENY.
   n. For each constraint in each constraint map in the root
      token's attenuating_agent_token entry, verify the
      constraint tree depth does not exceed MAX_CONSTRAINT_DEPTH,
      that every constraint in it is of a type this enforcement
      point implements (Sections 3.4 and 5.2) and is well-formed
      (Section 3.4), and that no `all` or `any` constraint has an
      empty `constraints` array. If any check fails, DENY.

4. For each adjacent pair (parent, child) in chain:
   a. Verify child token's JWS alg header is on the
      implementation's permitted algorithm allowlist and is
      consistent with parent.cnf.jwk's kty and crv parameters.
      Verify the JWS typ header equals "aat+jwt". If alg is
      "none", not on the allowlist, inconsistent with the key
      type, or typ is absent or not "aat+jwt", DENY. If a crit
      header is not a non-empty array of strings, or lists a
      parameter this enforcement point does not understand,
      DENY.                                          (Sec 3.5)
   b. Verify child signature under the key in parent.cnf.jwk. (I1)
      After signature verification succeeds, parse the child
      token's claims, rejecting any JSON object with duplicate
      member names, and verify required claims are present:
      b1. Verify child.jti is present and is a non-empty
          string. If absent or not a string, DENY.
      b2. Verify child.cnf is present, contains a `jwk`
          member, and that the `jwk` encodes a public key
          (MUST NOT contain a private key parameter such as
          `d` for EC/OKP keys or `p`, `q` for RSA keys). If
          absent or invalid, DENY.
      b3. Verify child.authorization_details is present and
          is an array. If absent or not an array, DENY.
      b4. Verify child.del_depth and child.del_max_depth are
          both present and are non-negative integers
          (Section 3.2). If absent or not integers, DENY.
      b5. Verify child.iss and child.par_hash are present and are
          strings, and child.iat and child.exp are present and are
          NumericDate values (Section 3.2). If not, DENY.
   c. Verify child.iss equals jwk_thumbprint_uri(parent.cnf.jwk). (I1)
   d. Verify child.del_depth == parent.del_depth + 1.    (I2)
   e. Verify child.del_depth <= parent.del_max_depth.    (I2)
   f. Verify child.del_depth <= MAX_DELEGATION_DEPTH.    (I2)
   g. Verify child.del_max_depth <= parent.del_max_depth. (I2)
   h. Verify child.exp <= parent.exp.                    (I3)
   i. Verify child.exp > now.                            (I3)
   j. Verify child.iat >= parent.iat.                    (I3)
   k. Verify child.iat <= now + MAX_IAT_SKEW.            (I3)
   l. Verify child.exp > child.iat.                      (I3)
   m. Verify child.del_depth <= child.del_max_depth.     (I2)
   n. Verify child.authorization_details contains exactly
      one entry with type "attenuating_agent_token", and that
      the entry's `tools` member is present and is a JSON
      object whose values are JSON objects. If not, DENY. For the
      remaining checks in this step, define child_aat and
      parent_aat as the child's and the parent's
      "attenuating_agent_token" entry. Entries of other types are
      ignored.
   o. For each constraint in each constraint map in child_aat.tools,
      verify the constraint tree depth does not exceed
      MAX_CONSTRAINT_DEPTH, that every constraint in it is of a
      type this enforcement point implements (Sections 3.4 and 5.2)
      and is well-formed (Section 3.4),
      and that no `all` or `any` constraint has an empty
      `constraints` array. If any check fails, DENY.
   p. Verify capability monotonicity (Section 4.5):   (I4)
      p1. Verify every tool in child_aat.tools
          is also present in parent_aat.tools.
          If any child tool is absent from the parent, DENY.
      p2. For each tool present in both parent_aat.tools and
          child_aat.tools, normalize both constraint maps (Section
          3.3) and verify the key rules of Section 4.5: every key
          the child names is named by the parent unless the parent
          contains `"*"`; every key other than `"*"` that the parent
          names and the child omits is optional in the parent, and
          the child then does not contain `"*"`; and the child
          contains `"*"` only if the parent does. If any rule fails,
          DENY.
      p3. For each argument key named in both maps, verify that
          the child's constraint is required if the parent's is.
          If not, DENY.
      p4. For each argument key named in the child's map, verify
          that the parent's constraint for that key, or the
          parent's `"*"` constraint if the parent does not name it,
          subsumes the child's per the per-type rules in Section
          4.5, ignoring `optional`. If any child constraint does
          not attenuate its parent constraint, DENY.
   q. Verify child.par_hash equals base64url-nopad(      (I5)
      SHA-256(parent token signing input)), where
      base64url-nopad denotes base64url encoding without
      padding as described in JWS Appendix C. For JWT/JWS AATs,
      the parent token signing input is the JWS Signing Input.

5. (Defense in depth) Verify len(chain) equals
   leaf.del_depth + 1. A mismatch indicates a malformed
   or incorrectly assembled chain.

6. Verify leaf token:
   a. Verify leaf.authorization_details contains exactly one
      entry with type "attenuating_agent_token". If zero or
      more than one such entry is present, DENY.
      Define leaf_aat as that entry. Entries of other types in
      `authorization_details` are ignored by this algorithm.
   b. Verify tool is present in leaf_aat.tools, and that every
      number in args, as written in the invocation, is admissible
      (Section 3.4). If any JSON object in args, as written in the
      invocation, has duplicate member names, DENY. Let M be the
      tool's constraint map, normalized (Section 3.3). For each
      argument in args: if M names it, verify its value satisfies
      that constraint; otherwise, if M contains `"*"`, verify the
      value satisfies M's `"*"` constraint; otherwise DENY
      (closed-world mode). For each argument M names that is
      required, if it is absent from args, DENY. If any constraint
      check fails, DENY.
   c. For each token in chain that carries an `aud` claim, verify
      that the claim is a string or an array of strings and that
      at least one of its values identifies this enforcement point
      (RFC 7519 Section 4.1.3). If any such token fails either
      check, DENY. If this enforcement point requires chain audience
      restriction (Sec 9.5) and no token in chain carries `aud`,
      DENY.

7. Verify PoP JWT:
   a. Verify the PoP JWT's JWS alg header is on the
      implementation's permitted algorithm allowlist and is
      consistent with leaf.cnf.jwk's kty and crv parameters.
      Verify the JWS typ header equals "aat-pop+jwt". If alg
      is "none", not on the allowlist, inconsistent with the
      key type, or typ is absent or not "aat-pop+jwt", DENY.
      If a crit header is not a non-empty array of strings, or
      lists a parameter this enforcement point does not
      understand, DENY.                              (Sec 3.5)
   b. Verify pop_jwt signature under leaf.cnf.jwk. After
      signature verification succeeds, parse the PoP JWT claims,
      rejecting any JSON object with duplicate member names. (I6)
   c. Verify pop_jwt.jti, pop_jwt.aat_id, pop_jwt.aat_hash, and
      pop_jwt.aat_tool are present and are non-empty strings,
      pop_jwt.iat is a NumericDate value (Section 3.2), and
      pop_jwt.hta is
      present and is a JSON object; then verify pop_jwt.aat_id ==
      leaf.jti and pop_jwt.aat_hash equals
      base64url-nopad(SHA-256(leaf token signing input)). If not,
      DENY.
   d. If pop_jwt.aat_aud is present, verify it identifies this
      enforcement point. If it does not, DENY. If it is absent
      and this enforcement point requires PoP audience binding
      (Sec 9.5), DENY.
   e. Verify pop_jwt.aat_tool equals tool using the exact-string
      matching rules in Section 3.3.1.
   f. Verify that every number in pop_jwt.hta, as written in the
      PoP JWT, is admissible (Section 3.4), and that pop_jwt.hta,
      when JCS-canonicalized, equals the JCS-canonical form of the
      args map for this invocation. If either check fails, DENY.
   g. Verify pop_jwt.iat is within the clock tolerance
      window (Section 9.9). If outside the window, DENY.
   h. If this enforcement point requires a nonce (Sec 9.5),
      verify pop_jwt.nonce is present and is a value this
      enforcement point issued and still accepts. If absent,
      unknown, or expired, DENY.
   i. If this enforcement point tracks PoP `jti` values for the
      invoked tool (Section 7.3), verify pop_jwt.jti is not among
      the jti values it has accepted from PoP JWTs whose iat is
      still within the tolerance window. If it is, DENY. Otherwise
      record pop_jwt.jti, retaining it until pop_jwt.iat leaves
      the window. This check-and-record MUST be atomic across
      replicas sharing the enforcement point's identity, and occurs
      only after every other authorization check passes.

8. PERMIT.
]]></artwork></figure>

<t>Notes on the algorithm:</t>

<t><list style="symbols">
  <t>For a single-token chain (root = leaf), step 4 does not run; steps 3,
5, 6, and 7 carry the checks, and steps 3b, 3c, and 3i-3m ensure
required claims are present before later steps use them.</t>
  <t>Two requirements hold by induction and need no step of their own:
every <spanx style="verb">del_max_depth</spanx> is at most MAX_DELEGATION_DEPTH (steps 3i and
4g), and every <spanx style="verb">exp</spanx> is at most its token's <spanx style="verb">iat</spanx> plus
MAX_TOKEN_LIFETIME (steps 3h, 4h, and 4j). Implementations <bcp14>MAY</bcp14> check
them explicitly.</t>
  <t>The lowercase form of UUID <spanx style="verb">jti</spanx> values (Section 3.2) binds producers
and has no verification step.</t>
  <t>Step 2c detects a token instance presented twice. The same holder key
or actor may still appear more than once, through distinct tokens.</t>
</list></t>

<t>Every step denies on failure, so the verdict does not depend on the
order of steps 6 and 7; step 7i, which records state, still runs after
every other check. Enforcement points <bcp14>SHOULD</bcp14> verify the PoP
signature (steps 7a and 7b) before evaluating argument constraints
(step 6b), so that a presenter who does not hold the leaf key cannot
trigger constraint evaluation.</t>

<t>Enforcement points <bcp14>MUST</bcp14> verify the JWS signature of each token before
deserializing its payload claims into application-layer data structures.
Signature verification operates on the raw encoded header and payload
bytes (the JWS Signing Input) and does not require claim parsing. Full
claim parsing <bcp14>MUST NOT</bcp14> occur until after signature verification succeeds
for that token. This ordering prevents parser-based denial-of-service
attacks on maliciously crafted payloads. The sole exception is step 2c:
extracting only the <spanx style="verb">jti</spanx> string field for cycle detection prior to
signature verification is permitted, provided the implementation treats
the extracted value as untrusted until the corresponding signature is
verified. Steps 3b, 4b, 6b, and 7b reject duplicate JSON member names
in claims and in arguments, because parsers differ in which duplicate
they keep (<xref target="RFC8259"/>, Section 4).</t>

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

<section anchor="threat-model"><name>Threat Model</name>

<t>This section characterizes the threats that AATs mitigate and the
threats that are outside the scope of this mechanism. Deployments can
use this characterization to identify the complementary controls their
threat environment requires.</t>

<section anchor="threats-mitigated"><name>Threats Mitigated</name>

<t><strong>Prompt injection leading to unauthorized tool invocation.</strong> An
attacker who injects instructions into an agent's input cannot cause the
agent to invoke tools outside the scope encoded in its token. The
enforcement point rejects any invocation of an unauthorized tool
regardless of the agent's stated rationale. This holds only while the
holder private key is out of the model's reach: an agent that can read
or exfiltrate its key can act with the full scope of every token bound
to it.</t>

<t><strong>Hallucinated tool invocations with out-of-scope arguments.</strong> Even
when an agent invokes an authorized tool, argument constraints in the
leaf token restrict the argument values the enforcement point will
accept. An agent that hallucinates an argument value outside the
authorized range is denied at the enforcement point before the tool
executes.</t>

<t><strong>Confused deputy attacks.</strong> In agentic systems, the designation a
confused deputy acts on (Section 1) can come from an invoking principal,
prompt injection, tool output, or model error. AATs avoid relying on
standing authority: an agent acts under a token presented for the
current invocation. When the invoker derives that token to designate the
task's resource, designation and authority travel together, and the
agent cannot be steered outside the authority carried by the token. A
token authorizing more than one resource can still be steered within its
scope, so the holder deriving a leaf token <bcp14>SHOULD</bcp14> scope it as narrowly
as the task permits. How a constraint value maps to the resource the
tool acts on is defined by the tool contract: an AAT authorizes the
presented invocation, and the tool remains responsible for resolving
it to the correct resource.</t>

<t><strong>Privilege escalation and compromised sub-agents.</strong> Authority can only
narrow at each delegation step (I4). A compromised or misbehaving
sub-agent is bounded by the scope of the token it holds: it cannot
invoke tools outside that scope, and any token it derives with broader
scope fails chain verification.</t>

<t><strong>Replay of a parent or intermediate token.</strong> Derivation is additive:
a parent token remains valid after a child is derived from it, and an
orchestrator commonly derives several narrower tokens while retaining
its own. Every AAT in a chain, not only the leaf, carries a <spanx style="verb">cnf.jwk</spanx>
holder key, and an invocation is authorized only when the presenter
proves possession of the leaf token's key (I6, Section 7). A
sub-agent that obtains the bytes of its parent's token, or of the
root token, therefore cannot invoke with that token's authority and
cannot present it as the leaf of a chain: doing either requires the
parent holder's private key, which this specification assumes is never
shared across a delegation boundary (Section 9.4).</t>

<t><strong>Grant-context substitution.</strong> The <spanx style="verb">par_hash</spanx> claim (I5) binds each
derived token to the specific bytes of its parent token. Suppose a
holder key holds two parent tokens, <spanx style="verb">A</spanx> and <spanx style="verb">B</spanx>, issued for different
tasks but authorizing compatible capabilities. The holder derives child
token <spanx style="verb">C</spanx> from <spanx style="verb">A</spanx>. Without <spanx style="verb">par_hash</spanx>, a presenter could assemble the
chain <spanx style="verb">(B, C)</spanx>. The link may satisfy delegation authority, depth,
lifetime, and capability monotonicity: <spanx style="verb">C</spanx> is signed by the key named in
<spanx style="verb">B.cnf.jwk</spanx>, has the expected depth, does not outlive <spanx style="verb">B</spanx>, and
authorizes no capability outside <spanx style="verb">B</spanx>. However, the chain has been
re-associated with task <spanx style="verb">B</spanx> rather than task <spanx style="verb">A</spanx>, and any restriction
only <spanx style="verb">A</spanx> carries, such as an <spanx style="verb">aud</spanx>, no longer applies. The <spanx style="verb">par_hash</spanx>
check rejects this because <spanx style="verb">C</spanx> commits to the signing input of <spanx style="verb">A</spanx>, not
<spanx style="verb">B</spanx>.</t>

<t><strong>PoP JWT replay.</strong> For tool invocations with side effects, stateful
<spanx style="verb">jti</spanx> tracking at the enforcement point prevents PoP JWT replay
(Section 7.3); Section 9.5 covers replay across enforcement points.</t>

</section>
<section anchor="threats-not-mitigated"><name>Threats Not Mitigated</name>

<t><strong>Malicious or compromised root issuer.</strong> A root issuer that mints
tokens with overly broad scopes, or whose key is compromised,
undermines the authorization guarantees of every chain it anchors, and
AATs provide no mechanism to detect or constrain it. Root issuer
accountability is a deployment concern; key compromise and rotation are
discussed in Section 9.3.</t>

<t><strong>Compromised enforcement point.</strong> An enforcement point that skips chain
verification, ignores constraint evaluation, or accepts forged tokens
provides no security guarantee regardless of the token format. AATs
assume enforcement points are honest and implement the verification
algorithm in Section 8 correctly. Enforcement point integrity is a
deployment concern.</t>

<t><strong>Actions within authorized argument constraints.</strong> AATs restrict which
tools an agent may invoke and what argument values are permitted. They
do not restrict which authorized invocations an agent chooses to make,
in what order, or how many times. An agent that makes excessive or
unintended use of its authorized tools within the bounds of its token is
not detectable at the enforcement point. Rate limiting, audit logging,
and behavioral monitoring are complementary controls for this threat.
The constraint vocabulary cannot express them, because constraints apply
to argument values, not to sequences of invocations; a profile that
defines invocation-level controls needs its own attenuation rules and
enforcement state, as a profile defining approval gates would.</t>

<t><strong>Compromised holder key.</strong> Tokens bound to a stolen holder key are
usable at their full scope until they expire or are revoked; short
lifetimes bound the window (Section 9.4).</t>

<t><strong>Data exfiltration through authorized invocations.</strong> An agent that can
read sensitive data and also holds a token for a tool that sends data
outward can leak that data in argument values the constraints permit,
for example in the body of a message to an allowed recipient.
Constraints can narrow where data goes, such as to exact recipients or
hosts, but not what a permitted value encodes. Deployments that combine
access to sensitive data with an outward channel need controls beyond
AATs.</t>

</section>
</section>
<section anchor="attenuation-as-the-security-invariant"><name>Attenuation as the Security Invariant</name>

<t>The capability-containment guarantee of this specification rests on the
enforcement of the capability monotonicity invariant (I4). An
enforcement point that fails to check I4, or that checks it incorrectly,
provides no blast radius containment. Implementers should test I4
enforcement against every (parent type, child type) pair in Section 4.5,
including the pairs that enforcement points <bcp14>MUST</bcp14> reject.</t>

<t>The remaining invariants (I1-I3, I5, I6) rely on well-established
cryptographic primitives and validation patterns with substantial prior
art in deployed systems. I4 carries this specification's main
contribution: SPKI/SDSI (Section 1.3) established attenuation by
reduction, and this document defines typed subsumption rules over tool
arguments that make it checkable offline. Implementers are encouraged to
publish independent analyses of both the core subsumption rules and any
extension constraint types they deploy. Implementation status is
described in Appendix E.</t>

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

<t>A compromised trust anchor key allows an attacker to issue arbitrary
root tokens. This breaks the security guarantees of all chains anchored
to that key.</t>

<t>In the base chain verification algorithm, configured trust anchors are
used to verify root tokens. Establishing, rotating, or revoking those
trust anchors is outside the scope of this specification. Remote
attestation mechanisms, such as the RATS architecture <xref target="RFC9334"/>, can
complement AAT deployments by providing evidence about root issuer or
enforcement point environments.</t>

<t>Deployments <bcp14>SHOULD</bcp14> implement key rotation and revocation procedures
appropriate to their risk model. Rotating a compromised trust anchor
means replacing its key and re-issuing root tokens; enforcement points
<bcp14>SHOULD</bcp14> support configurable trust-anchor sets so rotation needs no
downtime. Revocation list formats and distribution are outside the
scope of this specification.</t>

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

<t>A compromised holder key allows an attacker to present existing tokens
issued to that holder, but not to derive broader ones. The response is
revoking tokens bound to that key where the deployment supports
revocation (Section 9.8), or letting short-lived tokens expire.</t>

<t>AATs do not provide the re-keying property of HMAC-chained designs
such as Macaroons <xref target="MACAROONS"/>, where adding a caveat replaces the
signing key so that the less-attenuated token can no longer be
produced from the more-attenuated one. In an AAT chain the parent
token continues to exist and remains valid until it expires or is
revoked, and its use is controlled by the parent holder's key rather
than by replacement of the signing key. Compromise of a holder key
therefore exposes every token bound to that key, at that token's full
scope, for the remainder of its lifetime. The design bounds this
exposure with holder binding on every chain position, attenuation at
every hop, and short lifetimes (Appendix B.5), rather than by making
parent tokens unrecoverable. Deployments that require a holder to be
unable to exercise a parent's authority after delegating <bcp14>SHOULD</bcp14> derive
the child to a fresh holder key (Section 9.10) and then destroy the
private key bound to the parent token. The parent token remains
cryptographically valid until its <spanx style="verb">exp</spanx>, but it can no longer be
presented or used to derive further tokens. A holder that destroys
that key also gives up deriving further children from the parent, so
this approximation of re-keying suits single-delegation hops.</t>

<t>Derivation times are asserted by the deriver: a stolen holder key can
be used to derive children with any <spanx style="verb">iat</spanx> at or after the parent's,
until the parent expires, so I3 bounds how long authority lasts but not
when a derivation happened.</t>

<t>This specification assumes that holder private keys are not shared across
delegation boundaries. Key generation, storage, rotation, and recovery
are deployment concerns and are outside the semantics of chain
verification.</t>

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

<t>The <spanx style="verb">iat</spanx> window alone bounds replay in time but does not prevent it: a
captured PoP JWT can be replayed for up to about twice the clock tolerance, roughly 60
seconds at the <bcp14>RECOMMENDED</bcp14> setting (Section 9.9). Section 7.3
therefore requires <spanx style="verb">jti</spanx> tracking for tool invocations that have side
effects or are not idempotent, such as financial transactions, data
deletion, writes to external systems, or anything that cannot be
undone. Replaying a read-only invocation returns its result to whoever
replays it, so enforcement points <bcp14>SHOULD</bcp14> also track <spanx style="verb">jti</spanx> values, or
require a nonce, for tools whose responses are sensitive.</t>

<t>PoP JWTs are scoped to the invocation data they contain. Without
further binding, a PoP JWT captured at one enforcement point may be
replayable at another enforcement point that accepts the same chain,
tool identifier, and argument map within the timestamp window. This
specification provides three protections against that replay, each
borrowed from an existing mechanism:</t>

<t><list style="symbols">
  <t><strong>Chain audience.</strong> <spanx style="verb">aud</spanx> (Section 3.2). Because every <spanx style="verb">aud</spanx> in the
chain is checked, holders further down the chain need not know the
target.</t>
  <t><strong>Presentation audience.</strong> <spanx style="verb">aat_aud</spanx> names the party the holder
hands the PoP JWT to, like DPoP <spanx style="verb">htu</spanx> <xref target="RFC9449"/>: the next hop,
never a resource behind it. The holder always
knows its next hop, so it can set the claim whenever that hop is
the enforcement point. It is <bcp14>OPTIONAL</bcp14> because when an intermediary
forwards the presentation unchanged, the next hop is not the
enforcement point, and the holder omits the claim (see below).</t>
  <t><strong>Enforcement-point nonce.</strong> The enforcement point supplies a
nonce and requires the PoP JWT to carry it, following the DPoP
server-provided nonce pattern (<xref target="RFC9449"/> Section 9). A proof
bound to one enforcement point's nonce cannot be replayed at
another, and the holder never needs to name or know the
enforcement point.</t>
</list></t>

<t>An intermediary, a party that relays a presentation without being its
target, <bcp14>MUST</bcp14> either present under its own AAT with its own PoP JWT, as
in token exchange <xref target="RFC8693"/>, or forward the presentation unchanged. A
forwarded presentation is accepted only if its <spanx style="verb">aat_aud</spanx> is absent or
identifies the receiving enforcement point (Section 8, step 7d). A
holder whose presentation may be forwarded therefore omits <spanx style="verb">aat_aud</spanx>,
and an enforcement point that requires <spanx style="verb">aat_aud</spanx> does not accept
forwarded presentations.</t>

<t>A deployment in which more than one enforcement point, resource
server, or tenant can accept the same chain <bcp14>MUST</bcp14> ensure that each of
them does at least one of the following: require a chain audience or
an <spanx style="verb">aat_aud</spanx> that no other of them accepts, require a nonce, or share
<spanx style="verb">jti</spanx> tracking state with the others.</t>

<t>This specification does not define the storage backend or
distribution protocol for <spanx style="verb">jti</spanx> state. Beyond the atomic
check-and-record of Section 8, step 7i, the required consistency
depends on the deployment topology. Deployments <bcp14>SHOULD</bcp14>
layer application-level idempotency mechanisms for high-value
operations.</t>

</section>
<section anchor="constraint-evaluation"><name>Constraint Evaluation</name>

<t>The core constraint types are intended to have predictable evaluation
cost. Extension constraint types can introduce parser complexity,
algorithmic cost, normalization requirements, or external policy-engine
dependencies, so each registration states its worst-case cost
(Section 5.1).
Enforcement points <bcp14>SHOULD</bcp14> impose evaluation timeouts on any extension
constraint type whose <spanx style="verb">check</spanx> predicate is not O(n) in the length of the
argument value. A constraint type the enforcement point does not
recognize or implement fails closed (Sections 3.4 and 5.2).</t>

</section>
<section anchor="depth-limit"><name>Depth Limit</name>

<t>Each delegation hop introduces an additional agent into the trust chain:
the enforcement point necessarily trusts not only that the leaf token
holder is honest, but that every intermediate holder made sound
attenuation decisions. A compromised or misdirected intermediate agent
can narrow constraints in ways that serve an attacker's goals while
remaining within the invariants. The depth limit bounds the number of
such trust extensions that a single root grant can produce. Enforcement
points <bcp14>MUST</bcp14> check both <spanx style="verb">del_max_depth</spanx>, which is the root issuer's
policy for the chain, and their own MAX_DELEGATION_DEPTH, which protects
the enforcement point (Section 8, steps 3i, 4e-4g, and 4m); enforcing
only one ignores the other.</t>

</section>
<section anchor="token-revocation"><name>Token Revocation</name>

<t>This document defines no revocation mechanism. The offline delegation
model trades per-token revocation granularity for verifiability without
authorization server availability. Because an enforcement point
verifies every token in a chain, a status mechanism for root tokens,
such as <xref target="I-D.ietf-oauth-status-list"/>, revokes every chain that starts
at a revoked root, and so every token derived from it.</t>

<t>Deployments <bcp14>SHOULD</bcp14> use short token lifetimes to bound exposure after key
compromise, token theft, or scope misconfiguration. A short-lived leaf
token provides a bounded damage window even when no revocation mechanism
is deployed. Root tokens <bcp14>SHOULD</bcp14> be issued with the shortest lifetime
that covers the delegated task (Appendix B.5).</t>

<t>A companion document may define revocation enforced by the enforcement
point that accepts a chain, invalidating a token and its descendants,
but not unrelated tokens held by the same key, without requiring the
root issuer to track derived tokens.</t>

</section>
<section anchor="clock-skew"><name>Clock Skew</name>

<t>This specification uses clock-based checks in two distinct contexts with
different semantics. MAX_IAT_SKEW (Section 4.4) is a one-sided
future-dating tolerance applied to token <spanx style="verb">iat</spanx> values: it prevents a
token issued slightly in the future from being rejected due to minor
clock drift between issuer and enforcement point. The PoP JWT timestamp
window (Section 8, step 7g) is a bilateral replay window applied to PoP
JWT <spanx style="verb">iat</spanx> values: it bounds how long a captured PoP JWT remains usable.
These are independent parameters enforced at different points in the
verification algorithm and <bcp14>SHOULD</bcp14> be configured separately.</t>

<t>PoP JWT timestamp verification requires synchronized clocks. The
<bcp14>RECOMMENDED</bcp14> window is ±30 seconds, which accommodates typical
NTP-synchronized deployments; deployments with well-synchronized clocks
can use ±5 to ±10 seconds, or less. Implementations <bcp14>MUST</bcp14> enforce a
finite window. Values beyond ±60 seconds add little clock-skew tolerance
while widening the replay window and are <bcp14>NOT RECOMMENDED</bcp14>; values near
±60 seconds suit only heterogeneous environments such as embedded
systems or degraded connectivity.</t>

</section>
<section anchor="role-based-key-separation"><name>Role-Based Key Separation</name>

<t>Deployments that distinguish planning agents from tool-invoking agents
<bcp14>SHOULD</bcp14> use distinct holder keys for
those runtime roles and <bcp14>SHOULD</bcp14> derive across that boundary with a fresh
<spanx style="verb">cnf.jwk</spanx> (required across a process or trust boundary; Section 6.2,
step 9). This limits the blast radius of a compromised planning
component and preserves operational accountability between components
that decide what work should be done and components that invoke tools.</t>

<t>Role-based key separation is deployment guidance, not an invariant of
this specification. Enforcement points implementing this specification verify the
holder-key chain, attenuation invariants, parent-token linkage, and leaf
PoP proof; they do not infer agent runtime roles from token claims
unless a deployment-specific profile defines such claims and
verification rules.</t>

</section>
<section anchor="algorithm-confusion"><name>Algorithm Confusion</name>

<t>JWT/JWS AATs are signed JWTs. Implementations are subject to the full
class of JWT algorithm confusion attacks, including <spanx style="verb">alg: "none"</spanx>
acceptance, symmetric/asymmetric key confusion (RS256/HS256 key reuse),
and algorithm substitution across tokens in the same chain.</t>

<t>Enforcement points <bcp14>MUST</bcp14> maintain an explicit allowlist of permitted
signature algorithms and <bcp14>MUST</bcp14> reject any token whose <spanx style="verb">alg</spanx> header value
is not on that list. Implementations <bcp14>MUST NOT</bcp14> treat the absence of an
<spanx style="verb">alg</spanx> header as equivalent to any permitted algorithm. An <spanx style="verb">alg</spanx>
inconsistent with the verifying key's <spanx style="verb">kty</spanx> and <spanx style="verb">crv</spanx> is rejected even
when the signature would verify under another interpretation (Section
8, steps 3a, 4a, and 7a); for example, <spanx style="verb">"Ed25519"</spanx> requires an OKP key
with <spanx style="verb">"crv": "Ed25519"</spanx>.</t>

<t>Implementations <bcp14>MUST</bcp14> apply the algorithm allowlist independently to each
AAT in the chain and to the PoP JWT. Accepting a weaker algorithm on an
intermediate token because the leaf token used a strong algorithm is a
verification failure.</t>

<t>AATs and PoP JWTs <bcp14>MUST</bcp14> be signed with an asymmetric algorithm; <spanx style="verb">none</spanx>
and MAC algorithms <bcp14>MUST NOT</bcp14> be used (<xref target="RFC9449"/> Section 4.2). Any key
that can verify a MAC can also forge one. Ed25519 is mandatory to
implement (Section 3.2). ES256 is <bcp14>RECOMMENDED</bcp14> as the second algorithm,
and PS256 for root issuers with RSA keys. Algorithms are identified by
fully-specified values (<xref target="RFC9864"/>): Ed25519 is <spanx style="verb">"Ed25519"</spanx>, and the
deprecated polymorphic <spanx style="verb">"EdDSA"</spanx> <bcp14>MUST NOT</bcp14> be used or accepted.</t>

</section>
<section anchor="optional-and-unnamed-arguments"><name>Optional and Unnamed Arguments</name>

<t>Optional and unnamed arguments trade enforcement for compatibility with
real tools, and each has a cost the enforcement point cannot see. When
an optional argument is omitted, the tool applies its own default: an
optional <spanx style="verb">head</spanx> on a file-reading tool lets a caller read the whole
file. Issuers <bcp14>SHOULD</bcp14> mark an argument optional only when the tool's
default for it is acceptable for the token's purpose. The <spanx style="verb">"*"</spanx> entry
admits any argument the tool accepts, including arguments that later
versions of the tool add, which a token issued earlier then authorizes
without anyone having reviewed them. Issuers <bcp14>SHOULD NOT</bcp14> use <spanx style="verb">"*"</spanx> for
tools with side effects, and enforcement points <bcp14>MAY</bcp14> reject arguments
absent from the tool's published input schema.</t>

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

<t>AAT payloads are integrity-protected but not encrypted. In cross-domain
deployments, an AAT chain can reveal delegation topology, task context,
tool identifiers, argument constraints, and holder-key correlation
information. Deployments <bcp14>SHOULD</bcp14> minimize disclosure of AAT chains to
parties that do not perform chain verification or invocation
authorization. Deployments <bcp14>SHOULD</bcp14> transmit AAT chains over encrypted
transport (e.g., TLS) and <bcp14>SHOULD</bcp14> protect stored tokens as sensitive
authorization metadata. A stored AAT is not usable without the
corresponding holder private key, but it can disclose authorization
scope and delegation structure. Token encryption is outside the scope of
this specification.</t>

<t>A PoP JWT's <spanx style="verb">hta</spanx> carries the invocation's argument values, which may
be personal data, to every enforcement point that verifies it.
Enforcement points <bcp14>SHOULD</bcp14> retain <spanx style="verb">jti</spanx> state and logged PoP JWTs no
longer than replay protection and audit require. A holder key reused
across tasks appears in each derived <spanx style="verb">iss</spanx> and links those tasks; fresh
holder keys per task prevent this.</t>

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

<section anchor="jwt-claims-registry"><name>JWT Claims Registry</name>

<t>This document requests registration of the following claims in the IANA
JSON Web Token Claims Registry <xref target="RFC7519"/>.</t>

<t><strong>AAT claims:</strong></t>

<texttable>
      <ttcol align='left'>Claim Name</ttcol>
      <ttcol align='left'>Claim Description</ttcol>
      <ttcol align='left'>Change Controller</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">del_depth</spanx></c>
      <c>Delegation chain depth</c>
      <c>IETF</c>
      <c>This document</c>
      <c><spanx style="verb">del_max_depth</spanx></c>
      <c>Maximum delegation chain depth</c>
      <c>IETF</c>
      <c>This document</c>
      <c><spanx style="verb">par_hash</spanx></c>
      <c>Parent token signing input hash</c>
      <c>IETF</c>
      <c>This document</c>
</texttable>

<t>The <spanx style="verb">tools</spanx> map is not a top-level JWT claim; it is a member nested
inside the <spanx style="verb">authorization_details</spanx> array entry with <spanx style="verb">type:
"attenuating_agent_token"</spanx>, as defined in Section 3.3. Its structure and
semantics are governed by the "Attenuating Authorization Token
Constraint Types" registry (Section 11.2) and the RAR profile defined
in this document, not by the JWT Claims Registry.</t>

<t><strong>PoP JWT claims:</strong></t>

<texttable>
      <ttcol align='left'>Claim Name</ttcol>
      <ttcol align='left'>Claim Description</ttcol>
      <ttcol align='left'>Change Controller</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">aat_id</spanx></c>
      <c>AAT <spanx style="verb">jti</spanx> being presented</c>
      <c>IETF</c>
      <c>This document</c>
      <c><spanx style="verb">aat_hash</spanx></c>
      <c>Signing input hash of the AAT being presented</c>
      <c>IETF</c>
      <c>This document</c>
      <c><spanx style="verb">aat_tool</spanx></c>
      <c>Tool identifier for PoP binding</c>
      <c>IETF</c>
      <c>This document</c>
      <c><spanx style="verb">aat_aud</spanx></c>
      <c>Presentation audience for PoP binding</c>
      <c>IETF</c>
      <c>This document</c>
      <c><spanx style="verb">hta</spanx></c>
      <c>Tool arguments for PoP binding</c>
      <c>IETF</c>
      <c>This document</c>
</texttable>

<t>The <spanx style="verb">aud</spanx> claim on AATs (Section 3.2) and the <spanx style="verb">nonce</spanx> claim on PoP JWTs
(Section 7.2) are existing registered claims, from <xref target="RFC7519"/> and
<xref target="OIDC.Core"/> (as updated by <xref target="RFC9449"/>) respectively, and are not
re-registered.</t>

</section>
<section anchor="aat-constraint-type-registry"><name>AAT Constraint Type Registry</name>

<t>This document requests IANA create the "Attenuating Authorization Token
Constraint Types" registry. The registration policy for this registry is
Specification Required <xref target="RFC8126"/>.</t>

<section anchor="designated-expert-instructions"><name>Designated Expert Instructions</name>

<t>Designated experts <bcp14>MUST</bcp14> verify that a registration:</t>

<t><list style="numbers" type="1">
  <t>has a type name that is a lowercase string of letters, digits, and
underscores and does not conflict with a registered name;</t>
  <t>specifies its members and its <spanx style="verb">check</spanx> predicate precisely enough
that independent implementations agree on every argument value;</t>
  <t>meets the requirements of Section 5.1; and</t>
  <t>has a stable, publicly accessible reference.</t>
</list></t>

<t>Designated experts <bcp14>SHOULD</bcp14> request clarification when cross-type rules
are incomplete, when soundness is not formally justified, or when the
<spanx style="verb">check</spanx> predicate leaves cases unresolved.</t>

</section>
<section anchor="registration-template"><name>Registration Template</name>

<figure><artwork><![CDATA[
Type name:
Additional members:   (name, JSON type, required or optional,
                       default, semantics)
check predicate:
subsumes procedure:   (Section 5.1, including whether it is
                       conservative and its soundness argument)
cross-type rules:     (Section 5.1)
cost:                 (Section 5.1)
security considerations:
reference:
]]></artwork></figure>

</section>
<section anchor="initial-registry-entries"><name>Initial Registry Entries</name>

<t>The initial entries are the core types <spanx style="verb">exact</spanx>, <spanx style="verb">range</spanx>, <spanx style="verb">one_of</spanx>,
<spanx style="verb">not_one_of</spanx>, <spanx style="verb">contains</spanx>, <spanx style="verb">subset</spanx>, <spanx style="verb">wildcard</spanx>, <spanx style="verb">all</spanx>, and <spanx style="verb">any</spanx>, each
with reference "This document (Sections 3.4 and 4.5)".</t>

</section>
</section>
<section anchor="oauth-token-type-registration"><name>OAuth Token Type Registration</name>

<t>This document requests registration of the following token type in the
OAuth Access Token Types registry (<xref target="RFC6749"/> Section 11.1):</t>

<t><list style="symbols">
  <t>Type name: <spanx style="verb">aat</spanx></t>
  <t>Additional Token Endpoint Response Parameters: (none)</t>
  <t>HTTP Authentication Scheme(s): (none; not a bearer token)</t>
  <t>Change controller: IETF</t>
  <t>Specification document(s): This document</t>
</list></t>

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

<t>This section registers the <spanx style="verb">application/aat+jwt</spanx> and
<spanx style="verb">application/aat-pop+jwt</spanx> media types in the IANA Media Types registry.</t>

<t>The <spanx style="verb">typ</spanx> header values <spanx style="verb">aat+jwt</spanx> and <spanx style="verb">aat-pop+jwt</spanx> are the JWT type
identifiers corresponding to these media types, following the
structured-syntax convention used by DPoP <xref target="RFC9449"/>.</t>

<t><strong>Type name:</strong> application</t>

<t><strong>Subtype name:</strong> aat+jwt</t>

<t><strong>Required parameters:</strong> n/a</t>

<t><strong>Optional parameters:</strong> n/a</t>

<t><strong>Encoding considerations:</strong> binary; JWT values are encoded as a series
of base64url-encoded values (some of which may be the empty string)
separated by period ('.') characters.</t>

<t><strong>Security considerations:</strong> See Section 9 of this document.</t>

<t><strong>Interoperability considerations:</strong> n/a</t>

<t><strong>Published specification:</strong> This document</t>

<t><strong>Applications that use this media type:</strong> Applications issuing,
deriving, or verifying Attenuating Authorization Tokens</t>

<t><strong>Fragment identifier considerations:</strong> n/a</t>

<t><strong>Additional information:</strong></t>

<t><list style="symbols">
  <t>Magic number(s): n/a</t>
  <t>File extension(s): n/a</t>
  <t>Macintosh file type code(s): n/a</t>
  <t>Deprecated alias names for this type: n/a</t>
</list></t>

<t><strong>Person &amp; email address to contact for further information:</strong>
Niki Aimable Niyikiza, niki@tenuo.ai</t>

<t><strong>Intended usage:</strong> COMMON</t>

<t><strong>Restrictions on usage:</strong> none</t>

<t><strong>Provisional registration?</strong> No</t>

<t><strong>Author:</strong> Niki Aimable Niyikiza</t>

<t><strong>Change controller:</strong> IETF</t>

<t><strong>Type name:</strong> application</t>

<t><strong>Subtype name:</strong> aat-pop+jwt</t>

<t><strong>Required parameters:</strong> n/a</t>

<t><strong>Optional parameters:</strong> n/a</t>

<t><strong>Encoding considerations:</strong> binary; JWT values are encoded as a series
of base64url-encoded values (some of which may be the empty string)
separated by period ('.') characters.</t>

<t><strong>Security considerations:</strong> See Section 7 and Section 9 of this document.</t>

<t><strong>Interoperability considerations:</strong> n/a</t>

<t><strong>Published specification:</strong> This document</t>

<t><strong>Applications that use this media type:</strong> Applications producing or
verifying AAT proof-of-possession JWTs</t>

<t><strong>Fragment identifier considerations:</strong> n/a</t>

<t><strong>Additional information:</strong></t>

<t><list style="symbols">
  <t>Magic number(s): n/a</t>
  <t>File extension(s): n/a</t>
  <t>Macintosh file type code(s): n/a</t>
  <t>Deprecated alias names for this type: n/a</t>
</list></t>

<t><strong>Person &amp; email address to contact for further information:</strong>
Niki Aimable Niyikiza, niki@tenuo.ai</t>

<t><strong>Intended usage:</strong> COMMON</t>

<t><strong>Restrictions on usage:</strong> none</t>

<t><strong>Provisional registration?</strong> No</t>

<t><strong>Author:</strong> Niki Aimable Niyikiza</t>

<t><strong>Change controller:</strong> IETF</t>

</section>
<section anchor="oauth-parameters-registry"><name>OAuth Parameters Registry</name>

<t>This document makes no request to the OAuth Parameters Registry. Root
token issuance uses the existing <spanx style="verb">req_cnf</spanx> token request parameter.</t>

</section>
</section>


  </middle>

  <back>


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

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

&RFC8259;
&RFC3986;
&RFC7515;
&RFC7517;
&RFC7519;
&RFC7638;
&RFC8725;
&RFC7800;
&RFC8032;
&RFC8037;
&RFC9864;
&RFC8785;
&RFC9278;
&RFC9396;
&RFC9562;
&RFC6749;
&RFC9201;
&RFC8414;
&RFC8126;
&RFC2119;
&RFC8174;


    </references>

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

&I-D.ietf-oauth-status-list;
&I-D.ietf-oauth-transaction-tokens;
&I-D.ietf-oauth-identity-chaining;
&I-D.ietf-wimse-arch;
&I-D.li-oauth-delegated-authorization;
&I-D.mcguinness-oauth-mission;
&I-D.ietf-wimse-aims;
&I-D.asor-wimse-agent-delegation-chain;
&I-D.chen-oauth-agent-authz-use-cases;
&RFC2693;
&RFC7942;
&RFC8949;
&RFC8392;
&RFC8693;
&RFC9052;
&RFC9334;
&RFC9449;
&RFC9068;
&RFC8707;
<reference anchor="OIDC.Core" target="https://openid.net/specs/openid-connect-core-1_0.html">
  <front>
    <title>OpenID Connect Core 1.0 incorporating errata set 2</title>
    <author initials="N." surname="Sakimura" fullname="Nat Sakimura">
      <organization></organization>
    </author>
    <author initials="J." surname="Bradley" fullname="John Bradley">
      <organization></organization>
    </author>
    <author initials="M. B." surname="Jones" fullname="Michael B. Jones">
      <organization></organization>
    </author>
    <author initials="B." surname="de Medeiros" fullname="Breno de Medeiros">
      <organization></organization>
    </author>
    <author initials="C." surname="Mortimore" fullname="Chuck Mortimore">
      <organization></organization>
    </author>
    <date year="2023"/>
  </front>
</reference>
<reference anchor="BISCUIT" target="https://doc.biscuitsec.org/reference/specifications.html">
  <front>
    <title>Biscuit: Distributed Authorization Tokens</title>
    <author >
      <organization>Eclipse Foundation</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="UCAN" target="https://github.com/ucan-wg/spec">
  <front>
    <title>User Controlled Authorization Network (UCAN) Specification, Version 1.0.0</title>
    <author initials="B." surname="Zelenka" fullname="Brooklyn Zelenka">
      <organization></organization>
    </author>
    <author initials="I." surname="Gozalishvili" fullname="Irakli Gozalishvili">
      <organization></organization>
    </author>
    <author initials="D." surname="Holmgren" fullname="Daniel Holmgren">
      <organization></organization>
    </author>
    <author initials="P." surname="Krüger" fullname="Philipp Krüger">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="MISSION-ATTENUATION" target="https://mcguinness.github.io/mission-bound-authorization/draft-mcguinness-oauth-mission-attenuation.html">
  <front>
    <title>Mission Offline Attenuation for OAuth 2.0</title>
    <author initials="K." surname="McGuinness" fullname="Karl McGuinness">
      <organization></organization>
    </author>
    <date year="2026"/>
  </front>
</reference>
<reference anchor="MISSION-RA" target="https://github.com/mcguinness/mission-bound-authorization">
  <front>
    <title>Mission-Bound Authorization reference architecture</title>
    <author initials="K." surname="McGuinness" fullname="Karl McGuinness">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="TENUO" target="https://github.com/tenuo-ai/tenuo">
  <front>
    <title>Tenuo</title>
    <author >
      <organization>Tenuo</organization>
    </author>
    <date year="2026"/>
  </front>
</reference>
<reference anchor="WARDEN" target="https://github.com/IgorKammerGrahl/Warden">
  <front>
    <title>Warden</title>
    <author initials="I. K." surname="Grahl" fullname="Igor Kammer Grahl">
      <organization></organization>
    </author>
    <date year="2026"/>
  </front>
</reference>
<reference anchor="ARCP" target="https://github.com/udaykishore-resu/arcp">
  <front>
    <title>Agent Runtime Controls Profile (ARCP)</title>
    <author initials="U." surname="Resu" fullname="Udaykishore Resu">
      <organization></organization>
    </author>
    <date year="2026"/>
  </front>
</reference>
<reference anchor="CEDAR" target="https://docs.cedarpolicy.com/">
  <front>
    <title>Cedar Policy Language Reference Guide</title>
    <author >
      <organization>Cedar Policy</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="MACAROONS" target="https://research.google/pubs/pub41892/">
  <front>
    <title>Macaroons: Cookies with Contextual Caveats for Decentralized Authorization in the Cloud</title>
    <author initials="A." surname="Birgisson" fullname="Arnar Birgisson">
      <organization></organization>
    </author>
    <author initials="J. G." surname="Politz" fullname="Joe Gibbs Politz">
      <organization></organization>
    </author>
    <author initials="U." surname="Erlingsson" fullname="Ulfar Erlingsson">
      <organization></organization>
    </author>
    <author initials="A." surname="Taly" fullname="Ankur Taly">
      <organization></organization>
    </author>
    <author initials="M." surname="Vrable" fullname="Michael Vrable">
      <organization></organization>
    </author>
    <author initials="M." surname="Lentczner" fullname="Mark Lentczner">
      <organization></organization>
    </author>
    <date year="2014"/>
  </front>
  <seriesInfo name="NDSS" value="2014"/>
</reference>
<reference anchor="SALTZER75" target="https://doi.org/10.1109/PROC.1975.9939">
  <front>
    <title>The Protection of Information in Computer Systems</title>
    <author initials="J. H." surname="Saltzer" fullname="Jerome H. Saltzer">
      <organization></organization>
    </author>
    <author initials="M. D." surname="Schroeder" fullname="Michael D. Schroeder">
      <organization></organization>
    </author>
    <date year="1975"/>
  </front>
  <seriesInfo name="Proceedings of the IEEE" value="Vol. 63, No. 9"/>
</reference>
<reference anchor="HARDY88" target="https://dl.acm.org/doi/10.1145/54289.871709">
  <front>
    <title>The Confused Deputy (or why capabilities might have been invented)</title>
    <author initials="N." surname="Hardy" fullname="Norm Hardy">
      <organization></organization>
    </author>
    <date year="1988"/>
  </front>
  <seriesInfo name="ACM SIGOPS Operating Systems Review" value="Vol. 22, No. 4"/>
</reference>
<reference anchor="CAMEL25" target="https://arxiv.org/abs/2503.18813">
  <front>
    <title>Defeating Prompt Injections by Design</title>
    <author initials="E." surname="Debenedetti" fullname="Edoardo Debenedetti">
      <organization></organization>
    </author>
    <author initials="I." surname="Shumailov" fullname="Ilia Shumailov">
      <organization></organization>
    </author>
    <author initials="T." surname="Fan" fullname="Tianqi Fan">
      <organization></organization>
    </author>
    <author initials="J." surname="Hayes" fullname="Jamie Hayes">
      <organization></organization>
    </author>
    <author initials="N." surname="Carlini" fullname="Nicholas Carlini">
      <organization></organization>
    </author>
    <author initials="D." surname="Fabian" fullname="Daniel Fabian">
      <organization></organization>
    </author>
    <author initials="C." surname="Kern" fullname="Christoph Kern">
      <organization></organization>
    </author>
    <author initials="C." surname="Shi" fullname="Chongyang Shi">
      <organization></organization>
    </author>
    <author initials="A." surname="Terzis" fullname="Andreas Terzis">
      <organization></organization>
    </author>
    <author initials="F." surname="Tramèr" fullname="Florian Tramèr">
      <organization></organization>
    </author>
    <date year="2025"/>
  </front>
</reference>
<reference anchor="DEEPMIND26" target="https://arxiv.org/abs/2602.11865">
  <front>
    <title>Intelligent AI Delegation</title>
    <author initials="N." surname="Tomašev" fullname="Nenad Tomašev">
      <organization></organization>
    </author>
    <author initials="M." surname="Franklin" fullname="Matija Franklin">
      <organization></organization>
    </author>
    <author initials="S." surname="Osindero" fullname="Simon Osindero">
      <organization></organization>
    </author>
    <date year="2026"/>
  </front>
</reference>
<reference anchor="MCP" target="https://modelcontextprotocol.io/specification">
  <front>
    <title>Model Context Protocol Specification</title>
    <author >
      <organization>Model Context Protocol</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="A2A" target="https://a2a-protocol.org/latest/specification/">
  <front>
    <title>Agent2Agent (A2A) Protocol Specification</title>
    <author >
      <organization>A2A Project</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="AAT-VECTORS" target="https://github.com/tenuo-ai/tenuo/blob/main/tests/vectors/aat-jws-vectors.json">
  <front>
    <title>AAT JWS test vector suite (JSON)</title>
    <author >
      <organization>Tenuo</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="AAT-VECTOR-GEN" target="https://github.com/tenuo-ai/tenuo/tree/main/ietf/vectors">
  <front>
    <title>AAT JWS test vectors: readable companion and generator</title>
    <author >
      <organization>Tenuo</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="DENNIS66" target="https://doi.org/10.1145/365230.365252">
  <front>
    <title>Programming Semantics for Multiprogrammed Computations</title>
    <author initials="J. B." surname="Dennis" fullname="Jack B. Dennis">
      <organization></organization>
    </author>
    <author initials="E. C." surname="Van Horn" fullname="Earl C. Van Horn">
      <organization></organization>
    </author>
    <date year="1966"/>
  </front>
  <seriesInfo name="Communications of the ACM" value="Vol. 9, No. 3"/>
</reference>
<reference anchor="MILLER06" target="http://www.erights.org/talks/thesis/">
  <front>
    <title>Robust Composition: Towards a Unified Approach to Access Control and Concurrency Control</title>
    <author initials="M. S." surname="Miller" fullname="Mark S. Miller">
      <organization></organization>
    </author>
    <date year="2006"/>
  </front>
  <seriesInfo name="PhD Dissertation" value="Johns Hopkins University"/>
</reference>


    </references>

</references>


<?line 2615?>

<section anchor="relationship-to-dpop-non-normative"><name>Relationship to DPoP (Non-Normative)</name>

<t>DPoP (<xref target="RFC9449"/>) binds an OAuth access token to a holder key without
changing what the token authorizes. AATs encode authorization and add
holder-derivable attenuation, a parent-child chain, and chain
invariants. The AAT PoP JWT serves DPoP's proof role at the leaf of that
chain.</t>

<t>DPoP binds to an HTTP method (<spanx style="verb">htm</spanx>) and URI (<spanx style="verb">htu</spanx>). AAT PoP JWTs bind
instead to a tool (<spanx style="verb">aat_tool</spanx>) and argument map (<spanx style="verb">hta</spanx>); <spanx style="verb">aat_id</spanx> names
the leaf token, and <spanx style="verb">aat_hash</spanx> serves the role of DPoP's <spanx style="verb">ath</spanx> by
binding the proof to that token's signing input. <spanx style="verb">aat_aud</spanx> follows
DPoP's target-binding model, and the optional <spanx style="verb">nonce</spanx> claim follows its
server-provided nonce pattern (<xref target="RFC9449"/> Section 9). Layering DPoP
alongside AATs as a transport binding is outside scope.</t>

</section>
<section anchor="implementation-notes-non-normative"><name>Implementation Notes (Non-Normative)</name>

<section anchor="recognizing-derived-token-iss-values-in-middleware"><name>Recognizing Derived Token <spanx style="verb">iss</spanx> Values in Middleware</name>

<t>A derived token's <spanx style="verb">iss</spanx> is a JWK Thumbprint URI (Section 3.2).
Middleware that routes or policy-evaluates based on <spanx style="verb">iss</spanx> should
recognize the JWK Thumbprint URI scheme and apply chain-aware
processing rather than attempting to resolve the URI as an issuer
endpoint. The verification key for derived tokens is
<spanx style="verb">parent.cnf.jwk</spanx>, resolved from the preceding chain link.</t>

</section>
<section anchor="delegation-depth-guidance"><name>Delegation Depth Guidance</name>

<t>Issuers should set <spanx style="verb">del_max_depth</spanx> to the expected workflow depth, with
margin for operational and holder-key handoffs. Overly tight values can
suppress attenuation and encourage broader token reuse.</t>

</section>
<section anchor="implementation-size-limits"><name>Implementation Size Limits</name>

<t>Implementations concerned about parser exposure on unverified
payloads in step 2c of the chain verification algorithm (Section 8)
may extract <spanx style="verb">jti</spanx> using a length-limited byte scan rather than a
full JSON parser, provided the extraction correctly handles JSON
whitespace and string escaping and reads only the top-level <spanx style="verb">jti</spanx>
member, skipping members of nested objects and arrays.</t>

<t>A single AAT is typically 1-4 KB when base64url-encoded. Chains of two
or more tokens will commonly exceed the 4-8 KB header size limits
enforced by common reverse proxies and load balancers, resulting in 431
errors, which is why Section 7.4 recommends carrying presentations in a
message body or protocol metadata. For size-constrained environments,
Appendix D notes considerations for a future CBOR/CWT profile.</t>

</section>
<section anchor="signed-passthrough-metadata"><name>Signed Passthrough Metadata</name>

<t>Implementations may include additional JWT claims in AATs beyond those
defined in Section 3, using collision-resistant names for passthrough
metadata such as request trace identifiers or tenant context. Such
claims are integrity-protected within each token, but the base chain
verification algorithm does not preserve or interpret them across
derivation steps, and they carry no authority in derived tokens (Section
3.3). Deployments that require chain-wide preservation of passthrough
metadata must define their own derivation and verification rules, either
through deployment-specific policy or a companion profile.</t>

</section>
<section anchor="ttl-guidance"><name>TTL Guidance</name>

<t>Root tokens should last only for the task's orchestration and execution
window, and leaf tokens only for the expected invocation. Environments
with intermittent connectivity may require longer lifetimes, which
expand the compromise window regardless of capability scope.</t>

</section>
</section>
<section anchor="policy-languages-with-decidable-containment-non-normative"><name>Policy Languages with Decidable Containment (Non-Normative)</name>

<t>The core constraint set is intentionally limited to structural
constraint types. A policy-language extension, for example one based on
Cedar <xref target="CEDAR"/>, must define not only runtime authorization but also a
sound, deterministic subsumption procedure. If full containment exceeds
Section 5.1's polynomial bound, the registration uses a conservative
syntactic check; derivers may still use fuller analysis when constructing
a child token.</t>

</section>
<section anchor="cborcwt-considerations-non-normative"><name>CBOR/CWT Considerations (Non-Normative)</name>

<t>The claim semantics, attenuation invariants, constraint subsumption
rules, and chain verification algorithm defined in this document are
independent of the token encoding. This document specifies AATs only as
JWS-signed JWTs.</t>

<t>A future CWT/COSE profile could represent the same semantic content
using CBOR Web Tokens <xref target="RFC8392"/> and COSE message signing <xref target="RFC9052"/>.
Such a profile would need to define CWT claim-key assignments, COSE
algorithm requirements, deterministic CBOR serialization rules per
<xref target="RFC8949"/>, the CWT parent token signing input used for <spanx style="verb">par_hash</spanx>, and
the deterministic encoding of PoP <spanx style="verb">hta</spanx> values. This appendix does not
define a CWT serialization, CWT claim-key mapping, COSE algorithm
profile, or CWT <spanx style="verb">par_hash</spanx> signing input. Those details are deferred to
a companion document.</t>

</section>
<section anchor="implementation-status-non-normative"><name>Implementation Status (Non-Normative)</name>

<t>RFC Editor Note: Please remove this section and the reference to
<xref target="RFC7942"/> before publication.</t>

<t>This section records the status of known implementations of the
protocol defined by this specification at the time of posting of this
Internet-Draft, and is based on a proposal described in <xref target="RFC7942"/>.
The description of implementations in this section is intended to
assist the IETF in its decision processes in progressing drafts to
RFCs. Please note that the listing of any individual implementation
here does not imply endorsement by the IETF. Furthermore, no effort
has been spent to verify the information presented here that was
supplied by IETF contributors. This is not intended as, and must not
be construed to be, a catalog of available implementations or their
features. Readers are advised to note that other implementations may
exist.</t>

<t>The information below was last updated in October 2026.</t>

<section anchor="tenuo"><name>Tenuo</name>

<t>Tenuo <xref target="TENUO"/> (Rust, Apache-2.0) implements the attenuation model of
this document in its production authorization engine: the Section 4
invariants, the Section 4.5 subsumption relation, chain verification,
and holder-bound proof of possession. The engine encodes tokens in CBOR
with its own signed envelope (Appendix D); a JWS implementation of -02
is in progress. Property-based tests check monotonicity over generated
constraint pairs and derivation sequences, and that normalization and
constraint evaluation are stable across encode/decode round trips.</t>

</section>
<section anchor="warden"><name>Warden</name>

<t>Warden <xref target="WARDEN"/> (Go, Apache-2.0), by Igor Kammer Grahl, is an
independent implementation of -01: a library for the token format,
derivation, and chain verification, and an enforcement point for MCP
tool calls.</t>

</section>
<section anchor="mission-bound-authorization-reference-architecture"><name>Mission-Bound Authorization Reference Architecture</name>

<t>The Mission-Bound Authorization reference architecture <xref target="MISSION-RA"/>
(TypeScript) implements AATs as profiled by Mission Offline Attenuation
<xref target="MISSION-ATTENUATION"/>. It mints root tokens from an approved Mission's
authority and derives child tokens offline; its verifier checks
capability narrowing, <spanx style="verb">par_hash</spanx> linkage, delegation depth, and audience
and expiry nesting. It binds holder keys with <spanx style="verb">cnf.jkt</spanx> and proves
possession with DPoP <xref target="RFC9449"/>, rather than with this document's
<spanx style="verb">cnf.jwk</spanx> and PoP JWT.</t>

</section>
<section anchor="agent-runtime-controls-profile-arcp"><name>Agent Runtime Controls Profile (ARCP)</name>

<t>The Agent Runtime Controls Profile (ARCP) <xref target="ARCP"/>, by Udaykishore
Resu, is an experimental profile of AAT with an MIT-licensed Go
implementation. The profile leaves capability narrowing to the
invariants of Section 4 and defines cumulative runtime controls for
chain-wide budgets, instruction-provenance gating, single-use approval
bound to a leaf token, tool, and argument set, and revocation through
OpenID Shared Signals. The implementation includes an AAT core based on
-01, runtime-control enforcement, and MCP middleware. Its AAT core
supports chain verification, proof of possession, and the <spanx style="verb">exact</spanx>,
<spanx style="verb">one_of</spanx>, <spanx style="verb">not_one_of</spanx>, <spanx style="verb">range</spanx>, and <spanx style="verb">wildcard</spanx> constraint types.</t>

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

<t>Byte-exact JWS test vectors for Section 8 are published as a
machine-readable suite <xref target="AAT-VECTORS"/> and a readable companion with its
generator <xref target="AAT-VECTOR-GEN"/>. Expected verdicts come from the
generator's own implementation of Section 8, which shares no code with
the implementations above. Because Section 8 permits some steps to be
reordered, harnesses compare verdicts rather than failing steps.</t>

</section>
</section>
<section anchor="changes-from-draft-niyikiza-oauth-attenuating-agent-tokens-01"><name>Changes from draft-niyikiza-oauth-attenuating-agent-tokens-01</name>

<t>RFC Editor Note: This section is to be removed before publication.</t>

<t>This revision reorganizes the specification and makes normative changes
that break -01 implementations:</t>

<t><list style="symbols">
  <t>JWT processing now requires explicit <spanx style="verb">typ</spanx>, uses <spanx style="verb">Ed25519</spanx> rather than
<spanx style="verb">EdDSA</spanx>, restricts verification-key sources, binds root <spanx style="verb">iss</spanx> to its
trust anchor, rejects duplicate JSON members, processes <spanx style="verb">crit</spanx>, and
binds each PoP JWT to the leaf with <spanx style="verb">aat_hash</spanx>.</t>
  <t>Claim, constraint, number, composite, and subsumption validation is
fully specified; extension registrations receive stricter requirements.</t>
  <t>Optional and unnamed arguments, chain and presentation audiences,
enforcement-point nonces, and the <spanx style="verb">aat_chain</spanx>/<spanx style="verb">aat_pop</spanx> presentation
object are defined.</t>
  <t>Root grants must attenuate requests, and issuers verify possession of
the requested holder key. Cross-boundary derivation uses a new holder
key, and non-AAT authorization-detail entries carry no derived authority.</t>
  <t>Verdicts that differ from -01: one derived <spanx style="verb">all</spanx> clause may satisfy
several parent clauses; a PoP <spanx style="verb">aat_aud</spanx> that does not identify the
enforcement point always denies; MAX_DELEGATION_DEPTH is at least 8;
NumericDate and depth values have no fraction or exponent; invocation
arguments and the PoP's <spanx style="verb">hta</spanx> are checked as written, including for
duplicate member names and number admissibility; <spanx style="verb">crit</spanx> must be a
non-empty array of understood parameters and <spanx style="verb">aud</spanx> a string or an
array of strings; every AAT carries exactly one
<spanx style="verb">attenuating_agent_token</spanx> entry. PoP payloads no longer need to be
JCS-canonical.</t>
  <t>Sections now follow the token lifecycle, repeated rules are
consolidated in the verification algorithm, and discovery uses RAR's
existing metadata.</t>
  <t>IANA: the <spanx style="verb">aat_hash</spanx> claim and the <spanx style="verb">application/aat+jwt</spanx> and
<spanx style="verb">application/aat-pop+jwt</spanx> media types are added; the <spanx style="verb">aat_issuer</spanx>
metadata and authorization details type registry requests are
withdrawn.</t>
</list></t>

<t>Byte-exact JWS vectors covering the verifier changes are published in
the suite described in Appendix E (<xref target="AAT-VECTORS"/>).</t>

<t>Review of -01 on the OAuth list is addressed in Section 1.3 (the
comparison with HMAC-chained Macaroons and SPKI/SDSI), Section 9.1.1
(replay of parent and intermediate tokens), and Section 9.4 (no
re-keying on attenuation).</t>

</section>
<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>The author thanks Alan Karp for detailed review and discussion of
capability-system semantics, confused deputy framing, delegation depth,
revocation, and the relationship between AATs and prior capability
systems.</t>

<t>The author thanks Antoine Fressancourt for review and discussion of
cross-domain privacy, transport binding, remote attestation, and
constraint expressiveness.</t>

<t>The author thanks Igor Kammer Grahl, whose independent implementation
of -01 identified that closed-world mode left no way to constrain an
optional argument and that JCS number canonicalization lets distinct
integers collide, and documented several other places where -01
underdetermined behavior.</t>

<t>The author thanks Neil Madden for review of -01 on the OAuth list,
including the comparison with HMAC-chained Macaroons, replay of parent
and intermediate tokens, the absence of re-keying on attenuation, and
the pointer to SPKI/SDSI.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA+y923LbWJYo+I6vwKiiTkrVJK2rZctVdYaW5LQyfVFLcmZn
d1SIIAlKSJEAEwAlM9PuOE8nOuZt/mDmbT5inubE/Eh/yazr3muDoOzsU2ci
JmJclbZEAvuy9trrful2u1Gd1dP0KO7XdZovkjrLb+L+or4tyuxX+K3I46vi
Ls2reFKUcf8mzetsFJ+k0/SGvz2+TbK8ipLhsEzvG8Pg0/J6NC5GeTKDicZl
Mqm7ebbM7mCGbpHAZN3Ev9ZN8LVuTa91t3ejUVKnN0W5PIqrehyNiryCLxbV
UVyXizSqFsNZVlWwlHo5h+HPTq9eRdm8pK+rend7+zmMkZRpchRfpqNFmdXL
6KEo727KYjE/in9Mh439npdFXYyKabz5Hr/YiqKEvj+K4rgbTxbTKW/kHWwg
7mezZDhN4RfeDzwTx0V5k+Qy3FF8BTsr6PN0lmTToziHJ/9n3G/RS7Ioyoty
Bo/epzjBxavjZ7sHz4/g6T/EV7dp/F1yn1yOymxex++HP6ejOn5X1LzQze8u
37/bik+SOonP8jotR7dJfpPGr2hAHmzv+bOnPNiHPIMjnMUXaVUsylEan43x
MCdZWsabHy7Oto7ib9M8LeF4L5d5nXzkAQ4Pdg54gO9+vHQfHepH37uPnutH
V/LR071n7inYymI2nJdZLut6drirw8Im6BQIUeKXaVXHx4uyRNw5L5MR4Fta
yZDPtrf5JTijYtKF/58XVZXS8cffp0s44VmCGMroCmuRN59t7+3ym6fjk8u+
+1D2cfzq4tv49PjkdZzk4/gyu8mTelGmVZzl8XfvL08BFb4/j+/SZbXFrwJU
9/nVV4APy+7lPB0hKMdxfwq4mtW3M1kCvo2DHsMPuvVnduvHSV7k2SiZKv5d
jm7TWQqne3yps+0etoIyhmOTJ/aeyzFfZKPbBkJfpL8sAKoCiucHT3cdRtyn
ZZXABvBneCg+O1GcqAApPpyd6IafHu7LAdOliHd7241ZXpVwK/Bi6Zq3d+wL
5wl+X+PAREmOFRr7O/uPD3yZlrDM+G1aJ2NAdXltZ1c2/O0iG6fTLE954B8B
+Eh8kjw+67/rx8dAL+CBksaqkATgD1GU5RN77866J70srSdCjyq4YouqO82q
uuXbukzyKqGBhE61PJTR9aqX3RFSSFhS8MxDNqvSbgJXVj+eZvLimIlrOu4m
Fg763Gx0s8hy2G4lzwv5axse/taPk6oo9WMisGNHw3mF+iBgX65UmR7EH3/t
LuDFUQJ3TajU7tPne3wAl+ffn8XHaYl4g7QayRaQa7myz/cF285m87K4J77w
AOQYNxAXk/hikSNw4JzGQFOR4sGDU7gAuVC5SzoKd3B8+s8VG+F4R1mVxi+z
PCmXSiIv0jncXjfE5vHL9xeCyM/2nsuC8ENDeDaPf7zSZ9zePE7yQ6cfmcYK
jm8f2LFkciQfjIHj+DQflcu5LAIogF7ovT1B+ot0VgDI+ld1WslqAUyjdAzk
5zLevOhfXW7FfUCTrIax4UMZYF8BcHJenOtqnjoqcYUUcpIBY8I7YW7WaIRw
F54s5Gj7UNeinCEf40kWclfd6/DC+7OT495xUdKliWMRHjbez9P87ARPI0cQ
4APxDsyX5aOinBclCwRpWSKvqtI63t2g9z1nxT/dWDhrAlBM7rLZokwaX31X
3AKPKJPxNF02vnoLlC9Jp/HLHjyVE8+wX78EnCvicQqEZJxmZaHfx7BIECbg
rdXv9N3j28XoLn5bAI7PCjqDOAZaBN/sbu/uMSSS8iatj+Lbup5XR0+eFACR
bNzL0/pJBcyhkg+6IwYR/Fum3Z3r7d5tPZvCCC/PLo8/nF2FYH2ZVaNFBqOe
ACEqs+GiRg7TIp1ttK4BZK7ekIeo0lEPxJInZTpJARCjlFbFNxYJoy5j9Ujg
raP4dDTN5hWKFot8nMhF/HDcfxeu90MFhBqQoC6L6XRlqe/SGvkDMBZ4cSu+
tAvoxD8Aa8CnAG16249hx0vg/XfTZR7/M1Cw/K6JIWdlcjfN4m+LX4GlVrf3
2TRrPHECwhngyetiOrsBWDS+Pb+FN+bz+Pvyv/2fN2nZCtgbYPCLYW9UzJ4s
RknefbghcMKzb88uL8/ev+v2r65O333oX8HPIYjeMrWO308myLS8wAyfBZft
MRB8n5TT+O3oW2EEIT4+bV2yZxs9WX1WPBHW0R3isYbs5gnL6eu4jZfYi1xx
R/d+0W/dcvclztLACYePcWKI3O/d+yPn4zfw2G5hFDyv9+HCSXJvXwvdCi/Z
fwH4Zj0k9wNn5h/g6R/7FyenDST5MSlBengMCmcgZQIoZjO4cN+Wye30dy4D
3+fX6e0nPCO81b84Pg8Xw2oc8Gkgfqne7soxmE18Y+uxtX4YJ8s7uIrIFIDH
LH7nUhf+9S5w9cUTwJQ5vHR8etK/CJd6nI6TMj4vptloGb8BRr0AEQbmVBwj
WXEtrax6I3x/Tq/T1OuP3s6EqN8/7l+8f//usoH5ySgBaoX85RiIVgYy6gNs
jICYfqwXyRTE//s0qZnRnqQjAHWJqsAK8QRNpAbh6HhaLMaPAbtfgiAE4lB5
A9heNInbdwUAIRsOK1p6/WvzpKYTePm0BMp00/J2P79blPFVMl3Hen8oURlu
fpkAzX8DGxv9mgs91cPf2adfgWsAaFAi1928O7m8BPjhE+3HheIdUozeTVHc
TNMn88Wwwr/2d54938Vzu+y/ufrn04vDg8aVBhiigs/SJAqgZ6oIMJCPi9kc
2GwJSnBVp7PqMVh/l5YFXInXPZBWpvWvsrlVsJz0UKkrCxAu7P53nh8erNn/
OcqA6RiPAdeIJ392enoKG/ihmPbip3ud+F3Ri5+vw+WMmP3Odm9nZ/v5k/OL
98c9nK33HBRFeOU10Jyfnj1bBQ0g5gQk/TGgIkBhGW8CVj7cLuNRMk+GwBdr
ROFZdnNbx7eAuPEwTRFq93C66fhRIvAObQ+vgcosAwg8e7YGAv3jt/Hl2bfv
zy9jEC5FgJQzgRt9n6UPCo3dXYbGGlQZT3vJaEYAAcAwUPYPnhzs7z573nt2
uHO4jSA57r89fbPbwJYToBw8MxzIbF4DsvzMmFPFwyUAqQJZ/7Fdn44L2HIB
Tw5B4xmndd0URs6mWRJfgkqfZNPivvHlVZbkv2Txq2TlHiezDBAvWa6Iue8A
54ppUgFhwWu8RvZ5Bae5MujxbQliZjG/jb9Py9Uvi/xmmeAh3DYH7efjMoUp
r9Ly16y5oFdTIGKgjV+B/v/f/o/w/u8etJ5YUn7M7unAErjVuwfbe72dZ892
UNA+OT09f3v27gS0/+Ck0P41nWbEqvpnxkD5KE6meTIGCXqW/N//e9qE/Vt4
/ecEzRo5yJNNcFyCIgBCHKAs3OmvkgEam3q6vQt4+OwpQuBtk+W+BWV4qlzC
GyQDifkRuaT99XaxEB8d8ZNzeRAlw0A7QLFgt98iFeyybLAJ3279/mXCW/gS
3qh2iO0mXbcmBNw0QS05XBvS+n7/qvvD6fHV+4sG/4Uv0GwZ42vxPcwD5KwC
bSgV2+lXyXZfLcw9GU6L4RO4yPkTnLB6wjNWT5Kk7v78UHXl997PzFr9srvf
NiXAlpWDEAG3bEzmZph8DjcZUBCtDDdot0V9/e+8n7pMU94PGpV0O3QL3707
u3zauINwljdwyWdEqQND7NvFtM7m8jVwF2ayrHk+ymATULtBMz9J8zxrKOzf
9Va+cVQXVYTjXvwDkJ3XhSNl8uJpb+U75UZPn67hRhuw4tkiV21ZeTIwqQ3l
Qs+ZCe19BUsG7rP39GB3b7uH/xzsku705s3pxXYDohfFcIHmcABXUWXiTige
gKVUcUIWfTI5zwG0yeg2rgs18IiUzpbnIh+RPR1kYvn8MZiTuHbZA+EFVPgy
BN3bXuMbpXnbawF3fnuC1gv4hs8b4YVGnAqgP7+DUdUMndXLVdAB5B4eHnow
LIgcFUGwTqZ31ROAfpVVT6JutxvhXzEQ1Rq9BVF0dZtVMYjzC7QhxuN0Qrbh
L/q3NuHKVVsdgCsy9XQcjcqUTLggpLOESKhcJ9VdtxoVcwC8N6Gi5Ahshwym
ccVSSg/4It7xCCAPVLYijKkL1J0A9/jRWbJE8QlWQEeFT8DueeXo6YItZXmN
ryZ1lMzn0yUeMqy+Suk9td7E/ZgM0THwfmBIsSq3sMi60HUC2QCeD18DvGGb
/EIhdgjSS9JfUCWBXYIOURYPfqB62QHCyfZNWkAazRNy0dAo3wDA0zkMgJuY
ZpOUVMVpNsvg0Mioi4rblIBvgEZ25whOC84fUJkom64HxKskX8YpSucjMgfH
8wJ9HggKED4ZnKBc1TBAtUhLWAN5/OA1kIBK9Nb0BBkChoH2VVRceQA2tzzi
NJGzjzYvXh3H6GbZYjSAc+xO03vgs042BjF5iiZ3wKHxuIqbBvbIfZuPHVom
MRoCzVnHeKjDxRSt2TiRokMEEKzLbCTnjTClUQV2srdEvU90cOSsRZ4Zp0Ae
IgN5QNA5rUPgC0J9kQOnBQoXG8sOYUWxqOOcTXfofa3hkjG26AHEfAA9voiz
bDwGHTD6A/oky2K8EIdL83qgbRilRsAJwOpxOiIih4i5QCtiyfCHpwwCjyNc
eBWDQoDHAtgNaDIj5gKoQ8MDfOH1e3QadmI5KIDXKdJH2jVcuSgH3cqjdsxX
YhxPQMinXdEKEPhwP4D0ZDnTDRm4Ew8XcB6A/7BwHIpRCT3DZtDkHiR6Qmm+
MDECcDItHuIEj/0BbmoKINOLOwQSjsdRLG6IkFeL+bwoAZt5f11auxsCLjL8
VwKOkD3azwq3A2UCBFuKAMrw2jPceaWIU3Ar45G4WHHcnqg3UabqTScmwRDu
2XS6GNH+8UN4F48JHkafCy4CkSxOP6YleWGITKUfiQW5NfUCGycTBXgS7mX6
EU58UdJln6JuhD6CNkydJ+gsypHxwT9IBJFQuk3jzvD48LjhixylXtoXgvcm
QUxPpkvgF8i3GRiB9Q/POybnVvTbb1/jA/v8GXCmGpXZkK4wIAIiJ051BAeb
5lFCfILWTYSmpGOtgF6UQGAVUfFNcblU7OREupbD4ddwN2Gz0UNCBJ/u+JJJ
H+6wSUPhBgIAQZDLZnTe+dhygOEyUqTuwPKQ1iXTqqCjnCqBIDqAB0BiGrrU
7wm9hRFEcOXEfgo7noIuCFiE8AWmiWfn+IkwIL5SHUdAhHDgBObsxPjKm++4
MWifjiQyhEdpRs5DPj68IELUHUsdR4513ifThfiDE/MgHAlTX1pwG3eJBNLK
hWglKctWd6mzwnlu5sAPp0ZXOC3pDkaI5Mwie+q7jHd6OwZvbuEeE/iGi2yK
eN30NkbqbYx/+028koB4uP7H+BU9i4zq82c9HxEckGV4XsUX/LffVJaHoQGq
tITuMEEbEIE68tKMJzJlAshB0RELhOBNKnSOBCkRjswRRcVcHfAv4EAERZB8
KK/x8sgwnSBDxJuTEZIhYJDewuPAoeIEcRZOCL747Tdn5IPF//abytCw8fi0
ebIiZPBVmKbJROZTsctcqXlCzA1Ofk78CzaDy2CUAPbC8k9IQeT+EiLgZYCj
B96bgZKGLIxR6LaYI+NOUOyrNRIiSiSmSmk7C3sqFTJywwhlMs/GwBVIvidi
PCqLSmSeiFwaCQrfRKTLBbNuYQMZQpluFLoe4R4RUSbMGI+JFFuKS9TDUuxk
iUhdGPQkHMOQEEIauhggAoDgBWCBtxED1AMO7/149vbyNGbK2gh+gPdx31Pk
fRow8QLBu4Q7Np8mMGCewkZIukCZpwIdBchjuSA/Ea4faRVR4XFWwZUc0akB
Os46jPFq0RyTRRMIvBg/P38+wpfYzikUZzZUoSxBFaeLTHiKKpbSaYBTRdFB
KhwJ7uAgIIAWDznTbtq9uy+I6UMU2BmZ6iISAYYUAaYNfDtxVljHAugB4pE+
Ns6AANZTOLVjd4H1YioMmKUOlywXsKTt12pYAm63AA3rFvEVWFV4iRFvJ7Am
RRAhHXgZCGlzPFHFWY81R3SvGGn5ajf0jAfSWRCdeS0tWo4DbsqqEpBrgKlj
kcEWOl5fYn4+ghu+QGNcRItlhkHAxtmB+twKZeangI4MMyMI1EjzSTCCM+S9
R7MELyBCFcSUKkPoACEC1ZLOhuhLjM55p83RzMRakcQB8CLHEmgVCBbAURQT
AU15HfROkadoyphPiyUCpYrheGhzaDWeZHC/l/EN8z+iJDydk4R4dCfFioTH
7I5nkY1FQnpBN4o3lSs97+1sb72Iza+GSQXcLrpZJCVQtDStRNMjBQ+4DCm6
/gJN4MTiWYrcK6tmlRdcUIlh44nV0YkBVhFiUdSN//SnY+ttAImIFafen/4E
aq5obxQ69Gio2+ZF/2IrHgRk+nqc1iCVV4MYI7sCjVy5UqiRwzgYVjoOlPFC
6LnDYQfKva0ebcAKvDBYggbwWjYQCEhEa26R/QfaeAfmVfzmrxF16LxZIONV
d1qvUcdcSxiHFPNOqJm7Be/LgimKF77P7wC1cJ2kL/HUqECTRQSJC64IsceL
N2Q2QhYFcw1G+aT388PdgKZDQkQniGLtrd4vfkvZaKDEwrPDZIQBhEhjQnV+
jSDJqqfbUBXv93bl4PZ7T2V3rxnkgJtImGl7MOFSYM7rdwgAu2NoidhHhnNv
azG7mmsQ6twHoW6eF+dbFIAVwgwlDhhH5iju09IhH02GkEk/IlnQI63MpvZ4
U/EhbCi6QJVbZC2AJYMAWTYSIubRvLE0H7PJhM4+qZUO0WuRkotpMaIIUIcT
T4EYJHmL5cUdkj83hDT+RqBAMQUomTFCuDGfbQn/nhRTkHGIO2UJmoPj6pZl
nkAEIyW3XrHdRGmOTKoCOvGv//qvDIkzwgC1U35yPzBcKrZQIHXyG+ztbOlj
99F7EEPQtGJi1lsG0+vaGGjXDHQ+TTiU8b9jjCs0K50h+XlsIAlu5JFICgGs
I6Rzwx6aQa0sfF5wCPamO0w+SCfd+hMjEEd90X9o8V4l7zTEG5B6GNFJQHMW
RDaV5Kj3wkJBwEMBuM0869kY29s6ZsIOo1cEGOZvGkt3QZhnK9KKIOBvU3TY
29/iG25NZ734rMZbeq/sC7APve9kffKMGQR273sJQ+iOVNZIlVaotv1AAl2Z
ZmIQI/kG2B2pmDA6XFSyzrMsIKpnaNe7L7JxZXn2M7ylFHfK9mXEl83+HMfK
PsYn8O0DSDwpkSkDI4A9E7AxUOCM4q4IySYavV2JXYkoE1KGiqnVOJtQFA2J
1+SSA0aDogZQLQzYRScmCNfw9+fPHXLt/fYb/I2/wEMgygOSvb66Oje0lQ1S
IpoodX5BGgTqxmwI/KayQl8xBP6di5CjM6t5BbTuUClDs3t8gxIL3xLOHQHc
ylCsnEwBmKjb5WhgcEQVCNUf/hC/RJEEYapqeRStiwUOtPNpWhNPn5JwycuF
3/P0gUfvRCJLLnlJZco6ASnNHW+BbNUuN/uXW4JTQL5H2VgsuzwKY/F5maHV
gzx1KL2nCUr5sIAK9zqALwZqpo7EFoQ8xAfBoAMABQ2W0lOSdUcSRC/QYh/T
iH1JtBK2C20aSHhKsg/kVrSJGaCSyIGyYPUmWOPRkWfGXkpyHgl+UrhWJ0bS
sowMdfLiCos8+R0bI6zsQXtroRZRwOLIRBvSRza89y9BuL5LaTwRwzNWgUUs
iQJ0esxaw1KqsdmgnJ9aNl5FTt0dN9BCpFkBrkrGMGLDRSGeByOn9va2jBtC
rlsD5s701zpp7K7po6JC4uAXVYuAjaDecPoRDZBZLQqN3E+1srVcZpILMFJ+
iLG9GE53W0ReC8wqEZtF3SA7foLuUVIFAxlDoCbU7rZhRK9FUkGq7pQEP9Ej
frtIjI8ZPwVLYIrCwULxtwUoiFG00wO59E2aVEhPQbODVaWxrNoIm2LXWZLq
IGrmN+TuDoGjAh87Gvlei+mIl4G3hZZKVOfhlvLD1qgP3oCnaniHqIB8EPo5
cBjxhjuviVeGneOGrcW7uGuNfPaowIpRYD8OLAjo44id/+ueAgzFqtCuFYRe
qT2c9SxXRlu3OM4Yvm3uRlwPqr44JULD6iS4SGea56AMoP8t5nlZJg4injRm
rbC4fVzcD97/aeOqCSwqpzsTAh4FMzWxLhh0UA9Qk9ixFaNEO6y3R8kl9X4v
HEhoJ60blneAywPJ8gkGo5A1kWy5bIKiBZKVCM4HHujKy5h3xzQN8wI/f8Zx
9dcDZA1VKFQZONK8EiWbfiSL3g3lyeEYX0iwwVy7LWRlZWIshDma0pAB4wj0
MIahzG/JfCWiF1CqXuyFJ8R2ukaoU5GM9eSY0hpjJ2qxSIcSDN/uC3QBIVW7
zeZ4UZgN/4g+08hFAaONWgOFgdI7cZDMCxoQPOKA4CNyUPBtiJyZvPJ28iVx
dzE1ylveKsZBFOqxBLCmo7sqImYpzyK1KTmouxf7JTLCvoZ1VnROgRi6YG+W
8LcqHZWpR7By3EV+qOOrW0guNPpzs1I1RcQ4EPQKssrJIoUgCyIkN4gIdfM6
gzg4XwDxH6GeHqEjii3yKxdXjE4qwTSG6aD3ebqgm425QqS6somQLvi4wLAn
gAB5itEjd5sg/+UtK1IRUUWLBZp0vTVCTadoCESplmUU9W0VgamBpeGPKKNX
kbW6Y4DDiuWJjajMmPkGLGOFec6HHHnbTu9gq2fMevtoIR8txCOJBLULC2CS
CZDCI481VzGiXL1x6tm8WoPL4iM7GYmgY+7fk8uTyzO+37ssBHsGPTanRaY8
zFtFtwhoD9bnMPLpgxIgYWExXHqB8UhFCmCDnuhllXBOdKv42G5ydJuhv4F7
cVOtcH7SWUGLSFN0QiSi8aA+LYITYfiSmSKqRf5IjsxZVhFgkTOBdZSWOTKr
KC3ahjM0+fMcynoWw2oxm0uCDBMW3I45WQouWuVWfM9jcVpGt8VcrkHIRjBW
5jFLvFwbx2AaPOWbypnvjCcN8xdNlFMwuDmqYUpmbAkZQPIpWW6AQpIEBygk
3h8ezlMnj6TMIhi7EI+jymVtH7FSNAQd4S5OJrXY2iZZWdVGPXDumznJIWTX
jPiGeaRVK8N9ViwqGVIsgAQD68MU4HolYoWGmXGJdPVi3buQANQpMKcE3o5I
ccTk/mlxE4sNGUgJSJc0V1KHtJkJOWE2hjMQukYB8cD9KmMERmOwDF3vJGrG
JOC7a8m2Y9HIEc05d0qIeGCPUZwz0iscLWb6wbniP3CociEE/n4eACXqaXTY
M3JhITvMKcxLpie9WgxRnmro7gIBnKM8crMQ1ZmtiwoXUb1ovDhD2l/BO5WI
dJwLhAOqnmkj/pwdVCkK3j4HiPWXL2peNT4KthbbaxYHxDy4dNGXL50RCt11
UwEhWqUdilqVdyzhRN9UljLQTo21pIqMCZpi9kR3bTNgMLlrKqtoGfYJ9Wqi
Nu7idUn3EgyhfuPIhr0Y6RvJzcpoK9n5iJ7IECL9psNGlE5sJu7ELXNImH3C
/ngNPqPVBMJEj9LP0EmOt8yFw5lAPXHUNhTuVcc5/A3LZa9ZazxTkRtrlZhr
GGYdVRVbjFdOekTy8VBEjQxhHzEgtIAVuIbSQsqgYGLUgolIhYiyNZWkjmeU
Jga0FVU74l4iLYac+xSRhCYqIiGAUSdO8WwN9mWYfqnkAmguiN1AroXuCW7S
reYYIsF2sfe5QFs2DJEAEjU19VjlXnnpd4RIuVjaIGhMmD6+VJRspROIqstV
40YjpU1iwkdkpgoCQtHZDrVPcR1NLuk5PRAwDK6Nz21IGAaxsmEZKeOAbAjs
BlzjgkVDb7s9i3iXHq9YoeSIvT2JjG4TCrMKw3vVo0DgzHLCmnIxTTX0UfBY
LF9klEoimlGNZmpESrOyxRvHcjV7szj9pVkNSbDrixU3AL1cLDIKm8FFlbPY
fvoMzgJXVjiziZttmNYPKUYbSjwhnRUdpz1IfLmVYdPps8jC9U7IK75KK00x
FBnOuzgkspZHYU8qIe9oBBemJuLgRH5GjMVw4G1mjO5ivMujAV+J62w8IH9M
mYrGaVxG36iOSrI5e29565H3UVRB+skAYHY9Sz5ekzwzgMN7LCWd978u8Z1k
01FBGRh55G2LGO6pjlwTBFyvt+ZjGLAupCceaYsCylUlXiXWygHeAY1iQ4p0
hmNezLQ5ue09W163iE7MRJIDkHQ1AGKSKzCtwHu7BFc78SMlDNADtFoBAVmL
w3S6fSTIJLVwErYAkb7M1z0SZD9aDz3x7iZ5QyDxxiy/GXdKxpOkM4uRMXQv
VM5iZ4hyJnzHsiPQoQ31bYDPqWHWA0dCHN6fOyX0Ck5MvVxxPKD7gLLCKU6O
yFEqDKhKJmqONjSBnWpolBfbeoeDAxFHUZCZoI12EqKoYwkUDqoJll4gSDD6
0ic5aAUAAcRYsZzYvlqsxYI7SXOn+CK1wyRaF2UO00naLYZsWqV8RZSVsHEW
uiMfuilrYM2hbR0YnaSGvb5Ealexi1lohG+4mCXk01Rax1DSHpJ3kJkq76Zz
miH+y1S1TImMMh/UqaNXsI7oD5ghO8vyAjS6JXMQVAUfiJpsvP1webXR4X/j
d+/p54vTf/xwdnF6gj9fvu6/eeN+iOSJy9fvP7w58T/5N4/fv317+u6EX4ZP
4+CjaONt/6cNPuGN9+d4TftvNhjA1kGP+wFYDMW4Ahsm5ZOC9ShGjPb58vj8
//rfdvbhQP8nNAPtoNVXfnm2c7iPYZ4g5PJsxLr5Vwz0jLyTEs1pgGhZnVBs
U0WxIXmMfmwA35/+BSHzt6P4z8PRfGf/r/IBbjj4UGEWfEgwW/1k5WUGYstH
LdM4aAafNyAdrrf/U/C7wt18+Of/TDS1u/PsP/8VUMbEkrUnrlHe2tYRuQrU
du8T1xIVdMZR82Q1Pc15jR5LaaKDk5SUKipWPDhIUgIlV8wNRgOl1DLAJJNd
xnYlukei8OIx/4nCemhzR+z2cmEueRHbtLMOc3bi6kfx9oDwKxrAI9doORhg
UiDv1DKIlXg2a/8Bzg7Eel6wXX01DI1ojvE/hokoozTD0hkc1w3IHIJkdR0q
zWp2Z0eixzWUWQgdSqceMhzwhKBBAsLKKnOEGRkUjHIu+oK3e0ccmNrYdfw1
u6aYCXyGImEjlKvYVG8kOFGd6XlJ4AoSrSS4X4PFe9FZbiJ/XLyaifE0MVud
phGf3b3RensDBUwQ4EKY0fGXYiYC5DpaGZkzRzwkOy7SjY9UnwgOmGY6N7xe
53Oxci5OS+xCIhiQDyQfV6wctphmSP7PhbMZ97AP9+rt80ZfchSN0INAMYLt
oiHfCiOh3kZW7yTi1AXMQHShPh3RkyqM8sEbjJE8aLzMuUQJjgLSkirgEWl/
K3G+Fj7+MNh/IekWEteWGJAlHmjt0CFCZoCSOQH819RwGxsvBhdBPAYakDlp
6Li0ViawHD3adt9EcPBiqOo1j1IUlGN8oCzRV76ngQNc1kfQicx+KB6NRNbJ
omSPldTnRZkEZdQwT1edJWzLjWxO7rq9EwSnYmvk4wkWoPKsiQNV1TmIXVjS
RVMxV04R9Lo8zCzyeV9m68t5xmGpGlxPB3Ii163JHFyeDlogw8EILImyDXi4
E9HeqPBYyQBNGmHYvabb3QahEXQip3qF9lr/1OZKLvUWhvg7hjku0ipCaq+O
USQ3WJesLtmDvBrHoPt3uBhslFNYylS8xGHYgCAHJwHwR0EEqqB7MRWgSk4J
6e+TRS4OtTLun5/FLplLqJjJZY/Yus7p6IgNlfAEMuvR4aAxCpUpV3wYcJEe
dR+wSZn0Tgp50sBofrN6AbQyjU0kU29HbBIERzLW0Hb6qjscO/P1kaQQpGOu
VMoUT9SNIHnQxRB5GyYJm+oc0FxTg+8sJfub0jMT854C501NxKRJ6ZVDWieK
SYhYxsdILxwjYxTcxA20JwNsAW5mAFIW8jh8j+4MIOu63AgmSYHs6XkZVSfl
0q2EYhx+4KNxKBbB5SixjcZaJ34NLRccZOFFQHffVgbx7/eiIL9CLJ9I5+eS
7DaWjCkrmRpoUrlbRnQ1mFYorZBpfsKKKN0YEQCINnYkoJY0etlvUrl75m4Y
YleKICr4zr5BuuoIFoJwilFfLp80URfS1QoR5n2lSm99TFa7hBAcJ4+nrDOr
orUy76r01zT3enZFO1qJJ3dyDqbw5y74y4Ve8w2LzF0R4bAT5hTYfVKwE1ux
nWMqao9XQ67LJ4/x2XAiOQ6YfkxHC4nsdnkR8FTVibIaA5KXWkKCJc3VZGy9
4y6QDtOfxhWOFwWlDDr4pWdZgAosxBBdUUObSlBw/VCI4o81YprpL4ncfRK5
hVI5f3EnVg9E7ANNDNEULh5ZIdZZ2CRjIzhmgwAdftIgVSQhNEyI80l2sxBW
KWqBr77BoGs6c3oxqiqRyVL5HegXKh8iNYr9+ryRasNwaoZ1zRg9PJNC0Hhh
m5YsKKbGrK+5FJHx3/NxZEZ/kXviRLozUbirsM4tjrNW8iKvtBWX2qMUft+N
RbsTjX6pUXEUssa+inNRPekWnfkb6go4tdZQQemFdFV1o6RAvilx0ymsbHo3
qWgc6eQuZV/ZEF1AVBNSylXOjRtc1yZmP08f1Dbq1FvRIL+kmfe4UYIWxhAX
Nhv0rRezAmlmTA5ItROz+6m+XckU94Q7Cgi3TXuV8zb6jR4vheTSM02Gx9fG
iAw2mMTp1g2hmypeeOzC+DCUj9/2f/LRtDbfkBQjb0QZEKMgd+EUS3JQVnGS
rzhQaMuhhEnSEXvQHzf6xA2jj1OwjUFZHL9BtQIpT0MSuKZUxptn+zbRAAPe
+nZBaIwbggw3GsHCJW0kWdFUsGLJ3FE1ukdEIiTbHgOel5HzTivu4RUqZlgG
kGSyqpngZk5RbHDc+QCkC1glmjr5AbEWJ1Wklkte+9AxxJ7M4B+N1XJIRwtP
Fiz3vIjEbYmGr1HqfEU1CYvqEwtMt4SrKOjDlj7xRPGn+Aodop8oTyFD0v8J
49epDQkC7FP0qdvtBv/Bu4Of62wAT4qID2/rfj5pfwm5IUb4F+sqSs4xNpy4
P3whPzkoqOxKatoUcQiLsMS3yzlgL90NmZFt9QdPd9FWTysCTrhuRd4QtGL+
AaL04eKMEpdazDzw+2obDqXlqvFShvUwhdVu6VKSGpfyDgQYuF8nSH6C9ZyJ
USxuZOiiZYdHSD/OHx3h9OM8U6a3bgxiUJ/igk0EwetY+zXTSrgsc3PQ9rPt
bTLgI5UakNFils6G3kbB9CaIzKU8JMdL+fHKX0k2+cuSksXYnBGVvCoTirkS
jQ++dOj+qa2yBzB4SXlATuWdQ8hDENfTfJxQeFeyNLcKzjM8IUMGP5G34wb2
GIDopBEadxRvs+7pTa4dbwyYTxdVvMNxxQ9YHskcyJ6d1FPWdRO/TT5ms8Vs
JTbPaDxq32eDTNtU3i5ubgSdyaYg+Fb8xB/SJu5qC3ed3bi0/RU9TRE+y+eL
2k77dMudb6uW+UnOObyUnHXY9D4EiUs4bBQ2CRHU0ppZp+Pdg4Od5xLbtL23
i65MTGAYJNObASv40WBDHtsYSOIaNvX5/HlL4igoYrlMPbIg1f0eufb3VbSp
Qx/SC2z+UgFOcxOCBJPVFQPhdkW+xuNMcu+SajmbpciCfR51FdliDTtorTnL
JRzLG5UB9SxpkDQkNUkqWjFEI4vsFKTTwEPK6MD2RPmC7676XyZlotagCOt3
kbqHRkKS6Pgy09REPp2gQ+aGpL6m743ZenerEzl2UDWSyVgNYSElq701CdSs
DsoI1i4kBqOsIhmbA3MX4wy5YGTUJKPNJPWK3iMG5SjifWiVQc85NUaK81ps
imNvr+eLO5DL/C7HxHbNwlULCWYMWBIk/A+tITwp7daZVtB/P83uSG5r5og0
0knYZaE6bKY9XNiDjV1ePn821Zc4PUvFeFyrZj9nWJqkwsQOSRCOH0ChveG8
tnhGiY9ewF3kCzYT8kb5mNz2NK6Ft4bWjshVzKLACSTCLuW8w0EIT0dbkiLk
rKUUHzIeezkyMudrQ9yoQoskSZUp5ZtinHWkUMBQA2M8fA737U5TRdhSgpHH
Wk2OEs9IXkUzDNb7I9VZMi5K3ZhzpSKDQUkMwTBMRwkGYotrACtDYQyxUWIo
BPxIskOMOMrF2VyUj6oKLuiAdA05xs2zp5LMTnijFeZa0mFYBmZ8xnwHNq5E
nrAcxNhXr9ScYinpoC+yVE5WNvREMTOYMSUaFpjJjDyQc0qt07MjQhh5O0FQ
6mF7uoBhRuEDKh0uW5L5OpyJXNUaN4nxOVh8nmknG3kAH29SnuaRpWDruoYI
x0xg9xAj7oTZYVZ0NFiU+RHGwx2hkjurjigg7AgkoW7tRjiqbpPu7sHToz/7
z/46EKNhNAg+VcHp8nUfXyFx0n8v3Aj75wFzUcOOESylhgLfxLOdluqpR00r
oVBSyhJiMc/ZRezMKKeNxUw8EOD1EGYRiIVYJoOECNRInP9Ko1epnN5HLBAF
BzEtirvFvL38Kl0wPrAp3xYGBkcGetuJPdnI5kN35FHDNmobFVs85JyH6gMP
C1HEo2F6m0wnhny5KDn2S0kdI7Y7eiddOFXUSN8KHIsxhZq57HjnIfLi8Ast
dcBRe5RkQklhC+AyHV9kFH2+ppEkm0g0abKrQO2Bwm9AR4yEHC0qKjqC9eDK
irGXSCySrixOdO4L4ybWL6UORcNG2aBAph+kBlluRJjIJE5toq/GxV+9ZC81
Ks4Nh0YV32fJOlHx8Sq+Nnd+bWVeMak4Qm1ETNhTyU69fK2sSs9IbtAAjVt0
hRHUcHKDDdO99JoMw9eEXBvAGC4JxrnMglJqxJmHCNgBWZadOsUxHMlckrOM
RwynMSWC8ZleZDeuVHy3t0PhqSBCYjzBqJhOKSwNG+dkWJmu5uBqLxxG1maW
o1/0BnuNkf5FZjwqJCKOZvmW1ppJnDaAHNhcJLSbwIitzvhaORs6Ri8iKlLX
1R6V76Eq+L9FcbzRCvWNo/hfqIbNb1pKHKfD8uHrwN1xDyJY4Ul9Ez7CyvnX
iDDBx/AFmvAan8GnHtjXOivg+XUxcZPIgwxIXOvGE+xO+eSXPYA1CvW9+XiC
kXfy8b79+G9mkM/u589+7A3ubnON7SU+Npf8C3DC5d9nzaKxT8g4WuFy5ROQ
dVKsdBsu1Q60QaEEuIzWqUuMlMQBQamA33e2t+1OI/sv/v236LPUG2Lk5/vC
DkW4PbM5B56aGxAPfvtM1xC2k3Fek8i8aRV55iZuaBPA4DiWOpOCytpR1GJg
4MSuVUFNTLLEwmCiIFUqwjVSmDpQjXEXLgBQXyy62iLwDre4iqCuCFeOr7sg
AYxyd/awMv2ZK9cscjHR8tPW2DfY+NOG0i1v7iNzh+Z94Jg2WYxi5byUafYp
E0fNiSm91h8K1leeMw/oxe+C0bnkWKnWxCHW3J4ki2mtSZRBgTWS3tP7ZCxq
j04wXEZk52TFqHKjYwiBP+EAknrY7ozlVVZmHm4xzOwuTedauIXgSCfWsY42
qXFXq4t7AIrcGOANSo1ZnysxtafhWO/nqtYrILTWxVx4lLCfPNwpLgN5LBvU
6YCZRwwUwgPvGRoC6qVYQoH2NMC22GKid2DA2Iz6lsrrOlMxawwiuJALM4hw
YJehrqgXmZnl7IgtDSagrkimT8O+h2KX3VUkRYgyKiaExhgYC9MzQHYkVumz
noNkG40FqVbSWfFkiRMxdF5YV4CmRqprarqk8LesNtUUeli5UuBhbp9RcelS
YxCyw1e1NK6Rr3MqjMBFCRh5KtXxZ9hZwyKnQpTUqkiC1KhqCs3llS+S7a0N
SCJ2PuThJSbsumJhGP3LY5IumRa0oRjWGqqi8KS5tBZno7TRo1jpkfNwRg0B
310vJVjr7ovXHSx28VkSAHnl6tv3xMTczHE2divqRMIwlrwATpJv4x1YfB5o
ETzFtkxgJjDVUfRbGyvTtW98/jxYTQHRahMoU1McANp+sG57k8xX8T73XABy
z9fTH04AWI2X0P2+WAlRAsEV1XwqB4rnLycsq2Bb5YJxoxe9FEMEP5SMGZZ5
43h5AsK2ylTH8ECPEtUMuZTkPfdrdb1wOAapgfJIDHDurPbZdXxIRALSySQd
1dUqar/y5d06ooirW40J5hwTyQcovA0kNELCZQSNosEtSHxi20R5Eku+5ojn
C0s8mCMJ8Z+FoSQAoogTNRUGRw25VZv7cI8JWS81UppUT0jiRINdKHY6gbNV
aiKLZkNeU4kNv39SlfdPknn25OK0f/L2tDcbb6hUtoEb/lpxbHd7e2USBR18
jSzEjYvQ+x8x7p/WDuouHImGn1U0xCuzTkNjXwKxTM77JDxBaQjjRlh9QW0m
CjKFYbh2XUJEpxV7E8kIaObAKHhbR98lz3Lh/TYvVaYOAEa3FbrpIuvQxqar
p0lF5WR9M1q/ZseDs5scLZftIACmN0Xsv7mNW1VIdwG8MdEPk3NliY6UEqLg
AvL8K9QRgcVGaGR42sFRtF5TfsFh0aFCLFW0p1NPYzj9+LFUFaAeP3KO+Rpc
saVFY1NZyVU9kFVEsgqZ+wuoYqz/3lgdSZI9Q1/doDQgOR4IxfhLAbKktrNN
pAVJGoE3Kj6vBgQ6WYzNeCYoQyX8WSx5+Na3LZJ94nIwNJ36lgryYrqWQows
OX9gl92ZNw1dmDjcKGrG9nI+GfM+xzrcsbPGhOLAY4YYZp6eI9jIXy5Y32uZ
WIWRBUciSB2C5vQc94E9iSTLUN1a65ejuE9FjRfSUUUiHj1YaL9ktZ1K6yJ3
W41K17bwR6OhWykNmZlEDgec/pBnVDwxxxKfU9lEh+w1jY8ormLCFe862KSA
Mk+xNxN9Qi6maZZwUf4pBXKxFkHmYY5Fa6w+yyN3czs2ss3XKvPRTCaQiW3c
mLhPu8CCOHxBi+YcbnI4qkYDmCCCCqOAitJGzAV+PQ6cMXIikqwX5FJjm1dQ
TodtX8YMGkCSKl35EhDxgAwIqOxEA6n1AthDBH+8oOTGlVP3cTFwTlpade/5
MyDVID3CZ11pSmcD56VqF6ur8wTdgHBOsiSuT8K1AiRDi2oRKxS8tZBVkUZf
Le7WpNGw3F1EvbFcjpWn7UW2kQGsgotiN0crGqXWdMNoS2zf3Qu5l13Nefaz
4DmgmEnLiCwY2SvpduYbtMBRjtIy7zmLk3USiyElBxUuv+WKAs38MsWcYbos
8jGWPtBCfMqPVpLvGil0cZhCR3pDGNjHCIz23JucTFdBcVN9tmzYt0BEkMhr
E/8odtiZJhhgqiAv2IRP2grpGGhBpvqWNAqg66dBA4TQCIQWYPYYqLWkIeMp
g4+0rprzZiiPbJL4xsULouqinEsXY78qfk+vm0/0IDXA3zxXVI10XSpgAaNG
XPVMBqN3KPTPRKYeoY3R1RHNwpCOSEgNaSkZaw4maJO8rhQmU2nCkrlB3GSj
kpjWZlNAFP3QVRX4zsgAy2HZTfiojsUKlK4fs0pHHamw3rU7UYiFcIqobkov
PqErag6JnIElUxEukdWdgqCzgJvZKCXLQe+ROue6TbINozAnQn9dQiEmlo7S
ApDvNKroSF0uqZqWUQkxX6w6hB0LvYgYy0j5rQZkEitT8h6LYG8riym+uatx
8CIKfFrHXF+F16NAqLa0Ug85U0L5Xhywxkjt53VtIVESwxY1NwuqLsB1OtsR
O0IZbpRRY2CUB0EX1h6T5tjjNYznU8vt/BT3fUDSW5FaP5mevo34Tw5OpNLi
8BPx3kG8iSaGClA7KTGIrB+kUXFgsD4qSoPEi5FKSSPB2mEcjkDqONV+qwPf
JB/XfZPl12S9wAZ28IwYR/1DHWdeQ21UBvtdr6zshkxcvBg1n2rwgtwZtHmT
kaIXv8RgCbFYUN6sM5k3106XsbE4dSs7nxwb++bU1yvVrIRKDDg+wpedJATa
Fxyv4bZUsFq+yWZvLvMAj2v4HvuQ/MlWeLSoba+Bg9ea9HkZCO7mtRks/cgr
XD8cB2+HQ7q3NJ6VZW+KJxyof6FtSDXcuoXmbDPoNPRXUmtTJuumkIcfWybm
DDaaNkEu9R+adZgGuXBuJJnDG00/AbID7GhotW7a2BwNtUSLenCjg9N6U9wQ
r+m/O8HpxBwfVPe7NLmVaESfUMd0U46UOQLPli+/Zrb3F//dk0Ve9rBxjYF3
yetInD0AwjzVjT5Ocswb8DzlEogoRkd/d3y5RR2r3Veug8HhswOK61S2jc0H
eRBinlxzri50yiDM0S/KGYzaMvbV93c42Xph0ZgqWChysVFZQvoRrlRDF75C
OQHW75bPLRIWEkbA7TBQ8Tg7PT2NDw/2QcpeAHvoAuPgZg0SBGv3a8LiduF/
exKEp131gmhQavlyS1tvwOYoHjzf3j7cef5892D/cH/7+fM9oWSNj3cHTIfc
FiLY2upDLpdYglISNfRyX174HIsvcmxLTa1XRzU7nviS5IFw5JRBHNbsiO7S
mEp8YXELVy/AwthVUaCw8lZ4Yu5hIfWFuKrwDBvPoUCJ8OFnEq1VjAHTPD0A
bbu3MwBetJPuujomDVjsc1SuX+aLNaCOBju97cafnYHKR15L5ks0WrlaZD5Q
gsi9QNycigEIP0D9SiOtuE6ExhLxEHPxQomMgwfTAg4UbaYauo5udvxBKum/
iAqKQM0FWhiQO0ypx462UkQLFp1FB7Q/6qagJyLOOPJbjzDTG0/9B94iIRPV
9qYQT/eST9OcYgF1q352IlsrA6+hWGBQgwwVoId0Ou2KlQdRidraZbV293V2
wNr1JFyRwTrG0+ssJVHs3qWQAzRBqMS46fJ44mRY3HP8GH0GT31TBaIojDPh
7tZe8sTHtl7AOlmS64loRrGSvNNOrPKWF5BK+Gw6tQsMuYHh3MSbuB4k8g3W
E4mo0awsGfRUxKB5ga502X0nTJNedyJAx3BlvjKxYcZ0V4hm4vhk6hTRsiOS
pcpXcjUYsfVLMRTckENNevrG/Lis4yukNRxXgOWComEUrkmi7vswmZMkOFwx
SyJKnjQA3tzETTpnatY2Jgh6fGGrh3ftV1TfmaMEiDb6+AN/XN1ZMo9itUpz
jIgJI+FR1jtyEbP9GhyqNnI3WsNrSBZiE2iQmCtG1cBtzc1xOSrG3rNVb+se
JwHtF18xq+fQLmLfOkjvs4LqxlG50aSqilGWhNLMWjsssoRlw3qUYcHGdEmJ
bQsKGm2zkdAj0mzU2YDizUmSTbssq1M4K6yt5PChRW5MRQ2TTBAj793nkYa7
84FXd9l8Lm2XtWmZ9GxKgjgpNs9GZi2BqTZWU+2KHs1m93X2/fVQFI+W3WLk
kdhHnL5wCGRVCBe4VMEdmC5dbH5WK5/TJqOmjBEaO9VOkLXlcvdQLp1RkvKq
wSHeJIrXYXK3pZa8RYmUoRe97f/T9fH7d5dXF/2zd1fXJ6fnV6+FJoZWpa7L
HYXLULs8HnELOT1zJgliKGZz71/MDiNvhl1ZmUpRTxeTY5lQEJBD3IqH2XkR
P/Y15kb4TAlOukvnmDIGMKX+R63ZWlq6MdGttcIEkAiLLCLhdBHe6cdbGJcN
eOjMQsMR1lSU+gs4e3PXJLCwzAtA2dtFWJsqfesRT8lSvmwOKfHAIcQxlRgL
cLbthe2pmId2DvISI+TrlBosRK6NDqkUo7obSp3NjjquxRlWDr6MTHMdNjy1
TeKq2K94bY/QDCQPnWOKAxqOvjr7lxXPm0GYyXep7Rh8GlvPKb1Cg1a8lt+Q
t7d4oDrEjZw31jnhbjUmospgWCDPjY6JZv/w80NNanT0ZXBogk1gCOAtYcox
ctnIOevc97QSDQGHGbvzYs6zfpnHSUlDF0/O8g4HYBbaRT5y++h4X6Hjkq4+
xFcM4pcWu45rWK6EKhVSl7O4PT1qZwfLMEdyAV2ZM7p03MfDJQdpnpuvOKN+
WeYtEfUhwqChBCVmb1+85dOYK95VmtLukt/xBINWFxg3xQIs3hvcrM4Kt0e5
jwtktQVMTF0RckFxdbDIZHqYrg5HbXFejq1QbhctRbvER5R30dyP0ygG3BVm
8PPdAv/5eDAakAQNPy0Gjm9Frn07JVbY9jEg9U+IMxOkpbRlG6r1f4oo4Osu
AzFNWXGVTglzZgX7U1phEowXtTBgZherZ9YqrADyTAC2cPkHJivQh5oOXTmp
lMKubJOwILdyZ+coWh/l0JAc5Ua4adnf53SJaCW9HM6A24En5tRa6ZMLv4io
KDcmVIx7hsQky2mRjDW9y1k2XEAHu8Xae/ewb8K0k3MNbXy7aJxEu5+dkUas
8TZJZRMLbSxumTpeQskaI28PSyWhm1fNnsGo0RRX4vl8Yp/3TfthqQYfD4Py
MZqmut4sRHYWa2jS6t+2YAIp+E6RLHktJmU9yCyXDq7sRSNlSLzbDY8cc9xT
DsyrOF7FV5eNIs8TGKNtgN8GMICNI5ck3sH0E/hdaPKGxKTJkTcjA3+uMwxk
2955fnCY7E26++nuXvdwuL3TTZ6Pd7rb2wfbB0+fj3bTfc7O2ABxHF/QiEIU
j21AoTyUYL7FzuH+zlMy6tCH6ce5+3DvqXzosrvhK/+Jy++GT/foU6B7PjIR
6JPJKtm4qzHJZOP99+c+s2ZU3uNnDij6Ocb+bezs/PJT/6fvPx6Xkx8urw+v
lj/+4+v3N4e3o/vzZJ69nZYPZ0lyPnr94aLYcIkfFA34/2cAyU+PZAA9kjPz
B2ovakpjMkmaN7Db0SWKMTYlvCSsrhd/DTbvI/o+2+kejna3u8PJXgK/Jtuj
5zvpzu7efoDNvytv9u68/L7X67Vg+s7uKqbvPN9dxfSdRzBdKQmua9bdn18X
b355vzf/sDj9+HL83XKnSH+8vXz9y93rm7vLD7vHr6Y7u6Pq57cbf/9rUvan
zz/eX5300w/9k/P87Mfpt/NXr+tvb/Z/evb+l9E/nh682/+nn96N35xX/5+8
Jm0xzCaCueWOtN+F9fj+rqh9gc4wgJFMra9R2qJUb5HPmXeuq9mDd8CWTMOl
J8MhlvTnYHrUALhVGPW+NQnTGfbiHSDqXv8y+/jDj8lPP/SfPzy8fPX0bFHs
3f/w66+HVx9fH189/NPL5U15uY/12LrxscvtNwwOO6CJ6aXRrRpVwkWtBZrZ
zGqidjgUC56XW05BGcLTjQiCquLxpauqT3ss0BQh8LJFwPIRh1OyhX0Hn7kQ
40+FRldBkQHb3zksK6Zw0TLx9gSJgcHPo9hGKGkRQE4lh8HfU7zxwJK8gc20
kZozrtiN1IwtpCcLjO7zAE3/XBiZaiIBqHeebW9X0gxQO85rGXKqQlktKjMV
oAPyUjzdB1hO8YCShG10gqXyuAYZBkORGtmoTreaTeXDmVwBs+ooPtuJ1GN3
duC6cZgQZd+r6eypy6e1VbxJQwrkNq9zo0LjLKMqdNJOq9Qs48VqWe0W+8ct
t9pLvEGUPnfDrOR2v4HTQLXvLcXIb74DGfydxldtaVo3+jp5gTdcLTTXdvRT
Dq7vBGF1mH5SU4I8VtlHXFQbmA/d8huLTS/vXsx9lsmBSa4mctP5jojcJips
tCmtrykYVaLGXohxkB/HxEYKuuGLKMEYfIepqp2LHOrtxFJ6mvRimsk5YCKJ
zafUF1VlBlcUrU4BppRs6aFABWOON6+2BrGrUsNBBFwNGLOHKviSyv8yFGA0
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
NNRLmQghIRlDO4nkkpxUAoVbhC7lW40snbdAKnZr+JDSnBOyHZ0S3J/4pZxX
rpnNZf2Y9QBErGlJLMIEhr8IjSaSe0mo/FS8sHpFcsjwbn8zS6FsWyB9E3tA
57ld1ul7xN8jVwQLxRxqvF93syVL/UfS2GmOSz5DPWHmqEqm7BzIS3FIuJkG
CONVjmAEWjNcbYgulU6M8Xh/fRwv8zaum7jSXlsPsjSSalGbhM5xLG6sONtK
lRlcVse+s33kmt5sCSlIhRk3ajqLPgTOKAierOulb/+AkzJy29laRllG4+wJ
bS2YH9DHQ1/pWHe3rLPr2kQEJgJ2lC7SeNBIF1T0UjxqU4E2GOgqdVIhs823
0W/KzyHox+4k+g3aSc7jWWhiYeX2dKYqY8UhpzaV4rMulKVbr3GRv5xeTmbV
EiFptcB6S+0YML+Cs3ExGaozs+1swe6dh5qpB1XzXFGaI36zpR2yPHe9V79S
hQNFY0j20cXJxeewXU4+ROu68cnQHHCUTYXEFpK7zzZkXxvCaOd3w40IkqmZ
w16mO4nVmMZrpJqfxC0++LOEqjQAWeNI6kmR4YGxj8f4Iw7WnsNlvhaHw6BV
LtQSR6D0vZolfRVxtvaooAIBVXhhYFa9IFWIRuBGAS8oPWFU6gydWdafnx4+
Hz0RPgb4MU1nvlshN5jlBYnQNaXbg3EGYB0+PXwanii9AAurtEu00Tt8S93B
uMT6Hr5AI0zI+mFtIW1OYvDRyQxp4BhI30op8pcj2c/1/F8/u4nef/3ZbxKq
yTzSd/gQ/fRF9MR+qFYPCi3CrNZzJVdJa3aTTg0nFy3kir6QJGRpQmO5AX1y
tASMdHYiYacPmY/ElUdeGh1gYoyiKLEL44zc8XDwtZbrFhmE7zCpFcFBkhzZ
/2KOVEWoNmbgSOmD4sZ0H9eSM+ycfFiRifqZKKV4SsEPHnzAgQyS8LLtzyAF
Xb+O9EkYrEgaP3lsV4s505fx9LmhAEQ8rRRuLE9W0BSlQDJl16JxtEMg2Ujb
76QtMu5KkoTdSlPRIpo/dc8sq0CWVTmAJeGrepoitwlXnceFFZLoioPUp10N
DtXbOnoPb2Clln4K9+3mvvj2H9u741F/d4Y9u1MyuY7zbt++zCUzeg/CgZzM
w2H43/cIp9opBQIA

-->

</rfc>

