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


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

]>


<rfc ipr="trust200902" docName="draft-mishra-oauth-agent-grants-02" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="DAAP">OAuth Profile for Delegated AI Agent Authorization</title>

    <author fullname="Sanjeev Kumar">
      <organization>Orchestrum Technologies LLP</organization>
      <address>
        <email>mishra.sanjeev@gmail.com</email>
        <uri>https://grantex.dev</uri>
      </address>
    </author>

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

    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>AI agents</keyword> <keyword>authorization</keyword> <keyword>OAuth</keyword> <keyword>delegation</keyword> <keyword>sender-constrained tokens</keyword>

    <abstract>


<?line 61?>

<t>AI agents increasingly invoke protected APIs on behalf of human users. This
document defines an OAuth profile for identifying an agent client instance,
obtaining an authenticated user's consent, issuing resource-bound and
sender-constrained access tokens, attenuating authority through OAuth Token
Exchange, and rotating refresh tokens safely. The profile uses existing OAuth
and JOSE mechanisms wherever possible and defines no new JWT claims or OAuth
endpoints. Operational facilities such as policy engines, audit stores,
budgets, event streams, and credential vaults are outside the interoperable
core. Grantex is an incomplete reference implementation and is not required
for conformance.</t>



    </abstract>



  </front>

  <middle>


<?line 74?>

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

<t>OAuth deployments already support software acting for users. AI agent
deployments add operational pressure because agent instances can be created
dynamically, can call high-impact APIs, and can delegate work to other agent
instances. These characteristics do not justify replacing OAuth. They do
justify a strict profile that removes unsafe choices and makes the acting
client, user, resource, and sender key explicit.</t>

<t>This document profiles OAuth 2.0 <xref target="RFC6749"/> and the OAuth 2.0 Security Best
Current Practice <xref target="RFC9700"/>. It uses pushed authorization requests (PAR)
<xref target="RFC9126"/>, Proof Key for Code Exchange (PKCE) <xref target="RFC7636"/>, resource indicators
<xref target="RFC8707"/>, JWT access tokens <xref target="RFC9068"/>, sender constraints, and OAuth Token
Exchange <xref target="RFC8693"/>.</t>

<t>The term "DAAP" is a convenient name for this profile. It is not a new
authorization framework, a new credential format, or a claim that an AI agent
is a legal person.</t>

<section anchor="scope"><name>Scope</name>

<t>This document specifies:</t>

<t><list style="numbers" type="1">
  <t>security metadata associated with an agent's OAuth client registration;</t>
  <t>an authorization-code flow with authenticated human consent;</t>
  <t>resource-bound, sender-constrained JWT access tokens;</t>
  <t>attenuated delegation using OAuth Token Exchange; and</t>
  <t>refresh-token rotation requirements, including bounded recovery from a
lost successful response.</t>
</list></t>

<t>This document does not standardize agent orchestration, model selection,
policy languages, payments, budget ledgers, audit storage APIs, event delivery,
credential vaults, SCIM, SSO configuration, or vendor deployment endpoints.
Those features can be useful, but they require separate specifications and
security analysis.</t>

</section>
<section anchor="discussion-venues"><name>Discussion Venues</name>

<t>Discussion of this document is intended for the OAuth Working Group mailing
list at <spanx style="verb">oauth@ietf.org</spanx>. The archive is at
<spanx style="verb">https://mailarchive.ietf.org/arch/browse/oauth/</spanx>.</t>

<t>Author contact:</t>

<t><list style="symbols">
  <t>Primary: <spanx style="verb">mishra.sanjeev@gmail.com</spanx></t>
  <t>Alternate: <spanx style="verb">sanjeev@orchestrum.in</spanx></t>
</list></t>

<t>Source and issue tracking are maintained at
<spanx style="verb">https://github.com/mishrasanjeev/grantex/tree/main/docs/ietf-draft</spanx>.</t>

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

<t>Revision -02:</t>

<t><list style="symbols">
  <t>narrows the document to an OAuth profile and removes proprietary Grantex
endpoint paths from the normative protocol;</t>
  <t>requires authenticated human consent and prohibits policy automation from
impersonating that consent;</t>
  <t>requires exact redirect URI matching, <spanx style="verb">state</spanx>, PKCE S256, PAR, and a resource
indicator;</t>
  <t>requires sender-constrained access and refresh tokens;</t>
  <t>uses the standard <spanx style="verb">scope</spanx>, <spanx style="verb">client_id</spanx>, <spanx style="verb">cnf</spanx>, and <spanx style="verb">act</spanx> claims rather than
registering duplicate short claims;</t>
  <t>defines safety properties for bounded lost-response refresh recovery;</t>
  <t>makes DID use optional and requires proof of possession for any advertised
agent key;</t>
  <t>moves audit, budget, policy, events, and credential-vault behavior outside
the interoperable core; and</t>
  <t>reports the Grantex implementation as partial rather than conformant.</t>
</list></t>

</section>
<section anchor="requirements-language"><name>Requirements Language</name>

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

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

<t>This document uses the OAuth roles defined by <xref target="RFC6749"/> and the following
terms:</t>

<dl>
  <dt>Agent:</dt>
  <dd>
    <t>Software that plans or performs actions. An Agent is not itself an OAuth
