<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.37 (Ruby 3.2.3) -->


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

]>


<rfc ipr="trust200902" docName="draft-mcgraw-httpapi-agent-budget-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Protocol 427">Protocol 427: An HTTP Budget-Required Status Code with Post-Quantum-Signed Budget Attestations</title>

    <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="May" day="05"/>

    <area>Web and Internet Transport</area>
    <workgroup>HTTPAPI</workgroup>
    <keyword>HTTP</keyword> <keyword>status code</keyword> <keyword>authentication</keyword> <keyword>post-quantum</keyword> <keyword>ML-DSA</keyword> <keyword>SLH-DSA</keyword> <keyword>CBOR</keyword> <keyword>COSE</keyword> <keyword>agentic payments</keyword> <keyword>budget</keyword> <keyword>x402</keyword> <keyword>L402</keyword>

    <abstract>


<?line 94?>

<t>Internet-deployed software agents are increasingly authorized to spend
money, consume metered services, or commit other resources on behalf of
human or organizational principals.  Existing HTTP authentication and
payment patterns conflate two orthogonal concerns: whether the requester
holds a credential at all (the "401" axis), and whether the requester
has been authorized to spend a specific amount through a specific
settlement rail (the "budget" axis).  This document defines the 427
(Budget Required) HTTP status code, the "Budget" HTTP authentication
scheme, a CBOR-encoded Budget-Attestation envelope signed with a
post-quantum digital signature algorithm, and a version-negotiation
mechanism using the existing 426 (Upgrade Required) status code.  The
mandatory primary signature uses ML-DSA-87 (FIPS 204).  An optional
"rail-keyed" signature, computed with a hash-based stateless signature
algorithm, provides cryptographic diversification for settlement-rail
submissions.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-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 112?>

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

<t>Software agents acting on behalf of human or organizational principals
increasingly need to make HTTP requests that may incur cost, consume
metered services, or trigger settlement on a payment rail.  The HTTP
authentication framework <xref target="RFC9110"/> as historically deployed addresses
"who are you" questions through schemes such as Basic, Bearer, and DPoP
<xref target="RFC9449"/>, and the HTTP 402 (Payment Required) status code has been
appropriated by the L402 protocol <xref target="L402"/> and the x402 protocol
<xref target="X402"/> to convey "you must pay before proceeding" semantics.</t>

<t>Neither pattern cleanly captures the question this specification
addresses: "do you hold a recently-issued, cryptographically-attested
authorization to spend up to a stated amount, valid for this request?"
That question is orthogonal to the bearer-credential axis; an agent may
hold a perfectly valid bearer token and still lack any spending
authority, or hold a spending authority and need to present it for any
of several requests across one or more origins.</t>

<t>This document defines:</t>

<t><list style="symbols">
  <t>The 427 (Budget Required) HTTP status code (<xref target="_section-status-code"/>),
used by an origin server or gateway to indicate that a request will
not be processed until the requester presents a valid
Budget-Attestation.</t>
  <t>The "Budget" HTTP authentication scheme
(<xref target="_section-auth-scheme"/>), used in the WWW-Authenticate response
header field of a 427 response and in the Authorization request
header field of subsequent requests.</t>
  <t>The Budget-Attestation envelope (<xref target="_section-envelope"/>), a
CBOR-encoded <xref target="RFC8949"/>, COSE-signed <xref target="RFC9052"/> structure that
carries semantic claims about the issuer, the agent, the bound
request, the permitted settlement rails, and the spending amount.
The envelope's primary signature uses ML-DSA-87 <xref target="FIPS204"/>; an
optional rail-keyed signature (<xref target="_section-rail-keyed"/>) uses any
IETF-registered SLH-DSA <xref target="FIPS205"/> parameter set.</t>
  <t>A version-negotiation mechanism (<xref target="_section-versioning"/>) using a
Protocol-427-Version response field <xref target="RFC9651"/> and the existing
426 (Upgrade Required) status code <xref target="RFC9110"/> for cases in which
the requester presents a Protocol-427 version the origin does not
support.</t>
</list></t>

<section anchor="motivation-and-use-cases"><name>Motivation and Use Cases</name>

<t>A representative scenario is an autonomous research agent that has been
issued, by its operating organization, a cryptographically-attested
allowance of "USD 10 over the next 60 seconds, spendable through any of
{x402, L402, mpp}".  The agent traverses several origins, some of which
require payment.  At each origin requiring payment, the agent presents
the same Budget-Attestation; each origin verifies the attestation and
either processes the request directly or initiates a rail-specific
settlement that consumes from the attested allowance.</t>

<t>The benefits of attesting authority separately from invoking a
settlement rail are: (1) operators retain control over how much an
agent can spend without participating in every transaction; (2)
origins can verify authorization without coupling to any specific
payment rail's protocol; (3) cryptographic agility, including
post-quantum agility, can be applied uniformly to the authorization
layer without modifying any settlement-rail protocol.</t>

</section>
<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?>

<t>The following terms are used throughout this document:</t>

<dl>
  <dt>Operator:</dt>
  <dd>
    <t>An entity that issues Budget-Attestations on behalf of a principal.</t>
  </dd>
  <dt>Agent:</dt>
  <dd>
    <t>An entity that holds and presents Budget-Attestations issued by an
Operator in order to make HTTP requests.</t>
  </dd>
  <dt>Verifier:</dt>
  <dd>
    <t>An origin server, gateway, or intermediary that receives a
Budget-Attestation, validates its signatures, and decides whether to
process the bearing request.</t>
  </dd>
  <dt>Budget-Attestation:</dt>
  <dd>
    <t>The CBOR-encoded, signed envelope defined in <xref target="_section-envelope"/>.</t>
  </dd>
  <dt>Settlement Rail:</dt>
  <dd>
    <t>An out-of-band protocol used to effect actual transfer of value
associated with a Budget-Attestation.  Examples include x402,
L402, and Lightning multi-path payments ("mpp").  Rail names are
carried as text strings in the Budget-Attestation; this document
does not define how settlements are performed.</t>
  </dd>
  <dt>Rail-Keyed Signature:</dt>
  <dd>
    <t>An optional second signature on the Budget-Attestation envelope,
computed with a stateless hash-based signature algorithm (SLH-DSA),
used to provide cryptographic diversification when the attestation
is presented in connection with a settlement-rail submission.</t>
  </dd>
</dl>

</section>
<section anchor="relationship-to-http-message-signatures"><name>Relationship to HTTP Message Signatures</name>

<t><xref target="RFC9421"/> defines a generic mechanism for digitally signing
components of individual HTTP messages.  Although both that mechanism
and Budget-Attestation involve cryptographic signatures that travel
with HTTP traffic, they address different concerns.</t>

