<?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.43 (Ruby 4.0.7) -->


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

]>


<rfc ipr="trust200902" docName="draft-sweeney-wimse-credential-delegation-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Credential Delegation for AI Agents">Credential Delegation Protocol for AI Agents in Multi-System Environments</title>

    <author initials="K." surname="Sweeney" fullname="Kieran Sweeney">
      <organization></organization>
      <address>
        <email>kieran@kierans.net</email>
      </address>
    </author>

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

    <area>sec</area>
    <workgroup>WIMSE</workgroup>
    <keyword>AI agents</keyword> <keyword>delegation</keyword> <keyword>OAuth</keyword> <keyword>WIMSE</keyword> <keyword>capability</keyword>

    <abstract>


<?line 260?>

<t>Autonomous AI agents increasingly require access to protected resources across multiple service providers on behalf of human users. Existing OAuth 2.0 extensions address individual aspects of this problem (token exchange, proof-of-possession, and structured authorization) but no current specification defines how these mechanisms compose into a coherent credential delegation framework for AI agents.</t>

<t>This document specifies the Credential Delegation Protocol: a profile of OAuth 2.0 Token Exchange (RFC 8693), Demonstrating Proof-of-Possession (RFC 9449), Rich Authorization Requests (RFC 9396), and Client-Initiated Backchannel Authentication (OpenID Connect CIBA) that enables human users to delegate scoped, attenuated credentials to AI agents operating across heterogeneous service providers.</t>

<t>The protocol defines: agent identity lifecycle management using ephemeral key pairs; capability-shaped delegation tokens bound to specific operations and resources; credential wrapping semantics that prevent exposure of underlying OAuth tokens to agents; consent-gated delegation flows for asynchronous agents; real-time cascading revocation; and tamper-evident audit chains.</t>

<t>This document does not define new token formats, new OAuth grant types, or modifications to existing authorization server behavior. It specifies how existing mechanisms are combined to achieve secure, auditable credential delegation for AI agents.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-sweeney-wimse-credential-delegation/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Workload Identity in Multi System Environments (WIMSE) Working Group mailing list (<eref target="mailto:wimse@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/wimse/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/wimse/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/cred-ninja/protocol"/>.</t>
    </note>


  </front>

  <middle>


<?line 270?>

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

<section anchor="problem-statement"><name>Problem Statement</name>

<t>OAuth 2.0 <xref target="RFC6749"/> solved human-to-service authorization. When a user authorizes an application to act on their behalf, the application receives an access token representing that delegation. This model assumes a human present at a browser for the consent ceremony.</t>

<t>AI agents operate autonomously. They are ephemeral (spawned on demand), numerous (many agents per user per service), and adversarially promptable: a compromised prompt can direct an agent to misuse any credential it holds. Existing standards fail the agent delegation use case in seven specific ways:</t>

<t><list style="numbers" type="1">
  <t><strong>No agent identity primitive.</strong> OAuth clients require pre-registration. Agents are ephemeral and cannot register at instantiation time. SPIFFE requires admin provisioning. No standard defines bootstrapping an agent identity from nothing.</t>
  <t><strong>No delegation chain attenuation.</strong> When Agent A sub-delegates to Agent B, existing standards do not enforce that authority can only narrow. RFC 8693 records delegation chains via nested <spanx style="verb">act</spanx> claims but treats them as "informational only": no enforcement, no structural guarantee. The delegation chain splicing vulnerability (disclosed to the OAuth WG mailing list, February 26, 2026 <xref target="OAUTH-SPLICING"/>) demonstrates that Sections 2.1-2.2 of <xref target="RFC8693"/> permit a compromised intermediary to present mismatched <spanx style="verb">subject_token</spanx> and <spanx style="verb">actor_token</spanx> from different delegation contexts, producing a properly-signed token asserting a delegation chain that never occurred.</t>
  <t><strong>No credential wrapping.</strong> Agents need to use credentials at resource servers that do not understand delegation. No standard defines how a delegation token authorizes credential exercise without exposing the raw credential to the agent.</t>
  <t><strong>No granular authorization.</strong> OAuth scopes are coarse string identifiers. Agents need resource- and operation-level capability binding: not "can access Google Drive" but "can read file X in folder Y until time T." RFC 9396 provides the structural mechanism but no agent-specific vocabulary or attenuation rules.</t>
  <t><strong>No synchronous revocation cascade.</strong> Revoking a root delegation must immediately invalidate all derived delegations. UCAN revocation is gossip-based. RFC 8693 explicitly defers revocation to implementations. No existing standard provides sub-second cascading revocation for a delegation tree.</t>
  <t><strong>No asynchronous consent.</strong> Agent-initiated flows require user approval without a redirect URI. CIBA <xref target="OIDC-CIBA"/> provides the mechanism but is not profiled for agent delegation scenarios, and CIBA + DPoP interaction is underspecified.</t>
  <t><strong>No delegation audit chain.</strong> No standard defines an immutable, portable audit trail for "Agent A used User B's credential C to perform operation D at time T via delegation chain E."</t>
</list></t>

<t>This document profiles existing standards to address all seven gaps.</t>

</section>
<section anchor="relationship-to-existing-work"><name>Relationship to Existing Work</name>

<t>The IETF landscape for agent authorization moved quickly during 2026. The OAuth Working Group was rechartered in June 2026 with agents acting on behalf of users explicitly in scope. The WIMSE Working Group held an interim meeting on June 3, 2026 dedicated to AI agent authentication and authorization and has since adopted that work as AIMS. Several dozen individual drafts now address some slice of agent identity or delegation. This section positions this protocol against the working group documents and the individual drafts closest to its mechanics. It is not a survey.</t>

<section anchor="frameworks-and-working-group-documents"><name>Frameworks and Working Group Documents</name>

<t><strong>draft-ietf-wimse-aims</strong> (<xref target="AIMS"/>): AI Identity Management System, a framework for AI agent authentication and authorization, adopted by WIMSE and published as draft-ietf-wimse-aims-00. The framework identifies the need for concrete delegation mechanics and defers them to OAuth flows. This document supplies those mechanics and is designed as a companion, not a replacement.</t>

<t><strong>draft-ietf-wimse-arch</strong> (<xref target="WIMSE-ARCH"/>): Defines the trust domain model and terminology assumed here for WIMSE deployments. The Delegation Server is a service within a trust domain, and Agent identities established per <xref target="agent-identity"/> are compatible with WIMSE workload identifiers.</t>

<t><strong>draft-ietf-wimse-wpt</strong> (<xref target="WIMSE-WPT"/>): Defines the Workload Proof Token (WPT), a proof-of-possession mechanism for workloads. This protocol binds Delegation Tokens with DPoP <xref target="RFC9449"/> instead: DTs are exercised over plain HTTP by ephemeral agents that may sit outside any WIMSE trust domain, the deployment shape DPoP already serves. A future revision may profile WPT for DS-to-resource-server hops inside WIMSE trust domains.</t>

<t><strong>draft-ni-wimse-ai-agent-identity</strong> (<xref target="WIMSE-AGENT"/>): Addresses agent identity within WIMSE. The did:key model used here is compatible. This document adds credential wrapping, revocation, consent gating, and chain verification.</t>

<t><strong>draft-reece-wimse-cross-org-delegation</strong> (<xref target="CROSS-ORG-REQS"/>): A problem statement and requirements catalogue for cross-organizational delegation, used on the WIMSE list as a common frame for evaluating delegation proposals. A future revision of this document will map the protocol against those requirements.</t>

</section>
<section anchor="delegation-chain-mechanics"><name>Delegation Chain Mechanics</name>

<t><strong>draft-ietf-oauth-identity-chaining</strong> (<xref target="OAUTH-CHAINING"/>): In the RFC Editor queue at -17. Chains identity and authorization across trust domains by exchanging a token in one domain for a JWT assertion accepted in another. It preserves identity across hops but does not constrain what each hop may do. This protocol adds structural attenuation and receipt-based chain verification on the same RFC 8693 substrate. The two compose.</t>

<t><strong>draft-niyikiza-oauth-attenuating-agent-tokens</strong> (<xref target="AAT"/>): Defines tokens a holder can attenuate offline. Same goal as <xref target="chain-integrity"/>, different trust model: AAT verification relies on the root issuer key and offline derivation, while this protocol keeps the Delegation Server in the loop at every hop in exchange for synchronous revocation (<xref target="revocation"/>) and server-checked strict-subset validation.</t>

<t><strong>draft-asor-wimse-agent-delegation-chain</strong> (<xref target="ASOR"/>): Defines an offline-verifiable Delegation Chain of RFC 9068 JWTs, each committing to its parent's signing input by hash, carrying authority as exactly one RFC 9396 <spanx style="verb">agent_delegation</spanx> detail with a three-form scope grammar (literal, wildcard, and opaque provider-issued scopes, Section 4.1 of that draft) and a typed constraint vocabulary (Section 4.2), naming the principal in <spanx style="verb">sub</spanx> and the acting agent in <spanx style="verb">client_id</spanx> at every hop, and verified by a deterministic algorithm with no call to an authorization server. This protocol is the server-side counterpart: the Delegation Server is in the loop at every hop and holds the credentials, so revocation is synchronous and aggregate budgets have a single writer, while a receipt chain verified offline still proves scope narrowing, depth, linkage, expiry ordering, and, with <xref target="constraint-ceilings"/>, ceiling narrowing. That draft describes the two as halves of one design separated by whether a server is in the path, and points deployments that need synchronous cascading revocation or shared aggregate accounting to the Delegation Server defined here (Sections 8 and 9.4 of that draft). The two share the scope grammar, the constraint vocabulary, the subsumption rules, and the <spanx style="verb">sub</spanx>/<spanx style="verb">client_id</spanx> split, so one subsumption implementation serves both. The tokens the DS verifies itself use a different wire format: <xref target="ASOR"/> carries scopes and constraints inside a single closed <spanx style="verb">agent_delegation</spanx> detail and rejects any other detail type, while this document's Delegation Tokens carry <spanx style="verb">cred_delegation</spanx> capabilities and a separate <spanx style="verb">delegation_constraints</spanx> claim. For tokens meant to be verified away from the DS, including tokens a user mints with no DS involved, <xref target="chain-verifiable-profile"/> adopts the <xref target="ASOR"/> format unchanged, so a custody server and an offline verifier read the authority those tokens carry in one vocabulary. Cred's reference implementation is run against the Asor interop vectors; <xref target="impl-status"/> gives the results, the commits they were taken at, what each vector set covers, and the failures and gaps. This document cites -03 (27 October 2026). -03 leaves the -02 token format unchanged, keeps all thirty-five -02 vectors and adds one (<spanx style="verb">reject_child_adds_detail_type</spanx>), and requires <spanx style="verb">now &lt; exp</spanx> at step 5 of its verification algorithm, as the JWT <spanx style="verb">exp</spanx> claim does; -02 admitted <spanx style="verb">now = exp</spanx>. It also stops requesting registration of <spanx style="verb">del_depth</spanx>, <spanx style="verb">del_max_depth</spanx>, and <spanx style="verb">par_hash</spanx>, which <xref target="AAT"/> requests with a different definition of <spanx style="verb">del_max_depth</spanx>; a token under <xref target="chain-verifiable-profile"/> carries those claims as <xref target="ASOR"/> defines them.</t>

<t><strong>draft-gco-oauth-delegate-sd-jwt</strong> (<xref target="DELEGATE-SD-JWT"/>; the OAuth WG adopted it on 16 October 2026, and the WG -00 had not been posted at the time of writing): Delegates SD-JWT credentials holder-to-holder by allowing a Key Binding JWT to act as an SD-JWT. It operates at the credential format layer; this protocol operates at the delegation service layer. A DS could issue capability attestations as Delegate SD-JWTs without changing the mechanics defined here. Comments in the adoption call identified what the format layer leaves open: a delegate payload may add claims with no rule against widening a predecessor's, a delegation's lifetime is not bounded by its predecessor's, and depth and no-further-delegation limits are undefined. Those are the chain rules of <xref target="chain-integrity"/>, which a holder-signed profile would need to state in its own terms.</t>

<t><strong>draft-zhu-oauth-async-delegation</strong> (<xref target="ASYNC-DELEG"/>): Defines delegated refresh tokens so agents can act while the user is offline. This protocol answers the same need by keeping refresh tokens in the Credential Vault and giving agents only short-lived DTs. The two are alternative positions on whether agents may hold long-lived credentials at all.</t>

<t><strong>draft-oauth-ai-agents-on-behalf-of-user</strong> (<xref target="OBO-USER"/>; expired February 2026): Introduced <spanx style="verb">requested_actor</spanx> and <spanx style="verb">actor_token</spanx> parameters binding the acting agent into the authorization code exchange. That closes the same actor-binding weakness this protocol closes with <spanx style="verb">prf</spanx> receipts, but only for the first hop and only at the authorization server. See <xref target="splicing"/>.</t>

</section>
<section anchor="credential-intermediation"><name>Credential Intermediation</name>

<t><strong>draft-hartman-credential-broker-4-agents</strong> (<xref target="CB4A"/>; expired): Specifies a credential vaulting broker that mediates agent API access through short-lived, narrowly scoped proxy credentials. Architecturally the closest work to the Delegation Server and Credential Vault defined here. CB4A defines the broker; this document additionally defines the delegation chain (attenuation, receipts, sub-delegation), the consent flow, and the revocation cascade such a broker must enforce.</t>

<t><strong>draft-araut-oauth-transaction-tokens-for-agents</strong> (<xref target="TXN-AGENTS"/>): Extends transaction tokens to carry agent context in the <spanx style="verb">act</spanx> claim for intra-domain call chains. Complementary: transaction tokens propagate context within a domain after authorization exists; this protocol governs how the authorization comes to exist.</t>

<t><strong>draft-schwenkschuster-wimse-credential-exchange</strong> (<xref target="WIMSE-CRED-X"/>; expired): Despite the similar name, addresses a workload exchanging its own credential for a different format or trust domain. This document addresses human-to-agent delegation over stored credentials that are never issued to the requesting party.</t>

</section>
<section anchor="consent-mandates-and-audit-evidence"><name>Consent, Mandates, and Audit Evidence</name>

<t><strong>draft-yossif-agent-mandate-problem</strong> (<xref target="MANDATE-PS"/>): A problem statement on verifiable human mandates: intent authorized at one time, executed autonomously later. The consent records (<xref target="consent-flow"/>) and capability constraints defined here are a concrete answer to part of that problem space.</t>

<t><strong>draft-nelson-agent-delegation-receipts</strong> (<xref target="DELEG-RECEIPTS"/>): Defines a delegation receipt recording what an agent may do, for how long, and under what instructions, with scope attenuation rules for multi-agent chains and a revocation registry with cascade semantics. The root receipt is signed by the authorizing human principal's key. A sub-receipt is signed by the parent's delegatee: the parent's optional <spanx style="verb">delegateeKey</spanx> must match the sub-receipt's signing key, compared as JWK thumbprints <xref target="RFC7638"/>, and a receipt without <spanx style="verb">delegateeKey</spanx> is terminal. The <spanx style="verb">prf</spanx> receipts in <xref target="chain-integrity"/> are DS-signed and bind hops within a chain; Nelson's root receipt is principal-signed and binds the principal's instruction to the agent's run. They answer different trust questions and can coexist. Section 4.6 of that draft states that custody of the signing key is attested by the deployment out of band and cannot be shown from the receipt bytes. Consistent with that, a principal-signed root receipt adds assurance beyond a server-signed one where the deployment attests that the principal's key is held by the user and the user verifies what it signs; a key the operator holds or can export proves no more than the operator's own signature. A sub-receipt carries the assurance of the delegatee key that signed it, not the principal's.</t>

<t><strong>draft-nennemann-wimse-ect</strong> (<xref target="ECT"/>; expired): Execution Context Tokens define an audit record format. This protocol's audit chain is designed to be ECT-compatible.</t>

<t><strong>draft-goswami-agentic-jwt</strong> (<xref target="AGENTIC-JWT"/>): Describes agent checksums and workflow-aware intent binding. This document does not define an agent checksum or intent-binding claim.</t>

</section>
</section>
<section anchor="design-principles"><name>Design Principles</name>

<t><strong>Compose, don't invent.</strong> Every mechanism reuses an existing standard. New concepts appear only where the gaps identified in <xref target="problem-statement"/> are confirmed.</t>

<t><strong>Attenuation is structural.</strong> Agents cannot widen authority at any delegation hop. This is enforced by the Delegation Server, not by trusting agents. Inspired by UCAN attenuation semantics and the object-capability model <xref target="MILLER-2006"/>.</t>

<t><strong>Credentials are never possessed.</strong> Agents receive and exercise delegated authority through the Delegation Server. Raw credentials never cross the boundary to the agent host: the underlying credential is never delivered to the Agent, so an Agent turned into a confused deputy <xref target="CONFUSED-DEPUTY"/> cannot leak it. This does not protect the credential at the DS itself (<xref target="trusted-ds"/>).</t>

<t><strong>Revocation is synchronous.</strong> A user revoking delegation takes effect within the SLA defined in <xref target="revocation"/>. Eventual consistency is not acceptable for credential revocation in adversarially-promptable systems.</t>

<t><strong>Capability-shaped, not identity-scoped.</strong> Delegation tokens authorize specific operations on specific resources with specific constraints, not "Agent X can access Service Y." Follows the NORA (designation = authority) principle from capability security.</t>

<t><strong>Chain integrity is cryptographic.</strong> Each delegation hop produces a signed receipt. The chain is verifiable end-to-end without trusting intermediate agents, addressing the RFC 8693 delegation chain splicing vulnerability.</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?>

<dl>
  <dt>Delegation Server (DS):</dt>
  <dd>
    <t>A service that issues, manages, and revokes Delegation Tokens on behalf of Subjects. The DS maintains the Credential Vault and enforces delegation policies. It acts as an intermediary between Agents and upstream OAuth authorization servers.</t>
  </dd>
  <dt>Agent:</dt>
  <dd>
    <t>An autonomous software entity that performs actions on behalf of a Subject across one or more service providers. An Agent authenticates to the DS using an ephemeral key pair and receives Delegation Tokens authorizing specific operations. An Agent <bcp14>MUST NOT</bcp14> possess or have access to the underlying credentials stored in the Credential Vault.</t>
  </dd>
  <dt>Subject:</dt>
  <dd>
    <t>The human user who authorizes credential delegation. The Subject authenticates to the DS, deposits credentials into the Credential Vault, defines delegation policies, and approves or denies consent-gated delegation requests.</t>
  </dd>
  <dt>Delegation Token (DT):</dt>
  <dd>
    <t>A signed JWT issued by the DS that authorizes an Agent to perform specified operations on specified resources via the DS. A DT contains capability claims structured per <xref target="RFC9396"/>, a DPoP key binding for proof-of-possession verification, and an opaque credential handle. Delegation Tokens <bcp14>MUST NOT</bcp14> contain raw OAuth tokens or credentials.</t>
  </dd>
  <dt>Credential Vault:</dt>
  <dd>
    <t>Server-side secure storage maintained by the DS that holds OAuth tokens and credentials deposited by Subjects. Credentials are referenced by opaque handles and exercised exclusively by the DS on behalf of Agents presenting valid Delegation Tokens.</t>
  </dd>
  <dt>Capability:</dt>
  <dd>
    <t>A structured authorization grant specifying a permitted operation, a target resource, and optional constraints (time bounds, rate limits, argument restrictions). Expressed using the <spanx style="verb">authorization_details</spanx> object defined in <xref target="RFC9396"/> and bound to a specific Delegation Token.</t>
  </dd>
  <dt>Attenuation:</dt>
  <dd>
    <t>The process by which a Capability is further constrained when delegated from one entity to another. An attenuated Capability <bcp14>MUST</bcp14> be a strict subset of its parent. Authority can only narrow at each delegation hop; it can never widen.</t>
  </dd>
  <dt>Delegation Chain:</dt>
  <dd>
    <t>An ordered sequence of Delegation Tokens from Subject to Agent_1 to Agent_2 ... to Agent_N, where each link attenuates the authority of the previous. The chain is verifiable from any link back to the root consent event via signed delegation receipts.</t>
  </dd>
  <dt>Credential Exercise:</dt>
  <dd>
    <t>The act of the DS using a stored credential on behalf of an Agent. The Agent presents a valid DT and DPoP proof to the DS, which validates the DT, retrieves the credential from the Vault, calls the resource server, and returns only the API response.</t>
  </dd>
</dl>

</section>
<section anchor="architecture-overview"><name>Architecture Overview</name>

<figure title="Protocol Architecture" anchor="arch-figure"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="768" width="456" viewBox="0 0 456 768" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,112" fill="none" stroke="black"/>
<path d="M 8,160 L 8,512" fill="none" stroke="black"/>
<path d="M 8,560 L 8,752" fill="none" stroke="black"/>
<path d="M 32,208 L 32,320" fill="none" stroke="black"/>
<path d="M 32,352 L 32,416" fill="none" stroke="black"/>
<path d="M 32,448 L 32,496" fill="none" stroke="black"/>
<path d="M 88,320 L 88,352" fill="none" stroke="black"/>
<path d="M 144,208 L 144,320" fill="none" stroke="black"/>
<path d="M 168,208 L 168,320" fill="none" stroke="black"/>
<path d="M 224,112 L 224,152" fill="none" stroke="black"/>
<path d="M 224,512 L 224,552" fill="none" stroke="black"/>
<path d="M 272,208 L 272,320" fill="none" stroke="black"/>
<path d="M 296,208 L 296,320" fill="none" stroke="black"/>
<path d="M 408,352 L 408,416" fill="none" stroke="black"/>
<path d="M 408,448 L 408,496" fill="none" stroke="black"/>
<path d="M 416,208 L 416,320" fill="none" stroke="black"/>
<path d="M 448,32 L 448,112" fill="none" stroke="black"/>
<path d="M 448,160 L 448,512" fill="none" stroke="black"/>
<path d="M 448,560 L 448,752" fill="none" stroke="black"/>
<path d="M 8,32 L 448,32" fill="none" stroke="black"/>
<path d="M 8,112 L 448,112" fill="none" stroke="black"/>
<path d="M 8,160 L 448,160" fill="none" stroke="black"/>
<path d="M 32,208 L 144,208" fill="none" stroke="black"/>
<path d="M 168,208 L 272,208" fill="none" stroke="black"/>
<path d="M 296,208 L 416,208" fill="none" stroke="black"/>
<path d="M 32,320 L 144,320" fill="none" stroke="black"/>
<path d="M 168,320 L 272,320" fill="none" stroke="black"/>
<path d="M 296,320 L 416,320" fill="none" stroke="black"/>
<path d="M 32,352 L 408,352" fill="none" stroke="black"/>
<path d="M 32,416 L 408,416" fill="none" stroke="black"/>
<path d="M 32,448 L 408,448" fill="none" stroke="black"/>
<path d="M 32,496 L 408,496" fill="none" stroke="black"/>
<path d="M 8,512 L 448,512" fill="none" stroke="black"/>
<path d="M 8,560 L 448,560" fill="none" stroke="black"/>
<path d="M 8,752 L 448,752" fill="none" stroke="black"/>
<polygon class="arrowhead" points="232,552 220,546.4 220,557.6" fill="black" transform="rotate(90,224,552)"/>
<polygon class="arrowhead" points="232,152 220,146.4 220,157.6" fill="black" transform="rotate(90,224,152)"/>
<g class="text">
<text x="200" y="52">SUBJECT</text>
<text x="260" y="52">(User)</text>
<text x="36" y="68">1.</text>
<text x="84" y="68">Connects</text>
<text x="156" y="68">services</text>
<text x="224" y="68">(OAuth)</text>
<text x="36" y="84">2.</text>
<text x="68" y="84">Sets</text>
<text x="132" y="84">delegation</text>
<text x="212" y="84">policies</text>
<text x="36" y="100">3.</text>
<text x="84" y="100">Approves</text>
<text x="152" y="100">consent</text>
<text x="220" y="100">requests</text>
<text x="284" y="100">(CIBA)</text>
<text x="164" y="180">DELEGATION</text>
<text x="236" y="180">SERVER</text>
<text x="284" y="180">(DS)</text>
<text x="84" y="228">Credential</text>
<text x="220" y="228">Delegation</text>
<text x="352" y="228">Consent</text>
<text x="80" y="244">Vault</text>
<text x="220" y="244">Engine</text>
<text x="352" y="244">Manager</text>
<text x="348" y="260">(CIBA)</text>
<text x="64" y="276">OAuth</text>
<text x="116" y="276">tokens</text>
<text x="188" y="276">DT</text>
<text x="224" y="276">issue</text>
<text x="56" y="292">API</text>
<text x="92" y="292">keys</text>
<text x="224" y="292">Attenuation</text>
<text x="356" y="292">Approve/Deny</text>
<text x="72" y="308">Refresh</text>
<text x="124" y="308">tkns</text>
<text x="200" y="308">Chain</text>
<text x="244" y="308">vrfy</text>
<text x="332" y="308">Policy</text>
<text x="380" y="308">eval</text>
<text x="188" y="372">Exercise</text>
<text x="248" y="372">Proxy</text>
<text x="88" y="388">Validates</text>
<text x="140" y="388">DT</text>
<text x="164" y="388">-&gt;</text>
<text x="216" y="388">Retrieves</text>
<text x="276" y="388">cred</text>
<text x="308" y="388">-&gt;</text>
<text x="344" y="388">Calls</text>
<text x="380" y="388">RS</text>
<text x="80" y="404">Returns</text>
<text x="128" y="404">API</text>
<text x="180" y="404">response</text>
<text x="244" y="404">(never</text>
<text x="288" y="404">raw</text>
<text x="352" y="404">credential)</text>
<text x="164" y="468">Revocation</text>
<text x="216" y="468">&amp;</text>
<text x="248" y="468">Audit</text>
<text x="96" y="484">Synchronous</text>
<text x="176" y="484">cascade</text>
<text x="216" y="484">|</text>
<text x="284" y="484">Tamper-evident</text>
<text x="360" y="484">log</text>
<text x="208" y="580">AGENT</text>
<text x="36" y="612">1.</text>
<text x="88" y="612">Generates</text>
<text x="168" y="612">ephemeral</text>
<text x="240" y="612">did:key</text>
<text x="36" y="628">2.</text>
<text x="104" y="628">Authenticates</text>
<text x="176" y="628">via</text>
<text x="208" y="628">JWT</text>
<text x="252" y="628">Bearer</text>
<text x="300" y="628">(RFC</text>
<text x="344" y="628">7523)</text>
<text x="36" y="644">3.</text>
<text x="84" y="644">Requests</text>
<text x="164" y="644">delegation</text>
<text x="264" y="644">(capabilities</text>
<text x="328" y="644">+</text>
<text x="388" y="644">constraints)</text>
<text x="36" y="660">4.</text>
<text x="84" y="660">Receives</text>
<text x="132" y="660">DT</text>
<text x="196" y="660">(DPoP-bound,</text>
<text x="324" y="660">capability-shaped)</text>
<text x="36" y="676">5.</text>
<text x="88" y="676">Exercises</text>
<text x="176" y="676">credentials</text>
<text x="240" y="676">via</text>
<text x="268" y="676">DS</text>
<text x="320" y="676">/exercise</text>
<text x="396" y="676">endpoint</text>
<text x="36" y="692">6.</text>
<text x="104" y="692">Sub-delegates</text>
<text x="176" y="692">via</text>
<text x="240" y="692">attenuation</text>
<text x="332" y="692">(optional)</text>
<text x="48" y="724">TRUST</text>
<text x="112" y="724">BOUNDARY:</text>
<text x="176" y="724">Agent</text>
<text x="220" y="724">sees</text>
<text x="252" y="724">DT</text>
<text x="272" y="724">+</text>
<text x="296" y="724">API</text>
<text x="352" y="724">responses</text>
<text x="412" y="724">only</text>
<text x="48" y="740">Agent</text>
<text x="96" y="740">NEVER</text>
<text x="144" y="740">sees:</text>
<text x="184" y="740">raw</text>
<text x="232" y="740">tokens,</text>
<text x="296" y="740">refresh</text>
<text x="360" y="740">tokens,</text>
<text x="412" y="740">keys</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
+------------------------------------------------------+
|                    SUBJECT (User)                    |
|  1. Connects services (OAuth)                        |
|  2. Sets delegation policies                         |
|  3. Approves consent requests (CIBA)                 |
+--------------------------+---------------------------+
                           |
                           v
+------------------------------------------------------+
|              DELEGATION SERVER (DS)                  |
|                                                      |
|  +-------------+  +------------+  +--------------+   |
|  | Credential  |  | Delegation |  |   Consent    |   |
|  |   Vault     |  |   Engine   |  |   Manager    |   |
|  |             |  |            |  |   (CIBA)     |   |
|  | OAuth tokens|  | DT issue   |  |              |   |
|  | API keys    |  | Attenuation|  | Approve/Deny |   |
|  | Refresh tkns|  | Chain vrfy |  | Policy eval  |   |
|  +------+------+  +------------+  +--------------+   |
|         |                                            |
|  +------+---------------------------------------+    |
|  |               Exercise Proxy                 |    |
|  |  Validates DT -> Retrieves cred -> Calls RS  |    |
|  |  Returns API response (never raw credential) |    |
|  +----------------------------------------------+    |
|                                                      |
|  +----------------------------------------------+    |
|  |           Revocation & Audit                 |    |
|  |  Synchronous cascade | Tamper-evident log    |    |
|  +----------------------------------------------+    |
+--------------------------+---------------------------+
                           |
                           v
+------------------------------------------------------+
|                      AGENT                           |
|                                                      |
|  1. Generates ephemeral did:key                      |
|  2. Authenticates via JWT Bearer (RFC 7523)          |
|  3. Requests delegation (capabilities + constraints) |
|  4. Receives DT (DPoP-bound, capability-shaped)      |
|  5. Exercises credentials via DS /exercise endpoint  |
|  6. Sub-delegates via attenuation (optional)         |
|                                                      |
|  TRUST BOUNDARY: Agent sees DT + API responses only  |
|  Agent NEVER sees: raw tokens, refresh tokens, keys  |
+------------------------------------------------------+
]]></artwork></artset></figure>