role.</t>
  </dd>
  <dt>Agent Client Instance:</dt>
  <dd>
    <t>An OAuth client instance that executes agent software. Its OAuth <spanx style="verb">client_id</spanx>
identifies its registration, not a human or legal identity.</t>
  </dd>
  <dt>Principal:</dt>
  <dd>
    <t>The human resource owner whose authority is delegated. A deployment can use
a non-human resource owner only when its trust and authorization model is
defined outside this profile.</t>
  </dd>
  <dt>Agent Key:</dt>
  <dd>
    <t>An asymmetric key controlled by the Agent Client Instance and used for DPoP
or mutual-TLS sender constraint.</t>
  </dd>
  <dt>Delegated Token:</dt>
  <dd>
    <t>An access token issued by OAuth Token Exchange whose authority is derived
from another token and attenuated in scope, resource, lifetime, or all three.</t>
  </dd>
</dl>

</section>
</section>
<section anchor="security-model"><name>Security Model</name>

<t>The authorization server is trusted to authenticate the Principal, display an
accurate authorization request, enforce registered client metadata, issue
tokens, and process revocation. A resource server is trusted to validate tokens
and enforce scopes for its own resource identifier.</t>

<t>An Agent Client Instance is not trusted merely because a developer registered
it or supplied an API key. Developer authentication and Principal
authentication are separate security events. A developer credential MUST NOT
be accepted as proof that the Principal approved a live authorization request.</t>

<t>For a live authorization, the authorization server MUST authenticate the
Principal using a method appropriate to the risk of the requested authority.
Phishing-resistant authentication is RECOMMENDED for high-impact scopes.
Sandbox deployments MAY use test principals and simulated consent when they
are clearly isolated from production resources and credentials.</t>

<t>An automated policy decision MAY deny, narrow, or require escalation of a
request. It MUST NOT replace the Principal's authenticated approval unless a
separate, explicitly authorized non-human resource-owner model applies.</t>

</section>
<section anchor="agent-client-registration"><name>Agent Client Registration</name>

<t>An Agent Client Instance uses an OAuth client registration. Registration can
be provisioned administratively or by a standards-based dynamic registration
mechanism; the registration wire protocol is outside this document.</t>

<t>The registration MUST bind:</t>

<t><list style="symbols">
  <t>one or more exact redirect URIs for authorization-code clients;</t>
  <t>the resources the client is permitted to request;</t>
  <t>the scopes the client is permitted to request; and</t>
  <t>key metadata sufficient to sender-constrain tokens.</t>
</list></t>

<t>The authorization server MUST reject redirect URIs containing fragments and
MUST apply the redirect URI rules from <xref target="RFC9700"/>. Production web redirect
URIs MUST use HTTPS, except for loopback redirects explicitly permitted for
native applications.</t>

<t>The Agent Key MUST be asymmetric. The registration MUST NOT contain private
key parameters. Before treating a key as controlled by an Agent Client
Instance, the authorization server MUST verify possession through DPoP
<xref target="RFC9449"/>, mutual TLS <xref target="RFC8705"/>, or another protocol that proves possession
of the corresponding private key.</t>

<section anchor="optional-did-association"><name>Optional DID Association</name>

<t>A deployment MAY associate an Agent Client Instance with a DID <xref target="DID-CORE"/>.
DID support is not required by this profile. If a DID is placed in a token or
shown to a Principal, it MUST resolve to a document that contains the verified
Agent Key or a verifiable delegation to that key. An opaque database identifier
with a <spanx style="verb">did:</spanx> prefix is not sufficient.</t>

<t>Key rotation MUST preserve an auditable relationship between the old and new
keys, invalidate future use of the retired key, and avoid silently changing the
meaning of already-issued sender-constrained tokens.</t>

</section>
</section>
<section anchor="authorization"><name>Authorization</name>

<section anchor="pushed-authorization-request"><name>Pushed Authorization Request</name>

<t>Clients conforming to this profile MUST use PAR <xref target="RFC9126"/>. The pushed request
MUST contain, at minimum:</t>

<t><list style="symbols">
  <t><spanx style="verb">client_id</spanx>;</t>
  <t><spanx style="verb">response_type=code</spanx>;</t>
  <t>an exact registered <spanx style="verb">redirect_uri</spanx>;</t>
  <t><spanx style="verb">scope</spanx>;</t>
  <t>a high-entropy <spanx style="verb">state</spanx> value;</t>
  <t><spanx style="verb">code_challenge</spanx> and <spanx style="verb">code_challenge_method=S256</spanx>; and</t>
  <t>exactly one <spanx style="verb">resource</spanx> value identifying the target resource server.</t>
</list></t>

<t>The authorization server MUST reject an unregistered redirect URI, a resource
outside the client's registration, or a scope outside the client's registered
scope set. It MUST NOT apply prefix, wildcard, or substring matching to a
redirect URI.</t>

<t>The client then sends the returned <spanx style="verb">request_uri</spanx> to the authorization endpoint
as defined by <xref target="RFC9126"/>. The authorization endpoint MUST reject a request URI
that is expired, already consumed where single use is enforced, issued to a
different client, or altered.</t>

</section>
<section anchor="principal-interaction"><name>Principal Interaction</name>

<t>The authorization server MUST authenticate the Principal independently of the
developer or Agent Client Instance. The consent view MUST show, in language the
Principal can understand:</t>

