<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mcgraw-httpapi-agent-budget-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="Delegation">The Delegation HTTP Authentication Scheme for Request-Bound Authority</title>
    <seriesInfo name="Internet-Draft" value="draft-mcgraw-httpapi-agent-budget-03"/>
    <author initials="J." surname="McGraw" fullname="John Paul McGraw, Jr.">
      <organization abbrev="TaskHawk">TaskHawk Systems LLC</organization>
      <address>
        <postal>
          <city>Charlottesville</city>
          <region>VA</region>
          <country>United States of America</country>
        </postal>
        <email>j.mcgraw@taskhawktech.com</email>
      </address>
    </author>
    <date year="2026" month="July" day="23"/>
    <area>Web and Internet Transport</area>
    <workgroup>HTTPAPI</workgroup>
    <keyword>HTTP</keyword>
    <keyword>authentication</keyword>
    <keyword>delegated authority</keyword>
    <keyword>authority proof</keyword>
    <keyword>protected processing</keyword>
    <keyword>budget profile</keyword>
    <keyword>RateLimit</keyword>
    <keyword>COSE</keyword>
    <keyword>JOSE</keyword>
    <keyword>ML-DSA</keyword>
    <keyword>SLH-DSA</keyword>
    <keyword>CBOR</keyword>
    <abstract>
      <?line 93?>

<t>Delegated software requesters increasingly make HTTP requests that spend,
consume, disclose, mutate, invoke, or actuate on behalf of human or
organizational principals.  Existing HTTP authentication mechanisms indicate
whether a requester holds a credential.  RateLimit fields communicate
server-advertised quota and current service-limit information.  HTTP Message
Signatures can protect selected components of an HTTP message.  None of these
mechanisms directly defines a common origin-server challenge for a requester to
present verifiable, bounded authority from its principal before the server
performs protected processing.</t>
      <t>This document defines the "Delegation" HTTP authentication scheme, response
semantics for delegated-authority challenges using existing HTTP status codes
and Problem Details, the <tt>Delegation-Proof</tt> HTTP field, and a COSE/CBOR proof
carriage model for request-bound delegated authority.  The initial authority
profile is the Budget profile, which uses a CBOR/COSE Budget-Attestation
envelope to prove bounded authority to spend, consume metered service units, or
commit bounded resources.  The mechanism is algorithm-agile; the initial
<tt>cose-ml-dsa</tt> proof profile uses existing JOSE and COSE serializations for
ML-DSA, with ML-DSA-65 as the baseline algorithm and ML-DSA-87 available as a
high-assurance deployment policy option.  A dedicated <tt>4NN Delegated Authority
Required</tt> status code remains an open design question for HTTP Working Group
review; this revision does not depend on that status code and does not define
payment semantics.  This revision also defines a mandatory-to-implement
preflight flow for large proof profiles so that GET and HEAD requests do not
depend on request content, and so that requests with application
representations do not need to multiplex the application body and the proof body
in a single content stream.</t>
      <t>For implementation experience, this individual draft also includes the initial