<t><strong>Critical architectural property:</strong> The Agent's trust boundary extends only to the network interface of the Delegation Server. The Agent never crosses into the Vault. The underlying credential is never delivered to the Agent, so a compromised Agent cannot exfiltrate it. That property does not cover the DS itself (<xref target="trusted-ds"/>), upstream responses that reflect a credential or mint a new one, logs, or redirects, and least privilege at the upstream provider remains necessary.</t>

<section anchor="protocol-version-negotiation"><name>Protocol Version Negotiation</name>

<t>The canonical protocol version for this draft is <spanx style="verb">0.1.0</spanx>.</t>

<t>HTTP protocol clients <bcp14>MUST</bcp14> advertise the highest Cred Protocol version they support for a request using the <spanx style="verb">Cred-Protocol-Version</spanx> request header. The header value <bcp14>MUST</bcp14> be a single semantic-version string in <spanx style="verb">MAJOR.MINOR.PATCH</spanx> form. Delegation Servers <bcp14>MUST</bcp14> set <spanx style="verb">Cred-Protocol-Version</spanx> on every protocol response, including error responses, to the version selected by the server for that response.</t>

<t>Each implementation <bcp14>MUST</bcp14> maintain:</t>

<t><list style="symbols">
  <t>a supported-version set, ordered from newest to oldest</t>
  <t>a configured version floor, below which requests are rejected</t>
</list></t>

<t>For this draft, the supported-version set is <spanx style="verb">["0.1.0"]</spanx> and the default version floor is <spanx style="verb">0.1.0</spanx>.</t>

<t>A Delegation Server <bcp14>MUST</bcp14> reject a request that advertises a version lower than the configured floor or a version outside the supported-version set. The server <bcp14>MUST</bcp14> return HTTP 426 with a JSON body containing:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "error": "protocol_version_unsupported",
  "message": "Cred Protocol version 0.0.9 is not supported",
  "requested_version": "0.0.9",
  "supported_versions": ["0.1.0"],
  "minimum_version": "0.1.0",
  "current_version": "0.1.0"
}
]]></sourcecode></figure>

<t>The response <bcp14>MUST</bcp14> also include <spanx style="verb">Cred-Protocol-Version</spanx> set to the server's current version so clients can distinguish protocol drift from authentication, authorization, or policy failures.</t>

<t>During the <spanx style="verb">0.1.0</spanx> compatibility window, a missing <spanx style="verb">Cred-Protocol-Version</spanx> request header <bcp14>MAY</bcp14> be treated as <spanx style="verb">0.1.0</spanx>. This allowance exists only because there is no earlier wire version to downgrade to. Implementations that raise the version floor above <spanx style="verb">0.1.0</spanx> <bcp14>MUST</bcp14> reject missing protocol-version headers with <spanx style="verb">protocol_version_unsupported</spanx>.</t>

</section>
</section>
<section anchor="agent-identity"><name>Agent Identity</name>

<section anchor="ephemeral-key-pairs"><name>Ephemeral Key Pairs</name>

<t>An Agent <bcp14>MUST</bcp14> generate a key pair at instantiation for a signature algorithm the DS accepts. A DS <bcp14>MUST</bcp14> accept Ed25519 and P-256 and <bcp14>MAY</bcp14> accept ML-DSA <xref target="FIPS204"/> where a <spanx style="verb">did:key</spanx> encoding for it is available to both parties. The DID is derived deterministically from the public key using the <spanx style="verb">did:key</spanx> method <xref target="DID-KEY"/>, a DID method conforming to <xref target="DID-CORE"/>. No pre-registration is required. The DS <bcp14>MUST NOT</bcp14> reject a DID it has not seen before.</t>

<t>Every verifier in this protocol, including the DS when it re-verifies a parent chain (<xref target="chain-integrity"/>), <bcp14>MUST</bcp14> hold a local list of accepted signature algorithms and <bcp14>MUST</bcp14> reject an assertion, Delegation Token, or receipt signed with an algorithm not on that list, as in step 1 of Section 6 of <xref target="ASOR"/>. The <spanx style="verb">alg</spanx> header of the object under verification never selects the algorithm by itself.</t>

</section>
<section anchor="agent-authentication"><name>Agent Authentication</name>

<t>The Agent authenticates to the DS using a JWT Bearer assertion <xref target="RFC7523"/> signed with the private key corresponding to its <spanx style="verb">did:key</spanx>. Required claims:</t>

<texttable title="Required authentication claims">
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>Value</ttcol>
      <ttcol align='left'>Notes</ttcol>
      <c><spanx style="verb">iss</spanx></c>
      <c>Agent DID</c>
      <c><spanx style="verb">did:key:z...</spanx></c>
      <c><spanx style="verb">sub</spanx></c>
      <c>Agent DID</c>
      <c>Same as <spanx style="verb">iss</spanx></c>
      <c><spanx style="verb">aud</spanx></c>
      <c>DS endpoint URL</c>
      <c>&#160;</c>
      <c><spanx style="verb">iat</spanx></c>
      <c>Current time</c>
      <c>&#160;</c>
      <c><spanx style="verb">exp</spanx></c>
      <c>iat + max 300s</c>
      <c>5-minute maximum</c>
      <c><spanx style="verb">jti</spanx></c>
      <c>Unique nonce</c>
      <c>Prevents replay</c>
</texttable>

<t>Optional claims:</t>

<texttable title="Optional authentication claims">
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>Value</ttcol>
      <ttcol align='left'>Notes</ttcol>
      <c><spanx style="verb">agent_model</spanx></c>
      <c>Model identifier</c>
      <c>Vendor-prefixed, e.g., <spanx style="verb">"vendor:model-id"</spanx></c>
      <c><spanx style="verb">agent_operator</spanx></c>
      <c>Operator DID or URL</c>
      <c>Organization running the agent</c>
</texttable>

</section>
<section anchor="agent-lifecycle"><name>Agent Lifecycle</name>

<t>Agents <bcp14>SHOULD</bcp14> generate a new key pair per session. The DS <bcp14>MAY</bcp14> require Subject pre-authorization of specific agent DIDs or agent operators before issuing Delegation Tokens. When an agent terminates, the DS <bcp14>SHOULD</bcp14> invalidate any active Delegation Tokens bound to that agent's DPoP key within the revocation SLA.</t>

</section>
<section anchor="wag-composition"><name>Workload Authorization Grant Composition</name>

<t>Workload Authorization Grant <xref target="WAG"/> supplies the provisioning layer: a platform-signed RFC 7523 grant identifies a workload to an authorization server that trusts the platform. Its on-behalf-of delegation composition slot is addressed by this document's subject consent, capability attenuation, and signed delegation receipts; WAG does not supply those properties itself.</t>

<t>A WAG assertion is presented to an authorization server's token endpoint, not to the DS. A WAG-provisioned workload therefore authenticates to the DS as any other Agent, per <xref target="agent-authentication"/>, and <spanx style="verb">act.sub</spanx> in its Delegation Tokens remains the Agent DID. The WAG Agent Identifier is source identity evidence about that Agent, not a replacement for its DID. When a deployment links the two, the DS records in the delegation receipt (<xref target="chain-integrity"/>) the WAG assertion's issuer, the Agent Identifier, and, where several Platforms share one issuer identifier, the registration-distinguishing claim name and value described in Section 6.3 of draft-carleton-workload-authz-grant-01. Section 6.1 of that draft requires <spanx style="verb">sub</spanx> and <spanx style="verb">jti</spanx> to be interpreted only within the matched Platform registration, so the DS <bcp14>MUST NOT</bcp14> equate bare Agent Identifiers from different registrations, and a downstream verifier <bcp14>MUST</bcp14> have a trusted mapping from the recorded issuer and registration context to the actor identity; a platform-local identifier is not globally resolvable. The WAG identity travels only as this receipt evidence. It <bcp14>MUST NOT</bcp14> be carried inside <spanx style="verb">act</spanx>: <spanx style="verb">act.sub</spanx> names the Agent DID, and a platform-scoped identifier there would contradict <spanx style="verb">client_id</spanx> (<xref target="delegation-token-format"/>) and depend on a mapping the verifier may not hold.</t>

<t>The WAG assertion is a bearer credential, and WAG leaves proof of possession open (Section 8 of that draft). The DS <bcp14>MUST NOT</bcp14> treat WAG-asserted identity as proof that the presenting party controls the workload's key; sender constraint comes from the Delegation Token's DPoP binding (<xref target="agent-authentication"/>). WAG actor identity <bcp14>MUST NOT</bcp14> be treated as user consent or as permission to re-delegate.</t>

</section>
</section>
<section anchor="delegation-token-format"><name>Delegation Token Format</name>

<t>A Delegation Token is a DPoP-bound JWT <xref target="RFC9449"/> issued by the Delegation Server.</t>

<section anchor="required-claims"><name>Required Claims</name>

<texttable title="Required Delegation Token claims">
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>Value</ttcol>
      <ttcol align='left'>Specification</ttcol>
      <c><spanx style="verb">iss</spanx></c>
      <c>DS identifier</c>
      <c>&#160;</c>
      <c><spanx style="verb">sub</spanx></c>
      <c>Subject identifier</c>
      <c>User on whose behalf delegation occurs</c>
      <c><spanx style="verb">client_id</spanx></c>
      <c>Agent DID</c>
      <c>Acting agent, per <xref target="RFC9068"/> Section 2.2 and <xref target="AIMS"/> Section 10.3</c>
      <c><spanx style="verb">act</spanx></c>
      <c><spanx style="verb">{"sub": "&lt;Agent DID&gt;"}</spanx></c>
      <c>Current actor plus prior-actor history, per RFC 8693, Section 4.1</c>
      <c><spanx style="verb">authorization_details</spanx></c>
      <c>Capability array</c>
      <c>Per RFC 9396</c>
      <c><spanx style="verb">delegation_constraints</spanx></c>
      <c>Ceiling array</c>
      <c>Per-key ceilings in the <xref target="ASOR"/> Section 4.2 shape; see <xref target="constraint-ceilings"/>. <bcp14>OPTIONAL</bcp14> on a root token; <bcp14>REQUIRED</bcp14> on a child whose parent carries any</c>
      <c><spanx style="verb">cnf</spanx></c>
      <c><spanx style="verb">{"jkt": "&lt;DPoP thumbprint&gt;"}</spanx></c>
      <c>Per RFC 9449</c>
      <c><spanx style="verb">iat</spanx></c>
      <c>Issuance time</c>
      <c>&#160;</c>
      <c><spanx style="verb">exp</spanx></c>
      <c>Expiry time</c>
      <c>Max 1 hour; 15 minutes <bcp14>RECOMMENDED</bcp14></c>
      <c><spanx style="verb">jti</spanx></c>
      <c>Unique identifier</c>
      <c>&#160;</c>
      <c><spanx style="verb">consent_id</spanx></c>
      <c>Consent record ID</c>
      <c>Traceable to root consent event</c>
      <c><spanx style="verb">credential_handle</spanx></c>
      <c>Opaque string</c>
      <c>References Vault entry; <bcp14>MUST NOT</bcp14> be the credential itself</c>
</texttable>

<t><spanx style="verb">client_id</spanx> and <spanx style="verb">act.sub</spanx> name the same current actor. <spanx style="verb">client_id</spanx> follows the adopted AIMS Section 10.3 convention (acting agent in <spanx style="verb">client_id</spanx>, delegating principal in <spanx style="verb">sub</spanx>); <spanx style="verb">act</spanx> adds the RFC 8693 history trail so a verifier can tell the current actor from prior actors without a second claim set. The two <bcp14>MUST</bcp14> agree; a token in which they differ is malformed.</t>

<t><spanx style="verb">client_id</spanx> keeps the meaning <xref target="RFC9068"/> Section 2.2 takes from <xref target="RFC8693"/> Section 4.3: the client that requested the token. The DS therefore issues a Delegation Token only to the agent it names. For a child token the receiving agent is the requester (<xref target="sub-delegation-exchange"/>), so the authenticated requester, <spanx style="verb">client_id</spanx>, and <spanx style="verb">act.sub</spanx> are one party at every hop.</t>

</section>
<section anchor="capability-structure"><name>Capability Structure</name>