<t><list style="symbols">
  <t>the Agent Client Instance and responsible developer;</t>
  <t>the target resource;</t>
  <t>the requested scopes and their consequences;</t>
  <t>the requested duration; and</t>
  <t>material delegation or transaction constraints.</t>
</list></t>

<t>Approval and denial MUST both be bound to the authenticated Principal and the
specific authorization request. The authorization server MUST prevent login
CSRF, consent CSRF, clickjacking, and reuse of approval artifacts.</t>

<t>The client MUST verify that the returned <spanx style="verb">state</spanx> exactly matches its stored
value before exchanging the authorization code.</t>

</section>
<section anchor="authorization-code-exchange"><name>Authorization Code Exchange</name>

<t>The client exchanges the authorization code at the OAuth token endpoint using
<spanx style="verb">grant_type=authorization_code</spanx>, the code, the same <spanx style="verb">redirect_uri</spanx>, and the
PKCE <spanx style="verb">code_verifier</spanx>.</t>

<t>The authorization server MUST:</t>

<t><list style="numbers" type="1">
  <t>authenticate or otherwise identify the client as required for its client
type;</t>
  <t>require exact <spanx style="verb">redirect_uri</spanx> equality with the authorization request;</t>
  <t>validate the S256 verifier;</t>
  <t>bind the code to the client, Principal, resource, and approved scopes; and</t>
  <t>consume the code atomically with successful token issuance.</t>
</list></t>

<t>An error while signing or storing tokens MUST leave the authorization code
usable for a later retry or MUST produce an unambiguous terminal error. It MUST
NOT create a partially committed grant.</t>

</section>
</section>
<section anchor="access-tokens"><name>Access Tokens</name>

<t>Authorization servers conforming to this profile issue JWT access tokens
<xref target="RFC7519"/> as profiled by <xref target="RFC9068"/>. The JWK Set requirements of <xref target="RFC7517"/>,
the JOSE requirements of <xref target="RFC7518"/>, JWT validation
guidance in <xref target="RFC8725"/>, and authorization-server metadata in <xref target="RFC8414"/>
apply.</t>

<t>The authorization server metadata MUST publish a <spanx style="verb">jwks_uri</spanx>. A JWKS document
alone is not authorization-server metadata and MUST NOT be described as
conformance with <xref target="RFC8414"/>.</t>

<section anchor="claims"><name>Claims</name>

<t>The token MUST contain the claims required by <xref target="RFC9068"/>, including <spanx style="verb">iss</spanx>,
<spanx style="verb">sub</spanx>, <spanx style="verb">aud</spanx>, <spanx style="verb">exp</spanx>, <spanx style="verb">iat</spanx>, <spanx style="verb">jti</spanx>, and <spanx style="verb">client_id</spanx>. Granted scopes MUST use the
standard space-delimited <spanx style="verb">scope</spanx> claim.</t>

<t><spanx style="verb">aud</spanx> MUST identify the single resource requested during authorization. Tokens
without the expected audience MUST be rejected by the resource server.</t>

<t>The token MUST be sender-constrained:</t>

<t><list style="symbols">
  <t>a DPoP-bound token carries the public-key thumbprint in <spanx style="verb">cnf.jkt</spanx> as defined
by <xref target="RFC9449"/>; or</t>
  <t>an mTLS-bound token carries the certificate thumbprint in <spanx style="verb">cnf</spanx> as defined by
<xref target="RFC8705"/>.</t>
</list></t>

<t>An authorization server MUST NOT emit <spanx style="verb">cnf</spanx> solely because a public key was
uploaded. It MUST first establish proof of possession. The resource server MUST
verify the DPoP proof or mutual-TLS binding on every protected request.</t>

<t>This profile defines no short aliases for <spanx style="verb">scope</spanx>, <spanx style="verb">client_id</spanx>, <spanx style="verb">act</spanx>, or
<spanx style="verb">authorization_details</spanx>. Private implementation claims MAY be used only under
collision-resistant names and MUST NOT be required for interoperability.</t>

</section>
<section anchor="validation"><name>Validation</name>

<t>A resource server MUST validate at least:</t>

<t><list style="numbers" type="1">
  <t>an explicitly allowed signature algorithm and a valid signature;</t>
  <t><spanx style="verb">iss</spanx> against the configured authorization server;</t>
  <t><spanx style="verb">aud</spanx> against the resource server's identifier;</t>
  <t><spanx style="verb">exp</spanx>, <spanx style="verb">iat</spanx>, and any applicable not-before constraint;</t>
  <t>the required values in <spanx style="verb">scope</spanx>;</t>
  <t>the sender constraint represented by <spanx style="verb">cnf</spanx>; and</t>
  <t>revocation or token status when the deployment's risk model requires online
state.</t>
</list></t>

<t>The resource server MUST NOT treat signature verification alone as sufficient
authorization.</t>

</section>
</section>
<section anchor="delegation"><name>Delegation</name>

<t>Delegation uses OAuth Token Exchange <xref target="RFC8693"/>. The delegating token is the
<spanx style="verb">subject_token</spanx>. When an agent or service is acting as a distinct actor, the
authorization server represents that chain using the standard <spanx style="verb">act</spanx> claim.</t>