Budget authority profile.  The HTTP authentication scheme, status-code
semantics, Problem Details members, and field-carriage rules are intentionally
separable from the COSE/CBOR Budget profile.  If a Working Group chooses to
progress the HTTP mechanism independently, the Budget authority profile can be
moved to a companion profile document without changing the Delegation
challenge semantics defined here.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mcgraw-httpapi-agent-budget/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        HTTPAPI Working Group mailing list (<eref target="mailto:httpapi@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/httpapi/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/httpapi/"/>.
      </t>
    </note>
  </front>
  <middle>
    <?line 131?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Delegated software requesters acting on behalf of human or organizational
principals increasingly make HTTP requests that may spend money, consume
metered service units, disclose regulated data, mutate production state,
invoke downstream services, or actuate external systems.  HTTP authentication
<xref target="RFC9110"/> addresses whether a requester holds a usable credential.  RateLimit
fields <xref target="I-D.ietf-httpapi-ratelimit-headers"/> communicate server-defined quota
policies and current service-limit information.  HTTP Message Signatures
<xref target="RFC9421"/> can provide integrity and authenticity for selected HTTP message
components.  OAuth Token Exchange <xref target="RFC8693"/> and GNAP <xref target="RFC9635"/> define ways
to obtain or negotiate authorization artifacts.</t>
      <t>Delegated authority at the protected origin is a distinct HTTP requirement:
before processing a consequential request, an origin server or gateway needs a
common way to challenge for, receive, and verify a proof that the requester has
bounded authority from its principal for that request.  This document defines
that challenge and proof-carriage layer.</t>
      <t>This document defines:</t>
      <ul spacing="normal">
        <li>
          <t>The "Delegation" HTTP authentication scheme (<xref target="auth-scheme"/>),
used in the <tt>WWW-Authenticate</tt> response field when delegated authority is
required and in the <tt>Authorization</tt> request field of a subsequent request.</t>
        </li>
        <li>
          <t>Delegation challenge response semantics (<xref target="challenge-responses"/>), using 401
(Unauthorized) when a Delegation credential is absent, invalid, incomplete,
or otherwise needs to be obtained, and 403 (Forbidden) when a Delegation
credential is understood but is insufficient under local policy.</t>
        </li>
        <li>
          <t>The <tt>Delegation-Proof</tt> HTTP field (<xref target="delegation-proof-field"/>), used when
delegated authority is additive to another origin-server authentication
mechanism already carried in <tt>Authorization</tt>.</t>
        </li>
        <li>
          <t>A proof-profile model for request-bound authority.  The initial Budget
authority profile defines the Budget-Attestation envelope (<xref target="budget-envelope"/>),
a CBOR-encoded <xref target="RFC8949"/>, COSE-signed <xref target="RFC9052"/> structure that carries
semantic claims about issuer, requester, expiry, request binding, permitted
rails, and amount.</t>
        </li>
      </ul>
      <t>This document currently contains both the generic HTTP Delegation mechanism and
the initial Budget authority profile so the protocol can be reviewed with a
complete running profile.  The sections are scoped so the generic HTTP
mechanism can be split from the Budget profile in a future revision if that is
cleaner for Working Group processing.</t>
      <t>The Delegation authentication scheme is algorithm-agile.  The initial
Budget <tt>cose-ml-dsa</tt> profile uses ML-DSA algorithm identifiers serialized for
JOSE and COSE by <xref target="RFC9964"/>, using the ML-DSA algorithm specified in
<xref target="FIPS204"/>.  Implementations of this profile <bcp14>MUST</bcp14> support ML-DSA-65 and <bcp14>MAY</bcp14>
support ML-DSA-87.  A deployment <bcp14>MAY</bcp14> require ML-DSA-87 or another registered
algorithm by local policy.  A deployment <bcp14>MAY</bcp14> add an optional rail-keyed
signature using SLH-DSA, aligned with the JOSE and COSE SLH-DSA work in
<xref target="I-D.ietf-cose-sphincs-plus"/> and the SLH-DSA algorithm specified in
<xref target="FIPS205"/>.  That optional signature is not a replacement for the primary
signature.</t>
      <t>This document does not define a payment protocol.  Settlement rails such
as L402 <xref target="L402"/>, x402 <xref target="X402"/>, card payments, or other systems can use
Delegation proofs or the Budget profile as input to their own policy and
settlement flows; however, their settlement semantics are outside the scope of
this document.  In particular, this document does not depend on, redefine, or
reserve any semantics for HTTP 402 (Payment Required).</t>
      <t>Scope and modularization: Sections 3 and 4 define the HTTP response semantics,
authentication challenge, credential syntax, and HTTP field semantics for
Delegation.  Section 5 defines the initial Budget authority profile to
demonstrate an interoperable cryptographic binding for one class of delegated
authority.  During standards progression, the Working Group can move one or
more proof profiles into companion documents for review by the COSE, OAuth, or
GNAP communities without changing the core HTTP semantics defined by the
authentication scheme, Problem Details members, and field carriage.</t>
      <section anchor="conventions-and-definitions">
        <name>Conventions and Definitions</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>Principal:</dt>
          <dd>
            <t>The human, organization, service, or other authority holder on whose behalf
a delegated requester acts.</t>
          </dd>
          <dt>Issuer:</dt>
          <dd>
            <t>An entity that issues a Delegation proof on behalf of a principal.  In the
Budget authority profile, the Issuer is the entity that issues
Budget-Attestations.</t>
          </dd>
          <dt>Delegated Requester:</dt>
          <dd>
            <t>A client, workload, device, job, agent, or other software component that
presents a Delegation proof issued by an Issuer in order to make HTTP
requests within delegated bounds.</t>
          </dd>
          <dt>Agent:</dt>
          <dd>
            <t>A delegated requester.  The term "agent" remains the motivating deployment
case and appears in existing implementation field names; it is not a
protocol requirement for any specific architecture.</t>
          </dd>
          <dt>Verifier:</dt>
          <dd>
            <t>An origin server, or a gateway or reverse proxy explicitly authorized by the
origin for the same protection space, that receives a Delegation proof,
validates its signatures and claims, and decides whether to perform protected
processing for the bearing request.  This document defines origin-server
authentication and does not define proxy authentication.  Generic forward
proxies and intermediaries that are not authoritative for the origin's
protection space do not issue, validate, or consume Delegation credentials
except as ordinary HTTP message forwarding behavior permits.</t>
          </dd>
          <dt>Protected Processing:</dt>
          <dd>
            <t>Application processing that the Verifier will not perform until the
requester has presented a Delegation proof satisfying local policy.  Examples
include actions that spend, consume, disclose, mutate, invoke, or actuate.</t>
          </dd>
          <dt>Delegation Proof:</dt>
          <dd>
            <t>A verifiable object presented by a delegated requester to show bounded
authority from a principal for a request or class of requests.</t>
          </dd>
          <dt>Authority Profile:</dt>
          <dd>
            <t>A profile that defines the claims, proof format, bounds, and verifier checks
for a specific class of delegated authority.  Budget is the initial authority
profile in this document.</t>
          </dd>
          <dt>Budget Authority Profile:</dt>
          <dd>
            <t>The authority profile defined in <xref target="budget-envelope"/> for spending, consuming
metered service units, or committing bounded resources.</t>
          </dd>
          <dt>Budget-Attestation:</dt>
          <dd>
            <t>The CBOR-encoded, COSE-signed Delegation proof defined for the Budget
authority profile in <xref target="budget-envelope"/>.</t>
          </dd>
          <dt>Settlement Rail:</dt>
          <dd>
            <t>An out-of-band protocol or payment system used to transfer value or
record resource consumption.  Rail names can appear in field 7 of a
Budget-Attestation.  This document does not define how any settlement rail
operates.</t>
          </dd>
          <dt>Rail-Keyed Signature:</dt>
          <dd>
            <t>An optional additional signature over the Budget-Attestation envelope,
intended to bind a deployment's rail-specific policy to the same claims that
the primary Issuer signature covers.</t>
          </dd>
        </dl>
      </section>
      <section anchor="applicability">
        <name>Applicability</name>
        <t>Delegation is a general HTTP mechanism for request-bound delegated authority.
Autonomous software agents and paid-resource access are motivating deployment
cases; however, the mechanism also applies to service workloads, CI/CD jobs,
IoT or fleet devices, batch systems, scheduled data processors, delegated
administration tools, and other requesters that need to prove bounded
authority before protected processing occurs.</t>
        <t>The core mechanism is intentionally broader than budget.  Authority profiles
can define bounds for spending, service-unit consumption, compute allocation,
data disclosure, infrastructure mutation, downstream invocation, procurement
commitment, safety-relevant actuation, or other consequential actions.  The
Budget authority profile is the initial profile because it provides a concrete
interoperable proof format and a clear deployment need.</t>
        <t>Budget-Claims field 3 carries the delegated requester identifier.  Deployments
<bcp14>MAY</bcp14> populate it with an agent identifier, service-account identifier, workload
identity, device identifier, job identifier, or privacy-preserving alias.  This
field does not require the requester to be an AI system.  Deployment APIs <bcp14>MAY</bcp14>
continue using names such as <tt>agent_id</tt> at their local boundary, but that name
is not encoded in the signed CBOR claims map.</t>
      </section>
      <section anchor="relationship-to-oauth-gnap-and-token-exchange">
        <name>Relationship to OAuth, GNAP, and Token Exchange</name>
        <t>OAuth Token Exchange <xref target="RFC8693"/> defines an HTTP- and JSON-based Security Token
Service pattern for obtaining security tokens, including delegation and
impersonation cases.  GNAP <xref target="RFC9635"/> defines a grant negotiation and
authorization protocol for delegating authorization to software and conveying
the resulting artifacts.  This document does not replace either protocol.</t>
        <t>Delegation defines the protected-resource challenge and presentation layer: an
origin server or gateway can tell a requester which delegated authority proof
is required before protected processing, and the requester can present a
request-bound proof for verification.  OAuth, GNAP, an STS, an issuer-managed
key service, or another deployment-specific system can be used to obtain the
proof.  The issuance flow is outside the scope of this document.</t>
        <t>The delegation semantics in this document are closer to delegation than
impersonation: the requester remains distinct from the principal, and the
proof records that the requester is acting with bounded authority from the
principal.  The document does not define general identity authentication, user
consent, account linking, or grant negotiation.</t>
      </section>
      <section anchor="relationship-to-sender-constrained-tokens-and-dpop">
        <name>Relationship to Sender-Constrained Tokens and DPoP</name>
        <t>OAuth 2.0 Demonstrating Proof of Possession (DPoP) <xref target="RFC9449"/>
sender-constrains OAuth access and refresh tokens by binding an issued token
to a client key and requiring the client to prove possession of the
corresponding private key on protected-resource requests.  This reduces replay
risk when an OAuth token is leaked.  It does not, by itself, express bounded
delegated authority for protected processing, and a valid DPoP proof is not a
Delegation proof.</t>
        <t>A deployment <bcp14>MAY</bcp14> require the requester identity or session credential used
with Delegation to be sender-constrained, for example by DPoP, mutual TLS,
HTTP Message Signatures, or another deployment-specific mechanism.  Validation
of that credential is a separate authentication layer.  Failure of the
sender-constrained credential is handled according to that authentication
layer; failure of the Delegation proof is handled with the 401/403 response
semantics defined in <xref target="challenge-responses"/>.</t>
        <t>When OAuth DPoP and Delegation are used on the same protected request, the
implementation has to define field composition because DPoP uses the
<tt>Authorization: DPoP</tt> authentication scheme, while Delegation can use
<tt>Authorization: Delegation</tt>.  A request <bcp14>MUST NOT</bcp14> concatenate both credentials
in one <tt>Authorization</tt> field.  A deployment can carry the identity credential
in <tt>Authorization</tt> and delegated authority in <tt>Delegation-Proof</tt> or in
body-carried proof where the target method and request representation allow
that carriage.  A deployment that wants to use a preflight compact Delegation
credential on a request that must also retain <tt>Authorization: DPoP</tt> needs a
companion profile defining non-<tt>Authorization</tt> carriage and binding for the
compact Delegation credential.  This document does not define that profile.</t>
      </section>
      <section anchor="relationship-to-attribute-certificates">
        <name>Relationship to Attribute Certificates</name>
        <t>X.509 attribute certificates define an older authorization mechanism separate
from public-key identity certificates; <xref target="RFC5755"/> describes authorization as
the conveyance of privilege from one entity to another.  Delegation follows the
same broad separation between identity and authority, but does not define an
X.509 attribute-certificate profile.  It defines HTTP challenge semantics and
HTTP proof carriage for request-bound delegated authority.</t>
      </section>
      <section anchor="ratelimit-fields">
        <name>Relationship to RateLimit Fields</name>
        <t>RateLimit fields describe service limits from the server to the client.
They tell the client what quota policy applies and what capacity is
currently available under that server-defined policy.  They are useful
for throttling, backoff, and avoiding 429 responses.</t>
        <t>Delegation proofs travel in the opposite direction.  They are
client-presented credentials showing that an Issuer authorized a Delegated
Requester to act within stated bounds on behalf of a principal.  They are
evaluated before the Verifier performs protected processing.</t>
        <t>This document defines a separate mechanism rather than extending
RateLimit because a signed, bearer-presented authority proof has
different issuer, freshness, replay, and verification semantics from
server-advertised quota metadata.
Extending <tt>RateLimit-Policy</tt> would change the issuer and trust model of
RateLimit from server-authored quota advertisement into principal-authorized
delegated authority, which is a different protocol semantic rather than
a new quota parameter.</t>
        <t>The mechanisms are complementary:</t>
        <ul spacing="normal">
          <li>
            <t>A server <bcp14>MAY</bcp14> return RateLimit fields on 200, 401, 403, 429, or other
responses when it wants to communicate server-side quota state.</t>
          </li>
          <li>
            <t>A server <bcp14>MUST NOT</bcp14> treat RateLimit fields as a substitute for a Delegation
proof, because RateLimit fields are not signed authority from the
requester's principal.</t>
          </li>
          <li>
            <t>A Budget-Attestation <bcp14>MUST NOT</bcp14> be interpreted as a server quota promise.
It only states the Delegated Requester's delegated authority under the Budget
authority profile.</t>
          </li>
        </ul>
        <table>
          <thead>
            <tr>
              <th align="left">Property</th>
              <th align="left">RateLimit fields</th>
              <th align="left">Delegation proof</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Direction</td>
              <td align="left">Server to client</td>
              <td align="left">Client to verifier</td>
            </tr>
            <tr>
              <td align="left">Issuer</td>
              <td align="left">Resource server or gateway</td>
              <td align="left">Issuer acting for the principal</td>
            </tr>
            <tr>
              <td align="left">Integrity</td>
              <td align="left">HTTP field semantics</td>
              <td align="left">COSE/JOSE signature</td>
            </tr>
            <tr>
              <td align="left">Purpose</td>
              <td align="left">Advertise quota and current service limits</td>
              <td align="left">Prove bounded delegated authority</td>
            </tr>
            <tr>
              <td align="left">Failure mode</td>
              <td align="left">Client might be throttled</td>
              <td align="left">Request fails before protected processing</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="relationship-to-http-message-signatures">
        <name>Relationship to HTTP Message Signatures</name>
        <t><xref target="RFC9421"/> defines signatures over components of individual HTTP
messages.  A Delegation proof signs a portable authority object whose claims
can be evaluated independently of a single HTTP message and, when required,
bound to a particular bearing request.  The two mechanisms can be composed: a
Delegated Requester can send an HTTP-message signature that covers the request
as transmitted and a Delegation proof that covers delegated authority for the
action.</t>
        <t>The preflight target-binding fields defined by this document describe the
protected request that will be sent after preflight.  They are not intended to
replace HTTP Message Signatures.  Where this document needs the method and
target URI of a protected request, the comparison semantics are aligned with
the corresponding HTTP Message Signatures derived components, including
<tt>@method</tt> and <tt>@target-uri</tt>.  Where this document needs a representation digest,
deployments <bcp14>SHOULD</bcp14> use the digest algorithm and syntax defined for HTTP Digest
Fields <xref target="RFC9530"/>, and the digest accepted during preflight <bcp14>SHOULD</bcp14> match the
protected request's <tt>Content-Digest</tt> field when that field is present.  A
deployment can additionally require an HTTP-message signature over the
protected request, including <tt>@method</tt>, <tt>@target-uri</tt>, <tt>content-digest</tt>, and
<tt>authorization</tt>, when it needs message-level integrity in addition to delegated
authority.</t>
        <t>This document uses target-binding fields in the preflight request because the
protected request has not yet been sent when the full proof is presented.  The
fields identify the future protected request for verifier policy and compact
credential binding; they do not sign or otherwise authenticate the preflight
HTTP message itself.</t>
      </section>
      <section anchor="relationship-to-http-402">
        <name>Relationship to HTTP 402</name>
        <t>HTTP 402 (Payment Required) is reserved by HTTP Semantics <xref target="RFC9110"/>.
Some deployed payment systems use 402 responses as part of their own
settlement flows.  This document neither depends on those deployments nor
defines their semantics.</t>
        <t>An implementation <bcp14>MAY</bcp14> use a Delegation proof or the Budget authority profile
before invoking a settlement rail.  Whether that later settlement interaction
uses HTTP 402, a 401
challenge, a signed request body, or another transport is out of scope for
this document.</t>
      </section>
    </section>
    <section anchor="overview-operation">
      <name>Overview of Operation</name>
      <t>A protected origin determines that a request requires delegated authority and
that no acceptable Delegation credential is present:</t>
      <sourcecode type="http-message"><![CDATA[
POST /export HTTP/1.1
Host: api.example
]]></sourcecode>
      <t>It returns:</t>
      <sourcecode type="http-message"><![CDATA[
HTTP/1.1 401 Unauthorized
Date: Tue, 02 Jun 2026 18:00:00 GMT
Cache-Control: no-store
Content-Type: application/problem+json
Delegation-Version: 1
WWW-Authenticate: Delegation realm="api.example",
                  version=1,
                  profile="budget",
                  proof-format="cose-ml-dsa",
                  alg="ML-DSA-65",
                  nonce="QMjVqg5Xb6yV0bO_t9X8gQ",
                  preflight-uri="https://api.example/preflight",
                  max-age=300

{
  "type": "https://example.com/problems/delegation-required",
  "title": "Delegated authority proof required",
  "status": 401,
  "detail": "A valid Delegation proof is required.",
  "authority_requirements": {
    "profile": "budget",
    "proof_formats": ["cose-ml-dsa"],
    "actions": ["dataset:export"],
    "min_amount": "2.50",
    "currency": "USD",
    "proof_required": true,
    "verifier_required": true,
    "preflight_uri": "https://api.example/preflight",
    "nonce": "QMjVqg5Xb6yV0bO_t9X8gQ",
    "max_age": 300
  }
}
]]></sourcecode>
      <t>The Delegated Requester obtains a Delegation proof from its Issuer by means
outside this document and submits the large proof to the advertised preflight
URI.  In this example the proof uses the Budget authority profile:</t>
      <sourcecode type="http-message"><![CDATA[
POST /preflight HTTP/1.1
Host: api.example
Content-Type: application/delegation-proof+cose
Delegation-Target-Method: "POST"
Delegation-Target-URI: "https://api.example/export"
Delegation-Target-Content-Digest: sha-256=:<base64-sha-256-digest>:
Content-Length: 4217

[COSE_Sign1 Budget-Attestation bytes]
]]></sourcecode>
      <t>Angle-bracketed values in examples are placeholders, not wire syntax.</t>
      <t>If the attestation is valid for the request and local policy, the Verifier
returns a compact, verifier-issued Delegation credential bound to the original
method, origin, target, nonce, expiry, and representation digest:</t>
      <sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 OK
Cache-Control: no-store
Content-Type: application/json

{
  "credential_type": "delegation-compact",
  "credential": "kdc1.Pz9leGFtcGxlLW9wYXF1ZS10b2tlbg",
  "authorization": "Delegation kdc1.Pz9leGFtcGxlLW9wYXF1ZS10b2tlbg",
  "expires_in": 120,
  "target": {
    "method": "POST",
    "uri": "https://api.example/export",
    "content_digest": "sha-256=:<base64-sha-256-digest>:"
  }
}
]]></sourcecode>
      <t>The requester then retries the original protected request using normal HTTP
semantics.  The final request carries the compact Delegation credential in the
<tt>Authorization</tt> field.  If the protected request has an application
representation, that representation remains the request content:</t>
      <sourcecode type="http-message"><![CDATA[
POST /export HTTP/1.1
Host: api.example
Authorization: Delegation kdc1.Pz9leGFtcGxlLW9wYXF1ZS10b2tlbg
Content-Type: application/json

{"format":"jsonl","limit":1000}
]]></sourcecode>
      <t>If Delegation validation fails, the Verifier returns either a 401 or 403
response as described in <xref target="challenge-responses"/> and <bcp14>SHOULD</bcp14> include a <tt>reason</tt>
extension member in the Problem Details body.</t>
    </section>
    <section anchor="challenge-responses">
      <name>Delegation Challenge Responses</name>
      <t>Delegation uses existing HTTP authentication semantics as its baseline response
model.  A Verifier that requires delegated authority and receives no Delegation
credential, an invalid Delegation credential, or a partial Delegation
credential <bcp14>SHOULD</bcp14> send a 401 (Unauthorized) response containing a
<tt>WWW-Authenticate</tt> response field with at least one <tt>Delegation</tt> challenge.
This follows the HTTP authentication model in <xref target="RFC9110"/>: the response
supplies a challenge that the client can answer by obtaining or presenting a
Delegation credential.</t>
      <t>A Verifier that receives a syntactically valid and authenticated Delegation
credential that is insufficient for the requested resource, exceeds local
policy, names an unacceptable authority profile, or otherwise does not
authorize the request <bcp14>SHOULD</bcp14> send a 403 (Forbidden) response.  A 403 response
<bcp14>MAY</bcp14> include a <tt>WWW-Authenticate</tt> response field with a <tt>Delegation</tt> challenge
when a different Delegation credential might allow the request to succeed; it
<bcp14>MUST NOT</bcp14> include that challenge when local policy forbids the request
independent of Delegation credential contents.</t>
      <t>A Delegation challenge response <bcp14>SHOULD</bcp14> include <tt>Cache-Control: no-store</tt> as
defined by HTTP caching <xref target="RFC9111"/>.  A Delegation challenge response that
contains a
nonce, requester-specific policy, or other policy-sensitive material <bcp14>MUST</bcp14>
include <tt>Cache-Control: no-store</tt>.</t>
      <t>A Delegation challenge response <bcp14>SHOULD</bcp14> include an <tt>application/problem+json</tt> or
