<?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 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 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 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 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">
]>


<rfc ipr="trust200902" docName="draft-niyikiza-oauth-attenuating-agent-tokens-01" 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="June" day="15"/>

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

    <abstract>


<?line 183?>

<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 201?>

<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>Existing OAuth mechanisms can scope tokens to principals, resources,
APIs, or authorization details, but they do not define an offline,
holder-derivable delegation chain in which each downstream holder can
attenuate authority and any enforcement point can verify that the
resulting token is no broader than its parent. In particular, OAuth does
not define a standard way for a token holder to derive a token that
cryptographically constrains a receiving agent to specific tools and
argument values for a specific task.</t>

<t>Without such attenuation, 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 distinct problem is 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. Section 8 describes the resulting
guarantees and limits.</t>

<t>WIMSE <xref target="WIMSE-ARCH"/> provides mechanisms for establishing workload
identity and propagating it across service boundaries. OAuth 2.0
<xref target="RFC6749"/> provides token issuance and scoping. AATs complement these
mechanisms with delegation-aware attenuation semantics: a holder can
derive a narrower token and pass it downstream, while enforcement points
can verify the resulting chain offline. This avoids making the
authorization server a participant in every delegation hop, which is
important for agentic workflows that execute tool invocations in rapid
succession, operate across trust boundaries, or run with intermittent
connectivity.</t>

<t>Capability-based systems <xref target="DENNIS66"/> provide the underlying model.
Authority is carried by unforgeable tokens scoped to specific operations; a
holder can attenuate a capability before passing it on, but cannot
amplify it <xref target="SALTZER75"/>. This document defines such a mechanism for
OAuth-based agent systems, complementing WIMSE's identity layer with
a delegation and attenuation layer. The resulting chain lets
enforcement points evaluate both the leaf token and the delegation path
that produced it.</t>

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

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

<t>At each derivation step, the derived token's authorized capabilities are a
subset of the parent's: authority can stay the same or narrow, but never widen. The
enforcement point verifies the complete chain using only the root
token's trust anchor key; no network calls are required. How token
chains are carried to enforcement points is deployment-specific; this
document does not define a transport binding.</t>

<section anchor="limitations-of-existing-oauth-mechanisms-for-agentic-delegation"><name>Limitations of Existing OAuth Mechanisms for Agentic Delegation</name>

<t>OAuth 2.0 Token Exchange <xref target="RFC8693"/> enables a principal to obtain a new
token with reduced scope by contacting the authorization server. The
server enforces the scope reduction. This requires a synchronous
round-trip to the authorization server at each delegation hop. In
multi-agent chains, this makes the authorization server a participant in
every delegation decision, coupling the delegation topology to
authorization server (AS) availability. <xref target="RFC8693"/> supports
representing prior delegation actors via nested <spanx style="verb">act</spanx> claims, but those
claims are informational for access control decisions rather than a
cryptographically self-verifiable attenuation chain. The AS mediates
each grant independently, and RFC 8693 does not define a token-local
mechanism for proving that downstream delegation intent remains
consistent with the original authorization scope.</t>

<t>Rich Authorization Requests (RAR) <xref target="RFC9396"/> extend OAuth tokens with
structured authorization detail objects, enabling expressive capability
descriptions. RAR addresses the expressiveness problem. It does not
define how a token holder can produce a narrower token, or how a
chain of such derivations can be verified.</t>

<t>Proposals to extend the authorization code flow with explicit agent
consent, such as introducing a <spanx style="verb">requested_actor</spanx> parameter at the
authorization endpoint, address who the agent is and whether the
user approved the delegation. They do not constrain which tools the
agent may invoke or with what argument values. AATs are
complementary: they scope authority to specific tools and arguments
after identity and consent have been established.</t>

<t>To the author's knowledge, no existing OAuth standard defines a
delegation chain protocol with token-local chain authentication,
deterministic attenuation checks, and offline chain verification.</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 calling principal.</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> The primary encoding specified in this
document represents AATs as signed JWTs <xref target="RFC7519"/> using JWS <xref target="RFC7515"/>,
allowing deployments to verify chains using existing JSON Object
Signing and Encryption (JOSE) infrastructure without new
cryptographic dependencies.</t>
</list></t>

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

<t>Macaroons <xref target="MACAROONS"/> introduced the concept of attenuating tokens
with contextual caveats. Macaroons use HMAC chaining, which provides
attenuation but not proof of possession, and express caveats as
free-form predicates evaluated at the target service at runtime. This
specification adds asymmetric proof of possession, structured
tool-level capability claims, and a typed constraint vocabulary.
It defines a normative subsumption relation, enabling any party
holding the chain to verify monotonicity structurally, without
predicate evaluation at a central service.</t>

<t>Biscuit <xref target="BISCUIT"/> extends the Macaroons model with public-key
signatures and offline attenuation. Biscuit expresses authorization
policies in a Datalog variant, requiring a logic engine at verification
time. This specification uses structured constraint types decidable by
structural analysis and defines an explicit delegation-chain model with
holder-bound invocation-time proof of possession, chain-position claims,
and attenuation invariants. A detailed comparison appears in Appendix A.</t>

<t>Recent OAuth work on transaction tokens <xref target="OAUTH-TXN-TOKENS"/> and
identity and authorization chaining <xref target="OAUTH-ID-CHAINING"/> addresses the
propagation of identity, actor, transaction, and authorization context
across service and trust-domain boundaries. AATs are complementary: they
define token-local, holder-derivable attenuation of concrete
tool-and-argument authority within a delegation chain, with offline
verification by the enforcement point.</t>

<t>The capability-based security model underlying AATs draws on
<xref target="DENNIS66"/>, which introduced capabilities as unforgeable tokens of
authority, and <xref target="MILLER06"/>, which formalized the principle of least
authority (POLA) and the attenuation property in object-capability
systems. AATs apply these principles at the protocol layer: each token
is a capability scoped to specific tools and arguments, and derivation
can only attenuate, never amplify, the authority it carries.</t>

<t><xref target="DEEPMIND26"/> argues that safe multi-agent delegation requires explicit
transfer of authority, responsibility, and trust at each delegation
step, with bounded operational scope. <xref target="CAMEL25"/> shows that
capability-based controls enforced at the tool boundary can provide
provable security properties in an agentic framework. These results
motivate a protocol-layer mechanism that encodes delegation scope in
verifiable credential artifacts enforced independently of model
behavior. AATs realize one protocol-layer approach to that goal.</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. The fully specified encoding in this document is a
signed JWT. 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.</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.</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>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 is a subset of the parent token's capability claim.
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.</t>