<t>RFC 9421 signatures bind a signature to a single HTTP message; their
subject is "the message".  A Budget-Attestation, by contrast, is a
portable spending authority issued by an Operator and presented by an
Agent across one or more requests; its subject is "the authority", and
it carries semantic claims (issuer, agent, expiry, permitted settlement
rails, amounts) that are not part of any HTTP message component.</t>

<t><xref target="RFC9421"/> references signing keys by <spanx style="verb">keyid</spanx> and, as of the
publication of this document, registers no post-quantum signature
algorithm in the "HTTP Signature Algorithms" registry.  This document
specifies CBOR encoding <xref target="RFC8949"/> and COSE signing structures
<xref target="RFC9052"/> for the Budget-Attestation envelope so that multi-kilobyte
post-quantum signature sizes are accommodated outside HTTP header
fields.</t>

<t>The two mechanisms are complementary.  An Agent <bcp14>MAY</bcp14> carry a
Budget-Attestation in a request that is itself signed per
<xref target="RFC9421"/>; in that case, the RFC 9421 signature covers the request
as transmitted, and the embedded Budget-Attestation covers the
spending authority irrespective of transport.</t>

</section>
<section anchor="venue-and-coordination"><name>Venue and Coordination</name>

<t>This document is submitted to the HTTPAPI Working Group.  It defines
protocol elements that, per the HTTPAPI charter and <xref section="4.6" sectionFormat="of" target="RFC9205"/>, require coordination with the HTTP Working Group.  In
particular, registration of the 427 status code in the "HTTP Status
Codes" registry is subject to IETF Review under <xref section="16.2.1" sectionFormat="of" target="RFC9110"/>, and the author expects that registration to be reviewed
by the HTTP Working Group prior to IESG approval.</t>

<t>This document follows the best practices of <xref target="RFC9205"/> for
applications that use HTTP.  Where it deviates -- specifically, by
defining a new HTTP status code -- it does so consistent with the
guidance of <xref section="4.6" sectionFormat="of" target="RFC9205"/>.</t>

</section>
<section anchor="open-issues"><name>Open Issues</name>

<ul empty="true"><li>
  <t>This subsection is to be removed before Working Group adoption or
publication.</t>
</li></ul>

<t><list style="symbols">
  <t>The CBOR tag value for the tagged form of the Budget-Attestation
envelope is marked TBD pending IANA assignment.</t>
  <t>The default reason-code registry policy (<xref target="_section-iana-reason-codes"/>)
is set to Specification Required; alternative policies may be
considered during Working Group review.</t>
  <t>The author seeks feedback on whether the rail-keyed signature
(<xref target="_section-rail-keyed"/>) belongs in this document or in a separate
companion document focused on settlement-rail bindings.</t>
</list></t>

</section>
</section>
<section anchor="_section-overview"><name>Overview of Operation</name>

<t>A typical Protocol 427 exchange proceeds as follows.</t>

<figure><sourcecode type="http-message"><![CDATA[
GET /research/papers/12345 HTTP/1.1
Host: api.example
]]></sourcecode></figure>

<t>The origin determines that processing the request will incur cost and
that no Budget-Attestation accompanies the request.  It returns:</t>

<figure><sourcecode type="http-message"><![CDATA[
HTTP/1.1 427 Budget Required
Date: Tue, 05 May 2026 14:00:00 GMT
Cache-Control: no-store
Content-Type: application/problem+json
Content-Length: 213
Protocol-427-Version: 1
WWW-Authenticate: Budget realm="api.example",
                  alg="ML-DSA-87",
                  rails="x402 l402 mpp",
                  nonce="QMjVqg5Xb6yV0bO_t9X8gQ",
                  max-age=900

{
  "type": "https://taskhawktech.com/problems/budget-required",
  "title": "Budget attestation required",
  "status": 427,
  "detail": "A valid Budget-Attestation is required.",
  "min-budget": {"USD": 250},
  "accepted-rails": ["x402","l402","mpp"],
  "max-age": 900,
  "protocol-version": 1
}
]]></sourcecode></figure>

<t>The Agent obtains a Budget-Attestation from its Operator (out of band;
issuance is not specified by this document) and retries:</t>

<figure><sourcecode type="http-message"><![CDATA[
POST /research/papers/12345 HTTP/1.1
Host: api.example
Authorization: Budget attestation=":2BhA...base64url-CBOR...kQ=="
Content-Length: 0
]]></sourcecode></figure>

<t>If the attestation validates against the Verifier's policy, the
Verifier processes the request normally.  If validation fails, the
Verifier returns 427 again with a <spanx style="verb">reason</spanx> extension member in the
Problem Details body indicating the failure (<xref target="_section-reason-codes"/>).</t>

</section>
<section anchor="_section-status-code"><name>The 427 (Budget Required) Status Code</name>

<t>The 427 (Budget Required) status code indicates that the requester
must present a valid Budget-Attestation as defined in this document
before the request can be processed.  The 427 status code differs from
401 (Unauthorized) in that the requester may hold a fully-valid
authentication credential (for example, a Bearer token) and still
receive 427 because the request requires a budget attestation in
addition to, or instead of, that credential.  It differs from 402
(Payment Required) in that 427 is a request for evidence of pre-issued
spending authority, not a request to immediately initiate payment.</t>

<t>A 427 response <bcp14>MUST</bcp14> include a Protocol-427-Version response header
field (<xref target="_section-protocol-version"/>) and a WWW-Authenticate header field
specifying the "Budget" authentication scheme (<xref target="_section-auth-scheme"/>).</t>

<t>A 427 response <bcp14>SHOULD</bcp14> include a response body in the
"application/problem+json" <xref target="RFC9457"/> or
"application/problem+cbor" <xref target="RFC9457"/> media type carrying diagnostic
information.  When present, the body <bcp14>SHOULD</bcp14> use the "budget-required"
problem type defined in <xref target="_section-iana-problem-type"/>.</t>

<section anchor="cacheability"><name>Cacheability</name>

<t>Responses with the 427 status code are not cacheable by default; per
<xref section="15.1" sectionFormat="of" target="RFC9110"/>, status codes not enumerated as cacheable
are not cacheable absent explicit cache directives.  A server <bcp14>SHOULD</bcp14>
send <spanx style="verb">Cache-Control: no-store</spanx> (<xref section="5.2.2.5" sectionFormat="of" target="RFC9111"/>) with a
427 response, and a cache <bcp14>MUST NOT</bcp14> store a 427 response unless
explicitly permitted by Cache-Control directives in the response.  This rule mirrors the treatment of 428,
429, and 431 in <xref target="RFC6585"/>.</t>