<tt>application/problem+cbor</tt> body using <xref target="RFC9457"/>.  The Problem Details object
<bcp14>SHOULD</bcp14> contain an <tt>authority_requirements</tt> extension member when the Verifier
can describe the delegated authority needed for the protected request.  A
profile <bcp14>MAY</bcp14> define additional profile-specific members; for example, the Budget
authority profile can describe amounts, units, or accepted settlement rails.
When a value is represented both in a <tt>WWW-Authenticate</tt> challenge parameter
and in the Problem Details body, the challenge parameter is authoritative for
authentication processing.  The Problem Details body is explanatory and
actionable metadata for clients; it does not relax, override, or extend the
<tt>WWW-Authenticate</tt> challenge.</t>
      <t>This document does not redefine HTTP 402 (Payment Required), and a Delegation
challenge response <bcp14>MUST NOT</bcp14> be interpreted as a settlement request.  A 429
(Too Many Requests) response remains the appropriate signal for server-side
quota exhaustion.</t>
      <section anchor="status-code-question">
        <name>Dedicated Status Code Design Question</name>
        <t>Earlier revisions proposed a dedicated 427 (Budget Required) status code for
Budget challenges.  The broader design question is whether HTTP needs a
dedicated status code for delegated authority challenges.  A future revision
can request registration of a <tt>4NN Delegated Authority Required</tt> status code if
the HTTP Working Group concludes that existing 401 and 403 semantics plus
<tt>WWW-Authenticate: Delegation</tt> and Problem Details are insufficient for
interoperable clients, intermediaries, and API gateways.</t>
        <t>This revision therefore uses 401 and 403 as the baseline and does not request an
HTTP status-code registration.  Conformant implementations use the 401/403
behavior defined in <xref target="challenge-responses"/> unless and until a future revision
registers a dedicated status code.</t>
      </section>
      <section anchor="delegation-error-tokens">
        <name>Delegation Error Tokens</name>
        <t>When a Verifier returns a Delegation challenge response because a presented
Delegation credential failed validation or did not satisfy policy, the Problem Details
object <bcp14>SHOULD</bcp14> contain a <tt>reason</tt> extension member.  The value of this member is
a token identifying the validation failure.  This document defines the following
initial tokens:</t>
        <ul spacing="normal">
          <li>
            <t><tt>token_expired</tt>: The presented Budget-Attestation expiry value is in the past
relative to the Verifier's clock.</t>
          </li>
          <li>
            <t><tt>nonce_stale</tt>: The nonce in the attestation does not match a valid,
unexpired challenge window.</t>
          </li>
          <li>
            <t><tt>nonce_replay</tt>: The nonce has already been accepted by the Verifier within
its replay-tracking window.</t>
          </li>
          <li>
            <t><tt>bad_signature</tt>: Cryptographic validation of the primary signature or a
required rail-keyed signature failed.</t>
          </li>
          <li>
            <t><tt>untrusted_issuer</tt>: The issuer identifier in Budget-Claims field 2 identifies
an issuer for which the Verifier has no explicit trust relationship.</t>
          </li>
          <li>
            <t><tt>authority_insufficient</tt>: The signed authority bounds do not satisfy the
requirement advertised by the resource server.</t>
          </li>
          <li>
            <t><tt>budget_insufficient</tt>: The signed budget bounds in Budget-Claims fields 4
and 5 do not satisfy the budget requirement advertised by the resource
server.</t>
          </li>
          <li>
            <t><tt>version_unsupported</tt>: The Budget-Claims field 1 value,
<tt>Delegation-Version</tt> field, or <tt>version</tt> challenge parameter is not supported
by the Verifier.</t>
          </li>
          <li>
            <t><tt>binding_mismatch</tt>: The request target URI, method, origin, or body digest
does not match the signed request-binding values.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="auth-scheme">
      <name>The "Delegation" Authentication Scheme</name>
      <t>The <tt>Delegation</tt> authentication scheme is used in <tt>WWW-Authenticate</tt> and
<tt>Authorization</tt> fields.</t>
      <section anchor="challenge-syntax">
        <name>Challenge Syntax</name>
        <t>The Delegation authentication scheme challenge uses the <tt>auth-param</tt> syntax
defined by <xref target="RFC9110"/>, Section 11.2:</t>
        <sourcecode type="abnf"><![CDATA[
delegation-challenge = "Delegation" 1*SP 1#auth-param
]]></sourcecode>
        <t>The <tt>realm</tt> and <tt>nonce</tt> parameters are <bcp14>REQUIRED</bcp14>.  The <tt>profile</tt> parameter
identifies an acceptable authority profile, such as <tt>budget</tt>.  The
<tt>proof-format</tt> parameter identifies an acceptable proof serialization, such as
<tt>cose-ml-dsa</tt>.  The <tt>alg</tt> parameter identifies one acceptable primary
signature algorithm for the indicated proof format.  A Verifier that accepts
multiple algorithms <bcp14>SHOULD</bcp14> send separate <tt>Delegation</tt> challenges rather than
overloading a single <tt>alg</tt> parameter with a list syntax.  A challenge <bcp14>MUST NOT</bcp14>
contain more than one <tt>alg</tt> parameter.  Authority profiles <bcp14>MAY</bcp14> define
additional challenge parameters; for example, a Budget profile can define
accepted settlement rails while leaving rail semantics out of scope for this
document.</t>
        <t>The <tt>preflight-uri</tt> parameter is <bcp14>OPTIONAL</bcp14>.  When present, it identifies the
preflight endpoint for the challenged protection space.  A profile that
requires preflight for a challenged request <bcp14>SHOULD</bcp14> include <tt>preflight-uri</tt> in
the <tt>Delegation</tt> challenge or advertise the same endpoint through an
authenticated discovery mechanism.  A Problem Details
<tt>authority_requirements.preflight_uri</tt> member can mirror or further explain the
preflight endpoint, but it does not override a <tt>preflight-uri</tt> challenge
parameter.</t>
        <t>The interoperable profile identifier for the authority profile defined in this
document is <tt>budget</tt>.  Deployments <bcp14>MAY</bcp14> use private-use or local profile
identifiers when those identifiers are mapped by authenticated configuration or
discovery metadata to the same Budget claim and verification semantics.  Such
private-use identifiers are deployment-specific and <bcp14>MUST NOT</bcp14> be assumed
interoperable by other implementations unless a future specification registers
or otherwise defines them.</t>
        <t>The <tt>nonce</tt> parameter <bcp14>MUST</bcp14> contain at least 128 bits of unpredictable
entropy and <bcp14>MUST</bcp14> be generated by the Verifier for the protection space
identified by <tt>realm</tt>.  A Verifier <bcp14>MUST</bcp14> accept a nonce at most once.
Replay of a nonce, absence of nonce state, or loss of the replay cache
<bcp14>MUST</bcp14> cause the Verifier to reject the request.</t>
        <t>To reduce outstanding-challenge state, Verifiers <bcp14>SHOULD</bcp14> support
self-authenticating nonce constructions.  A self-authenticating nonce contains
unpredictable bytes and integrity-protected metadata such as protection space,
issuance time, key identifier, and policy binding.  The nonce is authenticated
with a server-held secret, for example using an HMAC or AEAD construction, and
<bcp14>MUST NOT</bcp14> reveal that secret to clients.  This construction allows a Verifier to
validate the origin and age of a returned nonce without storing every issued
challenge.  It does not remove the requirement to enforce at-most-once
acceptance; Verifiers still need accepted-nonce replay tracking or an
equivalent replay-detection mechanism until the challenge can no longer be
accepted.</t>
        <t>The <tt>max-age</tt> parameter, when present, is the validity window in seconds
for the challenge parameters and nonce.  It does not extend the
Delegation proof lifetime.  A Verifier <bcp14>MUST</bcp14> reject a Delegation proof
whose nonce is older than <tt>max-age</tt> for the corresponding challenge.  If
<tt>max-age</tt> is omitted, Verifiers <bcp14>SHOULD</bcp14> apply a local default and that
default <bcp14>SHOULD NOT</bcp14> exceed 900 seconds.</t>
      </section>
      <section anchor="credentials-syntax">
        <name>Credentials Syntax</name>
        <sourcecode type="abnf"><![CDATA[
delegation-credentials = "Delegation" 1*SP delegation-token
delegation-token       = token68
]]></sourcecode>
        <t>The credential token carries a base64url-encoded Delegation proof or a
verifier-issued compact Delegation credential derived from a previously
verified proof.  If the encoded proof would exceed practical HTTP field size
limits, the requester <bcp14>MUST NOT</bcp14> assume that the proof can be carried in an HTTP
field.  The Budget <tt>cose-ml-dsa</tt> profile <bcp14>MUST</bcp14> support the preflight flow
defined in <xref target="preflight-flow"/> as the mandatory-to-implement fallback for large
proofs.</t>
        <t>A client <bcp14>MUST NOT</bcp14> reuse a Delegation credential solely because a later request
is in the same realm or protection space.  Delegation credentials are bounded
by their authority profile, nonce, expiry, request binding, and compact
credential replay rules.  A client can reuse a compact Delegation credential
only when the credential's profile explicitly permits that reuse and the
requested operation remains within the credential's verified binding.</t>
        <t>Requesters using the Budget <tt>cose-ml-dsa</tt> profile <bcp14>SHOULD</bcp14> use preflight by
default because ML-DSA-backed COSE envelopes are large before base64url
expansion and can exceed field-size limits enforced by intermediaries.
<xref target="RFC9958"/> describes the larger key, ciphertext, and signature sizes of PQC
mechanisms as a protocol-design consideration rather than a transparent
algorithm rollover.  A deployment profile <bcp14>MAY</bcp14> permit field carriage with
<tt>Authorization: Delegation</tt> only when it defines accepted field-size limits and
failure behavior.  A Verifier <bcp14>MAY</bcp14> reject oversized field-carried credentials
before CBOR or COSE decoding.</t>
        <t>The content of GET and HEAD requests has no generally defined semantics in
HTTP.  The Budget <tt>cose-ml-dsa</tt> profile <bcp14>MUST NOT</bcp14> rely on GET or HEAD request
content for Delegation proof carriage.  When a GET or HEAD request needs a
large Delegation proof, the requester <bcp14>MUST</bcp14> use the preflight flow in
<xref target="preflight-flow"/> or another explicitly negotiated profile that does not
depend on GET or HEAD request content.  This requirement does not mean that
every authenticated GET or HEAD request needs a new preflight exchange:
small credentials that fit within deployment field-size limits, previously
issued compact credentials whose profile explicitly permits the requested use,
or future profile-defined proof-reference mechanisms can avoid the extra
round trip.  The Budget <tt>cose-ml-dsa</tt> profile only makes preflight mandatory to
implement as the fallback when the proof itself is too large for ordinary field
carriage.</t>
        <t>When the protected operation also requires an application request body,
body-carried proof creates a packaging question: the HTTP request has only one
content stream.  The mandatory interoperability fallback for the Budget
<tt>cose-ml-dsa</tt> profile is preflight.  A deployment profile <bcp14>MAY</bcp14> additionally
define a same-request packaging media type, for example a <tt>multipart/related</tt>
or profile-specific envelope, but such a media type is an additional profile
and not the baseline interoperability requirement.  A packaging profile <bcp14>MUST</bcp14>
define how the Delegation proof and the application representation are
cryptographically bound to each other before claiming interoperability.</t>
        <t>In all cases, the Budget profile's request-binding rules in
<xref target="request-binding"/> apply to the protected operation.  A proof body by itself
<bcp14>MUST NOT</bcp14> cause the Verifier to process an unrelated application body unless the
packaging profile defines how the two are cryptographically bound.</t>
      </section>
      <section anchor="preflight-flow">
        <name>Large-Proof Preflight Flow</name>
        <t>The preflight flow separates large-proof carriage from protected request
processing.  It is the mandatory-to-implement fallback for the Budget
<tt>cose-ml-dsa</tt> profile.</t>
        <t>A Delegation challenge response for a profile that supports preflight <bcp14>SHOULD</bcp14>
advertise a preflight URI in the Problem Details <tt>authority_requirements</tt>
object, the <tt>preflight-uri</tt> authentication challenge parameter, or by another
profile-defined discovery mechanism.  A <tt>preflight-uri</tt> challenge parameter
takes precedence over a Problem Details value, and a challenge-specific value
takes precedence over a stable preflight URI learned through discovery.  For
the Budget <tt>cose-ml-dsa</tt> profile, a Verifier that requires preflight for the
challenged request <bcp14>MUST</bcp14> advertise a preflight URI through one of those
mechanisms.  The advertised preflight URI identifies an endpoint that accepts a
Delegation proof but does not perform the protected operation.</t>
        <t>The requester submits the full Delegation proof to the preflight URI using
POST.  The preflight request content type <bcp14>MUST</bcp14> be
<tt>application/delegation-proof+cose</tt> or another media type defined by the
authority profile.  A preflight request <bcp14>MUST</bcp14> be bound to the protected request
by method, origin, target URI, nonce, expiry, and, when the protected request
has content, a representation digest.  The Budget <tt>cose-ml-dsa</tt> profile uses
the target-binding fields defined in <xref target="preflight-target-fields"/> for this
binding.</t>
        <t>The Verifier <bcp14>MUST NOT</bcp14> perform the protected operation while processing the