<t>Capabilities are expressed as RFC 9396 <spanx style="verb">authorization_details</spanx> objects:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "type": "cred_delegation",
  "provider": "google",
  "operations": ["drive.files.get", "drive.files.list"],
  "resources": ["folder:abc123"],
  "expires": "2026-07-28T22:00:00Z"
}
]]></sourcecode></figure>

<t>The DS <bcp14>MUST</bcp14> validate that capabilities in a sub-delegation request are a subset of the parent DT's capabilities, equal or narrower, never wider. Validation is the DS's responsibility, not the requesting agent's.</t>

<t>Numeric and enumerated bounds on how a capability may be exercised are not part of the capability object. They are carried in the token's <spanx style="verb">delegation_constraints</spanx> claim (<xref target="constraint-ceilings"/>) so that a verifier holding only the chain can check that they narrow hop by hop.</t>

</section>
<section anchor="constraint-ceilings"><name>Constraint Ceilings</name>

<t>A Delegation Token <bcp14>MAY</bcp14> carry a <spanx style="verb">delegation_constraints</spanx> claim: an array of objects, each with a <bcp14>REQUIRED</bcp14> <spanx style="verb">key</spanx> naming the constrained dimension and exactly one typed constraint value. The shape and the type vocabulary are those of Section 4.2 of <xref target="ASOR"/>, so that a Cred receipt chain and an Asor Delegation Chain can be checked by the same subsumption code:</t>

<t><list style="symbols">
  <t><spanx style="verb">max</spanx> (number): the quantity <bcp14>MUST NOT</bcp14> exceed it.</t>
  <t><spanx style="verb">min</spanx> (number): the quantity <bcp14>MUST NOT</bcp14> be less than it.</t>
  <t><spanx style="verb">one_of</spanx> (array): the value <bcp14>MUST</bcp14> be a member.</t>
  <t><spanx style="verb">not_one_of</spanx> (array): the value <bcp14>MUST NOT</bcp14> be a member.</t>
  <t><spanx style="verb">prefix</spanx> (string): the value <bcp14>MUST</bcp14> have it as a prefix.</t>
  <t><spanx style="verb">rank</spanx> (number or label): position in an ordered enumeration; the value's rank <bcp14>MUST NOT</bcp14> exceed the constraint's. A label-valued <spanx style="verb">rank</spanx> carries its enumeration in an <spanx style="verb">order</spanx> member, least to most permissive, as in <xref target="ASOR"/> Section 4.2.</t>
  <t><spanx style="verb">max_lifetime</spanx> (number): the sum of the quantity over every exercise under the token <bcp14>MUST NOT</bcp14> exceed it.</t>
  <t><spanx style="verb">max_subtree</spanx> (number): the sum of the quantity over every exercise under the token and its descendants <bcp14>MUST NOT</bcp14> exceed it.</t>
</list></t>

<figure><sourcecode type="json"><![CDATA[
"delegation_constraints": [
  { "key": "max_rows", "max": 5000 },
  { "key": "region", "one_of": ["us", "eu"] },
  { "key": "egress", "rank": "none",
    "order": ["none", "internal", "any"] }
]
]]></sourcecode></figure>

<t>Parsing is fail-closed. A constraint object is closed: its members are <spanx style="verb">key</spanx>, one type member, and any member that type defines (<spanx style="verb">order</spanx> for <spanx style="verb">rank</spanx>). An entry with no type member, more than one, any other member, a malformed value, or a (<spanx style="verb">key</spanx>, type) pair repeated within the array makes the whole claim malformed, and a token with a malformed <spanx style="verb">delegation_constraints</spanx> claim is invalid before any subsumption is evaluated. A constraint of a type the DS does not implement is not malformed for that reason alone; it is carried, and it is never treated as absent. A verifier that encounters an unknown constraint type <bcp14>MUST</bcp14> treat the action as denied (fail closed), never as unconstrained, as in Section 4.2 of <xref target="ASOR"/>.</t>

<t>Subsumption follows Section 4.3 of <xref target="ASOR"/>: for every constraint in the parent, the child <bcp14>MUST</bcp14> carry a constraint under the same <spanx style="verb">key</spanx> and the same type whose admissible set is a subset of the parent's (<spanx style="verb">max</spanx> no greater, <spanx style="verb">min</spanx> no smaller, <spanx style="verb">one_of</spanx> a subset, <spanx style="verb">not_one_of</spanx> a superset, <spanx style="verb">prefix</spanx> extending the parent's prefix, <spanx style="verb">rank</spanx> no higher). A constraint present in the parent and absent from the child means the child is unbounded on that dimension, which is wider, and the DS <bcp14>MUST</bcp14> refuse to issue the child. The child <bcp14>MAY</bcp14> add constraints the parent does not carry. When a sub-delegation request omits <spanx style="verb">delegation_constraints</spanx>, the DS inherits the parent's ceilings into the child unchanged.</t>

<t>A DS or verifier that does not implement the type of a constraint present in the parent cannot evaluate subsumption for it. It <bcp14>MUST</bcp14> treat the child as not subsumed unless the child carries a constraint with the same <spanx style="verb">key</spanx> and type whose JCS serialization <xref target="RFC8785"/> is byte-identical to the parent's, and even then any exercise under that constraint is denied, as at step 8 of Section 6 of <xref target="ASOR"/> (outcome <spanx style="verb">unknown_constraint</spanx> in Table 2 of that draft).</t>

<t>Two constraints with the same <spanx style="verb">key</spanx> and different types, such as a <spanx style="verb">min</spanx> and a <spanx style="verb">max</spanx> forming a range, are evaluated independently. A label-valued <spanx style="verb">rank</spanx> without <spanx style="verb">order</spanx>, or whose label is not a member of <spanx style="verb">order</spanx>, is malformed. A child's <spanx style="verb">order</spanx> <bcp14>MUST</bcp14> be identical to its parent's for the same <spanx style="verb">key</spanx>; a verifier reads the ordering from the token and needs no registry entry per key.</t>

<t><spanx style="verb">max</spanx>, <spanx style="verb">min</spanx>, <spanx style="verb">one_of</spanx>, <spanx style="verb">not_one_of</spanx>, <spanx style="verb">prefix</spanx>, and <spanx style="verb">rank</spanx> bound each exercise and are checked offline by any holder of the chain. <spanx style="verb">max</spanx> is per exercise only; a producer <bcp14>MUST NOT</bcp14> express a cumulative bound with it. The type, not the <spanx style="verb">key</spanx>, states whether a bound is per exercise or cumulative: a verifier gives a <spanx style="verb">key</spanx> name no meaning, so it cannot detect a <spanx style="verb">max</spanx> that its producer meant as a running total. A <spanx style="verb">max</spanx> on a quantity that exists only as a running count, such as a count of calls, bounds nothing, since each exercise contributes one; such a count is bounded with <spanx style="verb">max_lifetime</spanx> or <spanx style="verb">max_subtree</spanx> (Section 4.2 of <xref target="ASOR"/>). The DS defines what quantity each key it issues measures, so it is the party that can enforce this: a DS <bcp14>MUST NOT</bcp14> issue a token, including a child requested in a sub-delegation, that carries a <spanx style="verb">max</spanx> on a key it meters as a running count. <spanx style="verb">max_lifetime</spanx> and <spanx style="verb">max_subtree</spanx> name cumulative bounds: a verifier holding only the chain checks that a child's cumulative bound is no wider than its parent's, but two holders of the same chain cannot both decrement a running total correctly without a shared writer. The DS is that writer (<xref target="exercise-flow"/>): it checks and debits the running total atomically when it authorizes an exercise, and it alone holds the total for every token it issued. The <spanx style="verb">delegation_constraints</spanx> claim carries the bound; the DS does the debit.</t>

</section>
<section anchor="chain-integrity"><name>Delegation Chain Integrity</name>

<t>To address the delegation chain splicing vulnerability in Sections 2.1-2.2 of <xref target="RFC8693"/>, each delegation hop <bcp14>MUST</bcp14> produce a signed delegation receipt containing: the parent DT's <spanx style="verb">jti</spanx>, the child DT's <spanx style="verb">jti</spanx>, the delegating agent's DID, the receiving agent's DID, the root delegated subject (the outer <spanx style="verb">sub</spanx>), the attenuated capability set, and any source identity evidence recorded for the receiving agent (see <xref target="wag-composition"/>). The receipt is signed by the DS and included in the child DT as the <spanx style="verb">prf</spanx> claim (an array of receipt content identifiers). Chain verification traces <spanx style="verb">prf</spanx> links back to the root consent event.</t>

<t>At every hop, the DS <bcp14>MUST</bcp14> re-verify the parent token and its signed receipt chain, including issuer trust, signatures, expiry, DPoP binding, and revocation state, before issuing a child. It <bcp14>MUST</bcp14> establish that the delegator currently holds the authority being delegated and is allowed to delegate it. Signed provenance alone does not establish either condition. If a required authority or freshness check cannot be completed, the DS <bcp14>MUST NOT</bcp14> issue or exercise the child on the basis of that unresolved input.</t>

<t>Authority <bcp14>MUST</bcp14> narrow monotonically: the child's operations and resources <bcp14>MUST</bcp14> be contained in the parent's effective authority, and its constraint ceilings <bcp14>MUST</bcp14> subsume per <xref target="constraint-ceilings"/>. Containment is the per-hop admission check. Where independent policies constrain the same action, their intersection <bcp14>MUST</bcp14> be order-independent; an unrecognized or unevaluable constraint <bcp14>MUST NOT</bcp14> be silently discarded. A child's lifetime <bcp14>MUST NOT</bcp14> exceed the remaining lifetime of the parent or the applicable consent grant.</t>

<t>For this on-behalf-of delegation profile, each child <bcp14>MUST</bcp14> preserve the root delegated subject in outer <spanx style="verb">sub</spanx> and name the receiving, current actor in <spanx style="verb">act.sub</spanx>. Prior actors <bcp14>MAY</bcp14> be represented using nested <spanx style="verb">act</spanx> as defined in RFC 8693 Section 4.1. Nested actors provide historical attribution only and <bcp14>MUST NOT</bcp14> be used independently to authorize an action. The DS's signed receipts <bcp14>MUST</bcp14> bind the subject and current actor attribution to the parent and child token identifiers and the effective capability set. Actor attribution is attested per hop, not re-derived downstream: each hop's receipt records the <spanx style="verb">act</spanx> value the DS verified at that hop together with the time it was verified, and a verifier reconstructing the chain composes those attestations rather than inferring a prior hop's actor from a later token. The <spanx style="verb">act</spanx> claim is the attribution carrier, not proof of authority or a replacement for signed receipts.</t>

<t>The DS <bcp14>SHOULD</bcp14> keep, for each hop, an audit record distinct from the receipt that identifies the receipt links, the grant and policy inputs evaluated, their as-of times and validity horizons, the decision, and any failed or unresolved check with a reason. The shape of that record is deployment-defined; verifier-side companion work may standardize it. A verifier <bcp14>MUST</bcp14> have authenticated evidence sufficient to reconstruct the chain to root consent, including the per-hop authority narrowing and subject/actor bindings; raw upstream credentials need not be forwarded. A valid receipt chain does not establish that issuer standing or consent remains current. Required freshness and revocation checks remain separate from chain reconstruction.</t>

<section anchor="sub-delegation-exchange"><name>Sub-Delegation Exchange</name>

<t>A hop has two steps, so that the token is requested by the agent it names:</t>

<t><list style="numbers" type="1">
  <t>Authorization. The delegating agent presents its Delegation Token with a DPoP proof, the receiving agent's DID, and the narrowed capabilities and constraints. The DS runs the checks of <xref target="chain-integrity"/>, assigns the child's <spanx style="verb">jti</spanx>, signs the delegation receipt naming both agents and that <spanx style="verb">jti</spanx>, and returns a single-use delegation grant bound to the receiving agent's DID, the receipt, and a short expiry.</t>
  <t>Issuance. The receiving agent authenticates as itself (<xref target="agent-authentication"/>) and sends an <xref target="RFC8693"/> token exchange request with the delegation grant as <spanx style="verb">subject_token</spanx>, its own <xref target="RFC7523"/> assertion as <spanx style="verb">actor_token</spanx>, and a DPoP proof under its own key. The DS verifies that the authenticated client is the DID the grant names and that the grant is unused and unexpired, re-checks that the parent and its ancestors are unexpired and unrevoked, since issuance happens at this step (<xref target="chain-integrity"/>), then issues the child with the <spanx style="verb">jti</spanx> the receipt names and the capabilities and constraints authorized in step 1: <spanx style="verb">sub</spanx> the root subject, <spanx style="verb">client_id</spanx> and <spanx style="verb">act.sub</spanx> the receiving agent, the delegating agent in nested <spanx style="verb">act</spanx>, <spanx style="verb">cnf</spanx> bound to the receiving agent's key, and <spanx style="verb">prf</spanx> extended with the new receipt.</t>
</list></t>

<t>A delegation grant is useless without the receiving agent's key. The DS <bcp14>MUST</bcp14> reject a second redemption of the same grant and <bcp14>MUST</bcp14> reject a token exchange whose authenticated client differs from the DID the grant names.</t>

</section>
</section>
<section anchor="chain-verifiable-profile"><name>Chain-Verifiable Profile</name>

<t>The Delegation Tokens defined above are verified by the DS that issued them, with its receipt chain. Some tokens must instead be verified by a party that is not that DS and holds only the chain: a resource server or another server checking authority offline, or any verifier handed a token a user minted directly with no DS involved. Such tokens use the Delegation Chain format of <xref target="ASOR"/> unchanged: exactly one <spanx style="verb">authorization_details</spanx> entry, of type <spanx style="verb">agent_delegation</spanx>, carrying <spanx style="verb">scopes</spanx> and <spanx style="verb">constraints</spanx> inside it, with <spanx style="verb">sub</spanx> naming the principal at every hop, <spanx style="verb">client_id</spanx> naming the acting agent, <spanx style="verb">cnf</spanx>, <spanx style="verb">par_hash</spanx>, <spanx style="verb">del_depth</spanx>, and <spanx style="verb">del_max_depth</spanx> as that draft defines them. This document does not redefine that format, and a token under this profile is checked with the algorithm of Section 6 of <xref target="ASOR"/>.</t>

<t>Cumulative ceilings (<spanx style="verb">max_lifetime</spanx>, <spanx style="verb">max_subtree</spanx>, and any running spend total) are enforced only where a single writer holds the total, as the DS does in <xref target="constraint-ceilings"/>. A verifier away from the DS enforces the per-exercise ceilings and checks that a child's cumulative bounds are no wider than its parent's. It permits an action under a cumulative constraint only if it holds the running total that constraint is measured over, or a component that holds that total, such as the issuing DS, authorizes the action; otherwise it denies, as step 8 of Section 6 of <xref target="ASOR"/> requires. Separate verifiers that each see only some of the exercises do not between them hold the total.</t>

<t>When a DS issues a token under this profile:</t>

<t><list style="symbols">
  <t>The token <bcp14>MUST</bcp14> conform to <xref target="ASOR"/>. It <bcp14>MUST NOT</bcp14> carry a <spanx style="verb">cred_delegation</spanx> detail or a top-level <spanx style="verb">delegation_constraints</spanx> claim, since <xref target="ASOR"/> rejects any second detail.</t>
  <t>Its lifetime <bcp14>MUST NOT</bcp14> exceed 1 hour, the cap on a Delegation Token (<xref target="token-lifetime"/>).</t>
  <t>Each permitted operation on a resource is expressed as a scope string. Section 4.1 of <xref target="ASOR"/> classifies a scope as literal, wildcard, or opaque by its bytes, not by who issued it, so a provider-issued string such as <spanx style="verb">crm.read</spanx> is a literal scope that a parent's <spanx style="verb">crm.*</spanx> covers. The DS <bcp14>MUST</bcp14> choose each scope string so that, under that classification, it admits no more than the capability it maps. The mapping from the capability the DS holds to those scope strings is deployment-defined, and the DS <bcp14>MUST</bcp14> record it in the receipt for the hop.</t>
  <t>The DS signs a delegation receipt for the hop as in <xref target="chain-integrity"/> and records the token's <spanx style="verb">jti</spanx> in it. It does not add <spanx style="verb">prf</spanx>, <spanx style="verb">consent_id</spanx>, or <spanx style="verb">credential_handle</spanx> to the token, which <xref target="ASOR"/> does not define; the receipt chain held by the DS remains the evidence that ties the token to consent.</t>
  <t>The DS <bcp14>MAY</bcp14> accept at its exercise endpoint (<xref target="exercise-flow"/>) a token it issued under this profile, resolving the credential and consent from the receipt recorded under the token's <spanx style="verb">jti</spanx>.</t>
</list></t>

<t>When a DS is presented with a token under this profile that it did not issue, it <bcp14>MAY</bcp14> verify the token per Section 6 of <xref target="ASOR"/> and evaluate the authority it carries with the scope grammar and subsumption rules of <xref target="constraint-ceilings"/>. Verifying such a token does not make it the parent of a Delegation Token. This revision does not define how a DS accepts a token it did not issue as the root of its own chain, or how a chain continues from a DS-issued token into hops minted without a DS; that composition is left to a later revision.</t>

</section>
</section>
<section anchor="credential-wrapping"><name>Credential Wrapping</name>

<section anchor="exercise-flow"><name>Exercise Flow</name>

<t>The Agent presents a valid DT and DPoP proof to the DS's <spanx style="verb">/exercise</spanx> endpoint. The DS:</t>

<t><list style="numbers" type="1">
  <t>Validates the DT signature and expiry, and checks that the DT is not revoked (<xref target="revocation"/>)</t>
  <t>Verifies the DPoP binding (<spanx style="verb">htm</spanx>, <spanx style="verb">htu</spanx>, <spanx style="verb">nonce</spanx>)</t>
  <t>Checks that the requested operation is within the DT's <spanx style="verb">authorization_details</spanx> and within its <spanx style="verb">delegation_constraints</spanx>, denying an exercise under a constraint of a type it does not implement, and checking and debiting any cumulative total atomically (<xref target="constraint-ceilings"/>)</t>
  <t>Retrieves the credential from the Vault using the opaque <spanx style="verb">credential_handle</spanx></t>
  <t>Performs the authorized API call against the resource server using the stored credential</t>
  <t>Returns only the API response</t>
</list></t>

<t>The raw credential <bcp14>MUST NOT</bcp14> appear in any agent-facing response.</t>

</section>
<section anchor="proxy-semantics"><name>Proxy Semantics</name>

<t>For resource servers that accept standard OAuth Bearer tokens: the DS acts as a reverse proxy, performing the actual API call with the stored credential. The Agent's HTTP request to <spanx style="verb">/exercise</spanx> specifies the operation and parameters; the DS maps these to the upstream API call.</t>

</section>
<section anchor="native-rs"><name>Native Resource Server Support (Future)</name>

<t>For resource servers that natively support this protocol: the DS performs RFC 8693 token exchange, issuing a scoped access token containing the DT's <spanx style="verb">act</spanx> claim and <spanx style="verb">authorization_details</spanx> for direct presentation at the resource server. This eliminates the proxy step for participating services. The lifetime of the exchanged access token <bcp14>MUST NOT</bcp14> exceed 1 hour (<xref target="token-lifetime"/>) or the remaining lifetime of the DT it was exchanged for.</t>

</section>
</section>
<section anchor="revocation"><name>Revocation</name>

<t>When a Subject revokes a delegation (root or any subtree node), the DS <bcp14>MUST</bcp14>:</t>

<t><list style="numbers" type="1">
  <t>Invalidate the specified DT within <strong>1 second</strong></t>
  <t>Cascade revocation to all descendant DTs within <strong>5 seconds</strong></t>
  <t>Return HTTP 401 with <spanx style="verb">error: delegation_revoked</spanx> for any <spanx style="verb">/exercise</spanx> request using a revoked DT whose authority check (<xref target="exercise-flow"/>) runs after the revocation takes effect; a call already dispatched when the revocation takes effect is not recalled (see below)</t>
  <t>Write an immutable revocation event to the audit log with a <spanx style="verb">revocation_time</spanx> claim</t>
</list></t>

<t><strong>Revocation endpoint:</strong> <spanx style="verb">DELETE /delegation/{jti}</spanx></t>

<t>The response <bcp14>MUST</bcp14> include a <spanx style="verb">revoked_count</spanx> field indicating the number of tokens invalidated in the cascade.</t>

<t><spanx style="verb">revoked_count</spanx> reports invalidation, not closure. It counts the Delegation Tokens the DS has marked revoked; it does not claim that no effect authorized under them can still commit. For calls the DS mediates (<xref target="exercise-flow"/>), the authority check and the upstream dispatch happen at the DS, so a revoked token starts no new call. An effect the resource server accepted before revocation and commits later is outside what the DS observes. Where the DS has exchanged a delegation for a token presented directly to a resource server (<xref target="native-rs"/>), the DS is off the call path: revocation of that path is partial until the exchanged token expires, unless the resource server checks authority when it commits.</t>