<t><strong>Trust Anchor:</strong> A public 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
token holder presents the chain and signs the PoP JWT using the same
private key.</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 appear in all 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 value. When a UUID is used, it <bcp14>MUST</bcp14> be encoded as a lowercase hyphenated string in the form <spanx style="verb">xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</spanx> per <xref target="RFC9562"/>.</c>
      <c><spanx style="verb">iss</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Identifier of the entity that signed this token. For root tokens, <bcp14>MUST</bcp14> be a URI identifying the root issuer. For derived tokens, <bcp14>MUST</bcp14> be a JWK Thumbprint URI (<xref target="RFC9278"/>) over the signing key using SHA-256; the exact URI form is given after this table.</c>
      <c><spanx style="verb">iat</spanx></c>
      <c>NumericDate</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Time at which the token was issued. <bcp14>MUST NOT</bcp14> be more than MAX_IAT_SKEW in the future relative to the enforcement point's clock (see Section 4.4). In a chain, a derived token's <spanx style="verb">iat</spanx> <bcp14>MUST NOT</bcp14> be earlier than its parent's <spanx style="verb">iat</spanx>.</c>
      <c><spanx style="verb">exp</spanx></c>
      <c>NumericDate</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Time at which the token expires. <bcp14>MUST</bcp14> be greater than <spanx style="verb">iat</spanx>. <bcp14>MUST NOT</bcp14> exceed <spanx style="verb">iat</spanx> plus MAX_TOKEN_LIFETIME (see 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"/>. <bcp14>MUST</bcp14> contain <spanx style="verb">jwk</spanx> with the holder's public key. The <spanx style="verb">jwk</spanx> value <bcp14>MUST</bcp14> be a public key; private key material <bcp14>MUST NOT</bcp14> appear in this field.</c>
      <c><spanx style="verb">del_depth</spanx></c>
      <c>integer</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Delegation depth. 0 for root tokens. Incremented by exactly 1 at each derivation step (see 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. <bcp14>MUST</bcp14> be a non-negative integer not exceeding the implementation's MAX_DELEGATION_DEPTH (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>Base64url-encoded SHA-256 digest of the parent token signing input, using base64url encoding without padding as defined in <xref target="RFC7515"/> Appendix C. For JWT/JWS AATs, the parent token signing input is the JWS Signing Input. <bcp14>MUST</bcp14> be absent in root tokens. <bcp14>MUST</bcp14> be present in all derived tokens.</c>
      <c><spanx style="verb">authorization_details</spanx></c>
      <c>array</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Tool capability claims. Format defined in Section 3.3.</c>
</texttable>

<t>Implementations <bcp14>MUST</bcp14> support Ed25519 <xref target="RFC8032"/> for token signing and
verification. Implementations <bcp14>MAY</bcp14> support additional algorithms.</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, the holder's identity is
fully determined by <spanx style="verb">cnf.jwk</spanx>: the entity presenting the token proves
possession of the private key corresponding to <spanx style="verb">cnf.jwk</spanx>. Including a
<spanx style="verb">sub</spanx> claim would introduce an additional identity binding that is not
cryptographically enforced by this specification and could be set
arbitrarily by any delegating party. Implementations that require a
human-readable subject identifier <bcp14>MAY</bcp14> convey one in additional JWT
claims outside this specification (see Appendix B.6).</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 names to argument constraint
sets.</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>When a tool entry contains one or more argument constraints, the
enforcement point operates in closed-world mode for that tool
invocation: any argument not named in the constraint map <bcp14>MUST</bcp14> be
rejected. A constrained argument that is absent from the invocation <bcp14>MUST</bcp14>
also be rejected. The presence of a constraint asserts that the
issuer has reasoned about that argument. An invocation that omits
it has not been validated against that reasoning. This is a
security property, not a configuration option.</t>

<t>Issuers who wish to permit an argument to be omitted <bcp14>MUST NOT</bcp14> include a
constraint for it in the constraint map. There is no "optional
constraint" mechanism; the constraint map is a closed specification of
the required invocation shape. To authorize an argument without
restricting its value, use a <spanx style="verb">wildcard</spanx> constraint (see below).
Optional constrained arguments are outside the core constraint model;
profiles or extension constraint types that require such behavior must
define it explicitly.</t>

<t>A token issuer that wishes to allow unconstrained arguments alongside
constrained ones <bcp14>MUST</bcp14> explicitly include a <spanx style="verb">wildcard</spanx> constraint for
each argument that should be unrestricted. A <spanx style="verb">wildcard</spanx> constraint
satisfies closed-world mode while permitting any value for that argument
(see Section 3.4). Enforcement points <bcp14>MUST</bcp14> enforce closed-world mode and
<bcp14>MUST NOT</bcp14> permit unconstrained arguments when any constraint is present
for the tool (see Section 7, step 6b).</t>

<t>The <spanx style="verb">authorization_details</spanx> array <bcp14>MAY</bcp14> contain entries of other types
alongside <spanx style="verb">attenuating_agent_token</spanx> entries, 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. An
<spanx style="verb">authorization_details</spanx> array containing multiple entries with <spanx style="verb">type:
"attenuating_agent_token"</spanx> is invalid; the tools map in a single entry
provides sufficient structure for all tool-level capability claims.</t>

<t>Root tokens and leaf tokens <bcp14>MUST</bcp14> contain exactly one entry with <spanx style="verb">type:
"attenuating_agent_token"</spanx>. Non-leaf derived tokens <bcp14>MAY</bcp14> contain zero
entries of this type, in which case they represent the empty capability
set and can only derive further empty-capability tokens. Such a non-leaf
derived token <bcp14>MAY</bcp14> carry an empty <spanx style="verb">authorization_details</spanx> array.</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 tool identifiers are meaningful in the deployment and that the
requester is authorized to receive authority for those tools before
minting a root token (Section 3.7.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: two independent implementations <bcp14>MUST</bcp14> produce identical
results when evaluating either predicate against the same inputs.</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. To be
used interoperably in AAT <spanx style="verb">authorization_details</spanx>, they <bcp14>MUST</bcp14> be defined
as registered extension constraint types (Section 3.5). 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. Deployments requiring richer policy expressiveness <bcp14>SHOULD</bcp14> use
a registered extension constraint type (see Appendix C).</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>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). 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.
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="extension-constraint-registry"><name>Extension Constraint Registry</name>

<t>Implementations <bcp14>MAY</bcp14> define extension constraint types beyond those
listed in Section 3.4. Extension constraint types <bcp14>MUST</bcp14> be registered in
the IANA AAT Constraint Type Registry defined in Section 10.3. The
registry exists to preserve security and interoperability in the
presence of domain-specific constraints; it is not a requirement that
all implementations support arbitrary extensions. An enforcement point
that does not recognize a registered extension type <bcp14>MUST</bcp14> deny
authorization (Section 3.5.2), but it is not required to implement that
type.</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 finite time for
all inputs. It <bcp14>MUST NOT</bcp14> require solving problems that are
undecidable or computationally intractable in the general
case. If the constraint language used by the type is not
closed under decidable containment analysis, the registration
<bcp14>MUST</bcp14> prescribe a conservative syntactic strategy and <bcp14>MUST</bcp14>
formally justify that the strategy is sound (never accepts
a non-subsuming pair).</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><strong>Cross-type subsumption rules.</strong> For each core constraint type
defined in Section 3.4, the registration <bcp14>MUST</bcp14> specify whether a
derived token may substitute an extension type instance for a
parent constraint of that core type (or vice versa). If
substitution is permitted, the registration <bcp14>MUST</bcp14> state the
conditions. Any (parent type, child type) pair not explicitly declared
valid <bcp14>MUST</bcp14> be treated as invalid by enforcement points.</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>Locate the registered subsumption verification procedure for
that type. If no registration exists, the enforcement point <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 derived constraint does not subsume the parent
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>

<t>An enforcement point that does not implement a registered extension
constraint type <bcp14>MUST</bcp14> deny authorization rather than skip the constraint.
The presence of an unrecognized constraint type in a token represents a
restriction the issuer intended to enforce. Silently omitting that check
would violate the attenuation guarantee.</t>

</section>
<section anchor="example-registration-path-containment"><name>Example Registration: Path Containment</name>

<t>The following is an illustrative example of a conforming extension
constraint registration. It is not defined normatively in this document.</t>

<t><strong>Type name:</strong> <spanx style="verb">path_containment</spanx></t>

<t><strong>Additional members:</strong> <spanx style="verb">root</spanx> (string, required). An absolute path root.</t>

<t><strong><spanx style="verb">check</spanx> predicate:</strong> The argument, after resolving all <spanx style="verb">.</spanx> and <spanx style="verb">..</spanx>
components and removing redundant separators, must be equal to <spanx style="verb">root</spanx> or
lie beneath <spanx style="verb">root</spanx> after path-segment normalization. The normalization
step is part of the predicate; implementations that compare raw argument
strings without normalization do not conform to this registration.</t>

<t><strong><spanx style="verb">subsumes</spanx> relation:</strong> <spanx style="verb">subsumes(C_parent, C_child)</spanx> is true if and
only if <spanx style="verb">C_child.root</spanx> is <spanx style="verb">C_parent.root</spanx> or lies beneath
<spanx style="verb">C_parent.root</spanx> under the normalized path-segment ordering.</t>

<t><strong>Cross-type subsumption:</strong> A derived <spanx style="verb">exact</spanx> constraint subsumes a
parent <spanx style="verb">path_containment</spanx> constraint if and only if the exact value,
after normalization, is equal to the parent's <spanx style="verb">root</spanx> or lies beneath it.
All other cross-type pairs involving <spanx style="verb">path_containment</spanx> are invalid.</t>

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

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

<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>

<figure><sourcecode type="json"><![CDATA[
{
  "jti": "01957a41-0081-7c20-bf3a-00a0c91e1234",
  "iss": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:KAKn...",
  "iat": 1741600120,
  "exp": 1741601920,
  "del_depth": 1,
  "del_max_depth": 3,
  "par_hash": "sha256_base64url_of_parent_token_signing_input",
  "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>Carries a <spanx style="verb">par_hash</spanx> linking it to its parent.</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 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 and do not
require token endpoint interaction. Enforcement points verify presented
chains offline as described in Section 7.</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 using the following metadata parameter in its
authorization server metadata document <xref target="RFC8414"/>, if supported.</t>

<texttable>
      <ttcol align='left'>Metadata Parameter</ttcol>
      <ttcol align='left'>Value</ttcol>
      <c><spanx style="verb">aat_issuer</spanx></c>
      <c>Boolean. <spanx style="verb">true</spanx> if the AS can issue AAT root tokens.</c>
</texttable>

<t>This document requests registration of <spanx style="verb">aat_issuer</spanx> in the IANA OAuth
Authorization Server Metadata registry (Section 10.4).</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"/>. 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 <spanx style="verb">par_hash</spanx>
to absent.</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>SHOULD</bcp14> require the agent to demonstrate
possession of the corresponding private key, for example via
a signed proof-of-possession assertion in the token request.</t>
  <t>Sets <spanx style="verb">authorization_details</spanx> to the capability claims
granted, which <bcp14>MAY</bcp14> be a subset of what the agent requested.</t>
  <t>For each tool identifier in the requested <spanx style="verb">authorization_details</spanx>,
the root issuer <bcp14>SHOULD</bcp14> verify that the identifier is meaningful in
the deployment and that the requester is authorized to receive
authority for that tool. If this verification fails, the root issuer
<bcp14>MUST</bcp14> reject the request. The mechanism for mapping requester identity
to tool authority is deployment-specific and outside the scope of this
specification.</t>
  <t>Signs the token with the AS's own private key.</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>
}
]]></artwork></figure>

<t>The <spanx style="verb">token_type</spanx> value <spanx style="verb">"aat"</spanx> is registered in Section 10.5. Clients
<bcp14>MUST NOT</bcp14> treat the returned token as a bearer token for use with
arbitrary resource servers. Its only valid use is as the root of an AAT
delegation chain presented to an enforcement point per Section 7.</t>

<t>Note: this specification defines token endpoint issuance for
interoperability with existing OAuth 2.0 deployments. Unlike bearer
tokens, an AAT carries its own holder key binding and is not usable as a
credential for HTTP resource access. Alternative issuance profiles are
outside the scope of this document.</t>

<t>The AS does not need to store or track derived tokens issued downstream
by the initial token holder. Chain verification is performed by
enforcement points using only the root token's public key as a trust
anchor.</t>

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

<t>Every derived token in a chain <bcp14>MUST</bcp14> satisfy all of the following
invariants. The verification algorithm in Section 7 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>The attenuation invariants in this section are instances of a single
abstract structure: a capability lattice. This subsection states that
structure informally to give readers a mental model for interpreting the
normative rules that follow.</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 protocol 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.</t>

<t>The <spanx style="verb">⊆</spanx> relation is not defined by enumerating <spanx style="verb">(tool, args)</spanx> pairs
(argument spaces are typically infinite) but by the structural
subsumption rules in Section 4.5. At the tool level, the derived
token's tool set must be a subset of the parent's. At the argument
level, when the parent's constraint map is non-empty, the derived
token must preserve the parent's key set exactly (Section 4.5
explains why closed-world semantics require this).</t>

<t>When the parent's map is empty, the derived token may introduce
keys, transitioning from open-world to closed-world. No per-key parent
constraint exists in this case; the derived closed-world invocation set
is a subset of the parent's unrestricted invocation set. When a parent
constraint exists, a derived constraint <spanx style="verb">c_child</spanx> subsumes a parent
constraint <spanx style="verb">c_parent</spanx> (written <spanx style="verb">c_child ⊑ c_parent</spanx>) if every argument
value that satisfies <spanx style="verb">c_child</spanx> also satisfies <spanx style="verb">c_parent</spanx>.</t>

<t>Two boundary cases complete the structure. The empty capability set
<spanx style="verb">∅</spanx> is the bottom element: a token with no tools authorized is a
valid token that cannot authorize tool invocations. If it is not the
leaf, it can only derive further empty-capability tokens. 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, including subprocess delegation, operational
handoffs, and holder-key handoff. A value that is too low can prevent
downstream holders from expressing legitimate attenuation, increasing
pressure to reuse broader tokens directly. Once a chain reaches
<spanx style="verb">del_max_depth</spanx>, no descendant can extend it further; this specification
defines no in-chain mechanism for increasing that ceiling.</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 from pathologically deep chains. The appropriate value
depends on the deployment topology; swarm architectures with deep
fan-out may require significantly larger values than linear delegation
chains. See Appendix B.4 for guidance.</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_STACK_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.7).</t>