preflight request.  A successful Budget <tt>cose-ml-dsa</tt> preflight response
returns a compact verifier-issued Delegation credential as described in
<xref target="compact-credential-response"/>.  A future authority profile can define another
proof reference or verifier-issued artifact, but it <bcp14>MUST</bcp14> provide equivalent
target binding, expiry, and replay protection before claiming interoperability.
The interoperability property is that any Verifier responsible for the same
protection space can validate the compact credential and enforce replay policy;
a credential that can only be resolved by the individual node that processed
preflight is not interoperable.</t>
        <t>The requester then sends the protected request using ordinary HTTP semantics.
The protected request carries the compact Delegation credential in
<tt>Authorization: Delegation</tt>.  For GET and HEAD requests, the protected request
does not carry Delegation proof content.  For POST, PUT, PATCH, or other
methods with request content, the protected request content remains the
application representation.</t>
        <t>The Verifier <bcp14>MUST</bcp14> reject the compact Delegation credential if the method,
origin, target URI, nonce, expiry, or representation digest observed on the
protected request differs from the binding verified during preflight.  The
Verifier <bcp14>MUST</bcp14> enforce at-most-once acceptance for credentials that authorize a
non-idempotent protected operation.  For a compact credential issued by
preflight, the Verifier <bcp14>MUST</bcp14> atomically consume the proof nonce when issuing
the compact credential or otherwise ensure that repeated preflight requests
with the same proof nonce cannot mint multiple credentials for a
non-idempotent operation.  The final protected request then consumes the
compact credential replay key as described in <xref target="compact-credential-response"/>.</t>
      </section>
      <section anchor="preflight-target-fields">
        <name>Preflight Target Binding Fields</name>
        <t>The Budget <tt>cose-ml-dsa</tt> preflight request uses the following HTTP fields to
identify the protected request to which the full Delegation proof is being
bound.  These fields are Structured Fields <xref target="RFC9651"/>.</t>
        <dl>
          <dt><tt>Delegation-Target-Method</tt>:</dt>
          <dd>
            <t>The HTTP method token of the protected request.  HTTP method tokens are
case-sensitive; the Verifier <bcp14>MUST</bcp14> compare this field using the exact method
token that will be used for the protected request.  The field value is a
Structured Field Item whose bare item is a String.  This comparison is
aligned with the HTTP Message Signatures <tt>@method</tt> derived component.</t>
          </dd>
          <dt><tt>Delegation-Target-URI</tt>:</dt>
          <dd>
            <t>The absolute URI of the protected request target as reconstructed by the
Verifier after applying only trusted origin or reverse-proxy configuration.
The field value is a Structured Field Item whose bare item is a String.  The
Verifier <bcp14>MUST</bcp14> derive scheme and authority from connection context, origin
configuration, or explicitly trusted gateway metadata.  It <bcp14>MUST</bcp14> ignore
untrusted <tt>Forwarded</tt>, <tt>X-Forwarded-*</tt>, or similar fields when reconstructing
the target URI.  The Verifier <bcp14>MUST</bcp14> reject a preflight request whose target
URI cannot be reconstructed deterministically, is outside the authority scope
of the challenged resource, or uses a request-target form such as CONNECT
authority-form or OPTIONS asterisk-form that is not defined by the authority
profile.  This comparison is aligned with the HTTP Message Signatures
<tt>@target-uri</tt> derived component.</t>
          </dd>
          <dt><tt>Delegation-Target-Content-Digest</tt>:</dt>
          <dd>
            <t>The digest of the protected request content, using the Digest Fields syntax
defined by <xref target="RFC9530"/>.  The field value is a Structured Field Dictionary.
The Budget <tt>cose-ml-dsa</tt> profile <bcp14>MUST</bcp14> support <tt>sha-256</tt>.  This field is
<bcp14>REQUIRED</bcp14> when the protected request has content.  If the protected request
has no content, this field <bcp14>MAY</bcp14> be omitted; if it is present for a no-content
request, it <bcp14>MUST</bcp14> be the digest of the empty content.  When the protected
request carries <tt>Content-Digest</tt>, the Verifier <bcp14>MUST</bcp14> reject the protected
request if the <tt>Content-Digest</tt> value is inconsistent with the digest
accepted during preflight.</t>
          </dd>
        </dl>
        <t>The Verifier <bcp14>MUST</bcp14> reject the preflight request if any required target-binding
field is absent, malformed, ambiguous, inconsistent with the challenged
resource, or inconsistent with the request-binding claims in the Delegation
proof.  The Verifier <bcp14>MUST</bcp14> reject the later protected request if its observed
method, effective request URI, or content digest differs from the target
accepted during preflight.</t>
      </section>
      <section anchor="compact-credential-response">
        <name>Compact Credential Response</name>
        <t>A successful Budget <tt>cose-ml-dsa</tt> preflight response <bcp14>SHOULD</bcp14> use 200 (OK).  A
deployment <bcp14>MAY</bcp14> use 201 (Created) when it exposes a distinct resource URI for
the issued credential.  The response <bcp14>MUST</bcp14> include <tt>Cache-Control: no-store</tt> and
<bcp14>MUST NOT</bcp14> be interpreted as a settlement signal, a payment receipt, or evidence
of revenue.</t>
        <t>The response body <bcp14>MUST</bcp14> be a JSON object containing these members:</t>
        <dl>
          <dt><tt>credential_type</tt>:</dt>
          <dd>
            <t>The string <tt>delegation-compact</tt>.</t>
          </dd>
          <dt><tt>credential</tt>:</dt>
          <dd>
            <t>An opaque <tt>token68</tt> compact Delegation credential.  The credential syntax is
implementation-specific; clients <bcp14>MUST</bcp14> treat it as opaque.</t>
          </dd>
          <dt><tt>authorization</tt>:</dt>
          <dd>
            <t>A convenience string equal to <tt>Delegation </tt> followed by the <tt>credential</tt>
value.  The client <bcp14>MAY</bcp14> copy it directly into the protected request's
<tt>Authorization</tt> field.</t>
          </dd>
          <dt><tt>expires_in</tt>:</dt>
          <dd>
            <t>The remaining credential lifetime in seconds, expressed as a non-negative
integer.  The compact credential lifetime <bcp14>MUST NOT</bcp14> exceed the challenge
window or the underlying Delegation proof lifetime.</t>
          </dd>
          <dt><tt>target</tt>:</dt>
          <dd>
            <t>A JSON object restating the accepted protected-request binding.  It <bcp14>MUST</bcp14>
include <tt>method</tt> and <tt>uri</tt>.  It <bcp14>MUST</bcp14> include <tt>content_digest</tt> when the
protected request content digest was part of the preflight binding.  The
<tt>content_digest</tt> value uses the Digest Fields syntax defined by <xref target="RFC9530"/>.</t>
          </dd>
        </dl>
        <t>A successful preflight response <bcp14>MUST NOT</bcp14> be interpreted as a settlement signal,
a payment receipt, or evidence of revenue.  Profiles or deployments can include
additional metadata in the response body, but such metadata does not change the
Delegation authorization semantics unless a future specification defines that
behavior.</t>
        <t>A compact Delegation credential <bcp14>MUST</bcp14> be integrity protected by the Verifier and
bound to the verified proof, issuer and requester identifiers when available,
method, origin, target URI, representation digest when present, nonce, expiry,
and local authority requirements.  The Budget <tt>cose-ml-dsa</tt> profile <bcp14>MUST NOT</bcp14>
depend on node-local preflight state that is unavailable to another Verifier in
the same protection space.  Implementations <bcp14>SHOULD</bcp14> use a self-authenticating
compact credential, such as an opaque verifier-protected token whose contents
are integrity protected and confidential from clients when necessary.  A
deployment <bcp14>MAY</bcp14> instead use a server-side credential handle only when lookup,
validation, and consumption state is consistently available to all Verifiers
that can receive the protected request.  A Verifier <bcp14>MUST</bcp14> fail closed if it
cannot validate, look up, or consume the compact credential and its replay
state.  A compact Delegation credential that authorizes a non-idempotent
protected operation <bcp14>MUST</bcp14> be accepted at most once.</t>
        <t>Replay tracking for compact Delegation credentials is based on a
Verifier-selected replay key, not on a client-interpretable token format.  A
self-authenticating compact credential <bcp14>SHOULD</bcp14> contain or yield an
integrity-protected credential identifier suitable for replay tracking and <bcp14>MAY</bcp14>
also bind the challenge nonce used to obtain the credential.  If no separate
credential identifier is available to verifier logic, the Verifier <bcp14>MAY</bcp14> derive
the replay key from a cryptographic hash of the received compact credential,
the protection space, and the accepted protected-request binding.  Verifiers
<bcp14>MUST NOT</bcp14> rely on a client-supplied, unauthenticated identifier for replay
tracking.  For non-idempotent protected operations, replay-state unavailability
or an inability to atomically consume the replay key is a validation failure.</t>
      </section>
      <section anchor="delegation-proof-field">
        <name>Multi-Scheme Composition and the Delegation-Proof Field</name>
        <t>The <tt>Delegation-Proof</tt> field carries a Delegation proof when the request
already uses <tt>Authorization</tt> for another origin-server credential or when a
deployment wants delegated authority to be visibly additive to another
authentication scheme.</t>
        <t>The field value is a Structured Field Item <xref target="RFC9651"/> whose bare item is a
Byte Sequence containing a COSE/CBOR Delegation proof.</t>
        <sourcecode type="http-message"><![CDATA[
Delegation-Proof: :2BhA...base64-cose...kQ:
]]></sourcecode>
        <t>If both <tt>Authorization: Delegation</tt> and <tt>Delegation-Proof</tt> are present, the
Verifier <bcp14>MUST</bcp14> reject the request unless a deployment profile explicitly
defines how the two credentials compose.  This avoids ambiguity about which
signed authority object is authoritative.</t>
        <t>The <tt>Authorization</tt> field <bcp14>MUST NOT</bcp14> be used to concatenate a non-Delegation
credential and a Delegation credential into a single field value unless a future
HTTP authentication scheme explicitly defines such composition.  When identity
authentication uses <tt>Authorization</tt>, delegated authority <bcp14>SHOULD</bcp14> be carried in
the request body for the <tt>cose-ml-dsa</tt> profile or, for bounded low-footprint
deployments, in the <tt>Delegation-Proof</tt> field.</t>
        <t>When a request carries both an identity credential and a Delegation proof, the
Verifier <bcp14>MUST</bcp14> evaluate the identity authentication layer and the delegated
authority layer independently.  Failure of the identity authentication layer is
handled according to that authentication scheme, typically with 401 or 403.
Failure of the delegated authority layer is handled with the 401/403 response
semantics defined in <xref target="challenge-responses"/>.</t>
        <t>Responses whose selected representation, protected processing, or authorization
decision depends on a <tt>Delegation-Proof</tt> field are sensitive to a credential
field that is not the <tt>Authorization</tt> field.  Unless the response is otherwise
safe for shared caching, an origin server or origin-authorized gateway <bcp14>SHOULD</bcp14>
send <tt>Cache-Control: no-store</tt> or <tt>Cache-Control: private</tt>.  If a response to a
request carrying <tt>Delegation-Proof</tt> is intentionally cacheable, the response
<bcp14>MUST</bcp14> make the cache key explicit, for example by including <tt>Vary:
Delegation-Proof</tt> and any other Delegation request fields that affect response
selection.  Challenge responses and preflight responses remain subject to the
<tt>Cache-Control: no-store</tt> requirements in <xref target="challenge-responses"/> and
<xref target="compact-credential-response"/>.</t>
        <t>The <tt>Delegation-Proof</tt> field is not the general-purpose carriage path for
multi-kilobyte post-quantum attestations.  Implementations of the
<tt>cose-ml-dsa</tt> profile <bcp14>MUST</bcp14> support body carriage with media type
<tt>application/delegation-proof+cose</tt> or a profile-defined media type.  A
deployment profile <bcp14>MAY</bcp14> permit <tt>Delegation-Proof</tt> field carriage only when it
defines accepted field-size limits and failure behavior.  If the target request
also needs an unrelated representation body, that packaging profile <bcp14>MUST</bcp14> define
how the Delegation proof and application representation are bound to each
other.</t>
        <t>The interoperable media type for body-carried Delegation proofs defined by
this document is <tt>application/delegation-proof+cose</tt>.  Earlier or local media
types, including Budget-specific deployment aliases, are implementation
experience and <bcp14>MUST NOT</bcp14> be assumed interoperable unless separately specified or
registered.</t>
      </section>
    </section>
    <section anchor="budget-envelope">
      <name>Budget Authority Profile: Budget-Attestation Envelope</name>
      <t>The Budget authority profile defines a Budget-Attestation envelope as a COSE