<t>Tokens issued under <xref target="chain-verifiable-profile"/> are in the same position as exchanged tokens. A verifier that checks one offline learns of a revocation only through whatever status mechanism it consults, so the DS's bounds cover its own records and the calls it mediates, not an offline enforcement point that keeps honoring a revoked token, or a cached status, until the token expires.</t>

<t>The DS re-checks revocation from its own records before issuing any token (<xref target="chain-integrity"/>), and a token it issues for use away from it lives at most 1 hour (<xref target="token-lifetime"/>); a child minted from such a token expires no later than its parent. An enforcement point off the DS's call path therefore admits no new action under a revoked delegation after the expiry of the token presented, at most 1 hour after the DS issued it; one that checks status at admission stops sooner. This bounds the admission of new actions, not the completion of actions already admitted.</t>

<t>Synchronous cascading revocation holds within one Delegation Server. It covers the DS's own record of the tokens it issued and the calls it mediates. Enforcing a revoked delegation across Delegation Servers or across administrative domains is out of scope for this document.</t>

</section>
<section anchor="consent-flow"><name>Consent Flow</name>

<section anchor="ciba-derived-agent-consent"><name>CIBA-Derived Agent Consent</name>

<t>When an Agent requests a delegation that exceeds pre-authorized policies, the DS initiates a CIBA <xref target="OIDC-CIBA"/> backchannel authentication request to the Subject. The Subject approves or denies on their registered device. On approval, the DS issues the Delegation Token. The Agent polls or receives a push notification when the token is available.</t>

</section>
<section anchor="consent-records"><name>Consent Records</name>

<t>The DS <bcp14>MUST</bcp14> store an immutable record of each consent event, including: Subject identifier, Agent DID, capabilities granted, grant time, expiry, and the full delegation chain context at time of consent. Records <bcp14>MUST</bcp14> be retained for at least 90 days.</t>

</section>
<section anchor="re-consent-triggers"><name>Re-Consent Triggers</name>

<t>Consent <bcp14>MUST</bcp14> be re-requested when:</t>

<t><list style="numbers" type="1">
  <t>an Agent requests broader capabilities than previously granted</t>
  <t>the grant has expired</t>
  <t>the <spanx style="verb">agent_operator</spanx> claim changes</t>
  <t>a security event triggers policy re-evaluation</t>
</list></t>

</section>
</section>
<section anchor="impl-status"><name>Implementation Status</name>

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

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

<t>According to <xref target="RFC7942"/>, "this will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature. It is up to the individual working groups to use this information as they see fit".</t>

<section anchor="cred-sdk"><name>Cred SDK</name>

<dl>
  <dt>Implementer:</dt>
  <dd>
    <t>Kieran Sweeney (author of this document)</t>
  </dd>
  <dt>Location:</dt>
  <dd>
    <t>https://github.com/cred-ninja/sdk, branch <spanx style="verb">main</spanx>, described here as of commit 42b39f4 (2026-10-30), after integration of cred-ninja/sdk#89 to #93 through #96.</t>
  </dd>
  <dt>License:</dt>
  <dd>
    <t>Apache-2.0</t>
  </dd>
  <dt>Language:</dt>
  <dd>
    <t>TypeScript (Node.js)</t>
  </dd>
  <dt>Maturity:</dt>
  <dd>
    <t>Experimental. The implementation follows the architecture of this document (a Delegation Server holding deposited credentials, sub-delegation with attenuation, exercise by proxy), its receipt claim layout, and its Delegation Token, but not its agent authentication or exercise request formats. It is not wire-compatible with this document.</t>
  </dd>
  <dt>Contact:</dt>
  <dd>
    <t>kieran@kierans.net</t>
  </dd>
</dl>

<t>Implemented as specified, or nearly:</t>

<t><list style="symbols">
  <t>Agent identity (<xref target="agent-identity"/>): <spanx style="verb">did:key</spanx> identifiers; the server accepts Ed25519 and P-256 keys, and the SDK client generates Ed25519 keys only. Receipt, assertion, and token verifiers hold a local accepted-algorithm list (EdDSA and ES256 by default).</t>
  <t>Protocol version negotiation (<xref target="protocol-version-negotiation"/>): the <spanx style="verb">Cred-Protocol-Version</spanx> header, version <spanx style="verb">0.1.0</spanx>, and HTTP 426 with <spanx style="verb">protocol_version_unsupported</spanx>.</t>
  <t>Delegation Token (<xref target="delegation-token-format"/>): a JWT of type <spanx style="verb">dt+jwt</spanx> carrying every required claim: <spanx style="verb">iss</spanx> naming the DS, the principal in <spanx style="verb">sub</spanx>, the acting agent in <spanx style="verb">client_id</spanx> and <spanx style="verb">act.sub</spanx> with prior agents in nested <spanx style="verb">act</spanx>, <spanx style="verb">authorization_details</spanx> of type <spanx style="verb">cred_delegation</spanx>, <spanx style="verb">delegation_constraints</spanx> when there are ceilings, <spanx style="verb">cnf</spanx> with the thumbprint of the agent's key, <spanx style="verb">iat</spanx>, <spanx style="verb">exp</spanx>, <spanx style="verb">jti</spanx>, <spanx style="verb">consent_id</spanx>, and an opaque <spanx style="verb">credential_handle</spanx>, plus <spanx style="verb">prf</spanx> with content identifiers of the receipts behind it. It lives 15 minutes by default and never more than 1 hour, and never past its parent or the stored credential. The DS records each token's state and re-reads it after a restart.</t>
  <t>Signed receipts (<xref target="chain-integrity"/>): a compact JWS at each hop, EdDSA or ES256 with <spanx style="verb">kid</spanx>, with <spanx style="verb">iss</spanx> naming the DS, the principal in <spanx style="verb">sub</spanx>, the acting agent in <spanx style="verb">client_id</spanx> and <spanx style="verb">act.sub</spanx>, prior agents in nested <spanx style="verb">act</spanx>, the delegation identifier as <spanx style="verb">jti</spanx>, <spanx style="verb">cnf</spanx> bound to the agent's key, a commitment to the parent (SHA-256 over the full compact parent receipt), and a signed lineage of ancestor agents. Before minting a child, the server re-verifies the parent receipt and checks the revocation of the parent delegation and the status of every ancestor agent.</t>
  <t>Sub-Delegation Exchange (<xref target="sub-delegation-exchange"/>): an authorization step that assigns the child's identifier, signs the receipt, and returns a single-use grant bound to the receiving agent's DID that expires within 60 seconds and never after the parent; and an <xref target="RFC8693"/> token exchange in which the receiving agent presents the grant as <spanx style="verb">subject_token</spanx> and an <xref target="RFC7523"/> assertion as <spanx style="verb">actor_token</spanx>, receiving a Delegation Token bound to its own key, with the parent's revocation re-checked at issuance. The grant's token type is a provisional <spanx style="verb">urn:credninja:</spanx> URN, since this document defines none. The older single-step sub-delegation remains available.</t>
  <t>Capabilities: catalogue operations with resources for GitHub repositories and Google Drive files, checked against the granted provider scopes at issuance, as a subset at every hop, and against the actual method and URL at exercise. Scope-shaped operations remain available; a token cannot mix them with catalogue operations. Unknown operations or resources are refused.</t>
  <t>Constraint ceilings (<xref target="constraint-ceilings"/>): all eight types, fail-closed parsing of closed constraint objects, uniqueness per (<spanx style="verb">key</spanx>, type), subsumption per hop with no inference across types, inherit-on-omit, <spanx style="verb">rank</spanx> read with its <spanx style="verb">order</spanx>, and a constraint of an unrecognized type carried and never treated as absent. Issuance refuses a <spanx style="verb">max</spanx> on <spanx style="verb">max_calls</spanx>, the key the server meters as a running count. The Delegation Token carries the ceilings in <spanx style="verb">delegation_constraints</spanx>; the receipt carries them in a claim named <spanx style="verb">constraints</spanx>, the name earlier revisions of this document used.</t>
  <t>Per-exercise ceilings: <spanx style="verb">max</spanx>, <spanx style="verb">min</spanx>, <spanx style="verb">one_of</spanx>, <spanx style="verb">not_one_of</spanx>, <spanx style="verb">prefix</spanx>, and <spanx style="verb">rank</spanx> are decided from quantities the DS measures, never ones the agent reports. Request-side checks precede dispatch; response-side checks withhold an over-limit response and audit the denial. A catalogue listing is capped before dispatch where its page-size parameter permits it. Unimplemented types and unmetered keys deny exercise. Withholding a response does not undo an upstream effect.</t>
  <t>Chain-verifiable profile (<xref target="chain-verifiable-profile"/>): the server mints tokens in the <xref target="ASOR"/> <spanx style="verb">agent_delegation</spanx> format on request, verifies a presented parent chain before minting a child, and records the token's <spanx style="verb">jti</spanx> and the scope mapping in the receipt. It does not accept such tokens at its exercise endpoint.</t>
  <t>Proof of possession (<xref target="dpop-binding"/>): a Delegation Token is issued only to a did:key agent that proves its key with a DPoP proof <xref target="RFC9449"/>, and is bound to that key. Every exercise presents the token as a DPoP-bound access token with a fresh proof by the key whose <spanx style="verb">ath</spanx> is the hash of the token and which, through a SHA-256 hash of the JCS form <xref target="RFC8785"/> of the exercise request, is bound to that one request: its upstream URL, method, body, and headers. Replayed, stale, and mismatched proofs are refused before any upstream call. A sub-delegated token is bound to the receiving agent's key, so the delegating agent that relays it cannot use it.</t>
  <t>Exercise (<xref target="exercise-flow"/>): provider credentials stay in the server's vault and the server makes the upstream call; by default the server hands no provider token to an agent. Revocation is checked when the request arrives and again just before the upstream call, with HTTP 401 <spanx style="verb">delegation_revoked</spanx>. An exercise under a constraint of an unrecognized type is denied, and <spanx style="verb">max_lifetime</spanx> and <spanx style="verb">max_subtree</spanx> totals are checked and debited atomically by a single-writer ledger.</t>
  <t>Consent records (<xref target="consent-flow"/>): every root Delegation Token names, in <spanx style="verb">consent_id</spanx>, a record of the consent behind it (subject, agent DID, capabilities granted, how consent was given and by whom, grant time, expiry, and the chain context), which storage refuses to update. Records are retained for at least 90 days after the later of grant and expiry, then purged with an audited count.</t>
  <t>Consent approval (<xref target="consent-flow"/>): a CIBA-derived <xref target="OIDC-CIBA"/> poll flow for permissions requiring approval, with the Subject, an administrator, or both as approver. An approval is reused only for requests it covers. Broader capabilities, expired consent, looser ceilings, a different app client or approver requirement, and security events require approval again; revoked consent is checked at exercise.</t>
  <t>Cred Link: delegations use DPoP-bound Delegation Tokens, with the connection, client, grant and agent re-checked at exercise.</t>
  <t>Revocation (<xref target="revocation"/>): <spanx style="verb">DELETE /delegation/{jti}</spanx> (also served as <spanx style="verb">DELETE /api/v1/delegations/{id}</spanx>) revokes a delegation and cascades to its descendants in one transaction, reporting <spanx style="verb">revoked_count</spanx>; tests measure the cascade under 5 seconds for up to 1,111 descendants.</t>
  <t>Audit: delegation, exercise, and revocation events in a log whose rows are chained by a keyed hash, with an endpoint that verifies the chain.</t>
</list></t>

<t>Remaining differences and limitations:</t>

<t><list style="symbols">
  <t>Agent authentication and exercise interface: root delegation uses a deployment credential and DPoP, not an <xref target="RFC7523"/> assertion. Sub-delegation and token exchange use an <xref target="RFC7523"/> <spanx style="verb">actor_token</spanx>. Exercise uses the Delegation Token and DPoP at <spanx style="verb">POST /api/v1/use</spanx>, naming an upstream URL, method and body rather than an operation at <spanx style="verb">/exercise</spanx>.</t>
  <t>Capabilities: no capability-level <spanx style="verb">expires</spanx>; catalogue resource kinds are repositories and files, not the folder resource illustrated in Section 5.2. Cred Link delegation does not accept requested constraint ceilings.</t>
  <t>Consent: no re-consent on <spanx style="verb">agent_operator</spanx> change. The CIBA-derived request and error formats differ from CIBA Core; approval state is in process memory, the built-in approval link is a bearer credential, and an external provider's <spanx style="verb">id_token</spanx> is not verified. A non-expiring consent can be purged after 90 days while dependent delegations remain live.</t>
  <t>Revocation: the 1-second single-token bound is not measured by tests, and revocation of one Cred Link token by identifier is not implemented.</t>
  <t>DPoP: the DS issues no <spanx style="verb">nonce</spanx>.</t>
</list></t>

<t>Conformance results. At SDK commit 42b39f4, the native <xref target="ASOR"/> verifier, <spanx style="verb">verifyAgentDelegationChain()</spanx>, passes all 35 vectors from draft-asor-wimse-agent-delegation-chain-02 (attenu-guard v0.20.0) and all 36 from <xref target="ASOR"/> (attenu-guard v0.22.0). It reads each token without claim mapping. Every rejection is checked for the declared outcome, the hop, and the isolated rule; the added -03 vector, <spanx style="verb">reject_child_adds_detail_type</spanx>, is rejected at hop 2 for carrying a second detail. The SDK's own -02 test and the protocol repository's native runner provide repeatable checks.</t>

<t>A separate, older runner maps the vectors' claims onto the SDK's receipt hop model and supplies signature and parent-hash checks itself. At the same SDK commit it passes all 20 -01 vectors; for -02 it reports 21 passes, 4 failures and 10 gaps; for -03, 21 passes, 4 failures and 11 gaps, unchanged from 4c61b88. These are different code paths and measurements. The failures are different rejection reasons; the gaps are claim rules the mapped model cannot represent, including audience, confirmation, the closed and single detail, and per-hop maximum depth. No vector is skipped. The native results above are the result for the <xref target="ASOR"/> token format.</t>

<t>These are library-level results over fixed test vectors, not full protocol conformance. Neither runner covers holder binding or status (steps 6 and 7 of Section 6 of <xref target="ASOR"/>), or the HTTP interface and wire formats defined in this document. The runners, vectors, and revision-pinned results are at https://github.com/cred-ninja/protocol/tree/main/conformance/asor-delegation-chain.</t>

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

<section anchor="confused-deputy-mitigation"><name>Confused Deputy Mitigation</name>

<t>Capability-shaped tokens eliminate ambient authority. An adversarially-prompted agent cannot widen its own capabilities since attenuation is DS-enforced. OAuth access tokens are ambient authority: any code holding the token exercises its full scope. For adversarially-promptable agents, this is a structural exploit vector. Cred delegation tokens are operation-bound, resource-specific, and constraint-bearing, following the principle that designation should equal authority <xref target="CONFUSED-DEPUTY"/>.</t>

</section>
<section anchor="splicing"><name>Delegation Chain Splicing</name>

<t>The mandatory <spanx style="verb">prf</spanx> chain with DS-signed receipts addresses the vulnerability in Sections 2.1-2.2 of <xref target="RFC8693"/> disclosed to the OAuth WG on February 26, 2026 <xref target="OAUTH-SPLICING"/>. Each receipt cross-references parent and child DT <spanx style="verb">jti</spanx> values along with both agent DIDs, preventing presentation of tokens from mismatched delegation contexts. The <spanx style="verb">requested_actor</spanx>/<spanx style="verb">actor_token</spanx> binding proposed in <xref target="OBO-USER"/> mitigates the same class of attack at the authorization server for the first delegation hop; the <spanx style="verb">prf</spanx> chain extends equivalent protection across every subsequent hop (see <xref target="relationship-to-existing-work"/>). The two can compose: a DS can accept an actor-bound access token issued under <xref target="OBO-USER"/> as the credential it wraps, then produce <spanx style="verb">prf</spanx> receipts for every sub-delegation beyond that first hop.</t>

</section>
<section anchor="dpop-binding"><name>DPoP Binding</name>

<t>DPoP <xref target="RFC9449"/> prevents Delegation Token theft and replay by requiring cryptographic proof of private key possession on every <spanx style="verb">/exercise</spanx> request. The proof is bound to the <spanx style="verb">htm</spanx> (HTTP method) and <spanx style="verb">htu</spanx> (URI) of the request, not to its body. Every exercise goes to the same <spanx style="verb">/exercise</spanx> endpoint and carries its operation and parameters in the body (<xref target="proxy-semantics"/>), so the DPoP proof does not bind or distinguish them. The DS validates the actual operation and parameters against the Delegation Token (<xref target="exercise-flow"/>). Signed evidence of the request body would need a separate commitment to it, which this document does not define.</t>

</section>
<section anchor="prompt-injection-containment"><name>Prompt Injection Containment</name>

<t>Because the underlying credential is never delivered to the Agent, a successful prompt injection attack on the Agent cannot exfiltrate it. That does not cover the DS itself (<xref target="trusted-ds"/>) or a credential that an upstream response reflects or mints. The agent can only exercise capabilities already granted in its DT, and only via the DS <spanx style="verb">/exercise</spanx> endpoint. The blast radius of a compromised agent is bounded by its current DT's <spanx style="verb">authorization_details</spanx>.</t>

</section>
<section anchor="chain-depth-limits"><name>Chain Depth Limits</name>

<t>Implementations <bcp14>SHOULD</bcp14> enforce a maximum delegation chain depth of 5. Unbounded sub-delegation creates exponential revocation cascades and audit complexity.</t>

</section>
<section anchor="token-lifetime"><name>Token Lifetime</name>

<t>The default DT lifetime of 15 minutes limits the blast radius of any single token compromise. Implementations <bcp14>MUST NOT</bcp14> issue DTs with a lifetime exceeding 1 hour. The same cap applies to a token a DS issues under <xref target="chain-verifiable-profile"/> and to an access token it issues by exchange (<xref target="native-rs"/>), so that a token used away from the DS outlives a revocation by at most 1 hour (<xref target="revocation"/>).</t>

</section>
<section anchor="model-identity-and-substitution"><name>Model Identity and Substitution</name>

<t>The <spanx style="verb">agent_model</spanx> claim is self-asserted. A credential valid for an agent remains valid if the operator substitutes the underlying model, a threat class raised against the AIMS predecessor framework in March 2026. Verifying model identity requires attestation of the agent runtime and is out of scope for this document. Deployments that need it should treat these claims as advisory policy input, not proof, and look to remote attestation work in the RATS WG.</t>

</section>
<section anchor="long-term-evidence"><name>Long-Term Evidence</name>

<t>Delegation receipts are signed by the DS, with Ed25519 or P-256 unless a deployment uses ML-DSA; a deployment may sign its consent and audit records the same way. A signed record retained as dispute evidence beyond the period in which its signature can be trusted against a cryptographically relevant quantum computer loses its value as evidence unless it was anchored while still trustworthy, for example by periodic time-stamping under a post-quantum signature or by inclusion in an append-only log whose head is so signed. Deployments that retain signed records for that long <bcp14>SHOULD</bcp14> anchor them. Consent and audit records that are immutable but unsigned carry evidence only as strong as the integrity controls of their store; a deployment that relies on them as dispute evidence <bcp14>SHOULD</bcp14> commit their digests to such a log.</t>

</section>
<section anchor="trusted-ds"><name>Trusted Delegation Server</name>

<t>The DS holds the credentials Subjects deposit and is trusted with them. Compromise of the DS, of its operator, or of the path by which it releases the keys that protect stored credentials exposes those credentials and lets an attacker exercise them, with no Delegation Token and within whatever the upstream provider granted. Keeping credentials away from Agents does not remove this exposure; it concentrates it at the DS.</t>

<t>Delegation receipts are signed by the DS. A DS-signed receipt proves that the DS authorized an action under its own records; it does not prove that the Subject, rather than the operator, approved the grant those records describe. Deployments that need stronger guarantees can isolate credential custody per tenant or run the DS in hardware-protected execution environments. Root approval that can be verified independently of the DS, signed with a key the user holds, is left to a later revision.</t>

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

<t>This document requests registration of the following claims in the "JSON Web Token Claims" registry, using the template of Section 10.1.1 of <xref target="RFC7519"/>. For each, the Change Controller is the IETF.</t>

<texttable title="JSON Web Token Claims registrations">
      <ttcol align='left'>Claim Name</ttcol>
      <ttcol align='left'>Claim Description</ttcol>
      <ttcol align='left'>Specification Document(s)</ttcol>
      <c><spanx style="verb">agent_model</spanx></c>
      <c>Agent model identifier</c>
      <c><xref target="agent-authentication"/> of this document</c>
      <c><spanx style="verb">agent_operator</spanx></c>
      <c>Agent operator</c>
      <c><xref target="agent-authentication"/> of this document</c>
      <c><spanx style="verb">consent_id</spanx></c>
      <c>Consent record identifier</c>
      <c><xref target="delegation-token-format"/> of this document</c>
      <c><spanx style="verb">credential_handle</spanx></c>
      <c>Opaque Credential Vault handle</c>
      <c><xref target="delegation-token-format"/> of this document</c>
      <c><spanx style="verb">delegation_constraints</spanx></c>
      <c>Constraint ceilings of a Delegation Token</c>
      <c><xref target="constraint-ceilings"/> of this document</c>
      <c><spanx style="verb">prf</spanx></c>
      <c>Delegation receipt references</c>
      <c><xref target="chain-integrity"/> of this document</c>