<t>The authorization server MUST authenticate the requesting client and validate
the subject token before exchange. It MUST reject a requested scope that is not
contained in the subject token, and it MUST reject a resource that is broader
than or inconsistent with the original authorization.</t>

<t>A delegated token:</t>

<t><list style="symbols">
  <t>MUST NOT expire later than the subject token;</t>
  <t>MUST be sender-constrained to the receiving Agent Client Instance;</t>
  <t>MUST use a scope set no broader than the subject token;</t>
  <t>MUST preserve the Principal as <spanx style="verb">sub</spanx> unless another specification defines a
subject transition; and</t>
  <t>MUST represent the current actor and any nested actor chain as specified by
<xref target="RFC8693"/>.</t>
</list></t>

<t>Deployments SHOULD bound delegation depth and SHOULD support revoking all
tokens derived from a root authorization. Database parent identifiers and
cascade algorithms are implementation details, not JWT claims defined here.</t>

<t>Cross-domain delegation should be evaluated against OAuth Identity and
Authorization Chaining <xref target="I-D.ietf-oauth-identity-chaining"/> rather than creating
an incompatible chain format.</t>

</section>
<section anchor="refresh-tokens"><name>Refresh Tokens</name>

<t>Refresh-token handling MUST follow <xref target="RFC9700"/>. Public clients MUST use refresh
token rotation or sender-constrained refresh tokens. This profile requires
both rotation and sender constraint for Agent Client Instances.</t>

<t>On a successful refresh, the authorization server MUST invalidate the
presented refresh token and return a new refresh token atomically. The new
access token MUST NOT expand the original resource, scope, delegation, sender
binding, or grant lifetime.</t>

<section anchor="lost-response-recovery"><name>Lost-Response Recovery</name>

<t>Network failure can occur after the authorization server commits rotation but
before the client receives the response. A deployment MAY provide bounded
recovery for this case. The transport syntax for a recovery key is an
implementation extension and is not part of core conformance.</t>

<t>If recovery is provided, all of the following requirements apply:</t>

<t><list style="numbers" type="1">
  <t>Before its first attempt, the client generates a high-entropy recovery key
and persists it with the old refresh token until the response is durable.</t>
  <t>Every transport retry of that same refresh request uses the same recovery
key. A new logical refresh operation uses a new key.</t>
  <t>The authorization server binds recovery state to the authenticated client,
Agent Client Instance, old refresh token, and recovery key.</t>
  <t>Recovery returns the exact committed access token and rotated refresh token;
it MUST NOT mint a new token, extend a lifetime, or rotate again.</t>
  <t>Recovery is allowed only while the rotated child refresh token is active and
unused.</t>
  <t>The recovery window MUST be short and bounded. This profile RECOMMENDS no
more than 300 seconds.</t>
  <t>A different or missing recovery key, an expired recovery window, or an
already-used child token is treated as refresh-token reuse and MUST fail.</t>
</list></t>

<t>A server crash before transaction commit leaves the old token unused and the
client can retry normally. A crash after commit is the lost-response case above
and requires durable recovery state. Implementations MUST test both boundaries.</t>

</section>
</section>
<section anchor="operational-extensions"><name>Operational Extensions</name>

<t>The following topics are intentionally outside core conformance:</t>

<t><list style="symbols">
  <t>tamper-evident audit storage and external witnessing;</t>
  <t>policy decision points and policy languages;</t>
  <t>financial budgets and atomic debit ledgers;</t>
  <t>event streams and webhooks;</t>
  <t>credential vaults;</t>
  <t>anomaly detection; and</t>
  <t>enterprise provisioning and SSO configuration.</t>
</list></t>

<t>An implementation MUST NOT claim that an operator-signed hash chain is
operator-independent evidence. Such a claim requires publication to or
countersignature by an independent witness. If JSON records are hashed across
implementations, canonicalization should use the JSON Canonicalization Scheme
<xref target="RFC8785"/> and SHA-256 should be specified using <xref target="RFC6234"/>.</t>

<t>Financial constraints should use structured authorization details
<xref target="RFC9396"/>, including an unambiguous amount representation and currency,
rather than a bare numeric JWT claim.</t>

<t>Potential extension documents are listed in the source repository. Their
presence does not imply IETF submission, adoption, or interoperability.</t>

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

<t>The OAuth threat model and mitigations in <xref target="RFC9700"/> apply. This section calls
out agent-specific consequences.</t>

<section anchor="consent-substitution"><name>Consent Substitution</name>

<t>A developer API key, policy-engine decision, or agent assertion is not the
Principal's consent. Conflating these identities lets the party requesting
authority approve its own request. Live consent therefore requires independent
Principal authentication and request-bound approval.</t>

</section>
<section anchor="redirect-and-authorization-request-integrity"><name>Redirect and Authorization Request Integrity</name>

<t>Exact redirect matching, PAR, PKCE S256, and <spanx style="verb">state</spanx> are mandatory. These
controls address different attacks and are not substitutes for one another.
Clients MUST keep <spanx style="verb">state</spanx>, the PKCE verifier, and the PAR request association
confidential until the flow completes.</t>

</section>
<section anchor="audience-and-sender-binding"><name>Audience and Sender Binding</name>

<t>Bearer tokens are especially hazardous for autonomous software because agents
may pass data through tools, logs, prompts, and subprocesses. Resource binding
limits where a token can be used; sender constraint limits who can use it.
This profile requires both.</t>