object <xref target="RFC9052"/> carrying a CBOR claims set.  The claims set is encoded using
deterministic CBOR <xref target="RFC8949"/>.  The notation below uses CDDL <xref target="RFC8610"/>.
Encoders <bcp14>MUST</bcp14> follow the core deterministic
encoding requirements of <xref target="RFC8949"/>, Section 4.2.1.  Verifiers <bcp14>MUST</bcp14> reject
non-deterministic encodings and <bcp14>MUST</bcp14> verify signatures over the exact received
deterministic encoding, not over a locally reserialized variant.  This document
defines the <tt>cose-ml-dsa</tt> Budget profile using integer-labeled CBOR claims to
avoid a drift-prone translation between text claim names and signed bytes.
The text names in comments below are descriptive only and are not encoded.</t>
      <t>For this profile, the Delegation proof is a COSE_Sign1 object carrying the
deterministically encoded Budget-Claims map as its payload.  A COSE_Sign1
object can be encoded with COSE tag 18 or as the untagged four-element
COSE_Sign1 array; Verifiers <bcp14>SHOULD</bcp14> accept both forms and Issuers <bcp14>SHOULD</bcp14> send
the tagged form unless a deployment profile says otherwise.  The protected
header map <bcp14>MUST</bcp14> contain the algorithm header parameter and a content type
identifying the Delegation proof payload.  When multiple issuer keys are
available, the protected header map <bcp14>MUST</bcp14> contain a <tt>kid</tt> value identifying the
Issuer key.  The algorithm and <tt>kid</tt> header parameters <bcp14>MUST NOT</bcp14> appear in the
unprotected header map.  The unprotected header map <bcp14>SHOULD</bcp14> be empty; if it is
not empty, Verifiers <bcp14>MUST</bcp14> ignore or reject unrecognized unprotected header
parameters according to local policy and <bcp14>MUST NOT</bcp14> let unprotected parameters
change signature, key-selection, request-binding, or authority semantics.  A
<tt>crit</tt> protected header parameter, when present, <bcp14>MUST</bcp14> be understood by the
Verifier before the proof is accepted.</t>
      <t>The signature input is the COSE_Sign1 Sig_structure defined by <xref target="RFC9052"/>,
using context string <tt>Signature1</tt>, the encoded protected header bstr, an empty
external_aad bstr unless a future profile defines another value, and the exact
Budget-Claims payload bstr received by the Verifier.  Verifiers <bcp14>MUST</bcp14> reject
proofs whose payload bstr does not decode to a deterministic Budget-Claims map
or whose protected header bstr is not deterministically encoded.</t>
      <sourcecode type="cddl"><![CDATA[
Budget-Claims = {
  1  => uint,                ; version
  2  => tstr,                ; issuer identifier
  3  => tstr,                ; delegated requester identifier
  4  => tstr,                ; authorized budget total or limit
  5  => tstr,                ; remaining budget
  6  => tstr,                ; currency or metered-unit identifier
  7  => [+ tstr],            ; permitted rails/actions/classes
  8  => uint,                ; issued-at ms since Unix epoch
  9  => uint,                ; expires-at ms since Unix epoch
  10 => bstr .size (16..64), ; nonce from the Delegation challenge
  11 => bstr,                ; authorization chain or caveat proof
  12 => bstr .size 32,       ; representation/envelope/body digest
  13 => tstr,                ; verifier or merchant binding
  ? 14 => Request-Binding    ; signed request binding
}

Request-Binding = {
  "method"  => tstr,
  "uri-h"   => bstr .size 32,
  "origin"  => tstr,
  ? "body-h" => bstr .size 32
}

Channel-Binding = {
  "type"  => tstr,
  "value" => bstr
}
]]></sourcecode>
      <t>Fields 4 and 5 carry decimal string values rather than binary floating-point
numbers.  A Verifier <bcp14>MUST</bcp14> interpret them according to the authority profile's
currency or metered-unit policy and <bcp14>MUST</bcp14> reject values it cannot parse
unambiguously.  A Delegation challenge response using the Budget profile can
advertise a minimum budget, unit requirement, or action requirement in its
Problem Details body; that response member is an input to client policy and
does not become authoritative unless it is reflected in the signed claims.</t>
      <t>Field 11 is a profile-defined authorization chain or caveat proof.  Deployments
<bcp14>MUST</bcp14> specify the syntax and verification rules for this field before using it
for interoperability.  Field 12 is a SHA-256 digest slot used by deployments to
bind an application representation, envelope, or body-digest object.  A
Verifier <bcp14>MUST NOT</bcp14> infer that field 12 protects an application body unless the
deployment profile specifies exactly what bytes were hashed.</t>
      <t>Field 14, when present, carries a signed <tt>Request-Binding</tt> structure.  A
Budget-Attestation that is intended to authorize only one specific protected
request <bcp14>MUST</bcp14> include field 14 or another profile-defined signed request-binding
claim.  When field 14 is absent, the Budget-Attestation is authority for the
class of actions and bounds expressed by its other claims; a Verifier can still
issue a compact credential bound to one protected request after preflight, but
it <bcp14>MUST NOT</bcp14> describe that original Budget-Attestation as issuer-bound to that
specific HTTP target.</t>
      <t>The <tt>Channel-Binding</tt> structure above is a logical structure for profile
extensions.  It is not part of the integer-labeled Budget-Claims map unless a
future revision assigns a claim label for it.  It is included here to define
semantics that a companion profile can bind to without changing the core
Delegation challenge model.</t>
      <section anchor="request-binding">
        <name>Request-Binding Canonicalization</name>
        <t>When a Budget-Attestation is bound to a bearing HTTP request, the Issuer and
Verifier <bcp14>MUST</bcp14> use the same canonical request components:</t>
        <ul spacing="normal">
          <li>
            <t><tt>method</tt> is the HTTP method token as received by the origin server.  HTTP
method tokens are case-sensitive; Verifiers <bcp14>MUST NOT</bcp14> case-normalize this
value before comparison.</t>
          </li>
          <li>
            <t><tt>origin</tt> is <tt>scheme "://" authority</tt> for the effective request URI as
reconstructed by the Verifier after applying only trusted origin,
gateway, or reverse-proxy configuration.  The scheme and host are serialized
in lowercase.  A default port for the scheme is omitted; a non-default port
is included.  Verifiers <bcp14>MUST NOT</bcp14> use untrusted <tt>Forwarded</tt>,
<tt>X-Forwarded-*</tt>, or similar fields when reconstructing the origin.</t>
          </li>
          <li>
            <t><tt>uri-h</tt> is SHA-256 over the UTF-8 serialization of the origin-form target:
the path-abempty component followed by <tt>"?"</tt> and the query component when a
query is present.  Verifiers <bcp14>MUST NOT</bcp14> reorder query parameters,
percent-decode and re-encode octets, remove dot segments, or otherwise
transform the target before hashing.  Verifiers <bcp14>MUST</bcp14> reject target forms
they cannot bind deterministically, including CONNECT authority-form and
OPTIONS asterisk-form unless a profile explicitly defines those cases.</t>
          </li>
          <li>
            <t><tt>body-h</tt>, when used, is SHA-256 over the HTTP request content bytes after
transfer-coding removal and before application parsing or content-coding
transformation.  If a request has no content, <tt>body-h</tt> <bcp14>SHOULD</bcp14> be omitted; if
it is present, it <bcp14>MUST</bcp14> be the SHA-256 digest of the empty octet string.</t>
          </li>
        </ul>
        <t>If the Verifier cannot reconstruct these components deterministically, it <bcp14>MUST</bcp14>
reject the Delegation proof rather than process the request under an
ambiguous binding.</t>
        <t>A future profile extension can bind an attestation to an external
channel-binding value such as a TLS exporter using a structure with the
semantics of <tt>Channel-Binding</tt> above.  This document defines the
channel-binding semantics but does not assign a Budget-Claims label or define
mandatory channel-binding types.  A Verifier that implements such an extension
<bcp14>MUST</bcp14> reject a channel-binding value whose <tt>type</tt> it does not understand or
whose <tt>value</tt> does not match the locally computed channel-binding value for
that type.</t>
      </section>
      <section anchor="primary-signature">
        <name>Primary Signature</name>
        <t>Every Budget-Attestation <bcp14>MUST</bcp14> contain exactly one primary Issuer
signature.  The primary signature <bcp14>MUST</bcp14> use an ML-DSA algorithm identifier
registered for JOSE or COSE by <xref target="RFC9964"/>.</t>
        <t>The Delegation authentication scheme is algorithm-agile.  The Budget
<tt>cose-ml-dsa</tt> profile defined by this document has the following
interoperability requirements:</t>
        <ul spacing="normal">
          <li>
            <t>Implementations of this profile <bcp14>MUST</bcp14> support ML-DSA-65.</t>
          </li>
          <li>
            <t>Implementations <bcp14>MAY</bcp14> support ML-DSA-87.</t>
          </li>
          <li>
            <t>Deployments <bcp14>MAY</bcp14> require ML-DSA-87 or another registered algorithm by local
policy.</t>
          </li>
          <li>
            <t>Verifiers <bcp14>MUST</bcp14> validate that the signed protected-header algorithm matches
local policy and <bcp14>MUST</bcp14> reject algorithm downgrades.</t>
          </li>
        </ul>
        <t>Future documents can define additional authority profiles or proof formats
using other COSE or JOSE algorithm identifiers without changing the semantics
of the Delegation authentication scheme.</t>
      </section>
      <section anchor="issuer-key-discovery-and-trust">
        <name>Issuer Key Discovery and Trust</name>
        <t>A Verifier <bcp14>MUST</bcp14> establish trust in an Issuer public key before accepting
a Budget-Attestation signed by that key.  Trust can be established through
local configuration, an authenticated out-of-band agreement, or an
issuer-controlled HTTPS key-set endpoint.  A Verifier <bcp14>MUST NOT</bcp14> treat an
untrusted issuer identifier in Budget-Claims field 2 or arbitrary key URL in
an attestation as sufficient authority to trust a key.</t>
        <t>One interoperable deployment profile is an issuer-controlled HTTPS key-set
URI, for example
<tt>https://example.com/.well-known/delegation-issuer-keys</tt>, returning a
COSE_KeySet with media type <tt>application/cose-key-set</tt>.  A Verifier using
this profile <bcp14>MUST</bcp14> authenticate the HTTPS origin, <bcp14>MUST</bcp14> require each accepted
key to carry a key identifier usable as <tt>kid</tt>, <bcp14>MUST</bcp14> bind each key to the
expected issuer and algorithm policy, and <bcp14>MUST</bcp14> reject the request if the key
set is unavailable or omits the referenced key.  Cached key material <bcp14>MUST NOT</bcp14>
be used beyond its authenticated freshness lifetime.  Key rotation <bcp14>SHOULD</bcp14>
provide overlap between old and new keys for already-issued attestations.</t>
        <t>Deployments that implemented earlier Budget-specific discovery names <bcp14>MAY</bcp14> retain
those names as aliases, but the Delegation discovery name above is the
interoperable endpoint name for this revision.</t>
        <t>Implementation-specific JSON key-set formats <bcp14>MAY</bcp14> be used by deployments during
migration, but such formats are not the interoperable key-discovery profile
defined by this document unless a future revision specifies their media type,
schema, and security processing rules.  Deployments that publish JSON transition
metadata <bcp14>SHOULD</bcp14> include enough information to map each public key to the
corresponding RFC 9964 JOSE or COSE algorithm identifier and <bcp14>MUST NOT</bcp14> publish
private AKP <tt>priv</tt> seed material.  COSE key parameters or labels that are not
registered for interoperable use are private-use deployment metadata; a key-set
that depends on such labels is not an interoperable key-discovery profile
unless a companion specification defines those labels and their validation
rules.</t>
      </section>
      <section anchor="rail-keyed">
        <name>Optional Rail-Keyed Signature</name>
        <t>A Budget-Attestation <bcp14>MAY</bcp14> contain an additional rail-keyed signature.  A
rail-keyed signature <bcp14>MUST NOT</bcp14> replace the primary Issuer signature and
<bcp14>MUST NOT</bcp14> be accepted when the primary signature fails.</t>
        <t>When a deployment uses SLH-DSA for rail-keyed signatures, it <bcp14>SHOULD</bcp14> use
the JOSE or COSE serializations defined by
<xref target="I-D.ietf-cose-sphincs-plus"/> once those registrations are available.
Until then, private-use algorithm identifiers <bcp14>MUST</bcp14> be treated as
deployment-specific and <bcp14>MUST NOT</bcp14> be advertised as interoperable.</t>
        <t>Because SLH-DSA signatures can be tens of kilobytes, an attestation that
contains a rail-keyed SLH-DSA signature <bcp14>MUST</bcp14> be carried in a request body
using <tt>application/delegation-proof+cose</tt> or a profile-defined media type
rather than in an HTTP field.</t>
      </section>
      <section anchor="verification">
        <name>Verification</name>
        <t>A Verifier processing a Budget-Attestation <bcp14>MUST</bcp14>:</t>
        <ol spacing="normal" type="1"><li>
            <t>Decode the CBOR envelope and reject non-deterministic or malformed
encodings.</t>
          </li>
          <li>
            <t>Verify that Budget-Claims field 1 is supported.</t>
          </li>
          <li>
            <t>Verify the primary signature against an Issuer key authorized for the