</texttable>

<t>The ceiling claim is named <spanx style="verb">delegation_constraints</spanx> because <spanx style="verb">constraints</spanx> is already registered in the "JSON Web Token Claims" registry, by Section 13.3 of <xref target="OIDC-FED"/>, with a different value.</t>

<t>This document requests registration of <spanx style="verb">Cred-Protocol-Version</spanx> (<xref target="protocol-version-negotiation"/>) in the "Hypertext Transfer Protocol (HTTP) Field Name Registry" defined in Section 16.3.1 of <xref target="RFC9110"/>, with status "provisional".</t>

<t>The following are open for a later revision:</t>

<t><list style="symbols">
  <t><xref target="RFC9396"/> defines no registry for <spanx style="verb">authorization_details</spanx> type values. Section 2 of <xref target="RFC9396"/> recommends a collision-resistant namespace for types used across servers; this revision keeps the bare <spanx style="verb">cred_delegation</spanx> type and requests no registration for it.</t>
  <t>The delegation grant of <xref target="sub-delegation-exchange"/> is redeemed with the <xref target="RFC8693"/> token exchange grant type. The token type identifier that names the grant in <spanx style="verb">subject_token_type</spanx> is not yet defined. Earlier revisions requested <spanx style="verb">urn:ietf:params:oauth:grant-type:cred-delegation</spanx>, which no part of the protocol uses; this revision withdraws that request.</t>
</list></t>

</section>


  </middle>

  <back>


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

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



<reference anchor="RFC6749">
  <front>
    <title>The OAuth 2.0 Authorization Framework</title>
    <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
    <date month="October" year="2012"/>
    <abstract>
      <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6749"/>
  <seriesInfo name="DOI" value="10.17487/RFC6749"/>
</reference>
<reference anchor="RFC8693">
  <front>
    <title>OAuth 2.0 Token Exchange</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
    <author fullname="B. Campbell" initials="B." role="editor" surname="Campbell"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
    <date month="January" year="2020"/>
    <abstract>
      <t>This specification defines a protocol for an HTTP- and JSON-based Security Token Service (STS) by defining how to request and obtain security tokens from OAuth 2.0 authorization servers, including security tokens employing impersonation and delegation.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8693"/>
  <seriesInfo name="DOI" value="10.17487/RFC8693"/>
</reference>
<reference anchor="RFC9068">
  <front>
    <title>JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens</title>
    <author fullname="V. Bertocci" initials="V." surname="Bertocci"/>
    <date month="October" year="2021"/>
    <abstract>
      <t>This specification defines a profile for issuing OAuth 2.0 access tokens in JSON Web Token (JWT) format. Authorization servers and resource servers from different vendors can leverage this profile to issue and consume access tokens in an interoperable manner.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9068"/>
  <seriesInfo name="DOI" value="10.17487/RFC9068"/>
</reference>
<reference anchor="RFC9449">
  <front>
    <title>OAuth 2.0 Demonstrating Proof of Possession (DPoP)</title>
    <author fullname="D. Fett" initials="D." surname="Fett"/>
    <author fullname="B. Campbell" initials="B." surname="Campbell"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="D. Waite" initials="D." surname="Waite"/>
    <date month="September" year="2023"/>
    <abstract>
      <t>This document describes a mechanism for sender-constraining OAuth 2.0 tokens via a proof-of-possession mechanism on the application level. This mechanism allows for the detection of replay attacks with access and refresh tokens.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9449"/>
  <seriesInfo name="DOI" value="10.17487/RFC9449"/>
</reference>
<reference anchor="RFC9396">
  <front>
    <title>OAuth 2.0 Rich Authorization Requests</title>
    <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
    <author fullname="J. Richer" initials="J." surname="Richer"/>
    <author fullname="B. Campbell" initials="B." surname="Campbell"/>
    <date month="May" year="2023"/>
    <abstract>
      <t>This document specifies a new parameter authorization_details that is used to carry fine-grained authorization data in OAuth messages.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9396"/>
  <seriesInfo name="DOI" value="10.17487/RFC9396"/>
</reference>
<reference anchor="RFC7523">
  <front>
    <title>JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="B. Campbell" initials="B." surname="Campbell"/>
    <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>This specification defines the use of a JSON Web Token (JWT) Bearer Token as a means for requesting an OAuth 2.0 access token as well as for client authentication.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7523"/>
  <seriesInfo name="DOI" value="10.17487/RFC7523"/>
</reference>
<reference anchor="RFC7519">
  <front>
    <title>JSON Web Token (JWT)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7519"/>
  <seriesInfo name="DOI" value="10.17487/RFC7519"/>
</reference>

<reference anchor="DID-CORE" target="https://www.w3.org/TR/did-core/">
  <front>
    <title>Decentralized Identifiers (DIDs) v1.0</title>
    <author initials="M." surname="Sporny">
      <organization></organization>
    </author>
    <author initials="D." surname="Longley">
      <organization></organization>
    </author>
    <author initials="D." surname="Chadwick">
      <organization></organization>
    </author>
    <date year="2022" month="July"/>
  </front>
  <seriesInfo name="W3C" value="Recommendation"/>
</reference>
<reference anchor="DID-KEY" target="https://w3c-ccg.github.io/did-method-key/">
  <front>
    <title>The did:key Method v0.7</title>
    <author initials="D." surname="Longley">
      <organization></organization>
    </author>
    <date />
  </front>
  <seriesInfo name="W3C" value="CCG Draft"/>
</reference>
<reference anchor="OIDC-CIBA" target="https://openid.net/specs/openid-client-initiated-backchannel-authentication-core-1_0.html">
  <front>
    <title>OpenID Connect Client-Initiated Backchannel Authentication Flow - Core 1.0</title>
    <author >
      <organization>OpenID Foundation</organization>
    </author>
    <date year="2021" month="September"/>
  </front>
</reference>
<reference anchor="ASOR" target="https://datatracker.ietf.org/doc/draft-asor-wimse-agent-delegation-chain/">
  <front>
    <title>Verifiable Attenuated Delegation for AI Agent Chains</title>
    <author initials="R." surname="Asor">
      <organization></organization>
    </author>
    <date year="2026" month="October"/>
  </front>
<refcontent>Work in Progress, draft-asor-wimse-agent-delegation-chain-03</refcontent></reference>


<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>



    </references>

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



<reference anchor="RFC7638">
  <front>
    <title>JSON Web Key (JWK) Thumbprint</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <date month="September" year="2015"/>
    <abstract>
      <t>This specification defines a method for computing a hash value over a JSON Web Key (JWK). It defines which fields in a JWK are used in the hash computation, the method of creating a canonical form for those fields, and how to convert the resulting Unicode string into a byte sequence to be hashed. The resulting hash value can be used for identifying or selecting the key represented by the JWK that is the subject of the thumbprint.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7638"/>
  <seriesInfo name="DOI" value="10.17487/RFC7638"/>
</reference>
<reference anchor="RFC8785">
  <front>
    <title>JSON Canonicalization Scheme (JCS)</title>
    <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
    <author fullname="B. Jordan" initials="B." surname="Jordan"/>
    <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
    <date month="June" year="2020"/>
    <abstract>
      <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
      <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8785"/>
  <seriesInfo name="DOI" value="10.17487/RFC8785"/>
</reference>
<reference anchor="RFC7942">
  <front>
    <title>Improving Awareness of Running Code: The Implementation Status Section</title>
    <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
    <author fullname="A. Farrel" initials="A." surname="Farrel"/>
    <date month="July" year="2016"/>
    <abstract>
      <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
      <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="205"/>
  <seriesInfo name="RFC" value="7942"/>
  <seriesInfo name="DOI" value="10.17487/RFC7942"/>
</reference>
<reference anchor="RFC9421">
  <front>
    <title>HTTP Message Signatures</title>
    <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
    <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
    <author fullname="M. Sporny" initials="M." surname="Sporny"/>
    <date month="February" year="2024"/>
    <abstract>
      <t>This document describes a mechanism for creating, encoding, and verifying digital signatures or message authentication codes over components of an HTTP message. This mechanism supports use cases where the full HTTP message may not be known to the signer and where the message may be transformed (e.g., by intermediaries) before reaching the verifier. This document also describes a means for requesting that a signature be applied to a subsequent HTTP message in an ongoing HTTP exchange.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9421"/>
  <seriesInfo name="DOI" value="10.17487/RFC9421"/>
</reference>
<reference anchor="RFC9110">
  <front>
    <title>HTTP Semantics</title>
    <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
    <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
    <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
    <date month="June" year="2022"/>
    <abstract>
      <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
      <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="97"/>
  <seriesInfo name="RFC" value="9110"/>
  <seriesInfo name="DOI" value="10.17487/RFC9110"/>
</reference>

<reference anchor="UCAN-SPEC" target="https://github.com/ucan-wg/delegation">
  <front>
    <title>UCAN Delegation</title>
    <author initials="B." surname="Zelenka">
      <organization></organization>
    </author>
    <date />
  </front>
<refcontent>RC v1.0</refcontent></reference>
<reference anchor="CONFUSED-DEPUTY" >
  <front>
    <title>The Confused Deputy (or Why Capabilities Might Have Been Invented)</title>
    <author initials="N." surname="Hardy">
      <organization></organization>
    </author>
    <date year="1988"/>
  </front>
<refcontent>ACM SIGOPS Operating Systems Review</refcontent></reference>
<reference anchor="MILLER-2006" >
  <front>
    <title>Robust Composition: Towards a Unified Approach to Access Control and Concurrency Control</title>
    <author initials="M. S." surname="Miller">
      <organization></organization>
    </author>
    <date year="2006"/>
  </front>
<refcontent>PhD thesis, Johns Hopkins University</refcontent></reference>
<reference anchor="WAG" target="https://datatracker.ietf.org/doc/draft-carleton-workload-authz-grant/">
  <front>
    <title>Workload Authorization Grant</title>
    <author initials="P." surname="Carleton" role="editor">
      <organization></organization>
    </author>
    <author initials="N." surname="Steele">
      <organization></organization>
    </author>
    <author initials="A." surname="Parecki">
      <organization></organization>
    </author>
    <author initials="A." surname="Schwenkschuster">
      <organization></organization>
    </author>
    <author initials="B." surname="Campbell">
      <organization></organization>
    </author>
    <date year="2026" month="September" day="22"/>
  </front>
<refcontent>Work in Progress, draft-carleton-workload-authz-grant-01</refcontent></reference>
<reference anchor="AIMS" target="https://datatracker.ietf.org/doc/draft-ietf-wimse-aims/">
  <front>
    <title>AI Identity Management System</title>
    <author initials="P." surname="Kasselman">
      <organization></organization>
    </author>
    <author initials="J." surname="Lombardo">
      <organization></organization>
    </author>
    <author initials="Y." surname="Rosomakho">
      <organization></organization>
    </author>
    <author initials="B." surname="Campbell">
      <organization></organization>
    </author>
    <author initials="N." surname="Steele">
      <organization></organization>
    </author>
    <author initials="A." surname="Parecki">
      <organization></organization>
    </author>
    <date year="2026" month="September" day="15"/>
  </front>
<refcontent>Work in Progress, draft-ietf-wimse-aims-00</refcontent></reference>
<reference anchor="OAUTH-CHAINING" target="https://datatracker.ietf.org/doc/draft-ietf-oauth-identity-chaining/">
  <front>
    <title>OAuth Identity and Authorization Chaining Across Domains</title>
    <author >
      <organization>IETF OAuth Working Group</organization>
    </author>
    <date year="2026" month="August"/>
  </front>
<refcontent>Work in Progress, draft-ietf-oauth-identity-chaining-17, in the RFC Editor queue</refcontent></reference>
<reference anchor="FIPS204" target="https://doi.org/10.6028/NIST.FIPS.204">
  <front>
    <title>Module-Lattice-Based Digital Signature Standard</title>
    <author >
      <organization>National Institute of Standards and Technology</organization>
    </author>
    <date year="2024" month="August"/>
  </front>
  <seriesInfo name="FIPS" value="204"/>
</reference>
<reference anchor="OIDC-FED" target="https://openid.net/specs/openid-federation-1_0.html">
  <front>
    <title>OpenID Federation 1.0</title>
    <author >
      <organization>OpenID Foundation</organization>
    </author>
    <date />
  </front>
</reference>
<reference anchor="AAT" target="https://datatracker.ietf.org/doc/draft-niyikiza-oauth-attenuating-agent-tokens/">
  <front>
    <title>Attenuating Authorization Tokens for Agentic Delegation Chains</title>
    <author initials="N." surname="Aimable">
      <organization></organization>
    </author>
    <date year="2026" month="October"/>
  </front>
<refcontent>Work in Progress, draft-niyikiza-oauth-attenuating-agent-tokens-02</refcontent></reference>
<reference anchor="DELEGATE-SD-JWT" target="https://datatracker.ietf.org/doc/draft-gco-oauth-delegate-sd-jwt/">
  <front>
    <title>Delegate SD-JWT</title>
    <author initials="G." surname="Oliver">
      <organization></organization>
    </author>
    <date year="2026" month="April"/>
  </front>
<refcontent>Work in Progress (expired), draft-gco-oauth-delegate-sd-jwt-00</refcontent></reference>
<reference anchor="ASYNC-DELEG" target="https://datatracker.ietf.org/doc/draft-zhu-oauth-async-delegation/">
  <front>
    <title>Delegated Refresh Tokens for OAuth 2.0 Token Exchange</title>
    <author initials="L." surname="Zhu">
      <organization></organization>
    </author>
    <date year="2026" month="August"/>
  </front>
<refcontent>Work in Progress, draft-zhu-oauth-async-delegation-05</refcontent></reference>
<reference anchor="CB4A" target="https://datatracker.ietf.org/doc/draft-hartman-credential-broker-4-agents/">
  <front>
    <title>Credential Broker for Agents (CB4A)</title>
    <author initials="K." surname="Hartman">
      <organization></organization>
    </author>
    <date year="2026" month="March"/>
  </front>
<refcontent>Work in Progress (expired), draft-hartman-credential-broker-4-agents-00</refcontent></reference>
<reference anchor="TXN-AGENTS" target="https://datatracker.ietf.org/doc/draft-araut-oauth-transaction-tokens-for-agents/">
  <front>
    <title>Transaction Tokens For Agents</title>
    <author initials="A." surname="Raut">
      <organization></organization>
    </author>
    <date year="2026" month="May"/>
  </front>
<refcontent>Work in Progress, draft-araut-oauth-transaction-tokens-for-agents-02</refcontent></reference>
<reference anchor="DELEG-RECEIPTS" target="https://datatracker.ietf.org/doc/draft-nelson-agent-delegation-receipts/">
  <front>
    <title>Agent Delegation Receipts</title>
    <author initials="R." surname="Nelson">
      <organization></organization>
    </author>
    <date year="2026" month="October"/>
  </front>
<refcontent>Work in Progress, draft-nelson-agent-delegation-receipts-15</refcontent></reference>
<reference anchor="CROSS-ORG-REQS" target="https://datatracker.ietf.org/doc/draft-reece-wimse-cross-org-delegation/">
  <front>
    <title>Cross-Organizational Delegation for Workload and Agent Identity: Problem Statement and Requirements</title>
    <author initials="M." surname="Reece">
      <organization></organization>
    </author>
    <date year="2026" month="August"/>
  </front>
<refcontent>Work in Progress, draft-reece-wimse-cross-org-delegation-02</refcontent></reference>
<reference anchor="MANDATE-PS" target="https://datatracker.ietf.org/doc/draft-yossif-agent-mandate-problem/">
  <front>
    <title>Problem Statement on Verifiable Human Mandates for Autonomous Agent Actions</title>
    <author initials="M." surname="Yossif">
      <organization></organization>
    </author>
    <date year="2026" month="July"/>
  </front>
<refcontent>Work in Progress, draft-yossif-agent-mandate-problem-00</refcontent></reference>
<reference anchor="OAUTH-SPLICING" target="https://mailarchive.ietf.org/arch/browse/oauth/">
  <front>
    <title>Security Consideration: Delegation Chain Splicing in RFC 8693 Token Exchange</title>
    <author >
      <organization>OAuth Working Group mailing list</organization>
    </author>
    <date year="2026" month="February"/>
  </front>
</reference>
<reference anchor="OBO-USER" target="https://datatracker.ietf.org/doc/draft-oauth-ai-agents-on-behalf-of-user/">
  <front>
    <title>OAuth 2.0 Extension: On-Behalf-Of User Authorization for AI Agents</title>
    <author initials="T." surname="Dissanayaka">
      <organization></organization>
    </author>
    <author initials="A." surname="Dissanayaka">
      <organization></organization>
    </author>
    <date year="2025" month="August"/>
  </front>
<refcontent>Work in Progress (expired), draft-oauth-ai-agents-on-behalf-of-user-02</refcontent></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 >
      <organization>IETF WIMSE Working Group</organization>
    </author>
    <date year="2026" month="July"/>
  </front>
<refcontent>Work in Progress, draft-ietf-wimse-arch-08</refcontent></reference>
<reference anchor="WIMSE-WPT" target="https://datatracker.ietf.org/doc/draft-ietf-wimse-wpt/">
  <front>
    <title>WIMSE Workload Proof Token</title>
    <author >
      <organization>IETF WIMSE Working Group</organization>
    </author>
    <date year="2026" month="August"/>
  </front>
<refcontent>Work in Progress, draft-ietf-wimse-wpt-02</refcontent></reference>
<reference anchor="WIMSE-AGENT" target="https://datatracker.ietf.org/doc/draft-ni-wimse-ai-agent-identity/">
  <front>
    <title>WIMSE Applicability for AI Agents</title>
    <author initials="Y." surname="Ni">
      <organization></organization>
    </author>
    <author initials="P." surname="Liu">
      <organization></organization>
    </author>
    <author initials="B." surname="Wang">
      <organization></organization>
    </author>
    <date year="2026" month="October"/>
  </front>
<refcontent>Work in Progress, draft-ni-wimse-ai-agent-identity-04</refcontent></reference>
<reference anchor="WIMSE-CRED-X" target="https://datatracker.ietf.org/doc/draft-schwenkschuster-wimse-credential-exchange/">
  <front>
    <title>WIMSE Credential Exchange</title>
    <author initials="A." surname="Schwenkschuster">
      <organization></organization>
    </author>
    <date year="2025" month="October"/>
  </front>
<refcontent>Work in Progress (expired), draft-schwenkschuster-wimse-credential-exchange-03</refcontent></reference>
<reference anchor="AGENTIC-JWT" target="https://datatracker.ietf.org/doc/draft-goswami-agentic-jwt/">
  <front>
    <title>Secure Intent Protocol: JWT Compatible Agentic Identity and Workflow Management</title>
    <author initials="A." surname="Goswami">
      <organization></organization>
    </author>
    <date year="2026" month="July"/>
  </front>
<refcontent>Work in Progress, draft-goswami-agentic-jwt-01</refcontent></reference>
<reference anchor="ECT" target="https://datatracker.ietf.org/doc/draft-nennemann-wimse-ect/">
  <front>
    <title>Execution Context Tokens for Distributed Agentic Workflows</title>
    <author initials="C." surname="Nennemann">
      <organization></organization>
    </author>
    <date year="2026" month="February"/>
  </front>
<refcontent>Work in Progress (expired), draft-nennemann-wimse-ect-00</refcontent></reference>
<reference anchor="OWASP-AGENTIC" target="https://owasp.org/">
  <front>
    <title>Top 10 for Agentic Applications v1.0</title>
    <author >
      <organization>OWASP</organization>
    </author>
    <date year="2025" month="December"/>
  </front>
</reference>
<reference anchor="NIST-AGENT-ID" target="https://www.nccoe.nist.gov/">
  <front>
    <title>Accelerating the Adoption of Software and AI Agent Identity and Authorization</title>
    <author >
      <organization>NIST NCCoE</organization>
    </author>
    <date year="2026" month="February"/>
  </front>
</reference>


    </references>

</references>


<?line 833?>

<section numbered="false" anchor="changes-from-01"><name>Changes from -01</name>