</section>
<section anchor="relationship-to-401-402-426"><name>Relationship to 401, 402, 426</name>

<t><list style="symbols">
  <t>401 (Unauthorized) is returned when no, or insufficient,
authentication credential is supplied.  A request <bcp14>MAY</bcp14> receive 401
for credential reasons even if a Budget-Attestation is present.</t>
  <t>402 (Payment Required) is "reserved for future use" by
<xref section="15.5.2" sectionFormat="of" target="RFC9110"/> but has been adopted by L402 and
x402 to mean "initiate a payment-rail interaction".  A request <bcp14>MAY</bcp14>
receive 402 from a downstream rail-handling endpoint after a 427
has been satisfied, depending on deployment.</t>
  <t>426 (Upgrade Required) is used by this document to negotiate
Protocol-427 versions; see <xref target="_section-versioning"/>.</t>
</list></t>

</section>
</section>
<section anchor="_section-auth-scheme"><name>The "Budget" Authentication Scheme</name>

<t>The "Budget" authentication scheme is registered in
<xref target="_section-iana-auth-scheme"/>.  It is used in the WWW-Authenticate
response header field of a 427 response and in the Authorization
request header field of a subsequent request.</t>

<section anchor="challenge-syntax"><name>Challenge Syntax</name>

<t>A WWW-Authenticate challenge using the "Budget" scheme has the
following syntax, expressed in ABNF <xref target="RFC9110"/>:</t>

<figure><sourcecode type="abnf"><![CDATA[
budget-challenge   = "Budget" 1*SP budget-params
budget-params      = budget-param *( OWS "," OWS budget-param )
budget-param       = ( "realm" "=" quoted-string )
                   / ( "alg" "=" quoted-string )
                   / ( "rails" "=" quoted-string )
                   / ( "nonce" "=" quoted-string )
                   / ( "max-age" "=" 1*DIGIT )
                   / ( "attestation" "=" quoted-string )
                   / auth-param
]]></sourcecode></figure>

<t>Parameter semantics:</t>

<dl>
  <dt>realm:</dt>
  <dd>
    <t>A protection-space identifier as defined in <xref section="11.5" sectionFormat="of" target="RFC9110"/>.  <bcp14>REQUIRED</bcp14>.</t>
  </dd>
  <dt>alg:</dt>
  <dd>
    <t>A space-separated list of acceptable signature algorithm names for
the Budget-Attestation primary signature.  Tokens correspond to COSE
algorithm names (<xref target="I-D.ietf-cose-dilithium"/>).  <bcp14>REQUIRED</bcp14>.</t>
  </dd>
  <dt>rails:</dt>
  <dd>
    <t>A space-separated list of settlement-rail tokens acceptable to the
Verifier.  <bcp14>REQUIRED</bcp14> if the Verifier expects a rail-keyed signature
(<xref target="_section-rail-keyed"/>); <bcp14>OPTIONAL</bcp14> otherwise.</t>
  </dd>
  <dt>nonce:</dt>
  <dd>
    <t>A server-supplied opaque value, base64url-encoded, that the Agent
<bcp14>SHOULD</bcp14> echo in the <spanx style="verb">nonce</spanx> claim of any presented Budget-Attestation
bound to this challenge.  <bcp14>REQUIRED</bcp14>.</t>
  </dd>
  <dt>max-age:</dt>
  <dd>
    <t>An advisory, non-negative integer indicating, in seconds, the
maximum recommended lifetime of any Budget-Attestation presented in
response to this challenge.  <bcp14>OPTIONAL</bcp14>.</t>
  </dd>
  <dt>attestation:</dt>
  <dd>
    <t>Reserved for future use; servers <bcp14>MUST NOT</bcp14> include it in challenges
emitted under this version of Protocol 427.</t>
  </dd>
</dl>

</section>
<section anchor="credentials-syntax"><name>Credentials Syntax</name>

<t>An Authorization request header field using the "Budget" scheme has
the following syntax:</t>

<figure><sourcecode type="abnf"><![CDATA[
budget-credentials = "Budget" 1*SP "attestation" "=" quoted-string
]]></sourcecode></figure>

<t>The value of the <spanx style="verb">attestation</spanx> parameter is the base64url
<xref section="5" sectionFormat="of" target="RFC8949"/> encoding of the CBOR Budget-Attestation
envelope (<xref target="_section-envelope"/>).</t>

<t>When the encoded envelope would exceed an HTTP-implementation header
size limit (a typical limit is 8 KiB; SLH-DSA signatures
(<xref target="_section-rail-keyed"/>) can exceed this), the Agent <bcp14>MUST</bcp14> instead
submit the envelope in a request body of media type
"application/budget-attestation+cose" (<xref target="_section-iana-media-type"/>)
and convey only the scheme name and a content-binding parameter in
the Authorization header field, as follows:</t>

<figure><sourcecode type="abnf"><![CDATA[
budget-credentials-body = "Budget" 1*SP "binding" "=" quoted-string
]]></sourcecode></figure>

<t>The <spanx style="verb">binding</spanx> value is the base64url-encoded SHA-256 hash of the
CBOR-encoded envelope contained in the request body.</t>

</section>
</section>
<section anchor="_section-envelope"><name>The Budget-Attestation Envelope</name>

<t>The Budget-Attestation envelope is a COSE_Sign structure <xref target="RFC9052"/>
carrying a Budget-Claims set as its payload.  It <bcp14>MAY</bcp14> be transported
as a tagged CBOR value (CBOR tag TBD) or as an untagged value when
delivered as the body of an "application/budget-attestation+cose"
HTTP message.</t>

<section anchor="cddl-definition"><name>CDDL Definition</name>

<t>The schema below is given in CDDL <xref target="RFC8610"/>.</t>