issuer and <tt>kid</tt>.</t>
          </li>
          <li>
            <t>Verify Budget-Claims fields 8 and 9, clock skew, and maximum lifetime.
Verifiers <bcp14>MUST</bcp14> reject attestations where field 9 minus field 8 exceeds 900
seconds and <bcp14>SHOULD</bcp14> apply no more than 60 seconds of clock-skew tolerance
unless local policy is stricter.  Issuers and Verifiers <bcp14>SHOULD</bcp14> synchronize
clocks using an authenticated time source suitable for the deployment.</t>
          </li>
          <li>
            <t>Verify that Budget-Claims field 10 matches a live challenge and has not
been used before.</t>
          </li>
          <li>
            <t>Verify request binding against the bearing request when the attestation
includes Budget-Claims field 14 or another profile-defined signed
request-binding claim, including method, origin, target URI hash, and body
hash when present.  If no signed request-binding claim is present, the
Verifier <bcp14>MUST</bcp14> enforce the action, resource-class, verifier binding, and
preflight compact-credential binding needed by local policy before
processing the protected request.</t>
          </li>
          <li>
            <t>Verify rail, action, or resource-class policy when Budget-Claims field 7 is
present.</t>
          </li>
          <li>
            <t>Verify any rail-keyed signature required by local policy.</t>
          </li>
        </ol>
        <t>Failure at any step <bcp14>MUST</bcp14> cause the Verifier to reject the request.</t>
      </section>
    </section>
    <section anchor="versioning">
      <name>Versioning</name>
      <t>This document defines version 1 of the Delegation authentication scheme and the
initial Budget authority profile.  A Delegation challenge response <bcp14>MUST</bcp14> include
a <tt>Delegation-Version</tt> response field containing a Structured Field Integer
<xref target="RFC9651"/>.  A <tt>Delegation</tt> challenge <bcp14>SHOULD</bcp14> also include a <tt>version</tt>
auth-param when the Verifier supports more than one version or expects clients
to use a specific version.  When both <tt>Delegation-Version</tt> and a <tt>version</tt>
auth-param are present in the same challenge response, they <bcp14>MUST</bcp14> identify the
same Delegation authentication-scheme version.  A client that receives
conflicting values <bcp14>MUST</bcp14> treat the challenge as unsupported.</t>
      <t>A client that receives an unknown <tt>Delegation-Version</tt> value or <tt>version</tt>
challenge parameter <bcp14>MUST NOT</bcp14> guess at wire compatibility.  It <bcp14>MAY</bcp14> retry using a
version it supports only when the server advertises that version through local
policy or a future version-negotiation mechanism.  The Delegation
authentication-scheme version is distinct from Budget-Claims field 1, which is
the Budget profile/envelope version.  A server that receives a Delegation
credential or <tt>Delegation-Version</tt> request value for an unsupported version
<bcp14>MUST</bcp14> reject the request using <xref target="challenge-responses"/> and a
<tt>version_unsupported</tt> reason code, unless a future revision defines a different
upgrade response.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This section follows the guidance in <xref target="RFC8126"/> and <xref target="RFC9205"/>.  The requested
registrations use the existing HTTP and media-type registries.</t>
      <section anchor="http-status-code">
        <name>HTTP Status Code</name>
        <t>This revision does not request a new HTTP status-code registration.  The
dedicated <tt>4NN Delegated Authority Required</tt> design question is tracked in
<xref target="status-code-question"/>.</t>
      </section>
      <section anchor="http-authentication-scheme">
        <name>HTTP Authentication Scheme</name>
        <t>IANA is asked to register the following entry in the "Hypertext Transfer
Protocol (HTTP) Authentication Scheme Registry" defined by <xref target="RFC9110"/>:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Authentication Scheme Name</th>
              <th align="left">Reference</th>
              <th align="left">Notes</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Delegation</td>
              <td align="left">This document, <xref target="auth-scheme"/></td>
              <td align="left">Origin-server authentication using <tt>WWW-Authenticate</tt> and <tt>Authorization</tt>; not defined for proxy authentication</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="http-field-name">
        <name>HTTP Field Name</name>
        <t>IANA is asked to register the following entry in the "Hypertext Transfer
Protocol (HTTP) Field Name Registry":</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field Name</th>
              <th align="left">Status</th>
              <th align="left">Structured Type</th>
              <th align="left">Reference</th>
              <th align="left">Comments</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Delegation-Version</td>
              <td align="left">permanent</td>
              <td align="left">Item</td>
              <td align="left">This document, <xref target="versioning"/></td>
              <td align="left">Integer item identifying the Delegation authentication-scheme version</td>
            </tr>
            <tr>
              <td align="left">Delegation-Proof</td>
              <td align="left">permanent</td>
              <td align="left">Item</td>
              <td align="left">This document, <xref target="delegation-proof-field"/></td>
              <td align="left">Byte Sequence item carrying a Delegation proof when <tt>Authorization</tt> is used by another origin-server scheme</td>
            </tr>
            <tr>
              <td align="left">Delegation-Target-Method</td>
              <td align="left">permanent</td>
              <td align="left">Item</td>
              <td align="left">This document, <xref target="preflight-target-fields"/></td>
              <td align="left">String item identifying the protected request method for Delegation preflight target binding</td>
            </tr>
            <tr>
              <td align="left">Delegation-Target-URI</td>
              <td align="left">permanent</td>
              <td align="left">Item</td>
              <td align="left">This document, <xref target="preflight-target-fields"/></td>
              <td align="left">String item identifying the protected request target URI for Delegation preflight target binding</td>
            </tr>
            <tr>
              <td align="left">Delegation-Target-Content-Digest</td>
              <td align="left">permanent</td>
              <td align="left">Dictionary</td>
              <td align="left">This document, <xref target="preflight-target-fields"/></td>
              <td align="left">Digest Fields dictionary identifying the protected request content digest for Delegation preflight target binding</td>
            </tr>
          </tbody>
        </table>
        <t>This revision does not request creation of a Delegation error-token registry.
The <tt>reason</tt> values in <xref target="delegation-error-tokens"/> are defined for this
authentication scheme and its initial Budget authority profile.  A future
revision can request a registry if multiple independent extensions need a
shared token namespace.</t>
      </section>
      <section anchor="media-type">
        <name>Media Type</name>
        <t>IANA is asked to register the following media type in the "Media Types"
registry using the template from <xref target="RFC6838"/>:</t>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>delegation-proof+cose</t>
          </dd>
          <dt>Required parameters:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Optional parameters:</dt>
          <dd>
            <t><tt>cose-type</tt>, with the same semantics as the <tt>cose-type</tt> parameter for
<tt>application/cose</tt> in <xref target="RFC9052"/>.</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>See <xref target="security"/>.</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>Implementations need to support COSE processing, deterministic CBOR, and
the algorithm identifiers profiled by this document.</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>This document.</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>HTTP clients, gateways, and origin servers that exchange Delegation proofs,
including Budget-Attestation envelopes under the Budget authority profile.</t>
          </dd>
          <dt>Fragment identifier considerations:</dt>
          <dd>
            <t>This media type does not support fragment identifiers.</t>
          </dd>
          <dt>Additional information:</dt>
          <dd>
            <t>Deprecated alias names for this type: N/A; Magic number(s): N/A; File
extension(s): N/A; Macintosh file type code(s): N/A.</t>
          </dd>
          <dt>Person &amp; email address to contact for further information:</dt>
          <dd>
            <t>John McGraw, j.mcgraw@taskhawktech.com</t>
          </dd>
          <dt>Intended usage:</dt>
          <dd>
            <t>COMMON</t>
          </dd>
          <dt>Restrictions on usage:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Author:</dt>
          <dd>
            <t>John McGraw</t>
          </dd>
          <dt>Change controller:</dt>
          <dd>
            <t>IESG</t>
          </dd>
          <dt>Provisional registration?</dt>
          <dd>
            <t>No</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>Delegation proofs are bearer credentials until verified.  HTTP exchanges
carrying them <bcp14>MUST</bcp14> use TLS.  Servers <bcp14>SHOULD</bcp14> scrub <tt>Authorization</tt> field values,
<tt>Delegation-Proof</tt> field values, and body-carried Delegation credential values
from logs.</t>
      <t>Deployments that use bearer, DPoP-bound, mutual-TLS-bound, or otherwise
sender-constrained credentials for identity or session authentication <bcp14>MUST</bcp14>
validate those credentials before treating the requester as authenticated.
Sender-constraining an identity or session token does not replace Delegation
nonce validation, request binding, Issuer trust, Budget bounds, or Verifier
policy.  Conversely, a valid Delegation proof does not authorize use of an
unrelated OAuth access token, API key, or other execution credential.</t>
      <t>Verifiers <bcp14>MUST</bcp14> validate every check in <xref target="budget-envelope"/> before
processing the protected request.  Missing keys, unavailable verification
dependencies, malformed CBOR, non-deterministic CBOR, expired
proofs, signature failures, nonce replay, unsupported versions, and
loss of nonce state all require request rejection.</t>
      <t>The COSE or JOSE algorithm identifier is part of the signed protected
metadata.  Verifiers <bcp14>MUST</bcp14> compare it against configured policy and <bcp14>MUST
NOT</bcp14> let a challenge parameter or client preference downgrade the
algorithm.</t>
      <t>The Budget authority profile uses post-quantum digital signatures for
delegated-authority proofs.  It does not define post-quantum key
establishment, confidentiality migration, certificate migration, hybrid key
exchange, or a general post-quantum migration protocol.  Implementers need to
evaluate those surrounding cryptographic migration questions separately; see
<xref target="RFC9958"/> for engineer-facing discussion of PQC migration impacts.
Deployments with long-lived confidentiality or quantum-transition requirements
need to make independent TLS and certificate migration decisions under the
applicable TLS profiles and deployment policy.  This document does not choose
or recommend a TLS key-establishment profile.  Support for a TLS
quantum-transition profile <bcp14>MUST NOT</bcp14> be represented as support for the Budget
<tt>cose-ml-dsa</tt> profile, and support for the Budget profile <bcp14>MUST NOT</bcp14> be
represented as post-quantum transport confidentiality.</t>
      <t>Rail-keyed signatures are additive.  They do not create authority without
a valid primary Issuer signature.</t>
      <t>Key lifecycle is security-critical.  Issuers <bcp14>SHOULD</bcp14> rotate signing keys
on a predictable schedule, publish revocation information through the same
trust channel used for key distribution, and avoid issuing attestations
whose lifetime extends beyond the authenticated lifetime of the signing
key.  Verifiers <bcp14>MUST</bcp14> reject attestations signed by revoked, expired, or
unexpected keys.</t>
      <t>Large post-quantum signatures can create denial-of-service pressure on
HTTP parsers, HTTP field-section processing, and COSE libraries.  ML-DSA-backed
COSE envelopes are commonly too large to assume safe carriage through
general-purpose HTTP fields after base64url expansion.  This is consistent
with the protocol-redesign and constrained-network concerns discussed in
<xref target="RFC9958"/>.  Implementations <bcp14>MUST</bcp14> apply size limits before decoding, <bcp14>MUST</bcp14>
bound CBOR nesting depth and map sizes, and <bcp14>SHOULD</bcp14> reject duplicate or unknown
critical protected parameters before expensive signature verification.
Verifiers that fetch issuer key sets or discovery metadata <bcp14>MUST</bcp14> bound response
sizes, redirect behavior, parsing depth, and cache lifetimes.  They <bcp14>MUST NOT</bcp14>
fetch arbitrary key URLs supplied inside an untrusted proof.</t>
      <t>Verifier nonce state can itself become a resource-exhaustion target.
Verifiers <bcp14>MUST</bcp14> bound the number of outstanding nonces per issuer,
protection space, and client identity signal available to the deployment,
and <bcp14>MUST</bcp14> expire unused nonces no later than their challenge <tt>max-age</tt>.
When nonce state reaches a configured limit, the Verifier <bcp14>MUST</bcp14> reject requests
that depend on an untracked nonce or shed unauthenticated challenge issuance
rather than accept a request with an untracked nonce.
At high scale, deployments <bcp14>SHOULD</bcp14> use self-authenticating nonces as described
in <xref target="auth-scheme"/> so challenge issuance does not require allocating
distributed state for every unauthenticated request.  Such constructions reduce
outstanding-challenge state but do not remove the need for bounded
accepted-nonce replay tracking when at-most-once acceptance is required.</t>
      <t>The Budget authority profile describes channel-binding extension semantics for
deployments that need binding to a particular TLS session or exporter value.
Specific channel-binding types are not mandatory-to-implement in this revision
and need profiling before they can be assumed interoperable.  In the absence of
channel binding, short lifetimes, single-use nonces, request binding, and
replay-cache enforcement are mandatory replay controls.</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>These considerations are informed by the privacy guidance in <xref target="RFC6973"/>.</t>
      <t>Delegation proofs can reveal delegated requester identifiers, principal or