<t><list style="symbols">
  <t><xref target="wag-composition"/>: the WAG identity travels only as receipt evidence and <bcp14>MUST NOT</bcp14> be carried in <spanx style="verb">act</spanx>; the -01 allowance for <spanx style="verb">act</spanx> <spanx style="verb">iss</spanx> and <spanx style="verb">sub</spanx> contradicted the <spanx style="verb">client_id</spanx>/<spanx style="verb">act.sub</spanx> agreement rule (Songbo Bu).</t>
  <t><xref target="delegation-token-format"/>: <spanx style="verb">client_id</spanx> keeps its RFC 8693 Section 4.3 meaning, the requesting client; the DS issues a token only to the agent it names.</t>
  <t>New <xref target="sub-delegation-exchange"/>: a hop is an authorization step by the delegating agent, which yields a single-use grant bound to the receiving agent, and an issuance step in which the receiving agent performs the token exchange under its own key (Songbo Bu). The DS assigns the child's <spanx style="verb">jti</spanx> at authorization, so the receipt can name it, and re-checks the parent's expiry and revocation at issuance.</t>
  <t><xref target="constraint-ceilings"/> aligned with draft-asor-wimse-agent-delegation-chain-02: label-valued <spanx style="verb">rank</spanx> carries its <spanx style="verb">order</spanx> on the wire, replacing the registered-ordering rule; constraint objects are closed; uniqueness is per (<spanx style="verb">key</spanx>, type), so ranges are allowed; <spanx style="verb">max</spanx> is per exercise only; <spanx style="verb">max_lifetime</spanx> and <spanx style="verb">max_subtree</spanx> added, with the DS as the single writer of their running totals. A constraint of an unrecognized type no longer makes the claim malformed: it is carried, a child covers it only with a JCS byte-identical constraint <xref target="RFC8785"/>, and any exercise under it is denied, as in Sections 4.2 and 4.3 of <xref target="ASOR"/>. The type, not the <spanx style="verb">key</spanx>, states whether a bound is per exercise or cumulative. A DS refuses a <spanx style="verb">max</spanx> on a key it meters as a running count.</t>
  <t><xref target="exercise-flow"/>: the steps include the revocation check and the constraint check, with the atomic debit of cumulative totals, that <xref target="revocation"/> and <xref target="constraint-ceilings"/> already required. <xref target="revocation"/> ties the 401 for a revoked token to the authority check.</t>
  <t>Related Work: the <xref target="ASOR"/> paragraph updated to -02 and corrected. The two drafts share grammar, vocabulary, and subsumption but not a wire format; the -01 statement that either verifier checks the other's chains was wrong.</t>
  <t>New <xref target="chain-verifiable-profile"/>: tokens meant to be verified away from the issuing DS, including user-minted tokens, use the <xref target="ASOR"/> <spanx style="verb">agent_delegation</spanx> format unchanged. A DS may issue them and may read and check ones it did not issue; using such a token as the root of a DS chain is left to a later revision (Caleb Dyer). Cumulative ceilings under the profile are enforced only where a single writer holds the total; a verifier away from the DS enforces per-exercise ceilings and denies an action under a cumulative constraint unless it, or a component that authorizes the action for it, holds the running total.</t>
  <t><xref target="revocation"/>: <spanx style="verb">revoked_count</spanx> reports invalidation, not closure; a delegation exchanged for direct presentation to a resource server is only partially revoked until that token expires unless the resource server checks authority at commit; cascading revocation holds within one DS, and enforcement across administrative domains is out of scope (Deonte O'dell Watts). A call already dispatched upstream when a revocation takes effect is not recalled.</t>
  <t><xref target="token-lifetime"/>: the 1-hour cap also covers a token a DS issues under <xref target="chain-verifiable-profile"/> and an access token it issues by exchange (<xref target="native-rs"/>); <xref target="revocation"/> states the resulting bound: an enforcement point away from the DS admits no new action under a revoked delegation after the presented token expires, at most 1 hour after issuance.</t>
  <t><xref target="agent-identity"/>: ML-DSA permitted alongside Ed25519 and P-256; every verifier holds a local list of accepted algorithms, as in <xref target="ASOR"/> Section 6 step 1.</t>
  <t>Related Work, Nelson paragraph: updated to -15, which binds the delegatee by key thumbprint and states that key custody is attested out of band; a principal-signed root receipt adds assurance where that attestation shows a user-held, user-verified key. New <xref target="long-term-evidence"/> in Security Considerations.</t>
  <t><xref target="impl-status"/>: SDK described at <spanx style="verb">main</spanx> commit 42b39f4 after integration of the catalogue capabilities, server-measured per-exercise ceilings, CIBA-derived consent with retention, and Cred Link Delegation Tokens. Remaining authentication, exercise-interface, capability, consent, revocation and nonce differences are stated separately. Native <xref target="ASOR"/> results lead: 35 of 35 -02 vectors and 36 of 36 -03 vectors, with rejection outcome, hop and rule checked. The older hop-model measurement and the limits of library-level testing remain explicit. Related Work records the changes from <xref target="ASOR"/> -02 to -03.</t>
  <t>Limits stated: after <xref target="arch-figure"/>, in <xref target="design-principles"/>, and in <xref target="prompt-injection-containment"/>, the claim that credential theft is eliminated is bounded to the Agent; <xref target="dpop-binding"/> states that a DPoP proof covers method and URI, not the operation and parameters in the request body; new <xref target="trusted-ds"/> in Security Considerations states that the DS is trusted with the deposited credentials and what its signed receipts do and do not prove.</t>
  <t><xref target="agent-authentication"/>: the optional <spanx style="verb">agent_checksum</spanx> claim is removed.</t>
  <t>IANA Considerations: JWT claim registrations completed with their template fields; <spanx style="verb">Cred-Protocol-Version</spanx> requested as a provisional HTTP field. The <spanx style="verb">authorization_details</spanx> type request is withdrawn, since <xref target="RFC9396"/> defines no registry for type values, and so is the grant type URI, which no part of the protocol uses. The ceiling claim is renamed from <spanx style="verb">constraints</spanx> to <spanx style="verb">delegation_constraints</spanx> and registered, since <spanx style="verb">constraints</spanx> is already registered by OpenID Federation 1.0 with a different value. The undefined token type for the delegation grant is recorded as open.</t>
  <t>References: <xref target="ASOR"/> -01 to -03 and moved to normative, since <xref target="chain-verifiable-profile"/> depends on its format and verification algorithm; Nelson -13 to -15; <xref target="AAT"/> -01 to -02; <xref target="WIMSE-AGENT"/> -03 to -04; <xref target="DELEGATE-SD-JWT"/> -00 marked expired; <xref target="RFC7519"/> normative; <xref target="FIPS204"/>, <xref target="RFC7638"/>, <xref target="RFC8785"/>, and <xref target="RFC9110"/> informative.</t>
</list></t>

</section>
<section numbered="false" anchor="changes-from-00"><name>Changes from -00</name>

<t><list style="symbols">
  <t>Workload Authorization Grant composition (<xref target="wag-composition"/>): WAG-provisioned workloads authenticate per <xref target="agent-authentication"/>; <spanx style="verb">act.sub</spanx> stays the Agent DID; WAG identity travels as receipt identity evidence or as <spanx style="verb">act</spanx> <spanx style="verb">iss</spanx> and <spanx style="verb">sub</spanx>; WAG bearer status noted, proof of possession comes from the Delegation Token's DPoP binding.</t>
  <t>Delegation Token adds <spanx style="verb">client_id</spanx> naming the acting agent per <xref target="RFC9068"/> and <xref target="AIMS"/> Section 10.3, which <bcp14>MUST</bcp14> agree with <spanx style="verb">act.sub</spanx>.</t>
  <t>New <xref target="constraint-ceilings"/>: the <spanx style="verb">constraints</spanx> claim adopts the <xref target="ASOR"/> Section 4.2 vocabulary (<spanx style="verb">max</spanx>, <spanx style="verb">min</spanx>, <spanx style="verb">one_of</spanx>, <spanx style="verb">not_one_of</spanx>, <spanx style="verb">prefix</spanx>, <spanx style="verb">rank</spanx>) and Section 4.3 subsumption, fail-closed parsing, inherit-on-omit, and the rank-label ordering rule. Numeric ceilings leave the capability object. Lifetime aggregates stay DS-debited.</t>
  <t><xref target="chain-integrity"/>: per-hop re-verification of authority and freshness; monotonic narrowing stated as containment plus order-independent intersection; root subject preserved in <spanx style="verb">sub</spanx>, current actor in <spanx style="verb">act.sub</spanx>, prior actors as nested <spanx style="verb">act</spanx> for attribution only; actor attribution attested per hop with its as-of time; receipt content adds the root subject and identity evidence; a <bcp14>SHOULD</bcp14>-level per-hop audit record distinct from the receipt; sub-delegation subset rule reads equal or narrower.</t>
  <t>Related Work: <xref target="ASOR"/> added; AIMS and WAG references refreshed; Delegate SD-JWT paragraph notes the adoption call and the chain rules it leaves to this layer.</t>
  <t>New <xref target="impl-status"/> per <xref target="RFC7942"/>: what the open source SDK implements and does not, and what the <xref target="ASOR"/> interop vector results do and do not cover.</t>
  <t>Related Work and references refreshed against Datatracker on 2026-10-13: identity chaining is in the RFC Editor queue at -17; the Delegate SD-JWT adoption call has closed, result pending; newer revisions of the Nelson, Reece, Zhu, Raut, Ni, Goswami, and WPT drafts; CB4A and ECT noted as expired.</t>
  <t>References: <xref target="RFC9068"/> normative; <xref target="ASOR"/>, <xref target="RFC7942"/>, and <xref target="RFC9421"/> informative.</t>
</list></t>

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

<t>The design of this protocol draws on UCAN attenuation semantics <xref target="UCAN-SPEC"/>, the object-capability literature, and ongoing work in the IETF WIMSE and OAuth working groups. Threat modeling was informed by <xref target="OWASP-AGENTIC"/> and <xref target="NIST-AGENT-ID"/>. Rafael Asor's delegation chain draft supplied the constraint vocabulary adopted in -01; Iman Schrock found the defect in the first scope-class proposal; Wes Jackson supplied the per-hop attestation framing in <xref target="chain-integrity"/>; Songbo Bu found the <spanx style="verb">act</spanx>/<spanx style="verb">client_id</spanx> contradiction in the WAG composition text and the requester gap behind <xref target="sub-delegation-exchange"/>; Caleb Dyer argued for carrying rank order in the token and raised the user-minted deployment shape behind <xref target="chain-verifiable-profile"/>; Deonte O'dell Watts asked for the revocation limits now stated in <xref target="revocation"/>.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA9W963YbV5Im+p9PkYda65hyISGSkmUZ7OppiqRk2rpwCKrU
7l69xCSQJNMCMjGZCdIs2f0s8yzzZBNfXPYlkaBkVZ0fp1Z3lQggLzt27Lh+
EZGm6cbNKHm8Ma0mZTbPR8m0zi7btLnN8zK/S2+LeZOnkzqf5mVbZLN0ms/y
q6wtqjLd3t1oi3ZG1xy475ND931yUldtNalmyWVVJ/vHyf4V/aZJijJ5vZy1
RTq+a9p8nhyVN0VdlXN8uZFdXNT5zbo7RjfamGRtflXVd6OkaacbzfJiXjQN
/ay9W9A7HR+dvdjI6jyjr/PJxm1Vf7yqq+VilLw/fj0+2pjS1aNkd3v3abqz
nT7e3viY39GPpqONJEnxlEyegr/8ovnPt/vL9pr/JbfCvybZIrsoZkV7t3GT
l8sct7Hn0aNnVTZNjnlJ7Z0jQdJDgmSLb/qQrp9nxWyU8Bb8W5G3l8OqvsJt
i/Z6eTFKsCtpWZS/Zo8WSuqNjN6sqmUNsp8/F3mdlclYNpS+SJJcbvyRv/k3
+Z9mWObtRlnVc1rnDb/+6YuDp98/+UH/+ezpD4/1nz9sP31m/3zifvDD4x+e
6j+//273sfvnDv/g8PgwPXh7ejTiN1C+2TzMJ7TmOpsVf8+NPpf0PkQFuqB5
mNzsDLc3+RK/MvwnJRo2o+T1MBkvqrq8iz8+HCavqvJqlq9+fnCdTW+LyUf+
wvHAbrr9vbxYVl/l7Si5bttFM3r06Pb2dnj7GIR/dHb6aFpM00lV54/4t01e
F3lTlJeVvdX7xwej5DSfVHPayqkxDJb+89Ev8crPrvOEbjcirkte57S0aXKz
Pfz+nrV2FiXvfpnNmrz/zR9P0snkaijcMiwqfvs5Pyqlp967hoODl8khBAF9
+Pb48CA9OH6+Hy/g7SIvjw+Tg6os80mbHMwK2rz0uCzo0La0mc+zycfJdUbf
zhKcF2ztRI7xi1l1S6s6IEoma/eXSD5K9CEvqqUnZ7BtO+n2D72Lr+i6YgqW
ftQs8kmjH6QTecvC3jK98G+ZZtFb8kanOx+2h9ftfEZP2R+/PY1J8Dci3mWR
XczyZL9t6dTzwtfIK3Ae7eM9G3w6TPabqo6XCOnUu0T6RUYnZ/Ixr4cmHB6R
FH8kAjyjO6n0ZkEWCu4J3kT2v84vJyQx6QcipyCaSG5f1XnTDJIvvFW6/XgD
LBTLju+fPjYp8ez7Z9/Zpz882XWyY3fH/rmzs41/vjvYf5OOT44OYkLj44Cu
99Dw+TD5D/pd+TH7okOih4MO7KPlJCvTWyJhKOtjAp0esDyizw/evnnxbnx0
mB4enbw76znadCwulw1zw2JJEn+LOOH99V1yYGqCTl3yuri6bpMfs5s8eU7S
OTkuSXUQCz28Z4FvhnRBPQ1lwM4Pz56tvOv+wetkfPzy7ckYh6imBZVXqm4a
ElE3RX5L17w+fvXq6DTd3d5+Gq/htLpYNsSz1XxRNQWoMUrOqlt6cpNkybsS
Unqa7C9I8WST66Stkv3JhHgGC29r0vlZOcW/J8u6zsvJnX3+GVk+JJrMZnl8
Brafrqzu5PowocPaFMSkP1XXZZP8WC0+0m3wajekP6CHSZbtv4yX5VTxPr9B
8Xc5py9JAbb3vNoJ6Y2snuWtMgW/ToU75tOi1SMbbtG4zYmN4o/3h8kJ2SOT
j8XK5+PJ9S3xbDO5JqLn9QpLH2TzxUU+m3VFw/YP6e7u10iHia4mvVWCsPD7
e3oFQny5ZLj3Nun2DqQmGTPxHpBAdIbQ66wkkQK7R3nz/k34OWuafDbPyvib
n6AZ5xfEnFX8xS/D5LRqqnn28bq6n6h/cvPiPdj57mv2AB+ZWKX//nKqdy5M
tyGR3u6/O/sxPfhx//jN8ZsO17O96omOoxnzP6smCIj9SV3RIT4kkq3VVayY
YV2LHcyviWtfwtpdoc6zryZNhQenhb61aBp6zp+k05q7pDvfD3ANCRHon+SI
z3Hyv5b5Ejv/4vhkvLv9JCbj62q6nOXpq6wlGyFPn2cs3wvSIeSljIurMmuX
ZNGMWyIw8eI91HvDZKerjsuG7r5s86S6dBc2vENn+eS6rGbV1V1M0ydraVoV
TMad7eHT7d1nj94cj8+GWMiQVrLG2MPXtDL6waZZei+ODnsNvRfkkNXCLl9v
s63XxOsstkv32MgW2z/rCBW1v5iJI94+qz7mpBfYFLti8y600D5rlJE82C/m
sPH+OXZZWdwVH+ndlDEz/95qXLX8vl/O5V94Q3jr5IocvTp6uX92lI4P05/e
d2ioZCEO5i/vIcrLYfJ2Bj27ctyffA1NriaVvr0aX3naTNNfb79AEyVb+W+L
ghzhh0aPtTcTObk//uXNQcp06F/9lKyjS7r1dcg5Iul2h9vyYXL0G5yGq/we
Gr0iS/R6+c+Rh3+/Xtr2NnflJDDAv5xP1t8j3Yb+Onj+pOPhBTGY5zUtu/aH
iOiO399nqP7MhmpryjqkweOvocG13CyMRV3wW6VPhNG/4Myscsvn7ypsc/bv
b9L9l0dvzjrGzBlCJ9kklDQvHJHuoQ7ZE6f0xQppvsqSyGq6lW5u61/ITj7t
2hdTyPl8X3rLQK6kp0cHR8cnXRKJ9xvI3NN8kheLe8lDrvCbfNZ0/f2vFrp8
r1XvtdY3+RPS9jN3Elvw4PTteJy+PQVJ/ue4e6rIwkrf1ldZqSpqNcbp3BQ2
1Zh+Zr2N8EqkjeYwF1oxnfGr0/x/LYmz55/hO3KyTnN613+OXKpxKxcjxrro
+6+STp+7k7DZ6/03h9BeJx2arpKECBlEZ35c0hmHs4EVqy2wJL+lmlfLRgm8
zwz+Gdr9Qm9WXK4Qrz92+Bni3fG9lJXm8m7pQlby5YS77y6hZzA+eXV8sOIZ
jHNy0OETkHveFGZpjVYspGS8mBUTGFf0b9jLiAZ/kS4Uk3DVUeDgNv6aFc2q
GOx3anFJVk+uyfLwBMUHj0hm3zb5I5ZXoN3b52/Td+Oj0z4/CFr86DeiasNL
fVumz/PrbHaZvr1M3pGJ3LEfo5zDPdxxNiRfoGnIob3LNPoUSvvud261333l
2VNdXpgcpjNyIeuoLtMlreNr1OFnbypbwxmKdP/04Mc14ZUw05GtzXVYqiPZ
x6a2+QT+0+ecTr7kM07nV53H0K0GT32VP04Xyn4Kid6fdGxs//ZMJ7oVOX58
jv4Z6/56Z1te/3bxJ4I/8XURY8BQ6lv3/gJiRPNkX3yyfiFjoBMzOxkmr4rl
SkjnPcmhf5ab5iIsKlsthPBnPLN19xA/SYh1cHp0mP57H7UC+/sL/I01YcRA
znwdJZr4pqsZ4Vzf7WvkzRffXJwGZqzjg1XXlfVYnhzzg13ieZTQDzmGTaKc
szQaAIhCYXjLS2SkfDDyfjK/rJrbbL4aCPwqqXMlNxMGKSZf5vU6X3f1Yom6
Hh10CHT0G1FI9Dlu+lsberekm9q6uFjC+TUSGVXuO5gHsNLLMiezY9XJ+6q4
dGm3U04glfA1bNVzG7WF3u+PT1Jlo44nVy2Sne0oTqTiiu3CezLRYuLgzisn
rp8I1W3WLHjl9DXCdPJG6XEn8oaUysxyN4hU7k+rBW8iooXVZXubEdOzj3Dc
cRNWg7z3hSPpFZI3BwfV0RfuIrLi5WRS5cOSWGd4Vd082thI0zTJLhrsbrux
EdrXhqWgTaOjnTW0nNkdbSl7LEkmiaO2SoBioK0iLqRtrZY1fU7fckR6DhNi
QUeYbJCbYpLjtzcwWBuY+mKjgCrXbOnDUmmGJDXp7UA7b/jlZvjRnadT5p6i
nBZ0qyWJ2QyhR3pPulF7XTSJ2tHJFru9iQmjAb6o2CZa0MvljDoZMMlp+Us2
Y6ZKaqX+w4SOV1JWiSTE2gRPIvdEM+LT/LIoabXXJIaQ18qTeY5nFc28SSac
hMvpRYlGGf15nfMtvJgMACrJZZ3Nc+RjTL8K7YcbG2dYEp215Tx4AXooOOt+
BM+IHktLvixmHKheFw1Ltsw1oJN4mM+Jyq1y74kR7MQRTH4NAAn9+rSYXHcM
b3i0eYNQE//u8Q9PHwqN/wzUYKsLUzh+vv+QVpy1SV7CN2xClgETWtQwaSbV
Ip/SI31q31Ocf+oZu3IpVuXX65zUWUVf5jgBK0zLu8F/C0JK938k90vMTiDn
6DKf3E2I7HOfKVviACX54pr+rGnDACFZZEXd7AUopLS5zuj1Q86Q2E1ygcA8
Xt9Y0N6eD0UZHL69kMVu62yxwIMbSFYicCNkXNQ5stZ0OIhJoYSJQegBeT27
80dPHw3+ZYLRnelp2EUJuYb8C6XDvMtxymvyFUBCu47kxyxti3lOa20m2RTP
oDeoZL/3eAFtNqcVpfkN05EO4rSg08KR/pVjMK2IBcqq1S1IyvxW3jYRPAPp
Wnwky+C8ZgJ8GX1Mbzivpu4M8+pykzjR4ef9J8cSYuqmqOphchyePxx6d2Fw
7iHc6exf0GvxfmXkJBGtAWcjOg9kXRzfWCMJOucfAnpeTKezfGPjAWylupou
OepBfz9YjSttbPiD/umTosH++CNpqtkNvRGfm7StUuPuaM1kjNM5JLmBg+W+
gkCnD71elXVxvIbObVGrKB+wUAp/xwG2G73eNAa2qc6JA8FKoiSzNiDBMOHN
pm3KIdwb2nLAF+TE62V0vukjCSBIhBuPVvZMJiRqSY7dEfm6p50XrDpudodH
0TnEnvmTudUsslvsHot4RGdIhJX0FjVYeos+uLN70i2FVPiHUlTlXTYFoiGr
aXtJbZLMmC9420esDOb4oEAqUr6hc0EPI8U6aZlWLFCIyvQbun+CRwbsQgfj
uppNQ2XZuDTkZVbMZCP4JgFr4U50/qCT6GXp/HthcpvdNaONjZ1h8u23b6qu
QFvUxbwASGj47bd6qAST1Th7gPYlrfOrQnQHNlFTDjFtQRlaKo6u/Bps1sIw
bSGelLtIUJBfdHL84sWRPQCaf16UIoyhiGjRZMhWbuFOG19UVYu3ELnniOkW
c0kEh+y4xh02NnZ1yQGdWOg4DYLF0LL5YGjQMWmWFy5RJUqFv3g+8CLBb8i0
YlGVA2tFB465XY8WvQ42viqJRcqsJnYe+kAdMUPF13fejKzaIiP51kAGn9M5
PKfdAKaArZWWZG3L5sGcDk+y6SBeHLLGkzZHMGn0dSAyBvjbbCD60dUyg8jM
cz4eq5RpLKx4s5yVtK0aGdiaFs1kVjUi98CBGkF8GYUNB8mL/KKmR9wlu08H
bLGSoIrjnX/88RBHT02RXJUW+Ysis3eHO+nucBdKi0UcyEUijg4hsWnnfJH9
RR/n0wIPZHNVBAh9S1SZXIOGtJ2/0r0/sGw6ZyYFXavaPmGeIa1xKTZcSBFx
zBq2LkkwM8/h3wvo0rQprkQPQOgBB1OLolklKq+wzKFxqgnbm1PizsfKnT0q
HUypZ6zMheZ8wANrJ2udWaDaTCmpLMkanxk1Er99pwrqLluxS0IVEbxi/lte
T4j6yW1BXy/VzDB/qM5uwx8rr/AppRU/0RVDay9nWd1RUE4AsaFn6jar6WFw
hxHr9njkYUQgI0XKG+zMp3RGRJ8FRlhyAeeivBoxjTYnXne9rKorUtyHNYnC
TT5t/C2duGnCZva/Q7RekmimXfyFyNtCFMPsORtuJmYQm0EpNnxw7pwVYW6H
xJ+ckIa9dAGa3MGMCeRTUi/JJibifafEC20wb2ep8cVS/JQ+/SisSEZ+xNJz
YAiLOZ+ZNp8hHHyTzYopK88ZjBWsP2QZIjSDPYNHkQK/QpJjkV4AcROINeIF
iI+WbkzMBZYMLiNmKObkMUIs2a3fVKtS1dMQophsq4oVy6ptKTZpxLg1CbaN
jaem6kJaqQHhjpbHHKuFa+pO7CMAKW9wJJXNiZa5KvF3p8dD9lsg2wyLDRkV
7n284YWYtOqyTeXNuzq8mZAHVBdVo14VnvCX5PCkOhFJp1ltupccbrVXIUu+
X9V0gZGNNfcdfOJv4oUl2y4k5KpajFe5kqRzIZUim6YaGT/LGZnn30RC4YCl
b15DHfnTlxxCSskZYb22IhiPhptd819J1PRpW5imGiMAs4qdc5UtcDzIXj7N
Z8JX18UCv3UGFOJT4t9x4H5G9yNuWuTBNsTuwbzCISB2mHwEKy9Z+ECbidbs
y57dZuCgCeALec26KflpSe4L60AwkdmV2EW6KgqSiK8bnB5oYghBeV5PpoH8
2dmUNxCcUcyJ33K7Lz/3sarfKXHthLk88I+TGFkvRm1EAXxyTUsiyQ5HAmEu
3AIKhkMZWcNAUjLloNbg5lR/z8swdMOBP7D9rdu0piJWaGZwTWjRHduNtmLF
T2jEKkgM8ty4KJB46dkVbKaWD9ytkodrfBw/iQON71dfjQ2ahm3xgv7UEztp
2BvUE5uRECLlescc9iB5YbGcxkWq/ZYc2jM3Nr79thcZSudw69MnEI6soFFy
L/CWhMCa0NFnd2/gNuziTpkHv1ksL8hIg1VEu7cOuSoc5x/sVK6INda2eBkS
pyQA2siEdBRMxOy4FKOErFUisRwaFrW6uz7ytYRfyU+ofKRNb4Mf5mprZY1a
gPQ1lik7RA7nLBNzd9hP+npyLaT3eVLegEMVhFgZ6eoG1hOAtuaggnVgeArs
Ux1WOhh0wgUWwrSd0vOrO955oV4QsBtLoKHAi5tbDmnAadjwkYMAWqJnAhQh
/sxs1+CIfvoUJ65I7WhUwlIqLGvkxQwEHtlNvRS6XbQhgd6fnK3Qpy9FmmzR
L+EU98VfAxUIWtnL2O67QwyTrAlppokQXghrP3YEEJek1eK8k01G73amDqga
pGT2gdLECkTbH8/OTsD8gXcq0pcl2Dy7I8HWJqTXgbFgF1woFu9Iyx6SbW7C
ATx5o2wGw/BOLG/YosnlkrHGZJ0UsvjszkVoiUiS1hkjOuNsVQ1CXVcLxLz5
TVbfItyw9fnLiLuRuhD5InI3b7qyVjmQf6+OoFa+CeOzomcuL5qAt7rnluR6
0+e+DAIjbeAiN1ccjxU+F/V/w4Ag+V2wzM9Bj2SxMaRL1uvyA00ExaoDKBZZ
km1Gp3kpJ9jdPwR/+UcNhBQSDNPdgaPrJNHcAvx8t5wsRsU8B2IRHmPVkNPW
xyeW2XBEvS3ItJlnC35ij6aDhAwXpJppBSD02qRo58Cvwd8LUeOiBSbqcT8m
H6ZduvP9UAHbnrd6bAmJwEdczYdTshTiqYjPWSBgkpsUFvseKWN1rytx11i1
QYIi1JNL9JZ9fxzG4E008o/zBSPcRZYnEnygO9xy3gEFU/QrPrPTqiufmMsD
Vy50zoS7GGkozlAPZxv3NOAS5yqRbyMBEDl/7W1laaXowH8RlFzNiv2O0BYx
mnE8keQMO7uWOiG+u5zRz8iAw2tdVZxsI0kr9YOwKq9q1i+DIDgiW8gyYgTI
f7zOOmclrstl17MgjUmPhmRhx1weKm6mHrDba4jI2K77mOcL0To9qlRuP6to
w7B59Nkd717h84HMOWscZaKU/wvBKM4S8r3pMOSTjzknDYsJeee0R3mbqIcc
C6nP1mDqpozfnka7gpCgUCG98XjIldNLYoFjCttPn+EAkEvIXAqJU7QSWRer
dZFhZ76BpX5VCh5wQbxOx4vM92uSvlld3wUJEJwLuBrkhpCfgcPmYhfnvJAP
fiHntFEtvEDxX4juJJpTdvLYO0EgZz7P6mRrVsA/nQ0gvab0yOlAAzEZCQuX
ZUuZHaYa3xlY0C95MtwROYjwFagrm5JxYmfqj2sbhkm2/NW7COJncwtCLchd
mxQLBNNLDgCeOydAnS9Vh/StxLo/FNPziJnk9WWDxIyG9yq2IJzKCVkAV6Dm
9VyIg0QyfFK4qGVvsqkrVgqNEQnnsfafVEt4c7Sl7Wgd9zfrDwD7bMgdSMLE
BwsH5Hl1AjhRJg+0vrqqJct6sZxe5cRY16iCzRLGBpBVWWOH7bRmJvQicZf7
A04kImJg3xHGYV6RGDhbAGRTtcSa9MuPGZL3jBaBBwi5oCbCQOhKAsntfkqP
RKi5gVDSf/vbgr7GP/AYJnVxYab9LWJBtKIZXoc4jXUMOxVEfyJ3pr7S7XUO
haK2ekRuMoGuhSsWVQE7IrD6LcAL1g4jTn0xKwim64zhCI7kpNOw83qq+zde
YjZqlW25cPkzfqUfhk86B8hrFX6asFp4Zgcuq7ZytOQrCL/lfOFjkAN3ivhM
PQrPDtIGLbMZSBteGof81GBOLkhx6ytqIhqLHhsjNRBt+YwDIzh5TgHdFuJ5
zTM6ISZdWcYVxmjCz35hzrZ2vKyJjPXiTrT6r4w8gW/AVoZ9CZkUaS2z3L7p
c2JY/JKYoQ2PnjQJy85F2BknJuf+hx+CdWgqaMj1LEq2eZ5JMvEi94cwu800
FSZURV3lZLacCn+pUcBRzjnTxwQY0b8obziXPHCWgFdSqbozcDkRXpBNc5sg
u5IsS1HBU+YGspHJYqjMU6plqU4F2jvXEmdnCe3UlJi6bUhHNQ89qw4ZJ/MN
FDxzCHnXHYajDaqXZRQpQk8HiZuR0LzJkQxq9mghuDKF57AkCZNccXKbLZm8
Wc6QBpITAw3MX5C8wGFsM86WtIPAmpS7JrAeJnBLg8ODHO6y1l3n4GXHq5oU
yIql24+Trd3vk7d0owsiEIJ5dKrx8SzP7NXS7d0IHBGSX4woVkrXRU2m/iWt
iK/QNWsue9owUbfOheU/TIi1px/w+Qdh+Q9g+XPNfbuc7Tkie/8C2c2qk7zy
RfIdpBCoE9mFTlUOIIXx2jDpz/lKZmm2zPf41ZAJbjn5idv/lW/P9j2pMUSw
YcvXgkMSwerT0ng2js4HVi/nA/ljnv3mPuDkHx2yDzCNzvkQT6Bi2HK22zZm
7YQ5wUtOFgTP8Lfdc84LR+XvPzgmqYS3NbXLdreeoqmPuMwDa3NtDaVYmZ0q
0j/+2ItztBYOLBjXsfM04irPmvTLdHub9OSU3aQLtMAgjwRXZnJ0OJhPNIA5
QPR/6ApT6JXl2VGSUjwPBD3UB4EhNZuxviay/UxH6Lkk5JglFHqSsZUst+O9
V3hHY28RhByU7WfZXV7vdbyI7mVhqkVDcXwd3HKSfaSDZ1PxWMKMIVympjU0
lpPxVpTbuAyRc2aD9M+kiRT3ENjnuSIvRdwZgJStRxenm4osYXkRrNCOPkqx
Rz71BevkjmNz8GDp5BpnmWSH/nYi8BZPsVw2ERLpz6r+BiIqIBHJVGDdeMM1
Fs44NTGU2PPoXMwh3wWOTgn+SS+XNfRm4BjRHVl2wiDBrZgwEH84DGaliEXJ
FoeAAHo8Ujm45tlaJt7Cbbe8kZY451AQyI0nV7clR3TDqNr6Olxz4VyBcuTJ
GfEhE6U+WXVVY6A6cbmJo81a0ORi0Xj3uxNrKJtbDZpLvIBXQQSHMBeBFz1K
uSgAi/4tI10luqW4cb5OIziUhlRrm844xXt41ngjkWHLM6JMmQELFCRcqtJb
xXIn8BgITx5IeaU36yATiJcDAn+2hkljT1oiBuml+PEATgL1N3IYOSgIlddk
WDGeow/bAYNqDretscR/nxdoKIXIaZtU09zFE9S3kISR3xx+Vmp3vs2zjyXD
4KIt1Yv4KJ4v6stz853ozCAqxRtjKLfLom5a58zxVyoG+l3KcQ4LzEA7f/yh
wcCAH44dRkZwhbYpn6+z1jDr8yf7wY7QHowdTjILJfENGA90kNtopF2ABhaA
3j85dlhB8pKWV9chSw7UmQOjMtQXRPwtRMchguor0xh9xyJDE3mcsFrrQXFO
vXtQOtKZFhuqYF3LXidESxK2kFCxAB3cz1cS3FtBsHAQbHwAMgMW3TtjuD1y
ZF4pr2I86GqWfkpoxnQo5CsMUH1pwbjss6+nZyHH9ZiIJATl9B4zLNa47Kmi
pEwUBaA15uoC3QRTDeiyklPcL5cBqaWOlpE9T0LgPGP9Zg9xqTO9IS0078CI
BDjQdI2BK5jhpQP0r5z2ee7xwgEVv7geKszASAVZfGoO82ZBfCvCg9Qg4E/o
Bzmw7DifJ5exC2LjprdiqycyUNVGgBAJguw96Rp9kEMKr2BQOIdGZnbdBdcz
srHOFcamgTw9a4FBjtiVJcsPhJ8Hrs5bc5wMLzliLPgk96S+r3BaqOurzdem
eyoLRnFYVXDFeq9mxE5fAPYQuxbOD8wcxKFQkyWVIg5HTJZXK9E7f0INvrkl
4Sm8MA6tRZMD6zGMQ0QhHNa4Posuip9hNERBF8xxC1xk0eH+XNeDwC1wTSDi
MHS46RbMk2WxLuPtNnyt5EUGzHY4P1D8spfi8vCvYVvWgl5vNHgnAacVMBvf
h+uHlP8U+iphkEDeqXcn+Uov/azcQfaE8wy2gkLi4GIzhcccizKUuUaHycL9
mN8NFfK79g4uwG72Xj6KPxcDnk7lufsFOTbnIpcZh2rxNHtIEK2nNxhIhrUW
fMNP73+mny/nF3jPtpHcNzo3wu41CsmrmuPReS4CyxyozmZCodjqgKDuMaqZ
IQ/HZkvjSTBsJHvmxC5ftqetQBB26RDfEbd7nyaOzH/ThPwS4US/4YCNoffl
WHQzUCJurDwGVvakEskd5BSexiFRERIqySwqxb/Iw91gqAa7fJ4FAgwA6E0X
XUgcywHeL3IYMrelD7sZUS7u2pyVXdkAEl/KtvFbCG6iQ7CIohycAeqEdCN5
qxf5XaWhQk0aXEktQw4bXf2n4GVlHbrkLv11rYwj03UK8lHtDv7DxWPliLdM
qQYhD1yOn4mTzYIBmYdK8owABdetJQDIA51X/HpZGV30jWi2xlq1dQ+jD5fk
ARl00xzX67tkrZ3cohVoUGfJkfxcqUcVkXl0cBbr7bV1ulqelBnSUoSnquKO
X0frDOCYEaRJYrf02DTAWQSBn9WCYvVKfeW1CnbLeJhMzScfm+VcjsitFg+n
GVeoqh5Uz6VrJ3QrsJwesHsmGj8l3WPOj4SmGYZ5KImVEyE85P2nB7LcdOE+
+wNLlGampHinJEygQW4UoHvEOS2PH6rzZSO50xVUKCqeb1mP5hBu2WKRk2XF
npM/EwizhsEVFoHWk8UZDw5LVZIbNmdc7bff7gfaqwhxAAFGX4UAB1bCPGvL
2YNA0ZIwVWLT/6nJ7k7fisciTIxvIfS8Lz9El0Lxj+lLRmeHOtaXA9pRrrgE
Ig3MEoH5kEXl282y80h7Enryzt5TVBfRxK9aC8D4Ka4qwAdFwkC+uHq9i0Tb
rdvI1JQnKmYEPhj3LZQKD1/7dF01miQNahvDOiq7Eb0RGuN5a5VfX7ITVvVD
G1pKPYnU82qr4Km0CiYnOO4uzIFc3vIZ+fwkbtwJyh3OGy5qN1ipUhh5Fklv
0Tnmvc2n6bShY8w7cLouUcu0F7lcG8Q/BL9nHwEYJE05cY4SHjd+te9MT2b8
EP4wxFkrW6BiJ6aiJncO/cpgGzalBSzllhJmk8u4IC71BXH09tzfWDirWwor
/O2QSOLzY5EBk1i+yiz23hrZKqh284XqYoLa54EhLs9VVPu/J0ERyFjDwr8M
N5MX1YzLAkDCN29P95MtEWLyXn/1/P0wcWJN1H9wzhpt5yQEEOFvNhdj6+q7
RVtd1dniupiw5EP2KJYYWn3ERrsZCaIf1SkxnRI4PuS7w73LIfrVSnRCxFdN
tXqYGueEWoTMwZS+sEAMkj8581BZQdtDL9+yo7T5+t34bHMg/0vk5H+fHv3P
d8fkKuPf4x/3X71y/9jQX4x/fPvu1aH/l7/y4O3r10dvDuVi+jSJPtrYfL3/
y6bYy5tvT86O377Zf7UpIYrII4Z+YAXMRFnAFYMVvmH4AT4xzw9O/s//3nlC
J+f/Ibrs7uwAhyp/PNv5/gn9QZpGAbymeAQ9ereh+ghnZMaFSOhN23AiTAxG
DjwRd/wnKPNfo+RfLiaLnSf/qh9gwdGHRrPoQ6bZ6icrFwsRez7qeYyjZvR5
h9Lx++7/Ev1tdA8+/Jf/wVnfdOfZ//jXjY2N1Rjd1uH44WgDrr1laNiu43AD
UU1q7hvLRJIMzPuS7lFtxVgKAA2aPUbBYtmyw7k2dK6qOarPXFRg/FyqAzKG
BjSuAMOKEC/yFmM9XIEsXORFg7rNuWbj+uK4kI98BS+9DMIPpKW0qYhiGiUq
IJU2UktSdRec2ZINAAn/gGvj655uHUM8cL9bViDBMFVW0t4AxtdKhwMPgLzp
3YnQ/e6R3MHDjdvN1MAbCwTJdSNZq+wbi1itSYcQeZUkIDDYwLeYoMNarSl1
jMtRck/Wfjoxrgl5kyZ6NZdf6L7VwIWOe7hMff2FelBcHFPCFVrbpsHS18Po
XClM//DMjpUoEGRbNYZn1uc4CauXtTHAvhWrW3GXKzrr179RpxiUfMmtOcN6
xlFcPnhhgEwylUGbFilz0Pk1HPUQzD14ztwNWCN9JQch7mDgwCaCQgx2ltyK
KeDsqwzr2FDflStao5YZkR0Eanf3FYQeB6g+6Q7BLErCy4mfVdKLBx09jEMM
ATMph8m1XrJ1jXaHhuHf6fpl0U1kr3OgeUYH/AbFoP59IoGiwizo6sCI2FXq
gRhuZ5Xf1rTf0c4dwjZ3mo3mGu825C1svvQ6cnxlyFINuoUB1i3OVrO/QAeI
sVSScaZr6itR+XQbBveCcR+iycKCY+JTlXKSwgjfVEEwzbm6UbEt7dhUIl3W
ySXz0q5LJch6762ZQCJmZjHHIERJbntSwrjTbLpfL2ME8jLwuNj4hLA3XVF5
hPx+GbbNCW7NDH/B6DimS6KgZwXySJRzaJ2AVpsaJAZ5io3WPQSL8FNxwtg1
jiUTW8Oq8Bj5CfQkZJiGeFbPJq/PhLA1Zviw4/+5mwyHQ//nm4GGAPj9gDb1
NGg6YDONKaF3TgFXa61lzS8Bt57vh2lFLgtSaWkB2Exa8EACqsRdDbd3ZMeR
HknjCG7CctnRwaupmY7uV5Et7y/SW88t3Ac9t2fMrCxUWYiGOky4z4rCFZh5
htwlsUduuLMwF2URT1VqyPE53FzYn8CsNjjbikdgd/zkGL9cgHDsRoS9R5O3
NzBY8tuNjf/+7/9Osqy5udr4S/pV//nLxu9Jz3/G757/dHRwlmyhsPlh3y9+
x4U7Q2tZ5bpHkcBhYd17kbtwFzHptlfJr7tOLnw8lHE+N17re4zalvTNWr3w
HuLcR7e/bKx9Gdz1ni9v/mn7oSg2chqS8dHp345O2R1YQ52v+Q9fGL/tXzof
dP/mT+TC30MLLuEPAhnFfyeW8+Sn+QsT9S30Y3xwhORu7v+W+t965cLg7Tsf
6N8BJwQXhlaEvKoafD03ii7EcSRLq3FPCJSV/C08+egwJyEYXGhDGtqP+kQJ
d9zUl3dyoxNw/R3XyAVP/EvEm39iO4JX/yoG+FKu/Yu7sPsok9ioiP3tbvVh
4YV/cwKVNiL9V6KWiVOIUnxywHLzdNy58FTlZSgmky3RqnG3lYfBhX/ySPo1
fs1//rEnhg8NQp//r+IE7qXqeKXaIqePz+Juc7PqKr7w6171/8eC1f7DOaN7
X+cf4QDSkC/zUiG3PlRglcXrL9wdhk0i1XGEh/o8J+uzlnaTmGD6sHPh46Hv
SRmo162ouOIvoYvwUC58MpSZFzdyHrdgCqVsvA9WOzY+DJ743dCd+tjLxyuT
mfbIJULycsqFQnrh0yEs16CxGC4IszZb5tE8jNf41dtxdgrL/vnbd28O909/
Gakx2OSy5L9EAkXNMblQfvjmCAoYPx+xnBFVMugAUAeqK+49HvfzKtl1G59G
yQPu1H5ZXMHq4367f91084qjdvSSOgQAfYKcSogH1OZc5Hx++623gL+x2mOX
ScoV3SZGqBi/Zd5KwwvE8y4zn2fuSVl54zpIVuVBrEfCTvy7fyA9FTU7k+dp
3in/7bKYcfmwZp8EK8RrD+ucb/L6MymngQ9Qem7gcATt9IzDXZG3IUVDScZN
OMnZHEC+SvNNa5CkwatZnjV4q+KmIALmlv1yj7MQJF0nJeElo8lR1WPtL2X3
/4bxkUT9N/lV1RqOlf0zcm9L5gIH87vR3wqgttA+JyD3+fZwZ7h9Tvfm5hAB
Ple6HbIjzImsFucXr3pdXF0DVwq7z7+OPYIrgNC6BEgHQeSpeR7GEnBtatem
upRz98vrnHSWcpT8G74XmWmBXy5Va5bWTe351hOtTM5f7//09nT4+vgN/ffJ
/tnBj+eMQxiu8q6uEx7+ulcDhJLz745ExhhhIVlOzn/tWWZg7OveLp9J52gN
Kmn9l+yLNK8zl49zXp2yLX5LC5WNNjZS7sTDtKaX9g9pBy54IM0f81tt6YPS
gKblCzmjf8VBKMcfs6oij/QiR5958XmdbyURtF/59Tc2XkScZLWRPW/CTPaf
m8xmm//la46n+SUb/9GjY47c74ErMwXkNQLOkhitcSn79HpbWoigrksDE9ua
5YHMoPZj63yydjHCkU30KjBEpbPKE9fTKvlpTO7aBbBUGjFFdz321n/FtKhP
ZOFsMq9sjpJN46gP+qQPy9I9fXOAn84hAa7yTZ12tnrqtofbwx8sP9252FcE
6K9xG75Avnc/t+8b+oHbMXk+LWC+nMc3wNf8rfYKX/124w/WYyyVnJUuEgV1
a3Js1ksDcI+eHyE52qtpX3K3KZUTVdJQlrO5y4J0se9aXRck7CREFfWIGnQb
RCF+Lv6Y1SMiOieNzlhuCW+65i8SLLwtyilj09Fik2Xcl8m35PX+LxBm3MBU
cI7G/IKc4KIwBncJels080U+yZYii2utQkrIJJwVHFGsvbBBl/Dqtryq4QC0
1TA5jhsNqsjJTLDHRzG7ID3pVhyeO1ulEdidEFmWr+pYz9bnEtOKZwF8etDp
4sQK78jZzCiMO0EDcRINUYLsSg1sBeBJCq7bY1d0kQPVBa0K1BQQWEejdW/C
pvxRcjTd/e67nR9Ydp2ku9895X9h9/QHr1+lh2M0PtSBrJL8ZizzuVr652T7
TiqXpilYMGY3GBWFACry7RVRDThnTqdyWvb4UFBx1n4yaLXAVRYuyshNzCa8
+kDLukfPc2LzKb0f3TH9+egXzR/R7fUbyMWqnmutvfzu4O3pEaAwb6qVXsdc
Pywlr1OXQXZJIiee+f1b7pjHcgk54IucHsT6jbWpK3U2FIJxTVSeLQ/gwD5j
ClOHwMw0Fm+VJT0YXjLm+NW4OisjjQDTiNsVITRsjXN6GEOSQpHGKX3PncFK
LF7NPQFpaoBb9EFQ7cuUqLT7rXQHzhh9zKXC3PHDwLpPpdJPamAVtEz3OTfx
oZa4JmAEdB6VGIstLTaHhvbda0i5Itm+YlZqM8u4hZ4dyFhq/iEC/Yuy46HD
6rsVCXqbXFd0aQ/opMjUGxxlsPKkqkVtTIPWLo6rhzZM0Ao7ScH+nhxwjc3v
CC0tEfZ4U+HFyIVT12rlf+macxJo5wjiyQhI4trf3WNGfx8Oh+fsA0rTlPhn
3CcIgltugV9lyyl+RURw3u6701f0iTwqa/Htgeoxzs3pV1z6/XtCvyBHdJ79
ljze3qZXT75L6WBi+DJ9BjUsv/61LfDrd2WBNGYJqCfCiTLmoJH2f3f0U/Ii
1XF05Op0ShTqwYN86/KH/yBBpYkE4ynxkq8ZWOn77eF2RJyqTkmyXBa/AfWW
D6+Gg+R884a/GPG1pAo2jap8R4NI46ZvDWONnaD/ESKHEysBmS9deSPvWkgP
t9q19HAH45UNuFBISpMoRChQPXD9nPqR9vicfvcCkhSGtdO1hB0ka5wCplPt
sqSZcRon2OUvI0GjopQD2FjkauJZZxu47vpS/8AlR3pMdRVhv2P0+p9wuetq
rtFlcsXg1jCCwyEE8MoACTl+tS8yxvVKjAeovOSct6CeC5U7t9lVOvGf0Fbc
e/GnT+/3X0KY+JaZedQ4XwrFeT7MLGuh6qxMwKJomnoPGnsGdWfr+xdpFQFi
B/pUvT8AUTDYfFFv3ETdr7aZVWIMaCGaOodxDxVt2G4pr0G3Ft9VU3LfrrXJ
1b2ECOVDIUwv6ymikRLfZ4ZdMPzeS+7CAR7y+6jyjU29MAmolQemHmBj0Y1T
t0X5NCA2LCfm7HXKJQsb0GhkKGwD2tFXWiKEGswhi3Ate1/lb4u5uIgTzp52
GyY6hPaqGC2AonEy17XXy7WCD/bzUj1TfcWVvqxqCTbyFB1EElSqIJnuejW5
M2tldnrSeirWeq0g/nG0myg34k50g2DBfnXWcIoN2UYbGp8oezfaQQnACm1n
VwRXigjwBmMaOGauMIIrPaWlGOuWCF7qjKDhY4hEqfuYkJuTt3Q7Yxbe6r+n
fHbT7Z1hcFmneVrQosX1PhMdugp1FbiqF2Y2NsEWHy2Ng5JtxwSmZ3HXMJCo
S9emO1whvJtB3Nhz05Cgs5HFjJUOZBquRE9MboEQllgh9jO1bRF4QWC7W9Ww
FQ5wTx7j371QRIqpXET8Dia+mlUX7H8AyzC7ybQJqrCXOwn0vJt8pk5rpg0A
jEXtmDBu1JHtItfipqm1p+LC6VFwdsEznQNqJPOiXerkgxcXX1laYGD95BID
1RM266JDE5SMsvhKpWzJCljpZOYMZoanr2RXv1megopQ0Aeeho7OWhGfGS2S
zWEfPpb3xy+1kYnAT+j/Agwfmpv47n7PehubhRzIQQUWsvJ4Rw9pdagIF18C
51BsXKssRKoUsmKnTerj9kgYsK8RtEmTSnHfXasjWc1IMKDi1jpJTQthikU8
GfFHECxhoKphQHgQl4DlGot+kG1lqSWON6wgQF9IhTgqsfp3vhOElKt4F31y
jH2cqBlzDCFdSZRoW341xtm+bvos7XE0e2+9xZ2Glre6MkhthOZ26L+Y7Rn9
gAcYcFsT2AKKnQpL4DGipZH7BKcm9ob2gxYigwCyuv30GdHFmBeDbMDx1vPd
fbGzTcJerP0Je0nnnzbpnRFQ/Bf3mH/d/CN0oIRVFrMll9mifQN/QLKG/udO
XsLqNuLemuqs9YIafw/BgCSR4EklJ3orbgvKV69rSUeXayPG4NqUXVpt1mja
27W4Cvp2SkttHLN8XafHYWJ1BCKOGGXHnLuXWDGEfMN9y3RXLVSi9aOwoWQ/
y0ul9q8fW6Y2n1ZfcK00dwQgPo+82WPieI5T9rizR9LGUr95TW7tDgnIZb2X
7HyXiGPbhNUTfd7tKivrsVcePKjCDgQJ8+JZTVaWxdZ6UIhyGyeEPwgQWBxL
RgZrJokxPIIbbhSwRFfUJAYjsRTD/zSt2Ot9r8gT729GjVcjk5VNJY6E4x+T
kPmH0YG8DAq0rMEZjll8yIgUIAKn2O/p/jpwEoDDvd0Gsg/39KRyRXZUIaXn
T+elcNrWqUkE6tt8JjPboqWIBuFzLB/4PmIo75aZNywlXTIGfZokVntV57lv
O8dtrAvpMnCnxhYk95zkWqV1rCHdfHNldI/EeteJLqko5DcNZ3H5A/xYKjDl
5pbX0xyMWPOMeDaV7f0dKeiBcumySJiS141qxRSSxpd2zmXtagbmQasra6xr
L1JDB8f9dlzTFg6ZNr79k7lgU3/1IOaSmFfNLxBLImzGK6ovEK1jA8IHGHkW
TTzCwEDopNiDdsz3wdCbbpINTRoh0TqtRiVxZbl2/OCKJ13J576IgzNhU4Tf
hzx/Z3iVt6itCz9CEFfzZK7Kg6+TsVij7GKys/tYfyEl9Ph+U6dxp7vPznZ3
R9vb9H//EaXMzJxzsRlp0hDSidtPxNvokkzSS8UD19nOEw1wePZNE91owB4L
AxkEwM511g6kTjLmb67dt7HS4Zg7jHJaT1NhvsFA0PxGw0S0928wUhJhLS4m
wx/SYphLExKGyGPmWliRnSHfFRRmcPE1aoldP5ioLaFwQTDk0rsT/uR903ym
max1sFlRuw/lWPAoTifOYO3LjCFrvHUtXZ1KaQ3grGxXHIDy1YvwQHhD+sDs
g08P+t6g1x5FXFF7T31mYSMO2LBJAgdDjow2UdfMtbMezjlzFDQQD2sspqTN
eT611s34vumrzclhzWrinEeFGAIAvwxbl0urQ9gpQQ7kiQ09FDNpEGwAZ8Lj
jtta2sStbFeax2ND4GBqN3tDYECfhq2Z0eKOoRXn8+w3cguJTy/y+qHIdDok
HZeEhGbOzTWGfElRfv4SeomZNHtDoaRcSKT7UJEVtsW7o5d2MS/zHPfl39MZ
+PC5a/RZ0XUSb6drxLpZvYjDC4WO8pBf84V1Vn50S4OcmGUX+Yyud3FMpr/D
ndj5LjDt2D0DEoNutEK+iL8gLJJ9eUDKl03t+Wa6ImgWPEGffc4PP9f1DhRr
haGyVdM63/Amt5Rbn/E91J3/YH0+u/vJnT4u461lRJloOQd1lHycEzprOYYe
ReyHGX3/rCfxfCgGf2J23jRzOK7O052m3OwXGlBipLM+JZskCqCx8K4YQAwN
SP+mj77b3t5O/hhEv0KwCRqW9CgzKOvCJV+ULzf/q/vz/ApaHt9ii/FJSdex
IoYqrkU//6d+ivGu3JBzhn+TB4MbbvyXKM2TrOa0YyEzgVNpaQ5eCuSRpksL
nXQ2HemYMxBeDA+WfAMnzRw7iXS5079VrOMHVrG6ZQyIuK5w7EMuMmOHwfWd
jW7qWwAxbNDHtd1TvckqZ2ggoKUtfU3c7aEknep8IcGRIHYp0n7ONivHckhd
aY9lf2OLoAn/qCbwj/2MtuRxAFJEpSkprCJqd9/YEKDV7bjUiRYWQ3XJCYd9
s7Cjf6EAL5c1UEIzIt6egipU5Q/0HHhQaRA6yi546iW9ilPjfD9gNHjaBNf5
LsuPJfcY9K/Lb8qHSQJsGkFlTdhINfI02eKJ1MJeD82OQsCqDHSoCaE1mk6q
sx0Fza0LvIzw1yMdtAS5ELytm9JQc0BGjBP4CbwCsxmCC7woYb0oNoApbP6I
CSDhBHQlJ3nKHU0E6Ndvbn6Dk8HKtMSUW2wCHAjWlZjDTPs6409ModltBrGe
Y6wjbQ1/YYpMQMtuyIk9UL4emN6gxzBstX7YYT8bjhxRSk7DhbQdtZimEA7O
YRP8zWNHrQW0wTqcdWSFg0UjZrTvX2q2Pb0mY7kqrUNyd7ZaS94tII2m8fiG
4G09shkb6hJJa9yCai4oiv4j7bJMRUnUKqIHwWfw4Sv1RuUNXYN9gW2OIaLi
k9VzrJ0RyDLgs5tiIG8VJJGAkUSaTyb4wynvZwgkvgRlzaVaYPYDFxML38OB
UrqHwZ+Bnw7GyHkWJP00Ayoxge+ffceRYO50p4i2iZ/9bAQVhuCJra3k6nv0
etZGZ9rEDAsQmzHwbC1wKNmqli3i88m5yrNgwzkXesZRst1uSoGcUB6/5Xlu
HT2CRoR3PMJIWvGCmnLKRbuIDDCcWQZLEHNu2Nc37YCBpJxmobvN7taZga7H
o+hb1oiyH/xrP6ZUVTXmE9hPoxgQhAH2Hy6h6m4zt6M9i2ZKWVtqT4W90B/E
0A5hLRvd44WIN9DQwpyhm66dpxgJCxkMhugUyKVy0gvHWCZ6QahBGKGP5CXY
rXPcxHtQe//Hho1g+EB5Z+PQzKXmAcm6YwXnVfyd4OjuyXRLdGCqQ+NyIXOI
k8lyvpxJ13R5GeadwoJ2PC3GYgVqyGgnSj9tSC5ceXod3HwUEl5mk2Tec825
x6KE89hzLJwUAZaSMYqyROmnw+0cdE0yQ4Z52KGIqhbNQ/f1Gg6vO8NczIcA
phtdylZFeC74A1CbC8MHFgNBYwJ5WZ4wHO8g5+SKCw6Ys72jHa/lXkXjRhEI
/jZ2YmCRxr7GGsPD5xLNrOUul26h/E7cJtM6EIFWDcDSRuPCaQ0jDHe/lPZB
nAfGvoXZSlF+aoCG0E8LbPoAak/Ia2APMRkebJC+qfa7X92UYZdQfIwiSpUS
co8ZuolYb10MiFtDWsDCJM3K2RAMN1sIFhRoAhWBfvgIc8sRbVx7Vn4tC23I
KIoWHScmtQ75jDlX4JQcqAmC6jJ1SwaZuZ0v9J3lY4TDjAmto/OIz5IsT3Lj
F2YsxA/NWjI4BK1s+N24mY7d2dnrbMwHI9vkPt6+1fi+cp8aSp9xUcKWqUzz
vcjdEBzNBTvFfVNDj113uk8PusgaUpN+AHsHkHNfc7jA9m+S3eFOumvn0OUU
Bn09ROTQqJxK7umkEZaerAR/OcEWegTdT4PEj8P5AWrRk1uIvqoq1zkdqGpN
NW+xOlyCmSRzJL8Omq9E7QFb72yvxVc5nIup427GY0vyp10ooQm4ta2tATAD
J0p1igsdG5lsWpP0j9Z4cRhWDcmfh5DCGq11DlYnobbIVDZ6Q8F83d9BhZvl
hGMZY49C0PFhn+5OYCjulyhcGgpdRQ4xxGjgkfGNzSQcRGgO33dO18OKfNCF
p2bm15iN7oZ4exiKMg6reE4Lzu4CQeD70lzkQZdP7adt9TICTHQzgGByjN0k
HKIe56lFxjifxL9KXrTaT0iGWdDrXmqhmYNOa28cZCvz5pqHm0ig37e9nvAU
hxZGehcaJqquCiwaz11SP0m73xSNM8eXpcCsmBUXS9599xZ8W00rzCt6upR+
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
dnqHkZRjdVuZrxywr29d7nsFdAYA9DYtjy3Qbp++kWYUg5mSjA7kZhErffn2
FGPlJxJX4gVIKz3um8c9ynVMg2up15jN4gSzhyzLHO+uVhyQBqENL70+HEUK
cec7c0UuCuulblXnnOmTmLXr0MZK0DZNugO4eHthKWupsMASLuj3e9yXQRuC
uaREVQU9raZYPRG4Zmfm1reNDfPJzTWX8YnCwtDCgfzTaTvuVCAKsyeb/Ifa
en3AZ9nUsF8y7SiqE3zDT5SgcRfQbr/P3g6fbGa5qrO4HlZEU+oKino1wyAu
53JV0dLlCK3rCmvL6AuOVmpTUeJs1YpxZNrXUKYO0R6UZd8NfLluZzoI1yTF
tY+19BZDlkYxZ2gj+aZTg2TQ9hnJuxGKi4hO9N+wyazMCPd/zOh7+m9fcWM1
tr6AwhXw8OzNUsp1rN4n7DRF36eSAAjKNJwlrEAfel5cidBq5EDLxgDhLiYF
NxzwRysCBEzCKI5bMpfxwOx8DA4T1JSSaqSMQ7Kknlynl8UVvRw8Fz7dAthO
HYy7ce058O29sLs/rO7DDbWJMGywmMLZWL7jRwd7B1kddyKJDn7URUTVSdTa
6th7S5+DZIYYxj2W4zEW756TG72TC/CsZKf729NqUxFt0dLFp3Pbm6mNYeb0
ZSj8u5mekS61LaRJmljMYoAs5wFmSVK/rK57knsj7hqqpUBh/sEGWASrKmqf
muMJTM3e2sC9j31m3X5uDNrl6xVwfl+Y2/ZKpzgivFn6sc6fj6EHsXJ1qSpL
Cvq4sLDP5wOu8r4rGRmSS5yT4cMY510wom9dpkbCThbIsUV9Sd6G9OTbRV4e
HyYvcte0e2e4vS4Nw6+NIyeZjiAA7ksVOzF4XpbOsc0YTlGKrjcxPArFzo6K
HfG/JPEOPubSsJvcb9g9Vp6ktBmSUgjEfZ6J6JSfm04w42TPTI1057HaFpAh
+/tn4Svt4rP3x6/HR+n+y6M38p38fvsJvkP3gpf7Z0fp+DClo8Dfb9v8Lu0l
sRcmnf2y8PGL45Px7vYTiEH5zdPHz9wfYXQoyCT51uM3+bAnJr+9LiYPNTCr
yLPdjyK/L3nHwgGzWz3R+4cjhO5TdxJzaQmP+zWhtmas2Fqxsxc0+EUznsZL
cJSi7PWnB4LMgPvOo5pqa0K5EvCX22mZt2be0Cx/OggqC3w1AXR0E5jrHfsE
7TqDwbK9TZbZNgyTAEG72aidrBAJe7r99JmLSQGPGZjJO9vDxyZYOAvCmQnt
Zmt0DOIufREtbTm9Ot2e3rVaKG54xUBHcNFHk5KtP9v7TuLSUlQRJj2CiFRv
z8WeJohm/eCOKQe/kyhoTabbck5/Tnycgmy2G2vi4YayVzo6x+DVREyiplQa
cV+ow3GqfYo0bt9Nyo9cAarreuuL6QOnHV0Z0DsMcfI9kmdEo6qk9yuzupYE
r9qfWZMEtpB0fea1pQFER2o4dWDHnrgimlQUp5A7qfjOxYaRz6QituxpU6zm
axO1KdZWQjLiQoprEJ6X24SfO68p6mvJneybFHqPiLvnkynauppPhouN2QLY
SOwe6T3ulQb0oBq4RvYQ/ailLZPVCep7XWC+9jtlo1vr87mcEO3teUuk6VQc
nvXDzpF+2BOoNF4XIiWAb9A/sdf4iUoDVIpDFwRBXQgdm/wlNpeGU6JeUFJL
XbTCv1pMhLhhdidvKMc8cvy8IJE5HiM/9pARBDZ0l7xD18VBA3kKjxt4uzIS
Bcx2RHQtrTZ/KLYz2ZTuEk9Nk1USOWTwITmbJI0Y5Ajwgc6g2Hk88tzANNFm
k4bLdoOAEjLrllxznO58vxeKa0f9mNIYByOiZmCF3zhfdH824Vcbg+ZqHwxo
aTm8zf+4XtK/M6DK3xSD5GXV3JJsF+q9PznTkPxecvD8iQ4QODgTbZP4wUqr
RpBXAZFhIJswSKIRLd4QeLK702MI7E/QMxdt1Hib++0AwUwwctxARn6GEaf/
iWbvDvbfRBXMjZ9+/QlfpuOTowPz3kS0poGwnSH2zDBqKwy6qrCXIcqeh+qw
bcU/kYLYeOIKTE+G+7NTzDfIbPSKGLKfPr19vz8+Eevs+MBp0jfH4zP5MD0+
RFbsNLvMSJTsNxWSF6sVPtg9P/Onk3gKVCGzlQhcshL3kuM5RrlgBN/kI4nQ
pZ5oMpY56ClLlVpKDrCmUoxh45zIRKET8hMdhYYlVfB8J/WCqBLqM7StZ4+C
2ktcIjx4FZbuj0KjxOMgFNduwIzQCJQRZ6Z81R+r0f/B2uXdgzSgY+BSGklW
Xy01sO46ikCbi66z5/vGmVqoYthTS/cEGHQu5/evsd4tgFBeCWfTeQz7rAQR
I42w0CEyFc2EDoPAw43/C/Kmom+mUgEA

-->

</rfc>