<figure><sourcecode type="cddl"><![CDATA[
; Budget-Attestation envelope (Protocol 427)
; The tagged form uses CBOR tag TBD; the untagged form is used in
; HTTP message bodies of media type
; application/budget-attestation+cose.

Budget-Attestation = #6.TBD(Budget-Attestation-Untagged) /
                     Budget-Attestation-Untagged

Budget-Attestation-Untagged = [
  protected   : bstr .cbor Protected-Header,
  unprotected : Unprotected-Header,
  claims      : bstr .cbor Budget-Claims,
  signatures  : [+ Signature]
]

Protected-Header = {
  1 => int,           ; alg of the primary signature (ML-DSA-87)
  ? 4 => bstr         ; kid (operator key identifier)
}

Unprotected-Header = {
  * (int / tstr) => any
}

Budget-Claims = {
  "version"  => uint,                ; protocol version
  "iss"      => tstr,                ; issuer (operator) identifier
  "agent"    => tstr,                ; agent identifier
  "iat"      => uint,                ; issued-at, seconds since epoch
  "exp"      => uint,                ; expiry, seconds since epoch
  "nonce"    => bstr .size (16..64), ; replay-protection nonce
  "rb"       => Request-Binding,
  "rails"    => [+ tstr],            ; permitted settlement rails
  ? "amt"    => Rail-Amount-Map      ; amount cap (minor units)
}

Request-Binding = {
  "method"  => tstr,                ; e.g., "POST"
  "uri-h"   => bstr .size 32,       ; SHA-256 of canonical target URI
  ? "body-h" => bstr .size 32       ; SHA-256 of body, if bound
}

Rail-Amount-Map = {
  + tstr => uint                    ; minor units per currency code
}

Signature = [
  protected   : bstr .cbor Sig-Protected-Header,
  unprotected : Unprotected-Header,
  signature   : bstr
]

Sig-Protected-Header = {
  1 => int,                         ; alg id (COSE)
  ? 4 => bstr,                      ; kid
  ? "role" => "operator" / "rail"   ; primary vs rail-keyed
}
]]></sourcecode></figure>

</section>
<section anchor="canonical-encoding"><name>Canonical Encoding</name>

<t>Budget-Attestations <bcp14>MUST</bcp14> be encoded using the Core Deterministic
Encoding Requirements of <xref section="4.2.1" sectionFormat="of" target="RFC8949"/>.  Verifiers
<bcp14>MUST</bcp14> reject envelopes whose CBOR encoding does not satisfy those
requirements.</t>

</section>
<section anchor="primary-signature"><name>Primary Signature</name>

<t>The Budget-Attestation envelope <bcp14>MUST</bcp14> include exactly one primary
signature.  The primary signature's <spanx style="verb">Sig-Protected-Header</spanx> <bcp14>MUST</bcp14> set
<spanx style="verb">alg</spanx> to the COSE identifier for ML-DSA-87 as defined by
<xref target="I-D.ietf-cose-dilithium"/>.  Future revisions of this document <bcp14>MAY</bcp14>
add additional <bcp14>MUST</bcp14>-implement primary algorithms; the rules of
algorithm agility (<xref target="_section-security-downgrade"/>) apply.</t>

</section>
<section anchor="_section-rail-keyed"><name>Rail-Keyed Signature</name>

<t>A Budget-Attestation envelope <bcp14>MAY</bcp14> include a second signature, denoted
the "rail-keyed" signature, distinguished by <spanx style="verb">role = "rail"</spanx> in its
Sig-Protected-Header.  The rail-keyed signature provides cryptographic
diversification: even if the primary lattice-based signature key is
compromised, settlement-rail interactions can require an additional,
hash-based signature over the same envelope.</t>

<t>The rail-keyed signature, when present, <bcp14>MUST</bcp14> use a stateless hash-based
signature algorithm registered in the COSE Algorithms Registry under
<xref target="I-D.ietf-cose-sphincs-plus"/>.  Implementations of this document
<bcp14>MUST</bcp14> support SLH-DSA-SHA2-128f as the rail-keyed algorithm
(<xref target="FIPS205"/>); implementations <bcp14>MAY</bcp14> additionally support any other
SLH-DSA parameter set with a registered COSE algorithm identifier.</t>

<t>A Verifier that requires a rail-keyed signature for settlement-rail
acceptance <bcp14>MUST</bcp14> advertise this expectation through deployment-specific
means; this document does not extend the WWW-Authenticate challenge
to advertise per-rail signature requirements.</t>

<t>Because SLH-DSA signatures are large (FIPS 205 reports 17,088 bytes
for SLH-DSA-SHA2-128f and may be tens of kilobytes for higher
parameter sets), envelopes carrying a rail-keyed signature <bcp14>MUST</bcp14> be
transported in an HTTP message body of media type
"application/budget-attestation+cose"; they <bcp14>MUST NOT</bcp14> be carried
in the Authorization header field's <spanx style="verb">attestation</spanx> parameter.</t>

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

<t>A Verifier processing a Budget-Attestation <bcp14>MUST</bcp14>, in order:</t>

<t><list style="numbers" type="1">
  <t>Verify that the encoded CBOR satisfies the Core Deterministic
Encoding Requirements of <xref section="4.2.1" sectionFormat="of" target="RFC8949"/>.</t>
  <t>Verify that the <spanx style="verb">version</spanx> claim is supported
(<xref target="_section-versioning"/>).</t>
  <t>Verify the primary signature against the operator key identified
by the <spanx style="verb">kid</spanx> parameter or otherwise resolved by deployment policy.</t>
  <t>Verify that <spanx style="verb">iat</spanx> and <spanx style="verb">exp</spanx> define a non-empty interval that
includes the current time, allowing for clock skew of at most 60
seconds.</t>
  <t>Verify that the <spanx style="verb">nonce</spanx> was issued by the Verifier as part of an
outstanding 427 challenge, and has not previously been observed
for this Verifier.</t>
  <t>Verify that <spanx style="verb">rb.method</spanx> matches the request method, that <spanx style="verb">rb.uri-h</spanx>
matches the SHA-256 of the canonical target URI, and (if <spanx style="verb">body-h</spanx>
is present) that <spanx style="verb">body-h</spanx> matches the SHA-256 of the request body.</t>
  <t>Verify that any rail-keyed signature, if present, validates under
a configured rail key.</t>
</list></t>

<t>If all checks pass, the Verifier processes the request normally.  If
any check fails, the Verifier <bcp14>MUST</bcp14> respond with 427 and <bcp14>SHOULD</bcp14> include
a <spanx style="verb">reason</spanx> extension member in the Problem Details body indicating the
failure.</t>

</section>
</section>
<section anchor="_section-versioning"><name>Versioning</name>

<t>This document defines version 1 of Protocol 427.  Future revisions
<bcp14>MAY</bcp14> define additional versions.</t>

<section anchor="_section-protocol-version"><name>The Protocol-427-Version Field</name>

<t>The Protocol-427-Version response header field is a Structured Field
<xref target="RFC9651"/> of type Item containing an Integer.  Its value is the
Protocol-427 version under which the response was constructed.</t>

<t>A 427 response <bcp14>MUST</bcp14> include exactly one Protocol-427-Version header
field.  Other responses <bcp14>MAY</bcp14> include the field to advertise the
origin's Protocol-427 capability.</t>