issuer identifiers, requested actions, authority bounds, rail preferences, and
amount limits.  Implementations <bcp14>SHOULD</bcp14> use short lifetimes, random nonces, data
minimization in requester identifiers, and body carriage when field logging by
intermediaries would create avoidable privacy risk.
Issuer and requester identifiers <bcp14>SHOULD</bcp14> be pairwise or otherwise scoped when a
stable global identifier is not required by deployment policy.  Challenge
responses <bcp14>SHOULD</bcp14> reveal only the authority requirements needed for the client
to obtain an acceptable proof.  Public reason tokens and detailed Problem
Details bodies can become policy or issuer-enumeration oracles; deployments
<bcp14>SHOULD</bcp14> rate-limit unauthenticated challenge traffic and avoid returning
unnecessary detail to untrusted clients.  Logs <bcp14>SHOULD</bcp14> redact <tt>Authorization</tt>,
<tt>Delegation-Proof</tt>, body-carried proof bytes, compact credentials, and
preflight target URIs or content digests when those values could reveal
sensitive resources or actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </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="RFC9111">
          <front>
            <title>HTTP Caching</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 defines HTTP caches and the associated header fields that control cache behavior or indicate cacheable response messages.</t>
              <t>This document obsoletes RFC 7234.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="98"/>
          <seriesInfo name="RFC" value="9111"/>
          <seriesInfo name="DOI" value="10.17487/RFC9111"/>
        </reference>
        <reference anchor="RFC9205">
          <front>
            <title>Building Protocols with HTTP</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>Applications often use HTTP as a substrate to create HTTP-based APIs. This document specifies best practices for writing specifications that use HTTP to define new application protocols. It is written primarily to guide IETF efforts to define application protocols using HTTP for deployment on the Internet but might be applicable in other situations.</t>
              <t>This document obsoletes RFC 3205.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="56"/>
          <seriesInfo name="RFC" value="9205"/>
          <seriesInfo name="DOI" value="10.17487/RFC9205"/>
        </reference>
        <reference anchor="RFC9530">
          <front>
            <title>Digest Fields</title>
            <author fullname="R. Polli" initials="R." surname="Polli"/>
            <author fullname="L. Pardue" initials="L." surname="Pardue"/>
            <date month="February" year="2024"/>
            <abstract>
              <t>This document defines HTTP fields that support integrity digests. The Content-Digest field can be used for the integrity of HTTP message content. The Repr-Digest field can be used for the integrity of HTTP representations. Want-Content-Digest and Want-Repr-Digest can be used to indicate a sender's interest and preferences for receiving the respective Integrity fields.</t>
              <t>This document obsoletes RFC 3230 and the Digest and Want-Digest HTTP fields.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9530"/>
          <seriesInfo name="DOI" value="10.17487/RFC9530"/>
        </reference>
        <reference anchor="RFC9457">
          <front>
            <title>Problem Details for HTTP APIs</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="E. Wilde" initials="E." surname="Wilde"/>
            <author fullname="S. Dalal" initials="S." surname="Dalal"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>This document defines a "problem detail" to carry machine-readable details of errors in HTTP response content to avoid the need to define new error response formats for HTTP APIs.</t>
              <t>This document obsoletes RFC 7807.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9457"/>
          <seriesInfo name="DOI" value="10.17487/RFC9457"/>
        </reference>
        <reference anchor="RFC9651">
          <front>
            <title>Structured Field Values for HTTP</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="P-H. Kamp" surname="P-H. Kamp"/>
            <date month="September" year="2024"/>
            <abstract>
              <t>This document describes a set of data types and associated algorithms that are intended to make it easier and safer to define and handle HTTP header and trailer fields, known as "Structured Fields", "Structured Headers", or "Structured Trailers". It is intended for use by specifications of new HTTP fields.</t>
              <t>This document obsoletes RFC 8941.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9651"/>
          <seriesInfo name="DOI" value="10.17487/RFC9651"/>
        </reference>
        <reference anchor="RFC9964">
          <front>
            <title>ML-DSA for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="M. Prorock" initials="M." surname="Prorock"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="May" year="2026"/>
            <abstract>
              <t>This document specifies JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) serializations for the Module-Lattice-Based Digital Signature Standard (ML-DSA), a Post-Quantum Cryptography (PQC) digital signature scheme defined in US NIST FIPS 204.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9964"/>
          <seriesInfo name="DOI" value="10.17487/RFC9964"/>
        </reference>
        <reference anchor="FIPS204" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf">
          <front>
            <title>Module-Lattice-Based Digital Signature Standard</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="FIPS PUB" value="204"/>
          <seriesInfo name="DOI" value="10.6028/NIST.FIPS.204"/>
        </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 anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6973">
          <front>
            <title>Privacy Considerations for Internet Protocols</title>
            <author fullname="A. Cooper" initials="A." surname="Cooper"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="J. Peterson" initials="J." surname="Peterson"/>
            <author fullname="J. Morris" initials="J." surname="Morris"/>
            <author fullname="M. Hansen" initials="M." surname="Hansen"/>
            <author fullname="R. Smith" initials="R." surname="Smith"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document offers guidance for developing privacy considerations for inclusion in protocol specifications. It aims to make designers, implementers, and users of Internet protocols aware of privacy-related design choices. It suggests that whether any individual RFC warrants a specific privacy considerations section will depend on the document's content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6973"/>
          <seriesInfo name="DOI" value="10.17487/RFC6973"/>
        </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="RFC5755">
          <front>
            <title>An Internet Attribute Certificate Profile for Authorization</title>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="January" year="2010"/>
            <abstract>
              <t>This specification defines a profile for the use of X.509 Attribute Certificates in Internet Protocols. Attribute certificates may be used in a wide range of applications and environments covering a broad spectrum of interoperability goals and a broader spectrum of operational and assurance requirements. The goal of this document is to establish a common baseline for generic applications requiring broad interoperability as well as limited special purpose requirements. The profile places emphasis on attribute certificate support for Internet electronic mail, IPsec, and WWW security applications. This document obsoletes RFC 3281. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5755"/>
          <seriesInfo name="DOI" value="10.17487/RFC5755"/>
        </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="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="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="RFC9635">
          <front>
            <title>Grant Negotiation and Authorization Protocol (GNAP)</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="F. Imbault" initials="F." surname="Imbault"/>
            <date month="October" year="2024"/>
            <abstract>
              <t>The Grant Negotiation and Authorization Protocol (GNAP) defines a mechanism for delegating authorization to a piece of software and conveying the results and artifacts of that delegation to the software. This delegation can include access to a set of APIs as well as subject information passed directly to the software.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9635"/>
          <seriesInfo name="DOI" value="10.17487/RFC9635"/>
        </reference>
        <reference anchor="RFC9958">
          <front>
            <title>Post-Quantum Cryptography for Engineers</title>
            <author fullname="A. Banerjee" initials="A." surname="Banerjee"/>
            <author fullname="T. Reddy.K" initials="T." surname="Reddy.K"/>
            <author fullname="D. Schoinianakis" initials="D." surname="Schoinianakis"/>
            <author fullname="T. Hollebeek" initials="T." surname="Hollebeek"/>
            <author fullname="M. Ounsworth" initials="M." surname="Ounsworth"/>
            <date month="June" year="2026"/>
            <abstract>
              <t>The advent of a cryptographically relevant quantum computer (CRQC) would render state-of-the-art, traditional public key algorithms deployed today obsolete, as the mathematical assumptions underpinning their security would no longer hold. To address this, protocols and infrastructure must transition to post-quantum algorithms, which are designed to resist both traditional and quantum attacks. This document explains why engineers need to be aware of and understand post-quantum cryptography (PQC), and it details the impact of CRQCs on existing systems and the challenges involved in transitioning to post-quantum algorithms. Unlike previous cryptographic updates, this shift may require significant protocol redesign due to the unique properties of post-quantum algorithms.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9958"/>
          <seriesInfo name="DOI" value="10.17487/RFC9958"/>
        </reference>
        <reference anchor="I-D.ietf-httpapi-ratelimit-headers">
          <front>
            <title>RateLimit header fields for HTTP</title>
            <author fullname="Roberto Polli" initials="R." surname="Polli">
              <organization>Team Digitale, Italian Government</organization>
            </author>
            <author fullname="Alex Martínez Ruiz" initials="A. M." surname="Ruiz">
              <organization>Red Hat</organization>
            </author>
            <author fullname="Darrel Miller" initials="D." surname="Miller">
              <organization>Microsoft</organization>
            </author>
            <date day="23" month="May" year="2026"/>
            <abstract>
              <t>   This document defines the RateLimit-Policy and RateLimit HTTP header
   fields for servers to advertise their quota policies and the current
   service limits, thereby allowing clients to avoid being throttled.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-httpapi-ratelimit-headers-11"/>
        </reference>
        <reference anchor="I-D.ietf-cose-sphincs-plus">
          <front>
            <title>SLH-DSA for JOSE and COSE</title>
            <author fullname="Michael Prorock" initials="M." surname="Prorock">
              <organization>mesur.io</organization>
            </author>
            <author fullname="Orie Steele" initials="O." surname="Steele">
              <organization>Tradeverifyd</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of the Bundeswehr Munich</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   This document specifies JSON Object Signing and Encryption (JOSE) and
   CBOR Object Signing and Encryption (COSE) serializations for
   Stateless Hash-Based Digital Signature Standard (SLH-DSA), a Post-
   Quantum Cryptography (PQC) digital signature scheme defined in US
   NIST FIPS 205.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-sphincs-plus-09"/>
        </reference>
        <reference anchor="FIPS205" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.205.pdf">
          <front>
            <title>Stateless Hash-Based Digital Signature Standard</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="FIPS PUB" value="205"/>
          <seriesInfo name="DOI" value="10.6028/NIST.FIPS.205"/>
        </reference>
        <reference anchor="X402" target="https://www.x402.org/x402-whitepaper.pdf">
          <front>
            <title>x402: An Open Standard for Internet-Native Payments</title>
            <author>
              <organization>Coinbase, Inc.</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="L402" target="https://github.com/lightninglabs/L402">
          <front>
            <title>L402 Protocol Specification</title>
            <author>
              <organization>Lightning Labs</organization>
            </author>
            <date year="2024"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 1469?>

<section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This appendix follows <xref target="RFC7942"/> and is to be removed before publication
as an RFC.</t>
      <section anchor="kevros">
        <name>Kevros</name>
        <t>TaskHawk Systems operates a Kevros implementation that publishes public
Delegation discovery and health metadata.  The public metadata identifies the
published Datatracker revision as <tt>draft-mcgraw-httpapi-agent-budget-02</tt> and
the local implementation target as <tt>draft-mcgraw-httpapi-agent-budget-03</tt>.
That implementation target includes a draft-03 preview of Delegation preflight
and compact Delegation credentials, while preserving the <tt>-02</tt> publication
boundary.  Kevros records reason-coded audit events and reports
proof-verification, Delegation preflight, compact-credential, rail-observation,
settlement, and revenue signals separately.  Earlier Kevros releases
experimentally emitted 427 Budget challenges; that behavior is implementation
experience for the Budget authority profile only.  It is not a request for
status-code registration and is not required for interoperability with the
401/403 response semantics defined by this document.</t>
        <t>The Kevros compatibility surface exposes a <tt>401</tt>/<tt>403</tt> Delegation response
mode, <tt>Delegation-Version</tt> metadata, <tt>Authorization: Delegation</tt>,
<tt>Delegation-Proof</tt>, JSON <tt>delegation_proof</tt>, and
<tt>application/delegation-proof+cose</tt> carriage for the same Budget profile proof
bytes.  Its public challenge and discovery metadata use the deployment-specific
profile identifier <tt>bounded-authority</tt>, mapped by discovery metadata to the
Budget claim and verification semantics used by this draft-03 preview.  That
local profile identifier is implementation experience only and is not an
interoperable profile identifier defined by this document.  Kevros also
advertises RFC 9964 ML-DSA algorithm identifiers in public metadata while
keeping private key material out of issuer-key discovery.  Its issuer-key
discovery endpoint defaults to JSON transition metadata but returns the
interoperable <tt>application/cose-key-set</tt> representation when requested through
HTTP content negotiation.</t>
        <t>Kevros health metadata can report an operational <tt>enforce_soft</tt> mode for
compatibility and public-discovery lanes.  That health field does not mean that
protected executable requests are processed without authority.  Protected
executable requests still fail closed unless an accepted Delegation credential,
Delegation proof, API key, or other configured execution credential is present.</t>
        <t>Private no-spend proof workflows exist for Budget-Attestation verification, but
each run is evidence only for the specific commit and deployment state under
test.  Public challenge/discovery metadata, Delegation proof verification,
Budget-Attestation verification, rail observation, settlement, and revenue are
separate evidence lanes and are not equivalent.  This document makes no live
verified-use, settlement, or revenue claim.  This appendix is not evidence that
any particular repository checkout or deployed revision currently contains each
draft-03 preview behavior; dated implementation evidence needs to identify the
commit, deployment, probe, and artifact under test.  This implementation is
provided as implementation experience only.</t>
      </section>
    </section>
    <section anchor="changes-since-02">
      <name>Changes Since -02</name>
      <ul spacing="normal">
        <li>
          <t>Made the large-proof preflight flow mandatory to implement for the Budget