</section>
<section anchor="agent-key-enrollment"><name>Agent-Key Enrollment</name>

<t>Accepting an uploaded public key without proof of possession enables an
attacker to register somebody else's key or create unusable identities.
Authorization servers MUST verify possession and MUST define secure key
rotation and recovery procedures.</t>

</section>
<section anchor="delegation-1"><name>Delegation</name>

<t>Every delegation hop increases the attack surface. Scope and resource
attenuation, bounded lifetime, sender constraint, depth limits, and root
revocation SHOULD be enforced together. A textual claim that an agent is a
sub-agent is not sufficient.</t>

</section>
<section anchor="refresh-reuse"><name>Refresh Reuse</name>

<t>Recovery must not become a replay grace period. Only the same authenticated and
request-bound retry can receive the previously committed response. Any other
reuse can indicate token theft and SHOULD trigger family revocation or another
risk-appropriate incident response.</t>

</section>
<section anchor="logging"><name>Logging</name>

<t>Authorization servers and resource servers MUST NOT log authorization codes,
refresh tokens, access tokens, DPoP private keys, PKCE verifiers, recovery keys,
or upstream credentials. Security logs SHOULD record enough non-secret context
to investigate consent, delegation, refresh reuse, and revocation events.</t>

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

<t>Agent authorization data can reveal a Principal's services, activities,
relationships, and intended actions. Implementations SHOULD minimize token
claims and consent records, use pairwise subject identifiers where appropriate,
and avoid placing personal data in globally resolvable agent documents.</t>

<t>Resource indicators and fine-grained scopes can themselves be sensitive. They
SHOULD be disclosed only to parties that require them. Audit retention and
export must have a defined purpose, access policy, retention period, and
deletion process.</t>

<t>Delegation chains reveal relationships among services and actors. A resource
server should receive only the chain information needed for its authorization
decision.</t>

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

<t>This document requests no IANA actions. It uses claims, parameters, endpoints,
and confirmation methods defined by existing OAuth and JOSE specifications.
Any future wire-level recovery key or agent-specific authorization detail will
require separate specification and appropriate registry review.</t>

</section>
<section anchor="relationship-to-other-work"><name>Relationship to Other Work</name>

<t>OAuth Identity and Authorization Chaining Across Domains
<xref target="I-D.ietf-oauth-identity-chaining"/> addresses identity and authorization
continuity across trust domains. Implementations should use that work for
cross-domain chains rather than defining private equivalents.</t>

<t>OAuth Transaction Tokens address short-lived, purpose-bound tokens for a
transaction <xref target="I-D.ietf-oauth-transaction-tokens"/>. They may complement this
profile for multi-service call chains; this document does not redefine
transaction tokens.</t>

<t>The agent authorization use-cases draft
<xref target="I-D.chen-oauth-agent-authz-use-cases"/> surveys emerging scenarios and gaps.
The multi-agent collaboration draft
<xref target="I-D.song-oauth-ai-agent-collaborate-authz"/> explores group authorization.
This profile focuses more narrowly on a high-assurance OAuth authorization and
delegation baseline and does not claim to supersede either effort.</t>

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

<t>This section follows the intent of <xref target="RFC7942"/> and is expected to be removed
before publication as an RFC.</t>

<t>Grantex provides an implementation-specific JSON API inspired by this profile.
As of 2026-08-30 it implements exact registered redirects and resources for
profile-aware agents, PKCE S256 checks, live-consent WebAuthn checks,
resource-bound JWTs, key-thumbprint <spanx style="verb">cnf</spanx> claims, scope attenuation,
refresh-token rotation, and bounded request-bound recovery.</t>

<t>It is not yet a conformant implementation of this profile. In particular, its
custom <spanx style="verb">/v1/authorize</spanx> and <spanx style="verb">/v1/token</spanx> endpoints are not the standard OAuth
authorization and token endpoints; PAR is not implemented; DPoP proofs are not
validated at protected resources; legacy agent registrations can omit profile
metadata; and live Principal passkey enrollment is not yet anchored in an
independent identity-provider ceremony. The repository's implementation report
tracks these gaps.</t>

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

<t>The author thanks reviewers in the OAuth community whose published work on
OAuth security, identity chaining, transaction tokens, and agent authorization
helped narrow this document.</t>

</section>


  </middle>

  <back>


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

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



<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>
<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="RFC7517">
  <front>
    <title>JSON Web Key (JWK)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. This specification also defines a JWK Set JSON data structure that represents a set of JWKs. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7517"/>
  <seriesInfo name="DOI" value="10.17487/RFC7517"/>
</reference>
<reference anchor="RFC7518">
  <front>
    <title>JSON Web Algorithms (JWA)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>This specification registers cryptographic algorithms and identifiers to be used with the JSON Web Signature (JWS), JSON Web Encryption (JWE), and JSON Web Key (JWK) specifications. It defines several IANA registries for these identifiers.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7518"/>
  <seriesInfo name="DOI" value="10.17487/RFC7518"/>