</section>
<section anchor="version-negotiation-via-426"><name>Version Negotiation via 426</name>

<t>If a request bearing an Authorization: Budget credential carries a
<spanx style="verb">version</spanx> claim that the Verifier does not support, the Verifier <bcp14>MUST</bcp14>
respond with 426 (Upgrade Required) per <xref section="15.5.22" sectionFormat="of" target="RFC9110"/>
and <bcp14>MUST</bcp14> include an <spanx style="verb">Upgrade</spanx> header field listing one or more
<spanx style="verb">Protocol-427/N</spanx> tokens for versions the Verifier supports.  The token
"Protocol-427" is registered in <xref target="_section-iana-upgrade-token"/>.</t>

<t>Example:</t>

<figure><sourcecode type="http-message"><![CDATA[
HTTP/1.1 426 Upgrade Required
Upgrade: Protocol-427/1
Connection: Upgrade
Protocol-427-Version: 1
]]></sourcecode></figure>

</section>
</section>
<section anchor="_section-reason-codes"><name>Reason Codes</name>

<t>A Verifier returning 427 <bcp14>SHOULD</bcp14> include a <spanx style="verb">reason</spanx> extension member in
the Problem Details body indicating the cause of failure.  This
document defines the following initial reason codes:</t>

<texttable>
      <ttcol align='left'>Reason</ttcol>
      <ttcol align='left'>Meaning</ttcol>
      <c><spanx style="verb">ok</spanx></c>
      <c>Used in audit and diagnostic contexts only; never appears on a 427.</c>
      <c><spanx style="verb">expired</spanx></c>
      <c>The presented attestation's <spanx style="verb">exp</spanx> is in the past.</c>
      <c><spanx style="verb">signature_mismatch</spanx></c>
      <c>A signature on the envelope did not validate.</c>
      <c><spanx style="verb">replay</spanx></c>
      <c>The presented <spanx style="verb">nonce</spanx> has previously been observed.</c>
      <c><spanx style="verb">unknown_operator</spanx></c>
      <c>The <spanx style="verb">iss</spanx> is not recognized.</c>
      <c><spanx style="verb">malformed_cbor</spanx></c>
      <c>The envelope failed CBOR canonicalization checks.</c>
      <c><spanx style="verb">version_unsupported</spanx></c>
      <c>The <spanx style="verb">version</spanx> claim is not supported.</c>
      <c><spanx style="verb">rail_not_authorized</spanx></c>
      <c>A rail in <spanx style="verb">rails</spanx> is not permitted by policy.</c>
      <c><spanx style="verb">revoked</spanx></c>
      <c>The operator key has been revoked.</c>
</texttable>

<t>A registry for additional reason codes is established in
<xref target="_section-iana-reason-codes"/>.</t>

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

<t>This document creates registrations in several IANA registries.</t>

<section anchor="_section-iana-status-code"><name>Status Code 427</name>

<t>IANA is requested to register the following entry in the "HTTP Status
Codes" registry [IANA.HTTP.StatusCodes] established by
<xref section="16.2.1" sectionFormat="of" target="RFC9110"/>:</t>

<texttable>
      <ttcol align='left'>Value</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>427</c>
      <c>Budget Required</c>
      <c><xref target="_section-status-code"/> of this document</c>
</texttable>

</section>
<section anchor="_section-iana-auth-scheme"><name>"Budget" Authentication Scheme</name>

<t>IANA is requested to register the following scheme in the "Hypertext
Transfer Protocol (HTTP) Authentication Scheme Registry"
[IANA.HTTP.AuthSchemes] established by <xref section="16.4.1" sectionFormat="of" target="RFC9110"/>:</t>

<texttable>
      <ttcol align='left'>Authentication Scheme Name</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <ttcol align='left'>Notes</ttcol>
      <c>Budget</c>
      <c><xref target="_section-auth-scheme"/> of this document</c>
      <c>Conveys a CBOR-encoded, post-quantum signed Budget-Attestation; see <xref target="_section-envelope"/>.</c>
</texttable>

</section>
<section anchor="_section-iana-field-name"><name>"Protocol-427-Version" Field</name>

<t>IANA is requested to register the following entry in the "HTTP Field
Name Registry" [IANA.HTTP.Fields] established by <xref section="18.4" sectionFormat="of" target="RFC9110"/>:</t>

<texttable>
      <ttcol align='left'>Field Name</ttcol>
      <ttcol align='left'>Status</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <ttcol align='left'>Comments</ttcol>
      <c>Protocol-427-Version</c>
      <c>permanent</c>
      <c><xref target="_section-protocol-version"/> of this document</c>
      <c>Structured Field, Item of type Integer; see <xref target="RFC9651"/>.</c>
</texttable>

</section>
<section anchor="_section-iana-upgrade-token"><name>"Protocol-427" Upgrade Token</name>

<t>IANA is requested to register the following entry in the "HTTP Upgrade
Token Registry" [IANA.HTTP.UpgradeTokens] established by
<xref section="16.7" sectionFormat="of" target="RFC9110"/>:</t>

<texttable>
      <ttcol align='left'>Value</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Expected Version Tokens</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>Protocol-427</c>
      <c>Agent Budget Negotiation Protocol</c>
      <c>A non-negative integer denoting the Protocol-427 version</c>
      <c><xref target="_section-versioning"/> of this document</c>
</texttable>

</section>
<section anchor="_section-iana-media-type"><name>"application/budget-attestation+cose" Media Type</name>

<t>IANA is requested to register the following media type <xref target="RFC6838"/> in
the "Media Types" registry [IANA.MediaTypes]:</t>

<dl>
  <dt>Type name:</dt>
  <dd>
    <t>application</t>
  </dd>
  <dt>Subtype name:</dt>
  <dd>
    <t>budget-attestation+cose</t>
  </dd>
  <dt>Required parameters:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Optional parameters:</dt>
  <dd>
    <t>cose-type (when present, <bcp14>MUST</bcp14> be identical to its usage for
application/cose, per <xref section="2" sectionFormat="of" target="RFC9052"/>)</t>
  </dd>
  <dt>Encoding considerations:</dt>
  <dd>
    <t>binary; uses Concise Binary Object Representation (CBOR)
<xref target="RFC8949"/>.</t>
  </dd>
  <dt>Security considerations:</dt>
  <dd>
    <t>See <xref target="_section-security"/> of this document.</t>
  </dd>
  <dt>Interoperability considerations:</dt>
  <dd>
    <t>Implementations <bcp14>MUST</bcp14> follow the CBOR encoding rules of <xref target="RFC8949"/>