<tt>cose-ml-dsa</tt> profile.</t>
        </li>
        <li>
          <t>Specified that the Budget <tt>cose-ml-dsa</tt> profile <bcp14>MUST NOT</bcp14> rely on GET or HEAD
request content for Delegation proof carriage.</t>
        </li>
        <li>
          <t>Defined preflight as the baseline interoperability fallback for large
post-quantum proofs and for operations that also carry an application
representation body.</t>
        </li>
        <li>
          <t>Left same-request <tt>multipart/related</tt> or profile-specific envelopes as
optional packaging profiles rather than the baseline interoperability path.</t>
        </li>
        <li>
          <t>Clarified that a successful preflight returns a compact Delegation credential
bound to method, origin, target URI, nonce, expiry, and representation
digest, while leaving other proof-reference artifacts to future profiles.</t>
        </li>
        <li>
          <t>Defined the <tt>Delegation-Target-Method</tt>, <tt>Delegation-Target-URI</tt>, and
<tt>Delegation-Target-Content-Digest</tt> fields used by the Budget <tt>cose-ml-dsa</tt>
preflight flow.</t>
        </li>
        <li>
          <t>Clarified that those target-binding fields align with HTTP Message
Signatures derived-component semantics and HTTP Digest Fields rather than
replacing message-level signatures.</t>
        </li>
        <li>
          <t>Defined the Budget <tt>cose-ml-dsa</tt> compact credential response shape, including
<tt>credential_type</tt>, opaque <tt>credential</tt>, <tt>authorization</tt> convenience value,
<tt>expires_in</tt>, and <tt>target</tt>, while keeping settlement and revenue semantics
out of the preflight response.</t>
        </li>
        <li>
          <t>Clarified that compact credentials need verifier-portable validation within
the protection space and cannot depend on node-local preflight state.</t>
        </li>
        <li>
          <t>Added an optional signed Request-Binding claim for request-specific Budget
attestations and clarified the difference between issuer-bound request
authority and verifier-bound compact credentials issued after preflight.</t>
        </li>
        <li>
          <t>Tightened origin-authorized verifier scope, target URI reconstruction, cache
behavior for <tt>Delegation-Proof</tt>, preflight URI challenge carriage, IANA field
registration metadata, and security/privacy considerations based on
HTTP-focused review.</t>
        </li>
        <li>
          <t>Clarified that the combined HTTP mechanism plus Budget profile is current
implementation-experience packaging and can be split into companion drafts
for Working Group processing.</t>
        </li>
        <li>
          <t>Added <xref target="RFC9958"/> as an informative reference for post-quantum migration and
large-signature protocol-design considerations.</t>
        </li>
        <li>
          <t>Clarified that the Budget authority profile uses PQC signatures for
delegated-authority proofs but does not define PQC key establishment,
confidentiality migration, certificate migration, hybrid key exchange, or a
general PQC migration protocol.</t>
        </li>
        <li>
          <t>Added DPoP/sender-constrained-token composability text, including the
<tt>Authorization</tt> field composition boundary when <tt>Authorization: DPoP</tt> and
Delegation are both required.</t>
        </li>
        <li>
          <t>Added a neutral transport-security migration note for TLS and certificate
migration, while keeping TLS key establishment separate from the Budget
<tt>cose-ml-dsa</tt> proof profile.</t>
        </li>
        <li>
          <t>Clarified private-use authority-profile identifiers and their relationship to
the interoperable <tt>budget</tt> profile identifier.</t>
        </li>
        <li>
          <t>Updated issuer-key discovery text to use
<tt>/.well-known/delegation-issuer-keys</tt> as the Delegation discovery endpoint
name, while allowing earlier Budget-specific discovery names as aliases.</t>
        </li>
        <li>
          <t>Tightened Kevros implementation-status text to distinguish published draft-02
metadata, local draft-03 preview behavior, operational enforcement health
fields, proof verification, rail observation, settlement, and revenue.</t>
        </li>
      </ul>
    </section>
    <section anchor="changes-since-01">
      <name>Changes Since -01</name>
      <ul spacing="normal">
        <li>
          <t>Refactored the core mechanism from Budget-specific language to the
<tt>Delegation</tt> HTTP authentication scheme for request-bound delegated
authority.</t>
        </li>
        <li>
          <t>Made Budget the initial authority profile rather than the protocol boundary.</t>
        </li>
        <li>
          <t>Replaced core <tt>Budget</tt> challenge examples with <tt>WWW-Authenticate:
Delegation</tt>, <tt>Delegation-Version</tt>, <tt>Delegation-Proof</tt>, and
<tt>authority_requirements</tt>.</t>
        </li>
        <li>
          <t>Made 401 and 403 with <tt>WWW-Authenticate: Delegation</tt> and Problem Details the
baseline response model for delegated-authority challenges.</t>
        </li>
        <li>
          <t>Moved the dedicated status-code question to <tt>4NN Delegated Authority
Required</tt> instead of requesting status-code registration in this revision.</t>
        </li>
        <li>
          <t>Tightened the <tt>alg</tt> challenge parameter to one algorithm per challenge.</t>
        </li>
        <li>
          <t>Kept the COSE/CBOR Budget-Attestation profile separable from the core HTTP
authentication and Problem Details semantics.</t>
        </li>
        <li>
          <t>Replaced explanatory text-claim CDDL with the integer-labeled Budget claims
map used by the initial <tt>cose-ml-dsa</tt> Budget profile.</t>
        </li>
        <li>
          <t>Added request-binding canonicalization rules and called out the packaging
question for large proof bodies plus application request bodies.</t>
        </li>
        <li>
          <t>Clarified that JSON issuer-key discovery formats are transition metadata, not
the interoperable COSE_KeySet profile.</t>
        </li>
      </ul>
    </section>
    <section anchor="changes-since-00">
      <name>Changes Since -00</name>
      <ul spacing="normal">
        <li>
          <t>Removed language implying HTTP 402 semantics are controlled by deployed
payment protocols.</t>
        </li>
        <li>
          <t>Added <xref target="applicability"/> and <xref target="ratelimit-fields"/>.</t>
        </li>
        <li>
          <t>Updated ML-DSA serialization references to <xref target="RFC9964"/> and changed the
initial <tt>cose-ml-dsa</tt> interoperability baseline to ML-DSA-65, with ML-DSA-87
available as a high-assurance deployment policy option.</t>
        </li>
        <li>
          <t>Kept rail-keyed SLH-DSA optional and body-carried.</t>
        </li>
        <li>
          <t>Made body carriage mandatory to implement for the <tt>cose-ml-dsa</tt> profile and
recommended by default for post-quantum Budget-Attestation envelopes.</t>
        </li>
        <li>
          <t>Kept <tt>Authorization: Delegation</tt> and <tt>Delegation-Proof</tt> as explicitly bounded
field-carriage options for deployment profiles that define accepted field
sizes and failure behavior.</t>
        </li>
        <li>
          <t>Added nonce replay, key-distribution, IANA, deterministic-CBOR, and
expanded security text based on review feedback.</t>
        </li>
        <li>
          <t>Aligned the attestation lifetime rule with implementation behavior:
<tt>exp - iat</tt> greater than 900 seconds is a verifier rejection condition.</t>
        </li>
        <li>
          <t>Tightened Implementation Status to separate challenge emission,
Budget-Attestation verification, rail observation, settlement, and revenue.</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9W9+3IbyZUm/n8+Rf3YEdvdMyiKpO7UtG02pe6WrZtFttuz
ExNCASiQZQFVMKpAiiP1PMs+yz7ZnmvmyaoEyPbMbsTPMWNTQCErryfP5Tvf
yfPcXR1n992smdbFsjzOZuti3uXL6cW6uM4vu25VrKq8uCjrLp9sZhdllx/c
d13VLeDZ37ksO78ss+florwouqqps5/Oz99lJ5vuEn5QTfmzs+lluSyzebPO
3pd/35Rtl3/fbOoZPdesq+7GFZPJuoSOhJYc/Li8aNY3x1nbzVzbrctieZy9
fHH+g6tW6+OsW2/a7ujg4OnBkSvgy+Ns75dykhXQ7su6K9d12WXn66JuV826
23PXzfrjxbrZrI6pjyfvXrqP5Q18OjuGUeT0If1RRJ2nj2bcq3JGX3KP9VH6
V7ZaN82cPoO/unKKz8Jf07Jtq/qCvuDZw0/n1aKkj95Dm6+qZdXRv07fnr2g
P/6of7x+lT8/O6E/z1795P8+/f7te3dV1psSu94bVJZ1NytYm19gvPDq7Ef8
Gj5dFtXiOJMF/UNVdvP9Zn3heAg8BVXdHmd/3M9eT3+ExYePsoz3xB+byzp7
V2wW8tUo++N6n76HJo6z86L9+FNx/TE7u2m7ctlmr16d0re6qvoAfTiF+TrO
Ti+L9aLpurK9qhY0HVm2Li9gxo+zv5zwg7BHOlz/n+sK5/Osg+lqs2aenSzL
NawPPVXywP62z1v2Dx286xLeBYtwuT9tlq5u1ktYyiuarPc/nD45PHokfz56
cv+Jfvro8ED/fPrgqfz59ODhkf556B+APw/1z6ODh/rnw/v+gQcPH+ufjx76
Z58+eoB//vDy3dnRAf0Ji1WsYVfwwrTH9+7VV4vVZtLu11Xb7V80V/fwD/zk
Hv7s3puXZ+f7+Nc+tLC/ms25ET6Or5vZZlHmr4oOdm+Zf1+0MGvPq4uqKxbZ
WXVRF91mXeI81rNiPeMl8uuPO4CW8w1tfPjJy7qFljddiXOuv2rphJ3D7NbN
orm4yb7BPn1LDcxggY6zo4OjB/nBE/qkhYUq4QjMG35Flu1h77N3P3+/BwcW
BrEnnz9/+/I4OzzYf3Rw9CQepsOfx2v46Onj+/Ln46cPdIkePn740C/n0/t+
McJyPjjyi/Hovl+4pw9pF7zMn+/jufBSbw3DWeDxzC/LYlau2+ipadOWebu6
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
5aRAElrHki+J8bYcxIDkcslWjnITxnu/3xt7ix8WfW2fFLhSJl+ExLL0FK1L
0F6hw/x08PbgDIFaMkXQmtj3DGgWhuKsgV3VEdqMyLpnWBSovBCkhc3Ix4Gh
G9kTuSjlCO99vOp7+LkY8RMyL1ueoxufB4qiLZX76QNAkqLZT9BEmZJtydH0
jpchlMjAyzlG2qKzG6sdkVUzFiUF1bNRckdEnH/qJxUGejyOfqrgOvFRDJhe
gZnIjFltC+0C4TCX9uSHdtb1iErMPuQy2hRFHYRxTJocRSpZZjbTIBWxp6dG
KYm0VcQC2yeQWCSJZDXNOZNUpSDJk6ssiSAGGTbwLls7T1AfPQjZjK4Y5+0q
wxJ80ve9hWJ7/mJF5deqlA359MSbRx5T1ECi+lQBoZ6dvzqjxLQ1imKh9DeK
iGJkzFUPYxrqNaTN7CrYN+hIaDCi6mJ9JFzbosOwWuJLOrrARdlvlyKwiQpG
PsAqaDKZJJpMFyeCp+eMfYZjSlOLyreIOxiPR7MWfvox/WacKhym8TXcWhuC
Ridfx9mABQcxlFKDS+x5H69zL4iuLqHiRIEItXFYR+ZGWLcJ1aF8BKZfxs8r
PDBjzC1tIhXGYRdCzHSL/hGDUMpC7H3XTx898KCQW6uNUaq5vCkvLjQf/RZ2
0Sir3e7Gy6LHFOJ2cXSy6pbEkYRIYAwdEebtRw/3E79EeEfvwSeP8cF+mR3p
Q3jIWnNmksMiwEi5Sn0mXgxstneVGc4qIcEXQzDAycUJHtqlPUu+1HSwRg+M
/8Gsua4v1tAKeT5Ycun0txGNWMjaGviqWmGe9+XIWgl18Aycyr6i/ZXaiG3a
zvDyxsnFcNv24zMnJsCf4Mp/7ukhcQbOUaVDCd1DWBJFY9VeSjlJriograw2
8NWUQGR6kVJsCPdi0lDxMW1eNokVUsMa+NX3lZ4A0vFq9Tg5imiYqGFvuryZ
5xOunbIujZetdmLpThkchjYlKg5nEm4LxawSzklU6Tg3FtoJqu9vKOOJXVhP
KlAe1oz+//n9K4Tl9m66AiW5L2ccIeB57guaMOfe1n20UMIjJF7B3eN2lBBn
YH9ujGj1Fkwj+WAfxPq9/etyscg/1nAcLIJIGseA8hi1VqT2owuXo/Cwx87K
rg85i/FIJPGkM73iSwx5GUonu+peBTzzmX5yklnmEDWwxisdTj06SMmLXfTq
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

-->

</rfc>