<t>A derived token cannot outlive its parent. Authority cannot extend
beyond the lifetime of the token that granted it. A derived token's
issuance time <bcp14>MUST NOT</bcp14> precede its parent's issuance time. A token with
an earlier <spanx style="verb">iat</spanx> indicates clock manipulation or chain forgery. Tokens
with <spanx style="verb">iat</spanx> more than MAX_IAT_SKEW in the future relative to the
enforcement point's clock <bcp14>MUST</bcp14> be rejected. A token's lifetime
<bcp14>MUST NOT</bcp14> exceed MAX_TOKEN_LIFETIME.</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:</t>

<t><list style="symbols">
  <t>If the parent's constraint map for that tool is non-empty, the
derived token's constraint map <bcp14>MUST</bcp14> contain exactly the same set
of argument keys. Under closed-world semantics (Section 3.3),
the constraint map keys define the required invocation shape:
any argument not named is forbidden, and any named argument must
be present. Adding a key would produce invocations that the
parent's closed-world check rejects (the extra argument is
unknown). Dropping a key would produce invocations that omit a
parent-required argument. In both cases the derived invocation
set is disjoint from the parent's, not a subset.</t>
  <t>If the parent's constraint map is empty (open-world), the derived
token <bcp14>MAY</bcp14> introduce constraint keys, transitioning to
closed-world. Any closed-world constraint set is a subset of the
unrestricted open-world set.</t>
</list></t>

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

<t>Constraint subsumption is defined per constraint type. The normative
rules are:</t>

<t><list style="symbols">
  <t><strong>exact:</strong> A derived <spanx style="verb">exact</spanx> constraint subsumes a parent
constraint of the same or different type as follows: it subsumes
a parent <spanx style="verb">exact</spanx> if the values are identical; it subsumes a parent
<spanx style="verb">range</spanx> if the exact value is a number that falls within the parent
range; it subsumes a parent <spanx style="verb">one_of</spanx> if the exact value is a member of
the parent set; it subsumes a parent <spanx style="verb">wildcard</spanx> unconditionally. All
other parent types are invalid cross-type targets for a derived <spanx style="verb">exact</spanx>
constraint.</t>
  <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. A derived bound's inclusivity may only become
more restrictive: a derived <spanx style="verb">min_inclusive: false</spanx> is valid when the
parent has <spanx style="verb">min_inclusive: true</spanx> at the same <spanx style="verb">min</spanx> value (exclusive is
strictly tighter), but the reverse is not. The same applies to
<spanx style="verb">max_inclusive</spanx>.</t>
  <t><strong>one_of:</strong> A derived <spanx style="verb">one_of</spanx> constraint is valid only if
its value set is a subset of the parent's value set.
Cross-type pairs involving a derived <spanx style="verb">not_one_of</spanx> against a
parent <spanx style="verb">one_of</spanx> are invalid: a <spanx style="verb">not_one_of</spanx> constraint
accepts values outside the parent's permitted set and
cannot be verified as subsuming a <spanx style="verb">one_of</spanx> without domain knowledge.
Enforcement points <bcp14>MUST</bcp14> reject this cross-type pair.</t>
  <t><strong>not_one_of:</strong> A derived <spanx style="verb">not_one_of</spanx> constraint is valid
only if its excluded set is a superset of the parent's excluded
set (can only add exclusions, never remove them).</t>
  <t><strong>wildcard:</strong> A derived <spanx style="verb">wildcard</spanx> is valid only if the parent
is also <spanx style="verb">wildcard</spanx>. Any other constraint type subsumes a
parent <spanx style="verb">wildcard</spanx>.</t>
  <t><strong>all:</strong> A derived <spanx style="verb">all</spanx> constraint is valid attenuation of a
parent <spanx style="verb">all</spanx> if the derived constraint contains all clauses
present in the parent (none may be dropped) and each
corresponding clause satisfies the subsumption relation.
The derived constraint <bcp14>MAY</bcp14> add additional clauses at any
position, which only further restrict the accepted
value set. Dropping any parent clause from the derived <spanx style="verb">all</spanx> would
expand authority and <bcp14>MUST</bcp14> be rejected.  <vspace blankLines='1'/>
Clause matching for <spanx style="verb">all</spanx> is subsumption-based: for each clause C_p in
the parent array, the enforcement point <bcp14>MUST</bcp14> find at least one clause
C_d in the derived array such that C_d subsumes C_p per this section.
Each parent clause <bcp14>MUST</bcp14> be matched to a
distinct derived clause (one-to-one assignment); a single derived
clause <bcp14>MUST NOT</bcp14> be used to satisfy more than one parent clause. If any
parent clause cannot be matched, the check <bcp14>MUST</bcp14> fail. Unmatched
additional clauses in the derived array are permitted.  <vspace blankLines='1'/>
The following pseudocode describes the matching algorithm.
Because a greedy match can lead to a dead end, the algorithm
backtracks until it finds a one-to-one assignment or exhausts the
search space.  <vspace blankLines='1'/>
    <figure><artwork><![CDATA[
function check_all_subsumption(parent_clauses, derived_clauses):
  used = set()
  return match(parent_clauses, 0, derived_clauses, used)

function match(parents, idx, derived, used):
  if idx == len(parents):
    return PASS
  C_p = parents[idx]
  for i, C_d in enumerate(derived):
    if i not in used and subsumes(C_d, C_p):
      used.add(i)
      if match(parents, idx + 1, derived, used) == PASS:
        return PASS
      used.remove(i)    // backtrack
  return FAIL
]]></artwork></figure>
  <vspace blankLines='1'/>
The search space is bounded by the number of parent and derived
clauses. Implementations <bcp14>MAY</bcp14> employ Hopcroft-Karp or similar maximum
matching algorithms for the general case.</t>
  <t><strong>any:</strong> A derived <spanx style="verb">any</spanx> constraint subsumes 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>.
Removing clauses is valid (it narrows the accepted set).
Adding clauses is invalid (it widens it). The derived <spanx style="verb">any</spanx>
<bcp14>MUST</bcp14> contain at least one clause. 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>
  <t><strong>contains:</strong> A derived <spanx style="verb">contains</spanx> constraint is valid
attenuation of a parent <spanx style="verb">contains</spanx> if the derived <spanx style="verb">required</spanx> set
is a superset of the parent's <spanx style="verb">required</spanx> set. Requiring
additional elements is a restriction; removing required
elements would expand the set of accepted argument
arrays and <bcp14>MUST</bcp14> be rejected.</t>
  <t><strong>subset:</strong> A derived <spanx style="verb">subset</spanx> constraint is valid attenuation
of a parent <spanx style="verb">subset</spanx> if the derived <spanx style="verb">allowed</spanx> set is a subset
of the parent's <spanx style="verb">allowed</spanx> set. Shrinking the allowed set is
a restriction; adding allowed elements would expand the set
of accepted argument arrays and <bcp14>MUST</bcp14> be rejected.</t>
</list></t>

<t>Any (parent constraint type, derived constraint type) pair not
explicitly permitted by the above rules, or by a registered extension
constraint's cross-type subsumption declaration (Section 3.5.1), <bcp14>MUST</bcp14> be
rejected.</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. 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: a child token signed
by a key that holds multiple compatible parent tokens cannot be
re-associated with a different parent task grant. The capability set may
still be attenuated, but the task/session lineage, revocation ancestry,
approval context, or policy snapshot would change.</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 5.</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.</t>

</section>
<section anchor="pop-token-structure"><name>PoP Token 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 8.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 (see Section 5.3).</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_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>Audience identifier for the enforcement point or resource accepting the PoP JWT. Deployments or profiles that require audience binding <bcp14>MUST</bcp14> require this claim and enforce audience match at verification time.</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 payload <bcp14>MUST</bcp14> be serialized as JCS-canonical JSON
(<xref target="RFC8785"/>) before JWS signing. This is a whole-payload requirement,
not specific to the <spanx style="verb">hta</spanx> member. The JWS signing input is therefore
<spanx style="verb">BASE64URL(JWS Protected Header) || '.' || BASE64URL(JCS(PoP claims))</spanx>.
Whole-payload JCS canonicalization ensures a deterministic byte
representation; in particular, it gives <spanx style="verb">hta</spanx> stable equality semantics
so that argument map comparison is unambiguous across implementations
and languages regardless of JSON serialization choices.</t>

<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>