and the CDDL definition of <xref target="_section-envelope"/> of this document.</t>
  </dd>
  <dt>Published specification:</dt>
  <dd>
    <t>This document.</t>
  </dd>
  <dt>Applications that use this media type:</dt>
  <dd>
    <t>Agents, Operators, and Verifiers implementing Protocol 427.</t>
  </dd>
  <dt>Fragment identifier considerations:</dt>
  <dd>
    <t>As specified for "+cose" in the corresponding structured-syntax
suffix registration.</t>
  </dd>
</dl>

<t>Additional information:</t>

<t><list style="symbols">
  <t>Deprecated alias names for this type: N/A</t>
  <t>Magic number(s): (none, generic CBOR)</t>
  <t>File extension(s): .cbor</t>
  <t>Macintosh file type code(s): N/A</t>
</list></t>

<dl>
  <dt>Person &amp; email address to contact for further information:</dt>
  <dd>
    <t>John Paul McGraw, Jr. &lt;j.mcgraw@taskhawktech.com&gt;</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 Paul McGraw, Jr.</t>
  </dd>
  <dt>Change controller:</dt>
  <dd>
    <t>IETF</t>
  </dd>
  <dt>Provisional registration?:</dt>
  <dd>
    <t>No.</t>
  </dd>
</dl>

</section>
<section anchor="_section-iana-problem-type"><name>"budget-required" Problem Type</name>

<t>IANA is requested to register the following entry in the "HTTP Problem
Types" registry [IANA.HTTPProblemTypes] established by
<xref section="6" sectionFormat="of" target="RFC9457"/>:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Value</ttcol>
      <c>Type URI</c>
      <c>https://taskhawktech.com/problems/budget-required</c>
      <c>Title</c>
      <c>Budget attestation required</c>
      <c>Recommended HTTP status code</c>
      <c>427</c>
      <c>Reference</c>
      <c><xref target="_section-iana-problem-type"/> of this document</c>
</texttable>

</section>
<section anchor="_section-iana-reason-codes"><name>Protocol-427 Reason Codes Registry</name>

<t>IANA is requested to establish a new registry titled "Protocol-427
Reason Codes" with registration policy "Specification Required"
<xref section="4.6" sectionFormat="of" target="RFC8126"/>.  Each registration consists of a Reason
token (printable ASCII, no whitespace), a Description, and a Reference.</t>

<t>The initial registry contents are the entries listed in
<xref target="_section-reason-codes"/>.</t>

</section>
<section anchor="cbor-tag-for-budget-attestation"><name>CBOR Tag for Budget-Attestation</name>

<t>IANA is requested to assign one tag from the "First Come First Served"
range of the "CBOR Tags" registry to identify the tagged form of the
Budget-Attestation envelope (<xref target="_section-envelope"/>).</t>

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

<t>This section follows the guidance of <xref target="RFC9205"/> and adapts the
threat-class analysis of <xref target="RFC9421"/> to the Budget-Attestation
envelope.</t>

<section anchor="replay-protection"><name>Replay Protection</name>

<t>Each Budget-Attestation carries a server-issued <spanx style="verb">nonce</spanx> (echoed from
the WWW-Authenticate challenge), an <spanx style="verb">iat</spanx> and <spanx style="verb">exp</spanx>, and a
<spanx style="verb">request_binding</spanx>.  Verifiers <bcp14>MUST</bcp14> reject attestations whose <spanx style="verb">nonce</spanx>
has previously been observed for the same Verifier and <bcp14>MUST</bcp14> reject
attestations whose <spanx style="verb">iat</spanx>-<spanx style="verb">exp</spanx> interval does not include the current
time.</t>

<t>Implementations are reminded of the early-data replay considerations
of <xref target="RFC8470"/>: Verifiers <bcp14>SHOULD NOT</bcp14> accept Budget-Attestations
carried in TLS 1.3 0-RTT data, or <bcp14>MUST</bcp14> employ the <spanx style="verb">Early-Data</spanx> header
field mechanism of <xref target="RFC8470"/>.</t>

</section>
<section anchor="signature-substitution-and-multiple-signature-confusion"><name>Signature Substitution and Multiple-Signature Confusion</name>

<t>The Budget-Attestation envelope can carry exactly one primary
signature and at most one rail-keyed signature.  Verifiers <bcp14>MUST</bcp14>
require the primary signature for any acceptance decision; the
rail-keyed signature is additive authority and <bcp14>MUST NOT</bcp14> substitute
for the primary.  Verifiers <bcp14>SHOULD</bcp14> reject envelopes containing
multiple primary signatures.</t>

</section>
<section anchor="_section-security-downgrade"><name>Algorithm Downgrade</name>

<t>The COSE alg parameter in each Sig-Protected-Header is part of the
signed input.  Verifiers <bcp14>MUST</bcp14> compare the alg in the signed protected
header against a configured policy and <bcp14>MUST NOT</bcp14> permit clients to
"negotiate down" to a weaker algorithm via the WWW-Authenticate <spanx style="verb">alg</spanx>
parameter.</t>

</section>
<section anchor="operator-key-compromise-and-revocation"><name>Operator Key Compromise and Revocation</name>

<t>Operator keys <bcp14>SHOULD</bcp14> be rotated periodically.  When a key is
compromised or retired, Verifiers <bcp14>MUST</bcp14> be able to learn of the
revocation through deployment-specific means (for example, an
operator JWKS endpoint or signed revocation list); the <spanx style="verb">revoked</spanx>
reason code is provided for diagnostic responses to the bearer of an
attestation under a revoked key.</t>

</section>
<section anchor="post-quantum-cryptographic-considerations"><name>Post-Quantum Cryptographic Considerations</name>

<t>Per <xref target="I-D.ietf-cose-dilithium"/>, the ML-DSA seed and the expanded
private key require equal protection.  Implementations <bcp14>SHOULD</bcp14> use
constant-time, side-channel-resistant ML-DSA implementations.  ML-DSA
is non-deterministic; implementations <bcp14>SHOULD</bcp14> prefer the hedged
randomization mode defined in <xref target="FIPS204"/>, Section 3.</t>

<t>SLH-DSA is hash-based and offers an independent cryptographic
foundation; this is the rationale for offering a rail-keyed signature
option (<xref target="_section-rail-keyed"/>).  Implementations <bcp14>MUST</bcp14> use the pure
mode of SLH-DSA per <xref target="I-D.ietf-cose-sphincs-plus"/>; HashSLH-DSA is
not supported.</t>

</section>
<section anchor="bearer-token-hygiene"><name>Bearer-Token Hygiene</name>