</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="RFC7636">
  <front>
    <title>Proof Key for Code Exchange by OAuth Public Clients</title>
    <author fullname="N. Sakimura" initials="N." role="editor" surname="Sakimura"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="N. Agarwal" initials="N." surname="Agarwal"/>
    <date month="September" year="2015"/>
    <abstract>
      <t>OAuth 2.0 public clients utilizing the Authorization Code Grant are susceptible to the authorization code interception attack. This specification describes the attack as well as a technique to mitigate against the threat through the use of Proof Key for Code Exchange (PKCE, pronounced "pixy").</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7636"/>
  <seriesInfo name="DOI" value="10.17487/RFC7636"/>
</reference>
<reference anchor="RFC8414">
  <front>
    <title>OAuth 2.0 Authorization Server Metadata</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <date month="June" year="2018"/>
    <abstract>
      <t>This specification defines a metadata format that an OAuth 2.0 client can use to obtain the information needed to interact with an OAuth 2.0 authorization server, including its endpoint locations and authorization server capabilities.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8414"/>
  <seriesInfo name="DOI" value="10.17487/RFC8414"/>
</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="RFC8705">
  <front>
    <title>OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens</title>
    <author fullname="B. Campbell" initials="B." surname="Campbell"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
    <date month="February" year="2020"/>
    <abstract>
      <t>This document describes OAuth client authentication and certificate-bound access and refresh tokens using mutual Transport Layer Security (TLS) authentication with X.509 certificates. OAuth clients are provided a mechanism for authentication to the authorization server using mutual TLS, based on either self-signed certificates or public key infrastructure (PKI). OAuth authorization servers are provided a mechanism for binding access tokens to a client's mutual-TLS certificate, and OAuth protected resources are provided a method for ensuring that such an access token presented to it was issued to the client presenting the token.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8705"/>
  <seriesInfo name="DOI" value="10.17487/RFC8705"/>
</reference>
<reference anchor="RFC8707">
  <front>
    <title>Resource Indicators for OAuth 2.0</title>
    <author fullname="B. Campbell" initials="B." surname="Campbell"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
    <date month="February" year="2020"/>
    <abstract>
      <t>This document specifies an extension to the OAuth 2.0 Authorization Framework defining request parameters that enable a client to explicitly signal to an authorization server about the identity of the protected resource(s) to which it is requesting access.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8707"/>
  <seriesInfo name="DOI" value="10.17487/RFC8707"/>
</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="RFC9126">
  <front>
    <title>OAuth 2.0 Pushed Authorization Requests</title>
    <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
    <author fullname="B. Campbell" initials="B." surname="Campbell"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <author fullname="D. Tonge" initials="D." surname="Tonge"/>
    <author fullname="F. Skokan" initials="F." surname="Skokan"/>
    <date month="September" year="2021"/>
    <abstract>
      <t>This document defines the pushed authorization request (PAR) endpoint, which allows clients to push the payload of an OAuth 2.0 authorization request to the authorization server via a direct request and provides them with a request URI that is used as reference to the data in a subsequent call to the authorization endpoint.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9126"/>
  <seriesInfo name="DOI" value="10.17487/RFC9126"/>
</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="RFC9700">
  <front>
    <title>Best Current Practice for OAuth 2.0 Security</title>
    <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="A. Labunets" initials="A." surname="Labunets"/>
    <author fullname="D. Fett" initials="D." surname="Fett"/>
    <date month="January" year="2025"/>
    <abstract>
      <t>This document describes best current security practice for OAuth 2.0. It updates and extends the threat model and security advice given in RFCs 6749, 6750, and 6819 to incorporate practical experiences gathered since OAuth 2.0 was published and covers new threats relevant due to the broader application of OAuth 2.0. Further, it deprecates some modes of operation that are deemed less secure or even insecure.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="240"/>
  <seriesInfo name="RFC" value="9700"/>
  <seriesInfo name="DOI" value="10.17487/RFC9700"/>
</reference>



    </references>

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



<reference anchor="RFC6234">
  <front>
    <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
    <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
    <author fullname="T. Hansen" initials="T." surname="Hansen"/>
    <date month="May" year="2011"/>
    <abstract>
      <t>Federal Information Processing Standard, FIPS</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6234"/>
  <seriesInfo name="DOI" value="10.17487/RFC6234"/>
</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="RFC8725">
  <front>
    <title>JSON Web Token Best Current Practices</title>
    <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
    <author fullname="D. Hardt" initials="D." surname="Hardt"/>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <date month="February" year="2020"/>
    <abstract>
      <t>JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security tokens that contain a set of claims that can be signed and/or encrypted. JWTs are being widely used and deployed as a simple security token format in numerous protocols and applications, both in the area of digital identity and in other application areas. This Best Current Practices document updates RFC 7519 to provide actionable guidance leading to secure implementation and deployment of JWTs.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="225"/>
  <seriesInfo name="RFC" value="8725"/>
  <seriesInfo name="DOI" value="10.17487/RFC8725"/>