<figure><sourcecode type="json"><![CDATA[
{
  "jti": "c980f2a1-4a37-4e88-bb3c-9defd37c1a45",
  "iat": 1741600300,
  "aat_id": "01957a41-0081-7c20-bf3a-00a0c91e1234",
  "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 7. An enforcement point <bcp14>MUST</bcp14> complete
chain verification (Section 7, steps 1-6) 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 <bcp14>MUST</bcp14> reject a PoP JWT that:</t>

<t><list style="numbers" type="1">
  <t>Has a signature that does not verify under the leaf token's
<spanx style="verb">cnf.jwk</spanx>.</t>
  <t>References an <spanx style="verb">aat_id</spanx> that does not match the <spanx style="verb">jti</spanx> of the
presented leaf token.</t>
  <t>When deployment policy requires PoP audience binding, omits
<spanx style="verb">aat_aud</spanx> or contains an <spanx style="verb">aat_aud</spanx> claim that does not identify
the enforcement point or resource accepting the invocation.</t>
  <t>Names a tool in <spanx style="verb">aat_tool</spanx> that is not authorized by the leaf
token.</t>
  <t>Presents arguments in <spanx style="verb">hta</spanx> that violate constraints in the
leaf token, per the verification algorithm in Section 7
(step 6b).</t>
  <t>Has <spanx style="verb">iat</spanx> that is outside the enforcement point's accepted
clock tolerance window (<bcp14>RECOMMENDED</bcp14>: ±30 seconds).</t>
</list></t>

<t>The PoP JWT <spanx style="verb">iat</spanx> timestamp and clock tolerance window bound the replay
surface to a short interval. Implementations that wish to avoid shared
state <bcp14>MAY</bcp14> use fixed-width time buckets (for example, accepting PoP JWTs
whose <spanx style="verb">iat</spanx> falls within the current or immediately preceding 30-second
bucket) to simplify enforcement point implementation.</t>

<t>Note: The time bucket approach is stateless but probabilistic: a PoP JWT
captured early in a bucket remains usable until the end of the following
bucket. This approach <bcp14>MUST NOT</bcp14> be used for tool invocations that have
side effects or are not idempotent. For any tool invocation where
duplicate execution causes unintended side effects, stateful
<spanx style="verb">jti</spanx> tracking <bcp14>MUST</bcp14> be used.</t>

<t>Full replay prevention, which guarantees that a given PoP JWT is
accepted at most once, requires stateful tracking of presented <spanx style="verb">jti</spanx> values
across all enforcement points in a deployment. The mechanism for that
state (shared cache, database, token-binding infrastructure) is
deployment-specific and outside the scope of this specification.
Deployments with strong replay prevention requirements <bcp14>SHOULD</bcp14> consult
the security considerations in Section 8.5.</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.
Token lifetime is a mandatory attenuation dimension. Every
derived token is temporally bounded by its parent regardless
of capability scope. Expiration is the base specification's built-in
limit on token lifetime; see Appendix B.7 for deployment 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 with the same
argument keys as the parent's constraint map for that tool
(Section 4.5). For each key, select a constraint that is at
least as restrictive as the parent's, per the subsumption
rules in Section 4.5. If the parent's constraint map is
empty, the derived token <bcp14>MAY</bcp14> introduce constraint keys.</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> to <spanx style="verb">base64url(SHA-256(parent token signing
input))</spanx>, using base64url encoding without padding
(<xref target="RFC7515"/> Appendix C). For JWT/JWS AATs, the parent
token signing input is the JWS Signing Input.</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.</t>
  <t>Sign the token with the private key corresponding to the
 parent token's <spanx style="verb">cnf.jwk</spanx>. The <spanx style="verb">iss</spanx> claim <bcp14>MUST</bcp14> be set to the
 JWK Thumbprint URI <xref target="RFC9278"/> of that signing key, using the
 SHA-256 hash algorithm.</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 or subprocess delegation.
Enforcement points <bcp14>MAY</bcp14> log same-scope derivations as anomalous according
to deployment policy.</t>

</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 trust anchor public
key. No network calls or authorization server availability are required.
Chain verification itself is fully offline. Strong replay protection for
side-effecting tool invocations may additionally require stateful <spanx style="verb">jti</spanx>
tracking as described in Section 8.5; that state is outside the inputs
of this algorithm.</t>

<figure><artwork><![CDATA[
Inputs:
  chain:         ordered array of signed JWTs, [root, ..., leaf]
  trust_anchors: set of public keys trusted as root issuers
  tool:          the tool being invoked
  args:          the arguments being passed to the tool
  pop_jwt:       the PoP JWT presented by the agent

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_STACK_SIZE. If the chain exceeds this limit, DENY.
   c. For each token, decode the base64url payload segment and
      extract only the `jti` field using minimal JSON parsing.
      If the payload is not valid JSON or does not contain a
      string-valued `jti` field, DENY. Collect all extracted
      `jti` values; if any value appears more than once in the
      presented chain, DENY (token-instance cycle detection). This check
      does not forbid the same actor, holder key, or organizational
      component from appearing more than once in a delegation graph,
      provided each occurrence is represented by a distinct token and
      every adjacent link in the presented chain satisfies this
      algorithm. This limited extraction
      prior to signature verification is permitted and required
      for this structural check; it does not constitute the
      application-layer claim deserialization prohibited by the
      post-algorithm note. The extracted `jti` values MUST be
      treated as untrusted until each token's signature is
      verified. Full claim parsing MUST still be deferred until
      after signature verification succeeds for each token.

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. If alg is "none", not on the allowlist,
      or inconsistent with the key type, DENY.       (Sec 8.13)
   b. Verify the root token signature against a key in
      trust_anchors. After signature verification succeeds,
      parse the root token's claims. All subsequent root
      checks (3c through 3n) operate on parsed claims.
   c. Verify root.del_depth == 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 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 and is a URI. If absent or
      not a URI-formatted string, 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". If absent, empty, or if the
      number of such entries is not exactly one, DENY.
      Note: for a single-token chain (root = leaf), step 4 has
      no adjacent parent-child pair to evaluate. Validation is
      therefore performed by step 3 (root checks), step 5
      (chain-length consistency), step 6 (leaf
      capability/constraint checks), and step 7 (PoP), before
      permit in step 8.
      Steps 3j through 3m ensure that required claims are
      present before step 6 depends on them, closing the
      bypass window that exists when step 4 does not run.
   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.
      If any constraint tree exceeds this limit, 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.
      If alg is "none", not on the allowlist, or inconsistent
      with the key type, DENY.                       (Sec 8.13)
   b. Verify child signature under the key in parent.cnf.jwk. (I1)
      After signature verification, 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. If
          absent or not integers, DENY.
      b5. Verify child.iss, child.iat, child.exp, and
          child.par_hash are all present. If any is absent, 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)
      Note: the requirement that every token's
      del_max_depth <= MAX_DELEGATION_DEPTH is transitively
      satisfied: step 3i verifies this for the root, and
      step 4g at each link ensures the value can only
      decrease. Implementations MAY add this check
      explicitly as defense in depth.
   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)
      Note: the requirement child.exp <= child.iat +
      MAX_TOKEN_LIFETIME is transitively satisfied: by
      induction, child.exp <= root.exp (step 4h at each
      link), root.exp <= root.iat + MAX_TOKEN_LIFETIME
      (step 3h), and child.iat >= root.iat (step 4j at
      each link), therefore child.exp <= root.iat +
      MAX_TOKEN_LIFETIME <= child.iat + MAX_TOKEN_LIFETIME.
      Implementations MAY add this check explicitly as
      defense in depth.
   m. Verify child.del_depth <= child.del_max_depth.     (I2)
   n. Verify child.authorization_details contains at most
      one entry with type "attenuating_agent_token". If
      more than one such entry is present, DENY. Note: zero
      entries of this type are permitted at this step and
      represent an empty capability set. Step 4p will verify
      this is a valid attenuation of the parent (an empty tool
      set is always a subset). If the child is the leaf token,
      step 6a will reject zero entries.
      For the remaining checks in this adjacent-pair step, define
      child_aat as the child entry with type
      "attenuating_agent_token" if present, or as an empty capability
      entry with an empty `tools` map if absent. Define parent_aat
      the same way for the parent token: the parent entry with type
      "attenuating_agent_token" if present, or an empty capability
      entry with an empty `tools` map if absent. Root validation
      (step 3m) ensures the root parent has such an entry; non-root
      parents with zero entries represent the empty capability set.
      Entries of other types in `authorization_details` are ignored
      by this algorithm.
   o. For each constraint in each constraint map in child_aat.tools,
      verify the constraint tree depth does not exceed
      MAX_CONSTRAINT_DEPTH. If any constraint tree exceeds
      this limit, 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: if the parent's constraint map is
          non-empty, verify the child's constraint map contains
          exactly the same set of argument keys. If any key is
          added or removed, DENY.
      p3. For each tool present in both parent_aat.tools and
          child_aat.tools: if the parent's constraint map is empty,
          the child's constraint map MAY contain any set of keys.
      p4. For each argument key present in both constraint maps
          for a matched tool, verify the child's constraint subsumes
          the parent's per the per-type rules in Section 4.5. If
          any constraint fails subsumption, 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. Then, for each argument
      in args: if the tool's constraint map is non-empty and
      the argument name is not present in the constraint map,
      DENY (closed-world mode). For each argument name present
      in the constraint map, if that argument is absent from
      args, DENY (constrained argument MUST be present). For
      each argument name present in both the constraint map
      and args, verify the argument value satisfies the
      constraint. If any constraint check fails, 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.
      If alg is "none", not on the allowlist, or inconsistent
      with the key type, DENY.                       (Sec 8.13)
   b. Verify pop_jwt signature under leaf.cnf.jwk. After
      signature verification succeeds, parse the PoP JWT claims. (I6)
   c. Verify pop_jwt.aat_id == leaf.jti.
   d. If deployment policy requires PoP audience binding, verify
      pop_jwt.aat_aud identifies this enforcement point or resource
      context. If absent or mismatched, DENY.
   e. Verify pop_jwt.aat_tool equals tool using the exact-string
      matching rules in Section 3.3.1.
   f. Verify pop_jwt.hta, when JCS-canonicalized, equals the
      JCS-canonical form of the args map for this invocation. If the
      canonical byte sequences differ, DENY.
   g. Verify pop_jwt.iat is within the clock tolerance
      window. If outside the window, DENY.

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

<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. Enforcement points <bcp14>MUST</bcp14> reject any token whose JWS <spanx style="verb">alg</spanx>
header is <spanx style="verb">"none"</spanx>. The <spanx style="verb">"none"</spanx> algorithm provides no cryptographic
protection and <bcp14>MUST NOT</bcp14> be used in any AAT or PoP JWT.</t>

<t>The <spanx style="verb">hta</spanx> comparison in step 7f requires both the enforcement point and
the holder producing the PoP JWT to use JCS canonicalization
(<xref target="RFC8785"/>). The enforcement point <bcp14>MUST</bcp14> canonicalize the <spanx style="verb">args</spanx> map
independently and compare the resulting byte sequence against the
canonical form committed to by the PoP JWT signature. Implementations
<bcp14>MUST NOT</bcp14> compare raw JSON
strings; surface differences such as key ordering or numeric
representation (e.g., 1.0 vs 1) are resolved by canonicalization before
comparison.</t>

<t>The JWS <spanx style="verb">alg</spanx> header value <bcp14>MUST</bcp14> be consistent with the key type of the
key used to verify the signature: the trust anchor public key for root
tokens, and the <spanx style="verb">cnf.jwk</spanx> of the parent token for derived tokens.
Enforcement points <bcp14>MUST</bcp14> reject any token where the declared <spanx style="verb">alg</spanx> is not
compatible with the verifying key's <spanx style="verb">kty</spanx> and <spanx style="verb">crv</spanx> parameters. For
example, a token whose <spanx style="verb">alg</spanx> is <spanx style="verb">"EdDSA"</spanx> <bcp14>MUST</bcp14> be verified against an
OKP key with <spanx style="verb">"crv": "Ed25519"</spanx> or <spanx style="verb">"crv": "Ed448"</spanx>. A mismatch between
the declared algorithm and the verifying key type <bcp14>MUST</bcp14> result in denial,
regardless of whether the signature bytes would verify under an
alternate interpretation.</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. Implementations
<bcp14>SHOULD</bcp14> use this characterization to identify required
complementary controls for their threat environment.</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.</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 the classic form, a deputy is induced to
use its own authority on a resource designated by another party. In
agentic systems, that designation can come from an invoking principal,
prompt injection, tool output, or model error. AATs avoid relying on the
standing authority the classic form exploits: 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 issuers <bcp14>SHOULD</bcp14> scope leaf tokens as narrowly
as the task permits. The delegation chain verifies provenance and
attenuation, and the enforcement point checks the presented invocation
against the leaf token's constraints. How a constraint value maps to the
resource the tool ultimately acts upon is defined by the tool contract
and implemented by the tool: the protocol authorizes the presented
invocation, and the tool remains responsible for resolving that
invocation to the correct resource.</t>

<t><strong>Privilege escalation across delegation hops.</strong> The capability
monotonicity invariant (I4) ensures that authority can only narrow at
each delegation step. A derived token cannot authorize tools or
argument values absent from its parent token. An agent that attempts
to mint a derived token with
broader scope will produce a token that fails chain verification at the
enforcement point.</t>

<t><strong>Compromised sub-agents.</strong> If a sub-agent is compromised, the blast
radius is bounded by the scope of the token it holds. The attacker
cannot use the compromised agent to escalate to broader authority,
invoke tools outside the token's scope, or derive tokens with wider
permissions than the compromised token encodes.</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
delegator 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>. 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>Token replay for irreversible operations.</strong> For irreversible or
side-effecting tool invocations, stateful <spanx style="verb">jti</spanx> tracking at the
enforcement point enables prevention of PoP JWT replay. See Section 8.5
for the distinction between stateful and probabilistic replay controls
and the deployment requirements for each.</t>

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

<t><strong>Malicious or compromised root issuer.</strong> The security of all chains
depends on the integrity of the trust anchor key. A root issuer that
mints tokens with overly broad scopes, or whose signing key is
compromised, undermines the authorization guarantees of every chain it
anchors. AATs provide no mechanism to detect or constrain a malicious
root issuer. Key management, rotation procedures, and root issuer
accountability are deployment concerns outside the scope of this
specification.</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 7 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.</t>

<t><strong>Compromised holder key.</strong> If an agent's private key is stolen, the
attacker can exercise the full authority encoded in that agent's token
until the token expires. The blast radius is bounded by the token scope,
but within that scope the attacker has full authorization. Short token
lifetimes (Appendix B.7) limit the exposure window.</t>

<t><strong>Model exfiltration and side-channel attacks.</strong> An attacker who
extracts an agent's model weights, system prompt, or in-context state
may be able to predict or manipulate the agent's behavior independently
of its token constraints. AATs operate at the authorization layer and
have no visibility into the model layer.</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. The broader chain
security properties also depend on the remaining invariants: delegation
authority (I1), depth bounds (I2), lifetime bounds (I3), parent-token
linkage (I5), and proof of possession (I6). Implementers <bcp14>MUST</bcp14> test I4
enforcement against the full constraint attenuation matrix in Section
4.5, including all (parent
type, child type) pairs, and <bcp14>MUST</bcp14> reject all pairs not explicitly
permitted.</t>

<t>Those other invariants rely on well-established
cryptographic primitives and validation patterns with substantial prior
art in deployed systems. I4 is novel. Formal verification of the I4
subsumption rules is in progress, using bounded model checking
(<xref target="ALLOY"/>) for set-theoretic constraint types and SMT solving (<xref target="Z3"/>)
for numeric and structural constraint types. Implementers are encouraged
to publish independent analyses of both the core subsumption rules and
any extension constraint types they deploy.</t>

<t>The Tenuo reference implementation includes a test suite covering monotonicity
of the attenuation invariants under arbitrary sequences, normalization
idempotence across encode/decode round-trips, and enforcement agreement
between in-memory and deserialized constraint evaluation. See
Appendix E for implementation status.</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 procedures and revocation
mechanisms appropriate to their risk model. The specific mechanism for
root key revocation, including revocation list formats, distribution
protocols, and enforcement point update procedures, is 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. The attacker cannot derive tokens with broader
scope than the compromised token grants. Mitigation is revocation of
tokens bound to the compromised key, or expiry-based recovery for
short-lived tokens.</t>

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

<t>The PoP JWT binds a specific invocation to a fresh PoP <spanx style="verb">jti</spanx>, a
timestamp, the target tool, the presented arguments, and, when required
by deployment policy, the enforcement point or resource audience. The
timestamp window limits the interval during which a captured PoP JWT
remains usable to approximately twice the clock tolerance (<bcp14>RECOMMENDED</bcp14>:
±30 seconds, giving a window of roughly 60 seconds). This provides
probabilistic replay resistance and is appropriate only for idempotent,
read-only tool invocations where duplicate execution is harmless.</t>

<t>For tool invocations that are irreversible or have significant side
effects, including financial transactions, data deletion, writes to
external systems, and any operation that cannot be undone: enforcement
points <bcp14>MUST</bcp14> implement stateful <spanx style="verb">jti</spanx> tracking for PoP JWTs and <bcp14>MUST NOT</bcp14>
rely solely on the timestamp window for replay protection.</t>

<t>PoP JWTs are scoped to the invocation data they contain. Deployments with
multiple enforcement points, resource servers, tenants, or resource
contexts that could accept the same AAT chain <bcp14>SHOULD</bcp14> require the
<spanx style="verb">aat_aud</spanx> claim and reject PoP JWTs whose audience does not identify the
accepting enforcement point or resource. Without audience binding, a PoP
JWT captured at one enforcement point may be replayable at another
enforcement point that accepts the same chain, tool name, and argument
map within the timestamp window, unless stateful <spanx style="verb">jti</spanx> tracking is shared
across those contexts.</t>

<t>This specification requires stateful <spanx style="verb">jti</spanx> tracking for irreversible
operations but does not define the storage backend, consistency model,
or distribution protocol for that state. The required consistency
properties depend on the deployment topology and the risk tolerance of
the application. Deployments <bcp14>SHOULD</bcp14> treat the time-windowed PoP as a
probabilistic control and layer additional idempotency mechanisms at the
application level 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. Extension constraint types defined in Section 3.5 and
registered in the IANA AAT Constraint Type Registry (Section 10.3)
<bcp14>MUST</bcp14> document their computational complexity and any resource limits
implementations <bcp14>SHOULD</bcp14> enforce. 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.</t>

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

<t>Enforcement points <bcp14>MUST</bcp14> enforce a finite MAX_DELEGATION_DEPTH to prevent
resource exhaustion from artificially deep chains. The appropriate value
is deployment-specific: linear orchestration chains require far fewer
hops than swarm architectures with deep fan-out delegation.
Implementations <bcp14>SHOULD</bcp14> choose a value that reflects the maximum chain
depth their deployment topology requires, without imposing an artificial
ceiling on legitimate use cases. See Appendix B.4 for guidance on
selecting an appropriate value.</t>

<t>The security rationale for depth limiting goes beyond resource
exhaustion. 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.</t>

<t>The <spanx style="verb">del_max_depth</spanx> claim in the root token is the root issuer's
explicit policy on chain topology. An implementation that ignores
<spanx style="verb">del_max_depth</spanx> or enforces only a global implementation limit without
checking per-token values violates this policy. Enforcement points <bcp14>MUST</bcp14>
check the per-token depth ceilings (<spanx style="verb">child.del_depth &lt;=
parent.del_max_depth</spanx> in step 4e, <spanx style="verb">child.del_max_depth &lt;=
parent.del_max_depth</spanx> in step 4g, and <spanx style="verb">child.del_depth &lt;=
child.del_max_depth</spanx> in step 4m of Section 7) and the global
MAX_DELEGATION_DEPTH limit (step 4f of Section 7). Neither the per-token
policy checks nor the global implementation limit is sufficient alone.</t>

</section>
<section anchor="unknown-constraint-types"><name>Unknown Constraint Types</name>

<t>Enforcement points <bcp14>MUST</bcp14> deny authorization when they encounter an
unknown constraint type. Permitting invocation in the presence of an
unrecognized constraint would silently remove a restriction the issuer
intended to enforce.</t>

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

<t>Revocation of individual AATs, including derived tokens, is outside the
scope of this specification. The offline delegation model trades
per-token revocation granularity for verifiability without authorization
server availability. This tradeoff is inherent in the verification model.</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
compatible with the intended delegation chain depth.</t>

<t>Root trust anchor rotation (replacing the trust anchor signing key and
re-issuing root tokens) is the appropriate response to a root key
compromise. Enforcement points <bcp14>SHOULD</bcp14> support configurable trust anchor
sets to enable rotation without downtime.</t>

<t>A companion document may define lineage-scoped cascading revocation. In
such a model, revocation is enforced by the enforcement point that
accepts the affected chain, not by requiring the root AS to track derived
tokens. Revoking a token invalidates that token and its descendants in
the same lineage, but does not invalidate unrelated tokens or
independent delegations held by the same agent, subject, or holder key.
Revocation transport, storage, distribution, consistency, token-status,
and introspection mechanisms are deployment and control-plane concerns
outside the scope of this document.</t>

</section>
<section anchor="approval-gates"><name>Approval Gates</name>

<t>Deployments may require signed approvals before accepting particular
tool invocations. Such approvals are outside the base chain verification
algorithm unless defined by a profile or extension. A profile that
defines approval gates should specify how approval requirements are
encoded, how they are preserved or attenuated during derivation, what
request data an approval signs, how approval freshness is checked, and
which approval identities or keys are trusted, including any threshold
or quorum requirements.</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, <bcp14>RECOMMENDED</bcp14>: 30 seconds)
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 5.3, <bcp14>RECOMMENDED</bcp14>: ±30 seconds) 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> tolerance window is ±30 seconds, which accommodates typical
Network Time Protocol (NTP) synchronized deployments with generous
margin. Deployments running on cloud infrastructure with guaranteed NTP
synchronization <bcp14>SHOULD</bcp14> target ±5 to ±10 seconds. Deployments with
stricter security requirements <bcp14>MAY</bcp14> reduce this window further.</t>

<t>Implementations <bcp14>MUST</bcp14> enforce a finite maximum tolerance window. Values
beyond ±60 seconds provide negligible additional clock skew tolerance
while meaningfully expanding the PoP replay window and are <bcp14>NOT
RECOMMENDED</bcp14>. A value of ±30 seconds is the conservative baseline; the
±60 second ceiling is intended only for heterogeneous environments such
as embedded systems or degraded connectivity scenarios.</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>. 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 a base protocol
invariant. 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</bcp14> reject tokens with <spanx style="verb">alg:
"none"</spanx> unconditionally and <bcp14>MUST NOT</bcp14> treat the absence of an <spanx style="verb">alg</spanx>
header as equivalent to any permitted algorithm.</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>The <bcp14>RECOMMENDED</bcp14> algorithm set is the same as for DPoP <xref target="RFC9449"/>:
ES256, ES384, ES512, RS256, RS384, RS512, PS256, PS384, PS512, EdDSA.
Symmetric algorithms (HS256, HS384, HS512) <bcp14>MUST NOT</bcp14> be used for AAT
signatures; symmetric keys cannot provide the per-holder key binding
that PoP requires.</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>

</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 AAT Constraint Type Registry (Section 10.3)
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_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>Enforcement point or resource 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>

</section>
<section anchor="oauth-authorization-details-types-registry"><name>OAuth Authorization Details Types Registry</name>

<t>This document requests registration of the following type in the IANA
OAuth Authorization Details Types Registry established by <xref target="RFC9396"/>.</t>

<texttable>
      <ttcol align='left'>Type Name</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">attenuating_agent_token</spanx></c>
      <c>This document</c>
</texttable>

</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 each submitted registration
satisfies all of the following criteria before approving it:</t>

<t><list style="numbers" type="1">
  <t>The type name is a lowercase string containing only letters,
digits, and underscores, and does not conflict with an
existing registered type name.</t>
  <t>The <spanx style="verb">check</spanx> predicate is fully specified: given any argument
value, an independent implementer can determine without
ambiguity whether the predicate returns true or false.</t>
  <t>The <spanx style="verb">subsumes</spanx> verification procedure satisfies the decidable,
sound, and deterministic properties defined in Section 3.5.1.
If the constraint language does not support a general
containment algorithm, the registration prescribes a
conservative syntactic strategy and formally justifies
its soundness.</t>
  <t>The cross-type subsumption rules enumerate every (parent
type, child type) pair involving both the new type and
all existing core types that the registration declares
valid, with explicit conditions. Unlisted
pairs are implicitly invalid; the registration <bcp14>MUST NOT</bcp14> rely on the
catch-all rejection rule to handle pairs that deserve explicit
treatment.</t>
  <t>The reference is a stable, publicly accessible specification
suitable for interoperable implementation.</t>
</list></t>

<t>Designated experts <bcp14>SHOULD</bcp14> request clarification when cross-type rules
are incomplete, when the subsumption procedure's soundness is not
formally justified, or when the check predicate leaves ambiguous cases
unresolved.</t>

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

<t>Registration requests <bcp14>MUST</bcp14> use the following template:</t>

<figure><artwork><![CDATA[
Type name:
  (A lowercase string. Example: "path_containment")

Additional members:
  (List each JSON member name, its JSON type, whether it is required
  or optional, its default value if optional, and its semantics.
  Example: "root (string, required): An absolute path root.")

check predicate:
  (A complete, unambiguous specification of the boolean predicate
  evaluated against an argument value at invocation time. Must
  cover all edge cases including null, empty, and out-of-range
  inputs.)

subsumes verification procedure:
  (A complete formal definition of what it means for one instance
  of this constraint type to be at least as restrictive as another.
  Must state whether the procedure is conservative and, if so, which
  semantically subsuming pairs it rejects. Must include a soundness
  argument: if the procedure returns true for (C_parent, C_child),
  then for all values v: C_child.check(v) implies C_parent.check(v).)

cross-type subsumption rules:
  (An explicit enumeration of every (parent type, child type) pair
  involving this type that is a valid attenuation, and the conditions
  under which it is valid. List both directions: this type as parent
  and this type as child. All unlisted pairs are implicitly invalid.
  Example:
    - (exact, this_type): valid if the exact value satisfies this
      type's check predicate.
    - (this_type, exact): invalid.
    - (this_type, this_type): valid if [condition].)

security considerations:
  (Any security properties, limitations, or attack surfaces specific
  to this constraint type, including known cases where the check
  predicate or subsumption procedure can be bypassed or confused.)

reference:
  (A stable, publicly accessible document defining all of the above.)
]]></artwork></figure>

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

<t>The core constraint types defined in Section 3.4 of this document
constitute the initial registry entries. For each type, the check
predicate and additional members are defined in Section 3.4, and the
subsumption rules and cross-type pairs are defined in Section 4.5.</t>

<texttable>
      <ttcol align='left'>Type Name</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">exact</spanx></c>
      <c>This document (Sections 3.4, 4.5)</c>
      <c><spanx style="verb">range</spanx></c>
      <c>This document (Sections 3.4, 4.5)</c>
      <c><spanx style="verb">one_of</spanx></c>
      <c>This document (Sections 3.4, 4.5)</c>
      <c><spanx style="verb">not_one_of</spanx></c>
      <c>This document (Sections 3.4, 4.5)</c>
      <c><spanx style="verb">contains</spanx></c>
      <c>This document (Sections 3.4, 4.5)</c>
      <c><spanx style="verb">subset</spanx></c>
      <c>This document (Sections 3.4, 4.5)</c>
      <c><spanx style="verb">wildcard</spanx></c>
      <c>This document (Sections 3.4, 4.5)</c>
      <c><spanx style="verb">all</spanx></c>
      <c>This document (Sections 3.4, 4.5)</c>
      <c><spanx style="verb">any</spanx></c>
      <c>This document (Sections 3.4, 4.5)</c>
</texttable>

</section>
</section>
<section anchor="oauth-authorization-server-metadata-registry"><name>OAuth Authorization Server Metadata Registry</name>

<t>This document requests registration of the following parameter in the
IANA OAuth Authorization Server Metadata registry established by
<xref target="RFC8414"/>.</t>

<texttable>
      <ttcol align='left'>Metadata Parameter</ttcol>
      <ttcol align='left'>Metadata Description</ttcol>
      <ttcol align='left'>Change Controller</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">aat_issuer</spanx></c>
      <c>Indicates root AAT issuance support</c>
      <c>IETF</c>
      <c>This document</c>
</texttable>

<t><spanx style="verb">aat_issuer</spanx> is a boolean value. When present and <spanx style="verb">true</spanx>, it indicates
that the root issuer supports issuance of AAT root tokens as described
in Section 3.7. When absent, the AS is assumed not to support AAT
issuance.</t>

</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 Token Type 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="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>
<section 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>

</section>


  </middle>

  <back>


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

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

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


    </references>

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

&RFC7942;
&RFC8949;
&RFC8392;
&RFC8693;
&RFC9052;
&RFC9334;
&RFC9449;
<reference anchor="OAUTH-TXN-TOKENS" target="https://datatracker.ietf.org/doc/draft-ietf-oauth-transaction-tokens/">
  <front>
    <title>Transaction Tokens</title>
    <author initials="A." surname="Tulshibagwale" fullname="Atul Tulshibagwale">
      <organization></organization>
    </author>
    <author initials="G." surname="Fletcher" fullname="George Fletcher">
      <organization></organization>
    </author>
    <author initials="P." surname="Kasselman" fullname="Pieter Kasselman">
      <organization></organization>
    </author>
    <date year="2026" month="March"/>
  </front>
</reference>
<reference anchor="OAUTH-ID-CHAINING" target="https://datatracker.ietf.org/doc/draft-ietf-oauth-identity-chaining/">
  <front>
    <title>OAuth Identity and Authorization Chaining Across Domains</title>
    <author initials="A." surname="Schwenkschuster" fullname="Arndt Schwenkschuster">
      <organization></organization>
    </author>
    <author initials="P." surname="Kasselman" fullname="Pieter Kasselman">
      <organization></organization>
    </author>
    <author initials="D." surname="Burgin" fullname="David Burgin">
      <organization></organization>
    </author>
    <author initials="M." surname="Jenkins" fullname="Mike Jenkins">
      <organization></organization>
    </author>
    <author initials="B." surname="Campbell" fullname="Brian Campbell">
      <organization></organization>
    </author>
    <author initials="A." surname="Parecki" fullname="Aaron Parecki">
      <organization></organization>
    </author>
    <date year="2026" month="May"/>
  </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="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="WIMSE-ARCH" target="https://datatracker.ietf.org/doc/draft-ietf-wimse-arch/">
  <front>
    <title>Workload Identity in a Multi System Environment (WIMSE) Architecture</title>
    <author initials="J." surname="Salowey" fullname="Joe Salowey">
      <organization></organization>
    </author>
    <author initials="Y." surname="Rosomakho" fullname="Yaroslav Rosomakho">
      <organization></organization>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization></organization>
    </author>
    <date year="2026" month="March"/>
  </front>
</reference>
<reference anchor="WIMSE-S2S" target="https://datatracker.ietf.org/doc/draft-ietf-wimse-s2s-protocol/">
  <front>
    <title>WIMSE Workload-to-Workload Authentication</title>
    <author initials="B." surname="Campbell" fullname="Brian Campbell">
      <organization></organization>
    </author>
    <author initials="J. A." surname="Salowey" fullname="Joseph A. Salowey">
      <organization></organization>
    </author>
    <author initials="A." surname="Schwenkschuster" fullname="Arndt Schwenkschuster">
      <organization></organization>
    </author>
    <author initials="Y." surname="Sheffer" fullname="Yaron Sheffer">
      <organization></organization>
    </author>
    <date year="2025" month="October"/>
  </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>
<reference anchor="ALLOY" target="https://doi.org/10.1145/505145.505149">
  <front>
    <title>Alloy: A Lightweight Object Modelling Notation</title>
    <author initials="D." surname="Jackson" fullname="Daniel Jackson">
      <organization></organization>
    </author>
    <date year="2002"/>
  </front>
  <seriesInfo name="ACM Transactions on Software Engineering and Methodology" value="Vol. 11, No. 2"/>
</reference>
<reference anchor="Z3" target="https://github.com/Z3Prover/z3">
  <front>
    <title>Z3: An Efficient SMT Solver</title>
    <author initials="L." surname="de Moura" fullname="Leonardo de Moura">
      <organization></organization>
    </author>
    <author initials="N." surname="Bjørner" fullname="Nikolaj Bjørner">
      <organization></organization>
    </author>
    <date year="2008"/>
  </front>
  <seriesInfo name="TACAS 2008, LNCS" value="4963"/>
</reference>


    </references>

</references>


<?line 2353?>

<section anchor="comparison-with-related-authorization-mechanisms-non-normative"><name>Comparison with Related Authorization Mechanisms (Non-Normative)</name>

<section anchor="token-exchange-rfc-8693"><name>Token Exchange (RFC 8693)</name>

<t>RFC 8693 allows a client to exchange one token for another, potentially
with reduced scope, by contacting the authorization server. The server
enforces scope reduction. This requires network connectivity to the
authorization server at each delegation hop and cannot be performed
offline.</t>

<t>This specification allows a token holder to derive a new token
locally, without contacting the authorization server. The attenuation
invariant is enforced by the chain verification algorithm, not by a
server-side policy check.</t>

</section>
<section anchor="rich-authorization-requests-rfc-9396"><name>Rich Authorization Requests (RFC 9396)</name>

<t>RFC 9396 defines a structured format for expressing fine-grained
authorization details in OAuth tokens. This specification uses the
<spanx style="verb">authorization_details</spanx> claim format from RFC 9396 and extends it with:
(1) a delegation chain model that links tokens via cryptographic hashes,
(2) monotonic attenuation invariants that constrain what derived tokens
may express, and (3) proof-of-possession binding that ties invocations
to specific key holders.</t>

</section>
<section anchor="dpop-rfc-9449"><name>DPoP (RFC 9449)</name>

<t>DPoP (<xref target="RFC9449"/>) is a token theft prevention mechanism that binds an
existing OAuth access token to a holder key, ensuring that a stolen
token cannot be presented without the corresponding private key. DPoP
does not change what the access token authorizes; the token's
authorization claims are unchanged. The resource server grants whatever
the access token permits; DPoP adds a cryptographic proof that the
presenter holds the bound key.</t>

<t>AATs encode the authorization itself. The token specifies which tools
may be invoked, with what argument constraints, and by which key holder.
Holders can derive tokens with authority equal to or narrower than
their own, without contacting the authorization server. The PoP JWT in
Section 5 serves a similar cryptographic role to a DPoP proof, binding a
specific invocation to the leaf token's holder key, but operates in a
different context. Everything else in this specification (the chain
model, the attenuation invariants, the constraint type registry, the
subsumption matrix) addresses questions outside DPoP's scope.</t>

<t>Structurally, DPoP is a two-party protocol between a client and a
resource server. There is no delegation model, no parent-child chain,
and no attenuation invariant. The chain model of this specification
(<spanx style="verb">del_depth</spanx>, <spanx style="verb">par_hash</spanx>, <spanx style="verb">del_max_depth</spanx>, and the six attenuation
invariants) is not defined by DPoP.</t>

<t>At the proof level, DPoP binds to an HTTP method (<spanx style="verb">htm</spanx>) and URI
(<spanx style="verb">htu</spanx>). AAT PoP JWTs bind to a tool name (<spanx style="verb">aat_tool</spanx>) and a structured
argument map (<spanx style="verb">hta</spanx>). Tool invocations are function calls, not HTTP
requests, and a URI alone carries insufficient information for
argument-level constraint evaluation. This is why <spanx style="verb">aat_tool</spanx> and <spanx style="verb">hta</spanx>
differ structurally from <spanx style="verb">htm</spanx> and <spanx style="verb">htu</spanx>: (1) <spanx style="verb">hta</spanx> carries the full
argument map required for constraint evaluation at the enforcement
point; (2) <spanx style="verb">aat_id</spanx> binds the proof to a specific leaf token <spanx style="verb">jti</spanx> and
chain position, which DPoP does not define.</t>

<t>The cryptographic mechanism is the same: an asymmetric key in <spanx style="verb">cnf.jwk</spanx>,
compact JWT serialization, verified against the leaf token's bound key.
DPoP could in principle be layered alongside AATs as a transport-level
binding for chain delivery, but that combination is outside the scope of
this specification.</t>

</section>
<section anchor="biscuit"><name>Biscuit</name>

<t>Biscuit <xref target="BISCUIT"/> and AATs both support offline attenuation and
decentralized verification. Biscuit is a compact authorization token
with Datalog-based policy checks and is commonly used as a bearer
credential. AAT is an OAuth-shaped, holder-bound delegation-chain
protocol with tool-and-argument constraints, cryptographic chain
invariants, and invocation-time proof of possession.</t>

<t>Biscuit is a general-purpose authorization token format. It does not
natively encode OAuth-oriented delegation-chain claims such as depth
limits, parent-token linkage, or explicit chain position declarations.
This specification defines those properties in the token model itself,
making the chain independently verifiable as a delegation protocol rather
than as a sequence of policy blocks.</t>

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

<section anchor="algorithm-recommendations"><name>Algorithm Recommendations</name>

<t><list style="symbols">
  <t><strong>Signing algorithm:</strong> Ed25519 <xref target="RFC8032"/>. The normative requirement
is in Section 3.2. EdDSA provides compact 64-byte signatures suitable
for constrained agent environments. The JWS <spanx style="verb">alg</spanx> header value for
Ed25519 is <spanx style="verb">"EdDSA"</spanx>.</t>
  <t><strong>Key representation:</strong> JWK <xref target="RFC7517"/> with <spanx style="verb">"kty": "OKP"</spanx> and
<spanx style="verb">"crv": "Ed25519"</spanx>.</t>
  <t><strong>Token identifier:</strong> UUIDv7 is recommended for <spanx style="verb">jti</spanx> values,
providing time-ordered identifiers without central coordination.</t>
</list></t>

<t>The algorithm allowlist requirement is normatively defined in Section 7
(steps 3a, 4a, and 7a) and discussed in Section 8.13.</t>

<t>The <spanx style="verb">cnf.jwk</spanx> key type is not hardcoded to Ed25519. Implementations
should be designed to support algorithm migration without requiring
changes to token structure.</t>

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

<t>In both root and derived AATs, <spanx style="verb">iss</spanx> is a URI. For root tokens it
is a conventional issuer URI. For derived tokens it is a JWK
Thumbprint URI (<xref target="RFC9278"/>) with the
<spanx style="verb">urn:ietf:params:oauth:jwk-thumbprint:sha-256:</spanx> prefix.
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="relationship-to-wimse"><name>Relationship to WIMSE</name>

<t>The WIMSE architecture <xref target="WIMSE-ARCH"/> and service-to-service protocol
<xref target="WIMSE-S2S"/> address workload identity and authentication for entities
that hold and present AATs. A WIMSE workload credential identifies an
agent; the <spanx style="verb">iss</spanx> claim in a root AAT issued to that agent may reference
the agent's WIMSE workload identifier. The two specifications are
complementary: WIMSE establishes workload identity and authentication;
this specification defines a holder-derivable, invocation-scoped
delegation and attenuation mechanism that WIMSE does not standardize.</t>

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

<t>The normative requirement is only that implementations enforce a finite
MAX_DELEGATION_DEPTH. This appendix provides non-normative guidance for
selecting an appropriate value.</t>

<t>The appropriate MAX_DELEGATION_DEPTH depends on the deployment topology.
Linear orchestration chains (root issuer, one or two planning layers,
leaf executor) require few hops. Swarm architectures with dynamic
fan-out, sub-task delegation, or hierarchical agent groups may require
significantly deeper chains. The implementation ceiling should reflect
the maximum depth the deployment actually needs, not an arbitrary
conservative default.</t>

<t>Regardless of the implementation ceiling, issuers should set
<spanx style="verb">del_max_depth</spanx> to the depth required by the expected workflow, with
margin for subprocess delegation, operational handoffs, and holder-key
handoff. Lower values reduce the number of offline delegation steps under
a grant, but overly tight values can suppress attenuation and encourage
broader token reuse. The security value comes from deliberate per-chain
policy, not from an arbitrarily low ceiling.</t>

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

<t>The normative requirement is only that implementations enforce finite
limits on token size, chain size, constraint nesting depth, and tool
count to prevent resource exhaustion. This appendix provides
non-normative recommended defaults for implementations with no specific
deployment constraints:</t>

<texttable>
      <ttcol align='left'>Parameter</ttcol>
      <ttcol align='left'>Recommended Default</ttcol>
      <c>Maximum token size</c>
      <c>64 KB</c>
      <c>Maximum chain size</c>
      <c>256 KB</c>
      <c>Maximum tools per token</c>
      <c>256</c>
      <c>Maximum constraints per tool</c>
      <c>64</c>
      <c>Maximum constraint nesting depth</c>
      <c>32</c>
      <c>Maximum tool name length</c>
      <c>256 bytes</c>
      <c>Maximum constraint value length</c>
      <c>4 KB</c>
</texttable>

<t>Deployments should document their enforced limits. Interoperating
parties should verify that their respective limits are compatible before
deployment.</t>

<t>Implementations should prefer core structural constraints where the
policy permits, as these types produce compact tokens and simple
subsumption checks.</t>

<t>Implementations concerned about parser exposure on unverified
payloads in step 2c of the chain verification algorithm (Section 7)
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.</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. Deployments should transmit AAT chains
in a request body field rather than an HTTP header. 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. 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>The normative requirement is only that derived tokens cannot outlive
their parents and that token lifetime does not exceed MAX_TOKEN_LIFETIME
(Section 4.4). This appendix provides non-normative guidance for
selecting appropriate TTL values.</t>

<t>Expiration is the base specification's built-in limit on token lifetime.
A token that has expired cannot be used regardless of whether a
revocation mechanism is deployed. Short lifetimes reduce the window of
exposure from key compromise, token theft, or scope misconfiguration.
The operational cost of short TTLs is re-issuance frequency; this cost
is low when the root issuer is available and derivation is offline.</t>

<t>The appropriate TTL depends on the token's position in the chain and the
deployment context. Root tokens should be long enough to cover the full
orchestration and execution window for the task, but no longer. Leaf
tokens should be scoped to the expected duration of a single tool
invocation. Deployments with intermittent connectivity (edge, embedded,
or air-gapped) may need longer lifetimes, with the awareness that longer
lifetimes expand the compromise window.</t>

<t>Deployments should treat TTL as a policy expression rather than a
convenience parameter. A root token with a 24-hour TTL
effectively grants the holder 24 hours of authority regardless of how
narrowly the capability scope is defined.</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 with deterministic subsumption rules. Implementers that
need richer expressiveness can define extension constraint types backed
by analyzable authorization policy languages, such as Cedar <xref target="CEDAR"/>.
Such an extension must define the runtime <spanx style="verb">check</spanx> predicate, the token
encoding of the policy, and a sound, deterministic subsumption procedure.
The fact that a policy language can decide whether an invocation is
authorized is not, by itself, sufficient for AAT attenuation; the
extension must also define how an enforcement point determines that a
derived policy is no less restrictive than its parent. This document does
not recommend a specific policy language. The normative requirement is
that every extension registration satisfy the decidable, sound, and
deterministic properties defined in Section 3.5.1.</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
format-agnostic. They describe a protocol, not an encoding. JWT/JWS is
the only fully specified token encoding in this document.</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>This appendix describes the implementation status of this specification
at the time of submission, per the practice described in <xref target="RFC7942"/>.</t>

<section anchor="reference-implementation"><name>Reference Implementation</name>

<t>Tenuo provides a reference implementation of this protocol. The chain
verification algorithm (Section 7) and token derivation procedure
(Section 6) are both implemented. Tenuo also includes an
implementation-specific CBOR/COSE wire representation, with Ed25519
signatures carried in COSE_Sign1 structures. That implementation
experience supports the format independence of the core protocol model,
but does not define a fully interoperable CWT profile; the CWT profile is
deferred as described in Appendix D.</t>

<t>RFC Editor Note: This section will be updated or removed before
publication.</t>

</section>
<section anchor="formal-verification"><name>Formal Verification</name>

<t>Formal verification of the attenuation algebra is in progress, using
three complementary techniques: bounded model checking (<xref target="ALLOY"/>) for
set-theoretic constraint types, SMT solving (<xref target="Z3"/>) for numeric and
structural constraint types, and property-based testing against the Rust
implementation for implemented constraint types.
Bounded model checking has found no counterexamples for scopes up to 8
constraints and 8 values. The combination is intended to provide
evidence toward monotonicity of the I4 invariant across the full
constraint attenuation matrix.</t>

<t>RFC Editor Note: This section will be updated or removed before
publication.</t>

</section>
</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA+y9WXMcV5Ym+H5/hQ/TsgWoIoJYuYCZ2QMCUBIStyKgVKvK
ygiPCA/ASY/wSHcPgJGS0uZlxsrmbf7BzNu8zts8d9v8kfolc9Z7z3X3AKms
tDJrs5ZlSqSHL3c59+znO8Ph0DV5U2RHyXHTZItV2uSL6+R41dyUVf4X+Fu5
SC7Lj9miTmZllRxfZ4smnySnWZFd868nN2m+qF06HlfZbes1eLc87qblZJHO
4UPTKp01w0W+zj/CF4ZlCh8bpuGxYYqPDRt6bLiz6yZpk12X1fooqZupm5SL
Gn5Y1UdJU60yV6/G87yuYSjNegmvPz+7/Mbly4p+rpu9nZ2nO3surbL0KLnI
Jqsqb9burqw+XlflanmU/JCNW/N9W5VNOSmLZOsN/rDtpjCAo2RvZ+/RcOfR
cPfQuZQeOHJJMkxmq6Lgmb2GGSXH+TwdFxn8hScI9yRJWV2nC3n/UXIJUy3p
ejZP8+IoWcCd/zMuQDlKc+cWZTWHW28z/MC7b072nz55dAR3/yb5fpHDNsyT
d1ldrqpJlpxPcUNmeVYlW9+/O98+Sv6YLbIKtuhivWjST/yCx4e7h/yCb3+4
8Jce66Xv/KWneulSLj3af+LvSi5vVvPxssoXjfz6ZGeHf4UlK2dD+N/bsq4z
2o3ku2wNCz5PkWCYeuC1NT/5ZGd/j588m55eHMvFx090lBdvXicn6aJc5JO0
0H25mNxk8yzZ+vbkYpufeLr3uHd4CSyF3LH/VJbuXT65aW30u+zPq6xuZExP
Dx/t+VW+zao6LYo1/hluSs5PdZ1rWOjvz09rGcKjxweyaEQsyd5op/WVbyog
DiQ4HfPOrn3gbYq/N/hiOmEnZ7IaB7sH97/4IqtgmMmrrEmBQlN5bHdPJvzH
VT7NinyR8Yt/AMLHQ5kukvPj18fJCZwjuKGid9V4NPAPzuWLWYv8Hj89kIU5
ny+r8paO9h2cKHh1nZSz5N1qscCLJ+UUTsHlTYY3FrBXQIE8UvjvKnyDB/pU
Fw5GMsnrLHmeL9JqnbwZf4D7YHOWVVb7V2ydPH/zTtb8yf5TGRBepBNMTAZu
+uFS73n0dL+9fHzT2afJTbq4zmQ7dg7tu+TjF/n1ghdrmpwtJtV6KYN4c3Gm
tLe/L/vzLpuXTZYcXzZATDxaWKZJNl1V2UWy9e748mI7Oa4mN3kD74aL8oID
XYDTt+VbuPbm+PvLF8PL//J6ePnmu7PXF0fEIoQ9P7is0kWdTgxHfsC/p9V1
1hwlN02zrI8ePkRSaKp08jGrRnnWzEbAex4C833IfBcvCc9twhuF2z6kNwbm
hv8ME2Zux82qSC5XRX2Tj9Pru7TIWjf8MYMvZck3RdbAQa1av77NkcaT71Lg
DwUwBfrZMtZ9vwLnp8OTF8fnr89f/zFeAt5JZnnNmjYnPhEki4g8JxUwouS0
nKNw+vcuVC5fHE7k/feuU7WYNsir7rLFx3pyAzLoyxYj/Hya3ubT5Pmqus7b
P73KP2bJt/BmlLnxT8+rHM72STpfjrOiaI8qrVCywaGdfMw7a38IV56fX5x8
f34Zr/jzvJ6scli007xuqny8arL2mt9Li+VkNOZX1NmEFrjKZhlwjkn2sF5m
E+CoE2ZAo5tmXvQuKzx1lJxNinwJPOKbcrWYpsJFTs5Oj9/FAz7JpmmVvC2L
fLJOXsIxX4E2ASdUPspMceNg69EEn1/S46NJOe/faBqR/RL88ur45Pjdmzft
U/sqncDKw/zggbL8mAMzvsuBiIHnNdmnZpUWsGO3Wdowkz7NJkBqFcq8zkLn
i6QB1npSlKvpg/sJEAb2PAfqqeuyTUDflrAI+Xhc09Cbv7R+/r6YwcNnFciN
656njxcfV1VymRbrDl3C2ciK5E8VKj/tH9PqY/ISJjb5y0LOglLf7gH9tQaV
JatR9OhsXp9eXMD64R3924XCIQWmOrouy+sie7hcjWv818Huk6d7uG8Xxy8v
/+ns3ePDFh+FNUQNj2URiq9zlXi8yCflfLnC43mxhqM7r+9b62+zqgSV5MUo
uUiL5i+dg67LcjpCjlCV2TSa/+7Tx4cb5v8WJUg2xW3AMeLOn5+dncEE/lQW
o+TR/iB5XY6Sp5toOafTtrsz2t3defrw7bs3JyP82ugpaETwyIvjd6c/PnnS
XRogzNmqBuI7zWAV1skWUOXdzTqZpMt0nAPFIAnP8+ubJrkBwk3GWYardgu7
m02371ur16i4vkir6TpagSdPNqzA8cmr5OL8j2/eXiRvlqSnAGOXPYETfZtn
d7oae3u8GhtIZVqM0slc+HvOi3Jw+PDwYO/J09GTx7uPd3BJTo5fnb3ca1HL
KXAO/jJsyHzZALF8YMqpk/EaFqkGTeG+WZ9NS5hyCXeOQV+aZk2Tt+44L/I0
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

-->

</rfc>