<t>Until validated, a Budget-Attestation has bearer-token characteristics
(possession implies authority).  TLS <bcp14>MUST</bcp14> be used for any HTTP exchange
involving Authorization: Budget.  Servers <bcp14>SHOULD</bcp14> scrub Authorization
header values from request logs.</t>

</section>
<section anchor="verifier-responsibilities"><name>Verifier Responsibilities</name>

<t>Failure to verify is the dominant failure mode for any
signature-based protocol.  Verifiers <bcp14>MUST</bcp14> validate every check
listed in <xref target="_section-envelope"/> and <bcp14>MUST NOT</bcp14> short-circuit
verification under any condition.</t>

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

<t>This section follows the guidance of <xref target="RFC6973"/> and <xref section="6.1" sectionFormat="of" target="RFC9205"/>.</t>

<t>Budget-Attestations carry identifiers (<spanx style="verb">iss</spanx>, <spanx style="verb">agent</spanx>) and authority
metadata (<spanx style="verb">rails</spanx>, <spanx style="verb">amt</spanx>) that, if leaked or correlated across
Verifiers, can enable tracking of an Agent's commercial activity.
Mitigations include:</t>

<t><list style="symbols">
  <t>short attestation lifetimes (<bcp14>RECOMMENDED</bcp14> <spanx style="verb">exp - iat &lt;= 900</spanx> seconds);</t>
  <t>TLS confidentiality for any HTTP message bearing an attestation or a
427 challenge;</t>
  <t>uniformly random <spanx style="verb">nonce</spanx> values, at least 128 bits long, that <bcp14>MUST
NOT</bcp14> encode timestamps or sequence numbers;</t>
  <t>Operator-managed rotation of the <spanx style="verb">agent</spanx> identifier;</t>
  <t>restraint in Problem Details <spanx style="verb">detail</spanx> content (it <bcp14>MUST NOT</bcp14> contain
the agent identifier or signature material);</t>
  <t>the option to omit the rail-keyed signature when not required by
policy.</t>
</list></t>

<t>The <spanx style="verb">nonce</spanx> issued by a Verifier in a 427 challenge can itself be a
tracking vector across multiple Agents observed by an on-path
attacker.  Verifiers <bcp14>SHOULD</bcp14> generate independent random nonces per
challenge.</t>

<t>This document does not require Verifiers to retain any per-Agent
state beyond what is necessary to detect <spanx style="verb">nonce</spanx> replay.
Implementations <bcp14>SHOULD</bcp14> apply data minimization <xref section="6.1" sectionFormat="of" target="RFC6973"/> when constructing the <spanx style="verb">agent</spanx> identifier and when logging
verification outcomes.</t>

</section>
<section anchor="references"><name>References</name>

</section>


  </middle>

  <back>


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

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



<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>

<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>

<reference anchor="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="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="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="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="I-D.ietf-cose-dilithium">
   <front>
      <title>ML-DSA for JOSE and COSE</title>
      <author fullname="Michael Prorock" initials="M." surname="Prorock">
         <organization>Tradeverifyd</organization>
      </author>
      <author fullname="Orie Steele" initials="O." surname="Steele">
         <organization>Tradeverifyd</organization>
      </author>
      <date day="15" month="November" year="2025"/>
      <abstract>
	 <t>   This document specifies JSON Object Signing and Encryption (JOSE) and
   CBOR Object Signing and Encryption (COSE) serializations for 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="Internet-Draft" value="draft-ietf-cose-dilithium-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="15" month="March" 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-07"/>
   
</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="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>


    </references>

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



<reference anchor="RFC6585">
  <front>
    <title>Additional HTTP Status Codes</title>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <author fullname="R. Fielding" initials="R." surname="Fielding"/>
    <date month="April" year="2012"/>
    <abstract>
      <t>This document specifies additional HyperText Transfer Protocol (HTTP) status codes for a variety of common situations. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6585"/>
  <seriesInfo name="DOI" value="10.17487/RFC6585"/>
</reference>

<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="RFC8470">
  <front>
    <title>Using Early Data in HTTP</title>
    <author fullname="M. Thomson" initials="M." surname="Thomson"/>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <author fullname="W. Tarreau" initials="W." surname="Tarreau"/>
    <date month="September" year="2018"/>
    <abstract>
      <t>Using TLS early data creates an exposure to the possibility of a replay attack. This document defines mechanisms that allow clients to communicate with servers about HTTP requests that are sent in early data. Techniques are described that use these mechanisms to mitigate the risk of replay.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8470"/>
  <seriesInfo name="DOI" value="10.17487/RFC8470"/>
</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="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="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 910?>

<section anchor="appendix-cddl"><name>CDDL Schema (Collected)</name>

<t>The following CDDL block consolidates the schema of
<xref target="_section-envelope"/> for ease of implementation.</t>

<figure><sourcecode type="cddl"><![CDATA[
Budget-Attestation = #6.TBD(Budget-Attestation-Untagged) /
                     Budget-Attestation-Untagged

Budget-Attestation-Untagged = [
  protected   : bstr .cbor Protected-Header,
  unprotected : Unprotected-Header,
  claims      : bstr .cbor Budget-Claims,
  signatures  : [+ Signature]
]

Protected-Header = {
  1 => int,
  ? 4 => bstr
}

Unprotected-Header = {
  * (int / tstr) => any
}

Budget-Claims = {
  "version"  => uint,
  "iss"      => tstr,
  "agent"    => tstr,
  "iat"      => uint,
  "exp"      => uint,
  "nonce"    => bstr .size (16..64),
  "rb"       => Request-Binding,
  "rails"    => [+ tstr],
  ? "amt"    => Rail-Amount-Map
}

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

Rail-Amount-Map = {
  + tstr => uint
}

Signature = [
  protected   : bstr .cbor Sig-Protected-Header,
  unprotected : Unprotected-Header,
  signature   : bstr
]

Sig-Protected-Header = {
  1 => int,
  ? 4 => bstr,
  ? "role" => "operator" / "rail"
}
]]></sourcecode></figure>

</section>
<section anchor="appendix-example"><name>Example</name>

<t>The following example shows a complete 427 challenge, the Agent's
follow-up request body containing a Budget-Attestation envelope (in
CBOR diagnostic notation per <xref section="8" sectionFormat="of" target="RFC8949"/>), and the
Verifier's response.</t>

<t>Initial response:</t>