</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="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="I-D.ietf-oauth-identity-chaining">
   <front>
      <title>OAuth Identity and Authorization Chaining Across Domains</title>
      <author fullname="Arndt Schwenkschuster" initials="A." surname="Schwenkschuster">
         <organization>Defakto Security</organization>
      </author>
      <author fullname="Pieter Kasselman" initials="P." surname="Kasselman">
         <organization>Defakto Security</organization>
      </author>
      <author fullname="Kelley Burgin" initials="K." surname="Burgin">
         <organization>MITRE</organization>
      </author>
      <author fullname="Michael J. Jenkins" initials="M. J." surname="Jenkins">
         <organization>NSA-CCSS</organization>
      </author>
      <author fullname="Brian Campbell" initials="B." surname="Campbell">
         <organization>Ping Identity</organization>
      </author>
      <author fullname="Aaron Parecki" initials="A." surname="Parecki">
         <organization>Okta</organization>
      </author>
      <date day="19" month="July" year="2026"/>
      <abstract>
	 <t>   This specification describes a mechanism for preserving identity and
   authorization information across trust domains that use the OAuth 2.0
   Framework.  A JSON Web Token (JWT) authorization grant, obtained
   through an intra-domain OAuth 2.0 Token Exchange, facilitates the
   cross-domain acquisition of an access token.  The relevant identity
   and authorization information is chained throughout the flow by being
   conveyed in the respective artifacts exchanged at each step of the
   process.  Chaining across multiple domains is achieved by using the
   same protocol every time a trust domain boundary is crossed.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-identity-chaining-17"/>

</reference>

<reference anchor="I-D.ietf-oauth-transaction-tokens">
   <front>
      <title>Transaction Tokens</title>
      <author fullname="Atul Tulshibagwale" initials="A." surname="Tulshibagwale">
         <organization>CrowdStrike</organization>
      </author>
      <author fullname="George Fletcher" initials="G." surname="Fletcher">
         <organization>Practical Identity LLC</organization>
      </author>
      <author fullname="Pieter Kasselman" initials="P." surname="Kasselman">
         <organization>Defakto Security</organization>
      </author>
      <date day="30" month="July" year="2026"/>
      <abstract>
	 <t>   Transaction Tokens (Txn-Tokens) are designed to maintain and
   propagate user identity, workload identity and authorization context
   throughout the Call Chain within a trusted domain during the
   processing of external requests (e.g. such as API calls) or requests
   initiated internally within the Trust Domain.  Txn-Tokens ensure that
   this context is preserved throughout the Call Chain thereby enhancing
   security and consistency in complex, multi-service architectures.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-transaction-tokens-11"/>

</reference>

<reference anchor="I-D.chen-oauth-agent-authz-use-cases">
   <front>
      <title>Agent Authorization use cases and gap analysis</title>
      <author fullname="Meiling Chen" initials="M." surname="Chen">
         <organization>China Mobile</organization>
      </author>
      <author fullname="Jia Chen" initials="J." surname="Chen">
         <organization>China Mobile</organization>
      </author>
      <author fullname="Jiankang Yao" initials="J." surname="Yao">
         <organization>CNNIC</organization>
      </author>
      <author fullname="Yuning Jiang" initials="Y." surname="Jiang">
         </author>
      <author fullname="Peter Chunchi Liu" initials="P. C." surname="Liu">
         <organization>Huawei</organization>
      </author>
      <date day="25" month="August" year="2026"/>
      <abstract>
	 <t>   This document provides a systematic analysis of these emerging agent-
   based use cases.  It categorizes them into distinct scenarios,
   details their specific authorization requirements, and performs a
   comprehensive gap analysis against the existing OAuth 2.0
   framework[RFC6749] and its common extensions.  The analysis
   identifies fundamental gaps and requirements, providing a foundation
   for future work on new extensions within the OAuth Working Group
   toward creating a more secure and interoperable ecosystem for agent-
   based systems.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-chen-oauth-agent-authz-use-cases-03"/>

</reference>

<reference anchor="I-D.song-oauth-ai-agent-collaborate-authz">
   <front>
      <title>OAuth2.0 Extension for Multi-AI Agent Collaboration</title>
      <author fullname="Yurong Song" initials="Y." surname="Song">
         <organization>Huawei</organization>
      </author>
      <author fullname="LUN LI" initials="L." surname="Lun">
         <organization>Huawei</organization>
      </author>
      <author fullname="Yuning Jiang" initials="Y." surname="Jiang">
         <organization>Huawei Singapore</organization>
      </author>
      <author fullname="Faye Liu" initials="F." surname="Liu">
         <organization>Huawei Singapore</organization>
      </author>
      <date day="30" month="June" year="2026"/>
      <abstract>
	 <t>   This method extends OAuth 2.0 by adding fields to token and message
   flows, enabling sub-agents to act as a task group.  It simplifies
   authorization for task groups, avoids repeated interactions between
   sub-agents and the authorization server, and bounds the authority
   delegated to the group and to each member while maintaining
   compatibility with existing OAuth 2.0 workflows.


	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-song-oauth-ai-agent-collaborate-authz-02"/>

</reference>

<reference anchor="DID-CORE" target="https://www.w3.org/TR/did-core/">
  <front>
    <title>Decentralized Identifiers (DIDs) v1.0</title>
    <author >
      <organization>W3C</organization>
    </author>
    <date year="2022" month="July" day="19"/>
  </front>
</reference>


    </references>

</references>


<?line 567?>

<section anchor="non-normative-grantex-mapping"><name>Non-Normative Grantex Mapping</name>

<t>This appendix is informative. It helps reviewers compare the profile with the
Grantex reference implementation; it does not define interoperable endpoints.</t>