<figure><sourcecode type="http-message"><![CDATA[
HTTP/1.1 427 Budget Required
Date: Tue, 05 May 2026 14:00:00 GMT
Cache-Control: no-store
Content-Type: application/problem+json
Protocol-427-Version: 1
WWW-Authenticate: Budget realm="api.example",
                  alg="ML-DSA-87",
                  rails="x402 l402 mpp",
                  nonce="QMjVqg5Xb6yV0bO_t9X8gQ",
                  max-age=900

{ "type": "https://taskhawktech.com/problems/budget-required",
  "title": "Budget attestation required",
  "status": 427,
  "min-budget": {"USD": 250},
  "accepted-rails": ["x402","l402","mpp"],
  "max-age": 900,
  "protocol-version": 1 }
]]></sourcecode></figure>

<t>Follow-up request (CBOR shown in diagnostic notation):</t>

<figure><artwork><![CDATA[
POST /research/papers/12345 HTTP/1.1
Host: api.example
Content-Type: application/budget-attestation+cose
Authorization: Budget binding="lQ7M...base64url-sha256..."

[ << { 1: -50 } >>,
  {},
  << { "version": 1,
       "iss":     "https://op.example/operators/42",
       "agent":   "agent-7c2e",
       "iat":     1746453600,
       "exp":     1746454500,
       "nonce":   h'40c8d5aa0e576fac95d1b3bfb7d5fc81',
       "rb":      { "method": "POST",
                    "uri-h":  h'a3f1...',
                    "body-h": h'0000...' },
       "rails":   ["x402","l402","mpp"],
       "amt":     { "USD": 250 } } >>,
  [ [ << { 1: -50, "role": "operator" } >>,
      {},
      h'<ML-DSA-87 signature, 4627 bytes>' ] ] ]
]]></artwork></figure>

<t>Successful response: as for the underlying request (200 OK, etc.).</t>

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

<ul empty="true"><li>
  <t>This appendix is to be removed before publishing as an RFC.</t>
</li></ul>

<t>This section records known implementations of the protocol defined by
this specification at the time of posting of this Internet-Draft, in
accordance with the guidelines of <xref target="RFC7942"/>.</t>

<t>The description of implementations in this section is intended to
assist the IETF in its decision processes in progressing drafts to
RFCs.  Listing of any individual implementation does not imply
endorsement by the IETF.  No effort has been spent to verify the
information presented here.  Other implementations may exist.</t>

<section anchor="kevros-taskhawk-systems"><name>Kevros (TaskHawk Systems)</name>

<dl>
  <dt>Organization:</dt>
  <dd>
    <t>TaskHawk Systems LLC</t>
  </dd>
  <dt>Name:</dt>
  <dd>
    <t>Kevros</t>
  </dd>
  <dt>Description:</dt>
  <dd>
    <t>An implementation of Protocol 427, including issuance and
verification of Budget-Attestation envelopes signed with ML-DSA-87.</t>
  </dd>
  <dt>Coverage:</dt>
  <dd>
    <t><xref target="_section-status-code"/> through <xref target="_section-iana-reason-codes"/> of this
document; settlement-rail bindings for x402, L402, and Lightning
multi-path payments.</t>
  </dd>
  <dt>Implementation experience:</dt>
  <dd>
    <t>The host enforcement kernel within which Protocol 427 issuance
and verification logic executes is formally specified in TLA+ and
Lean 4. 12 safety invariants and 4 liveness properties of the kernel
have been machine-checked: TLC bounded model checking explored 1.94
billion states with zero violations; Lean 4 interactive proof
verifies 20 theorems with zero "sorry". Protocol 427 endpoints run
inside this verified kernel and inherit its fail-closed and
chain-integrity guarantees. A separate state-machine specification
of Protocol 427 version negotiation and Budget-Attestation signature
verification has not yet been written.</t>
  </dd>
  <dt>Contact:</dt>
  <dd>
    <t>j.mcgraw@taskhawktech.com</t>
  </dd>
</dl>

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

<t>The author thanks the Working Group for early feedback on this
document.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA+19e3fbRpLv//0peplzbqQMQT0sybYcJyu/Yk/8iiUnsyeb
E4EkSGJEAhwAlMxxvJ9lP8v9ZLd+VdWNBgjKycx97bk3+zBFAo3u6up6/qoQ
RZG5PrV3zDgfZfEiObXjIp5U0WI0LeKbaFZVy3iZRvE0yapouBpPkyra3zdV
Ws3p2m+MtW+LvMpH+dweHd49tWeZfX5x8dY+kkvfJX9bpUUytudVXK1K+zgf
J/YmrWa4MS+r6IdVnFWrRXSeTjO6TG6zZ1WVlHRHmmeliYfDIqE5hg8yo7hK
pnmxPrVlNTbpsji1VbEqq8P9/fv7hyYukvjU9n5KhjbOxvZFViVFRgNfFHFW
LvOi6pmbvLiaFvlqecozPnv7wpQV3bY4tS+eXjwzI3p2kpWrkkdOzFWyplvG
pzTziO/gD6Wsa0Tr4r/jVTUjUqUjnjx/tcQ6/ybr5C9evYyenJ/xx/OXz/3n
x4/evJMPb86fymBTHsou4/WCPpX8pWwCf/xwREvFh5f4cJ1kqwTTa63K2mq9
pM36iRacZlP7HX6mbxdxOj+1usP/mibVZJAXU/ohLkYz+aE83dvDZfgmvU4G
7qI9fLE3LPKbMtnTEfYM1p4XQqA0I7r9eWBfjb4jPqKvrBX2+nM+y+zbeDXX
n/r2z8WAf6dxT+1FXF49j2+u7Pm6rJJFaV++fMy/Oi5wF/CXo7QiDng8i4t5
Dpa5TufzhH8pkinR/9T+eCYX5qusAre8z9JK2TEpbT6xZ4ukoN3iqxIhyV8H
wv3/WtGzZvSsKhnNBqN8YbK8WNDGXjOZ3z17fHhwcF8/3ju4e+Q/Hp64jycH
++7j/SN37f3940P38cBfQB8P3MfD/WP38ej4rvt4cuwuOLl35x4+voie8KZE
o7xMonE6p6OVrhabP5XLWZqNymg5J4amX5+9eHt+uM8zJv6IC2Kpesuz6/ly
NSwHWVpWg2l+vYcP+GYPt+29fnF+McCnAY0wWI4nMoiIhFf5eDVPopdxRZyb
RI/iksj9JJ2mVTy3OOV0XooEG5CN42Ise+sZB6zDfPCazw/d8iIraeRVlWCz
3F0ln+oL2pYsn+fTtd3BnHZ5gDHt7Kk93D88ivbv8Tcl7XBSptkkl0dY28Ps
7dv3j3okJGgRPf3+yZsXp/Zgf3Cyf3ivuUxPsuN/mmTHbZIxM86TsrTP43L2
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
YOOEY5UAAA==

-->

</rfc>