<texttable>
      <ttcol align='left'>Profile operation</ttcol>
      <ttcol align='left'>Grantex implementation-specific path</ttcol>
      <c>Agent registration metadata</c>
      <c><spanx style="verb">POST /v1/agents</spanx></c>
      <c>Authorization request</c>
      <c><spanx style="verb">POST /v1/authorize</spanx></c>
      <c>Principal consent</c>
      <c><spanx style="verb">POST /v1/consent/{id}/approve</spanx></c>
      <c>Code exchange</c>
      <c><spanx style="verb">POST /v1/token</spanx></c>
      <c>Refresh rotation</c>
      <c><spanx style="verb">POST /v1/token/refresh</spanx></c>
      <c>Token status</c>
      <c><spanx style="verb">POST /v1/tokens/verify</spanx></c>
      <c>Grant revocation</c>
      <c><spanx style="verb">DELETE /v1/grants/{id}</spanx></c>
      <c>Delegation</c>
      <c><spanx style="verb">POST /v1/grants/delegate</spanx></c>
      <c>Authorization-server metadata</c>
      <c><spanx style="verb">GET /.well-known/oauth-authorization-server</spanx></c>
      <c>Signing keys</c>
      <c><spanx style="verb">GET /.well-known/jwks.json</spanx></c>
</texttable>

<t>The implementation transports its refresh recovery key in an
<spanx style="verb">Idempotency-Key</spanx> HTTP request header. That header use is implementation
specific in this revision and is not required for DAAP core conformance.</t>

</section>
<section anchor="candidate-extension-documents"><name>Candidate Extension Documents</name>

<t>The following subjects should be developed independently if there is community
interest:</t>

<t><list style="numbers" type="1">
  <t>externally witnessed agent audit checkpoints;</t>
  <t>financial authorization details and atomic budget settlement;</t>
  <t>agent delegation lifecycle and cascade revocation profiles; and</t>
  <t>operational event, policy, and credential-handling interfaces.</t>
</list></t>

<t>Separating these topics keeps security assumptions, registries, and consensus
boundaries reviewable.</t>

</section>
<section anchor="authors-address"><name>Author's Address</name>

<t>Sanjeev Kumar</t>

<t>Orchestrum Technologies LLP</t>

<t>Email: <spanx style="verb">mishra.sanjeev@gmail.com</spanx></t>

<t>Alternate email: <spanx style="verb">sanjeev@orchestrum.in</spanx></t>

<t>URI: <spanx style="verb">https://grantex.dev</spanx></t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA41cbXPbRpL+Pr9iKvmQ2yuS8lvsWK6tWsVSdpU4kU5SNnV1
dRWCwJCEDQI8DCiZSfzfr5/unsEApJykttYUCcxr99NPv8xMp1PTlV3lTu0X
V2e7bm2v22ZZVs4um9aeu8qtss4V9uzSnq1c3Vk807Tlb1lXNvUXJlssWndP
L5+fnV1/YYomr7MNNVa02bKbbkq/brNpk9FL0wzvT1dtVnd++uSZyanhVdPu
T21ZLxvjdwt63FOr3X5LLVxe3H1nym17art257tnT568ppey1mWn9tblu7bs
9uahaT+s2ma3PbW/uMVwcJhJ1+RNZQrq6dQ+e/Ls5fTJN9PnT8wHt6c3i1Nj
7RRT46F5/itLm+BveFn4UyHLEX7wri5cO82b2ndtVta0TF3zwdXeGN9ldfFr
VjU1dbx33mzLU/s/NJqJ9U3btW7p6dN+gw//a4x0KsNZ7qpK1vA2q987d29/
2G2yln6ztmlXWa1jO7VXbb521PVuY+9cvq6bqlmVztt37675abfJyurUyibM
vLT2jxW+neXNhp+hZTy1667b+tOTE94b93FWuHtj6qbdUEf3DsO6+e7ts6dP
X+vHb56+eqEfX756Eb599fXTV/3Hb/qP8YGXz1+GFl48DS188/L18/Dx1ZOv
+4+hsddPXobGXj99Flp4/SJ2/PrVkyenxkCKhkN++ex56OXV6xfPYtPP+l6+
CR9fP3/NTV9Oz2el65YqtGVBkkGSNs3XtMNlvTryDG1+7bMcmzIVAQgP0f7U
A+nHx9+mO++meeZdfM439So8V+qjJLhVtmhakl15DQ+fX55P317dXJzy5gXF
PXc5vdFmVfkbyeAlD3lZutbb/6AX/N/s/dPZky/klaxdua7f8oeHh9nD8xkJ
1sndzUlRFtRv60742V4qVfZIyZ6/5T+jRj2bPnk1fframOmUdGcBRcg7Y6JO
kW7npLKeVq7a0x/3tD52S4rpcoaV60tvSVUXbp1VS9ss7ZqEvba0Qq2f2bt1
6YEpuw2gp3BLUjJv6XeBqm0CVbJRyz11hAe4d5tXJf4pa+hj7iamWXSyjfwM
tYGXckY4dPmVt9Bm+nJiCYt2eLB1vtm1uZsuml1d0HuFOaL4WZ4771X/Jzbr
OlfvSBbRkyBKt7fdmqBqtdbR3+FZc/GRJKteuQlatrQw8hIBA3W81gatz5au
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
fATTCWEAAA==

-->

</rfc>
