<?xml version="1.0" encoding="utf-8"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     docName="draft-schrock-ep-bounded-capability-receipts-04"
     category="exp" ipr="trust200902" submissionType="IETF"
     version="3" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="EP Bounded Capabilities">Bounded Capability Receipts and Durable Spend Control for Agent Actions</title>
    <seriesInfo name="Internet-Draft" value="draft-schrock-ep-bounded-capability-receipts-04"/>
    <author fullname="Iman Schrock">
      <organization>EMILIA Protocol, Inc.</organization>
      <address>
        <postal><country>US</country></postal>
        <email>team@emiliaprotocol.ai</email>
      </address>
    </author>
    <date year="2026" month="August" day="11"/>
    <area>Security</area>
    <keyword>agent authorization</keyword>
    <keyword>capability</keyword>
    <keyword>spend control</keyword>
    <keyword>delegation</keyword>
    <abstract>
      <t>Agents sometimes need bounded authority to perform more than one
      consequential action without obtaining a new human approval for every
      operation. A signed token alone cannot enforce a shared budget across
      replicas, survive retries safely, or distinguish an operation that never
      crossed an effect boundary from one whose outcome is unknown.</t>
      <t>This document defines a bounded capability receipt and a durable
      reserve-execute-commit protocol. The receipt binds an issuance
      authorization, a closed action scope, a budget with explicit units, a
      holder proof, an expiry, and any parent capability. The state protocol
      atomically refuses overspend and operation-key replay, fences concurrent
      owners, and
      charges an indeterminate operation when an external effect may have
      occurred. Delegation transfers rather than copies authority: all direct
      child allocations are funded by committed parent operations before child
      registration, and their aggregate cannot exceed the parent balance
      within one authoritative atomic state domain. It also defines
      narrowing-only delegation, explicit revocation inheritance for delegated
      authority, and evidence interfaces. It does not make a
      bearer token into human approval, does not provide cross-domain or
      offline global double-spend prevention, and does not claim that an
      authorized action was safe, lawful, or successfully executed.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>A single-action authorization receipt is intentionally narrow: it
      records approval of one exact action and can be accepted at most once
      within its atomic consumption domain. Some agent
      deployments also need a different primitive. For example, an operator
      may authorize an agent to purchase a bounded class of supplies, subject
      to an aggregate monetary ceiling and an expiry, without asking a human
      to approve each conforming purchase.</t>
      <t>That primitive has two inseparable parts:</t>
      <ol spacing="normal">
        <li>a signed capability receipt that states the immutable authority
        boundary; and</li>
        <li>a shared, durable state machine that serializes reservations and
        committed consumption across retries, processes, replicas, and
        restarts.</li>
      </ol>
      <t>The signed object without the state machine is replayable budget
      metadata. The state machine without a signed, scoped grant has no
      portable statement of authority. This document specifies their
      composition.</t>

      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
        "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
        RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
        interpreted as described in BCP 14 <xref target="RFC2119"/>
        <xref target="RFC8174"/> when, and only when, they appear in all
        capitals, as shown here.</t>
        <t>BCP 14 is indexed by the RFC Editor at <xref target="BCP14"/>.</t>
      </section>

      <section anchor="scope">
        <name>Scope and Non-Goals</name>
        <t>This document defines issuance binding, action-scope evaluation,
        budget accounting, holder proof, durable reservation and commitment,
        and narrowing delegation. It does not define user authentication,
        human-approval presentation, general policy syntax, payment clearing,
        settlement, currency conversion, revocation distribution, or the
        external effect adapter.</t>
        <t>A capability receipt is machine authority evidence. It is not,
        merely by being signed, evidence that a human reviewed each later
        action. Deployments that require per-action human authorization
        continue to require a per-action authorization artifact.</t>
        <t>When a capability may be exercised by more than one executor,
        every executor <bcp14>MUST</bcp14> use the same relying-party-pinned
        authoritative atomic state domain. A deployment that cannot enforce
        that binding <bcp14>MUST</bcp14> restrict the capability to one
        executor or state only a per-executor budget guarantee.</t>
      </section>
    </section>

    <section anchor="terminology">
      <name>Terminology</name>
      <dl newline="false" spacing="normal">
        <dt>Issuance authorization:</dt>
        <dd>An independently verified authorization artifact for the exact
        act of creating a bounded capability.</dd>
        <dt>Capability receipt:</dt>
        <dd>The signed immutable grant defined by this document.</dd>
        <dt>Capability issuer:</dt>
        <dd>The principal whose pinned key signs a capability receipt.</dd>
        <dt>Holder proof:</dt>
        <dd>Proof that the requester controls the secret or key named by the
        capability receipt. Holder proof is not proof that a requested action
        is in scope.</dd>
        <dt>Scope verifier:</dt>
        <dd>A verifier for a named scope profile, selected and configured by
        the relying party.</dd>
        <dt>Capability store:</dt>
        <dd>The authoritative shared transactional state for registration,
        reservation, and committed consumption.</dd>
        <dt>State domain:</dt>
        <dd>The relying-party-pinned atomic store and trust configuration to
        which every authority-bearing participant for a capability lineage is
        bound. A state-domain identifier is deployment context, not portable
        proof of global uniqueness.</dd>
        <dt>Operation ID:</dt>
        <dd>An identifier unique for one attempted operation under one
        capability receipt. The authoritative operation key is the tuple of
        capability receipt digest and operation ID inside the state domain.</dd>
        <dt>Reservation token:</dt>
        <dd>An unguessable owner-fencing value returned by a successful
        reservation and required for its commitment.</dd>
        <dt>Provider-entry deadline:</dt>
        <dd>The authoritative instant before which a reserved operation may
        enter the effect adapter. It is no later than capability expiry.</dd>
        <dt>Effect boundary:</dt>
        <dd>The point after which an external effect may have occurred and
        therefore budget cannot safely be restored merely because the caller
        did not receive a successful response.</dd>
        <dt>Indeterminate outcome:</dt>
        <dd>An operation for which the executor cannot prove that no effect
        occurred and cannot prove a successful expected effect.</dd>
      </dl>
    </section>

    <section anchor="trust-model">
      <name>Trust Model</name>
      <t>The relying party selects capability-issuer keys, accepted issuance
      authorization profiles, scope profiles, state-store domain, and local
      authorization policy. A key embedded in a presented capability receipt
      <bcp14>MUST NOT</bcp14>, by itself, become a trust anchor. An empty trust
      configuration <bcp14>MUST</bcp14> fail closed.</t>
      <t>The capability store is trusted to serialize state transitions and
      retain committed operation records. The effect adapter is trusted to
      place the effect boundary correctly and to report outcomes honestly.
      This protocol makes those trust dependencies explicit; it does not
      remove them.</t>
      <t>All capability-store participants that can authorize a capability or
      allocate, register, reserve, commit, reconcile, revoke, or report
      any ancestor or descendant drawing on that capability's authority
      <bcp14>MUST</bcp14> use one shared authoritative atomic state domain.
      Independent stores cannot prevent each other from accepting or
      reallocating the same remaining authority. Conservation claims in this
      document apply only inside that one domain.</t>
      <t>A deployment may have multiple executor instances, settlement
      adapters, or process replicas. If they can exercise the same capability,
      each <bcp14>MUST</bcp14> resolve the same state domain before admission
      and use that domain for the budget transition. An executor's local record
      of prior spending is not an authoritative aggregate record. If the
      deployment cannot make the shared-domain guarantee, it <bcp14>MUST</bcp14>
      either name exactly one executor in the applicable scope or describe the
      limit as per-executor and <bcp14>MUST NOT</bcp14> claim aggregate
      conservation across executors.</t>
    </section>

    <section anchor="receipt">
      <name>The Bounded Capability Receipt</name>
      <t>The receipt is a JSON object serialized using the JSON
      Canonicalization Scheme (JCS) <xref target="RFC8785"/> before signing.
      The following is illustrative:</t>
      <sourcecode type="json"><![CDATA[
{
  "@version": "EP-BOUNDED-CAPABILITY-v1",
  "capability": {
    "capability_id": "cap_01J...",
    "issuer": "https://operator.example",
    "subject": "agent:procurement-7",
    "authorization": {
      "receipt_id": "rcpt_01J...",
      "receipt_digest": "sha256:4c..."
    },
    "scope": {
      "profile": "urn:emilia:scope:caid-set-v1",
      "value": {
        "caids": ["caid1:sha256:..."]
      },
      "digest": "sha256:8a..."
    },
    "budget": {
      "amount": 250000,
      "unit": "iso4217:USD",
      "scale": 2
    },
    "holder": {
      "method": "sha-256-preimage",
      "commitment": "sha256:91..."
    },
    "threshold": {"m": 2, "n": 3},
    "revocation_mode": "cascade",
    "parent": null,
    "not_before": "2026-07-18T20:00:00Z",
    "expires_at": "2026-07-19T20:00:00Z"
  },
  "capability_signature": {
    "algorithm": "Ed25519",
    "public_key": "base64url...",
    "value": "base64url..."
  }
}
]]></sourcecode>

      <section anchor="required-fields">
        <name>Required Fields</name>
        <dl newline="false" spacing="normal">
          <dt><tt>@version</tt>:</dt>
          <dd><tt>EP-BOUNDED-CAPABILITY-v1</tt>.</dd>
          <dt><tt>capability_id</tt>:</dt>
          <dd>A globally unique, opaque identifier. Uniqueness is not used as
          a substitute for cryptographic binding.</dd>
          <dt><tt>issuer</tt>:</dt>
          <dd>The issuer identifier used to select a relying-party-pinned
          verification key.</dd>
          <dt><tt>subject</tt>:</dt>
          <dd>The intended holder or workload identifier. This identifier
          does not replace holder proof or live workload authentication.</dd>
          <dt><tt>authorization</tt>:</dt>
          <dd>The identifier and SHA-256 digest of the complete issuance
          authorization artifact. The digest <bcp14>MUST</bcp14> cover the
          exact bytes accepted by that artifact's native verifier.</dd>
          <dt><tt>scope</tt>:</dt>
          <dd>A named scope profile, its value, and the SHA-256 digest of the
          JCS serialization of <tt>profile</tt> and <tt>value</tt>.</dd>
          <dt><tt>budget</tt>:</dt>
          <dd>A non-negative integer amount no greater than
          9007199254740991, an explicit unit, and a decimal scale from 0
          through 18. For <tt>iso4217:USD</tt> with scale 2, an amount of
          250000 denotes USD 2500.00. Implementations <bcp14>MUST NOT</bcp14>
          infer a scale from display conventions. The represented value is
          <tt>amount * 10^-scale</tt>; increasing scale therefore reduces the
          maximum representable major-unit value. A profile
          <bcp14>MUST</bcp14> refuse an amount-and-scale combination that
          cannot represent its declared operating range. This version does not
          encode arbitrary-precision decimal values.</dd>
          <dt><tt>holder</tt>:</dt>
          <dd>A recognized holder-proof method and its method-specific
          commitment.</dd>
          <dt><tt>threshold</tt>:</dt>
          <dd>Integers <tt>m</tt> and <tt>n</tt> satisfying
          1 &lt;= m &lt;= n &lt;= 255. This field describes custody of the
          holder credential; it does not assert approval by distinct humans.</dd>
          <dt><tt>revocation_mode</tt>:</dt>
          <dd>Exactly <tt>direct</tt> or <tt>cascade</tt>. A direct revocation
          affects the named capability but does not withdraw authority already
          transferred to a registered child. A cascade revocation also blocks
          new authority claims by every descendant. The value is signed and
          <bcp14>MUST NOT</bcp14> be inferred from the issuer, holder, lineage
          depth, or a presenter-selected default. A missing or unknown value
          <bcp14>MUST</bcp14> be rejected.</dd>
          <dt><tt>parent</tt>:</dt>
          <dd><tt>null</tt> for a root capability. For a child capability,
          an object containing the parent capability ID, the digest of the
          complete signed parent receipt, and the identifier of an
          authenticated parent delegation operation. That operation
          <bcp14>MUST</bcp14> bind the child receipt digest and the delegated
          amount, unit, scale, scope, validity interval, and revocation mode.
          A parent identifier without digest-bound parent and delegation evidence is
          insufficient.</dd>
          <dt><tt>not_before</tt> and <tt>expires_at</tt>:</dt>
          <dd>UTC timestamps in Internet Date/Time format
          <xref target="RFC3339"/> using the canonical string form selected by
          the deployment profile. Expiry is exclusive. Numeric epochs,
          implementation-specific date strings, and values that do not
          round-trip to the canonical form <bcp14>MUST</bcp14> be rejected.</dd>
        </dl>
      </section>

      <section anchor="signature-input">
        <name>Signature Input and Receipt Digest</name>
        <t>The issuer signature input is the JCS serialization of the object
        containing exactly <tt>@version</tt> and <tt>capability</tt>. The
        signature algorithm for this version is Ed25519
        <xref target="RFC8032"/>. The receipt digest is:</t>
        <sourcecode type="text"><![CDATA[
SHA-256(JCS({
  "@version": receipt["@version"],
  "capability": receipt.capability,
  "capability_signature": receipt.capability_signature
}))
]]></sourcecode>
        <t>The issuance authorization is bound by both its identifier and
        digest. Binding only a caller-selected receipt identifier is
        insufficient because two different artifacts can carry the same
        identifier.</t>
      </section>

      <section anchor="verification">
        <name>Receipt Verification</name>
        <t>A verifier <bcp14>MUST</bcp14> perform all of the following and
        fail closed on any error:</t>
        <ol spacing="normal">
          <li>apply bounded parsing and reject duplicate JSON member names,
          unknown critical versions, malformed encodings, and out-of-range
          values;</li>
          <li>select the issuer key from relying-party configuration, not from
          the presented object alone;</li>
          <li>verify the issuer signature over the exact signature input;</li>
          <li>natively verify the issuance authorization under its own pinned
          trust inputs and compare both receipt identifier and digest;</li>
          <li>verify that the authorized action is issuance of this exact
          capability object, or of a digest that commits to it;</li>
          <li>verify the scope digest and require a recognized,
          relying-party-enabled scope profile;</li>
          <li>verify the validity interval and, for a child, resolve and
          verify the digest-bound parent lineage to a root capability or a
          locally trusted, previously validated lineage checkpoint. Reject an
          unresolved, truncated, reordered, or substituted link; a repeated
          capability ID or receipt digest; the leaf appearing among its
          ancestors; or a path exceeding deployment policy. At every hop,
          verify that the child amount does not exceed the authenticated
          delegated amount, unit and scale are unchanged, validity is
          contained by the parent, and scope is no broader than the parent
          scope; and</li>
          <li>compute the capability receipt digest used for store
          registration.</li>
        </ol>
        <t>Receipt verification returns <tt>VERIFIED</tt>. It does not return
        <tt>AUTHORIZED</tt>, prove remaining budget, or prove that a proposed
        operation is in scope.</t>
      </section>
    </section>

    <section anchor="issuance">
      <name>Issuance Authorization</name>
      <t>The issuance authorization <bcp14>MUST</bcp14> authorize the act of
      creating the capability, including the immutable digest of its subject,
      scope, budget, holder commitment, revocation mode, parent, and validity
      interval. It
      <bcp14>MUST NOT</bcp14> be reused as though it were a per-operation
      authorization for later spends.</t>
      <t>When the issuance artifact is an EMILIA Authorization Receipt, its
      exact action is capability issuance and its one-time consumption occurs
      when the capability is registered. Later capability-funded operations
      are governed by this document's scope and durable state protocol.</t>
    </section>

    <section anchor="human-authorization-composition">
      <name>Per-Action Human Authorization Composition</name>
      <t>A deployment may require a separately authenticated human
      authorization for an individual capability-funded exercise. That artifact
      <bcp14>MUST</bcp14> bind the exact canonical exercise-action digest used
      by reservation and effect admission. If material terms are not committed
      by that digest, the artifact <bcp14>MUST</bcp14> bind those terms
      independently.</t>
      <t>A capability signature, holder proof, threshold custody, or key
      protected inside a workload is not evidence that a human reviewed the
      later exercise. The capability verifier and human-authorization verifier
      may remain separate. A relying-party composition policy may require both
      results for the same action digest, but the two verifiers <bcp14>MUST
      NOT</bcp14> treat the other's evidence as a trust anchor.</t>
      <t>This composition does not make human authorization part of every
      bounded capability. A deployment that permits conforming exercises
      without a per-action human artifact <bcp14>MUST</bcp14> state that the
      issuance authorization established the bounded class rather than a human
      reviewing each later action.</t>
    </section>

    <section anchor="scope-evaluation">
      <name>Action Scope</name>
      <t>Before reserving budget, the enforcement point <bcp14>MUST</bcp14>
      compute the proposed material action independently of presenter-supplied
      labels and invoke the pinned verifier for <tt>scope.profile</tt>. A
      missing profile, unknown action representation, lossy mapping, or
      indeterminate comparison <bcp14>MUST</bcp14> refuse.</t>
      <t>The mandatory-to-implement
      <tt>urn:emilia:scope:caid-set-v1</tt> profile contains a non-empty,
      duplicate-free array of Canonical Action IDentifiers. It matches only
      exact identifier equality. For delegation, a child CAID set is no
      broader than its parent only when every child identifier is an exact
      member of the parent set. Equality of the complete sets is allowed.
      This non-strict subset relation is reflexive and transitive. Possession
      of a CAID authorizes nothing outside this verified capability
      context.</t>
      <t>Application profiles can define closed constraints over typed action
      fields. Such a profile <bcp14>MUST</bcp14> specify canonicalization,
      exact value equality, comparison, unknown-field handling, numerical
      units, and an algorithm for deciding whether a delegated scope is no
      broader than its parent. The profile <bcp14>MUST</bcp14> state whether
      that attenuation relation is reflexive and whether it is transitive.
      It <bcp14>MUST</bcp14> classify the basis for any transitivity claim as
      one of: <tt>definition-derived</tt>, <tt>mechanically-checkable</tt>, or
      <tt>asserted</tt>. A mechanically checkable claim
      <bcp14>MUST</bcp14> define a finite domain and deterministic procedure
      by which a verifier or conformance suite can enumerate the required
      triples. An asserted claim is profile-author testimony, not a
      demonstrated algebraic property.</t>
      <t>Every profile identifier used in a signed scope <bcp14>MUST</bcp14>
      identify immutable comparison semantics. An identifier fixed by
      immutable standards text satisfies this requirement. Any other
      application-profile identifier <bcp14>MUST</bcp14> be content-addressed.
      A mutable alias or version label alone is insufficient. The relying
      party <bcp14>MUST</bcp14> pin the exact profile definition selected by
      that identifier and refuse if the definition cannot be resolved without
      ambiguity or has changed.</t>
      <t>Action membership and attenuation are separate decisions. Membership
      returns <tt>IN_SCOPE</tt>, <tt>OUT_OF_SCOPE</tt>, or
      <tt>INDETERMINATE</tt>. Attenuation returns <tt>NO_BROADER</tt>,
      <tt>BROADER</tt>, or <tt>INDETERMINATE</tt>. A composite scope is no
      broader only when every mandatory component returns
      <tt>NO_BROADER</tt>. Any <tt>BROADER</tt> component makes the composite
      broader; otherwise any undecided component makes the composite
      indeterminate. Missing components <bcp14>MUST NOT</bcp14> be treated as
      successful comparisons.</t>
      <t>A verifier <bcp14>MUST NOT</bcp14> promote per-hop comparisons into a
      chain-wide non-widening claim unless transitivity is either derived
      from the relation definition or mechanically established over the
      profile's complete declared finite domain. A comparison under a
      non-transitive, asserted-transitive, or unknown-transitivity relation
      is local to the reported hop. It can be useful evidence, but it does
      not compose by induction across a delegation chain.</t>
      <t>A <tt>definition-derived</tt> classification is permitted only when
      the immutable profile definition specifies a relation whose
      transitivity follows by construction. Merely labeling a relation
      transitive, including in authenticated profile metadata, is an
      <tt>asserted</tt> basis. For a mechanically established classification,
      every scope value used in the composed chain <bcp14>MUST</bcp14> be a
      member of the exact finite domain covered by the establishment record.
      A value outside that domain makes the mechanical result inapplicable to
      that chain.</t>
      <t>For a mechanically established result, the verifier
      <bcp14>MUST</bcp14> disclose whether it performed the complete
      enumeration itself or relied on a prior conformance run. The
      establishment record <bcp14>MUST</bcp14> identify the runner, completion
      time, immutable profile and relation-rule identifiers and content
      digests, the canonical encoding, digest algorithm, digest, and
      cardinality of the complete declared finite domain, the deterministic
      procedure identifier, version, and content digest, and the result.
      A verifier relying on a prior run <bcp14>MUST</bcp14> authenticate and
      integrity-check that record and <bcp14>MUST</bcp14> accept the runner
      under relying-party-pinned trust policy. A self-authenticated or
      otherwise untrusted runner is insufficient. If the record is
      unavailable, invalid, untrusted, or
      does not cover the pinned profile's complete declared finite domain, the
      verifier <bcp14>MUST NOT</bcp14> use it for chain composition. A current
      per-hop comparison may still be reported local-only. This requirement
      does not require enumeration at admission time.</t>
      <t>A verifier relying on a prior run <bcp14>MUST</bcp14> compare the
      establishment record's profile and relation-rule content digests,
      complete-domain encoding, digest algorithm, digest, and cardinality,
      and deterministic procedure identifier, version, and content digest
      with the exact profile, rule, domain, and procedure selected for the
      current evaluation. A mutable version label without an immutable content
      binding is not an exact match. A mismatch, or an inability to perform that
      comparison, makes the record stale for this evaluation. Authenticated
      integrity proves what the earlier run reported; it does not establish
      that the earlier result remains applicable after a profile, rule,
      domain, or procedure revision. A stale record <bcp14>MUST NOT</bcp14>
      support a chain-wide non-widening claim and contributes no current
      comparison result. A verifier may report <tt>local-only</tt> only after
      it separately performs the current per-hop comparison; if it cannot do
      so, it <bcp14>MUST</bcp14> report <tt>INDETERMINATE</tt>.</t>
      <t>Reliance on an authenticated, matching prior conformance run is
      deliberately permitted. This document assigns no automatic trust rank
      to verifier-performed enumeration and relied-on enumeration; the
      disclosed reliance mode lets the relying party apply its own policy.
      Implementations <bcp14>SHOULD NOT</bcp14> repeat an otherwise acceptable
      complete enumeration solely to avoid reporting the relied-on mode.</t>
      <t>For each mandatory component of a delegation path containing more
      than one edge, every adjacent comparison used for a chain-wide claim
      <bcp14>MUST</bcp14> use the same immutable profile definition,
      relation-rule definition, finite-domain identity where applicable, and
      transitivity basis. Transitivity established separately for two
      different relations does not prove that those relations compose. This
      document defines no cross-relation composition rule. A path that changes
      any of those relation inputs is local-only across that boundary.</t>
      <t>A local-only report may be retained as diagnostic evidence, but it
      <bcp14>MUST NOT</bcp14> establish descendant authority across a path of
      more than one delegation edge. Registration or admission of that
      descendant <bcp14>MUST</bcp14> refuse when the current comparison is
      broader and <bcp14>MUST</bcp14> refuse or return
      <tt>INDETERMINATE</tt> when chain composition cannot be established.
      A single delegation edge requires a current successful local comparison
      but does not require transitive induction.</t>
      <t>Scope comparison is evaluated per component and relative to the
      verifier that produced it. A comparison report <bcp14>MUST</bcp14>
      record each component, the deciding verifier, the pinned profile and
      rule, the values compared, the local result, whether the relation is
      reflexive, the transitivity classification and basis, any mechanical
      establishment record and reliance mode, and whether the result is
      local-only or chain-composable. An undecided result
      <bcp14>MUST</bcp14> distinguish a component for which no order is
      defined from one whose governing profile was unavailable to that
      verifier. Mandatory-profile components <bcp14>MUST</bcp14> be reported
      rather than assumed. A structural chain result and a scope comparison
      result <bcp14>MUST NOT</bcp14> be combined into an overall validity
      claim unless both reports, including their decidability and composition
      limits, travel with the claim.</t>
      <t>Profiles that intentionally use a non-reflexive relation
      <bcp14>MUST</bcp14> state that an unchanged scope will be refused.
      Profiles that cannot decide either action membership or attenuation
      <bcp14>MUST</bcp14> return <tt>INDETERMINATE</tt>.</t>
    </section>

    <section anchor="holder-proof">
      <name>Holder Proof and Threshold Custody</name>
      <t>The mandatory-to-implement holder method is
      <tt>sha-256-preimage</tt>. The holder presents exactly 32 bytes over a
      confidential, integrity-protected channel, and the enforcement point
      compares <tt>SHA-256(preimage)</tt> with the signed commitment using a
      constant-time comparison. The preimage <bcp14>MUST NOT</bcp14> be
      logged, stored with the receipt, or included in portable evidence.</t>
      <t>This method is intentionally a bearer-equivalent interoperability
      baseline. Any party that learns the preimage can exercise the remaining
      capability subject to its scope, budget, status, and validity. A
      deployment whose threat model requires non-exportable holder custody or
      per-operation proof of possession <bcp14>SHOULD</bcp14> select an
      operation-bound signature method, such as the method below, or an
      application profile defining a hardware-bound holder method. Those
      stronger properties <bcp14>MUST NOT</bcp14> be inferred from the preimage
      method.</t>
      <t>This version additionally defines
      <tt>ed25519-operation-proof</tt>. For that method,
      <tt>holder.commitment</tt> is the lowercase
      <tt>sha256:&lt;64-hex&gt;</tt> digest of the 32-byte Ed25519 public key.
      The exercise proof carries that raw public key and a 64-byte Ed25519
      signature, each encoded as unpadded base64url
      <xref target="RFC4648"/>. The verifier <bcp14>MUST</bcp14> decode both
      values strictly, compare the public-key digest with the signed holder
      commitment, and verify the signature over the UTF-8 JCS serialization of
      this closed object:</t>
      <sourcecode type="json"><![CDATA[
{
  "@version": "EP-BOUNDED-CAPABILITY-HOLDER-PROOF-v1",
  "capability_receipt_digest": "sha256:<64-hex>",
  "operation_id": "<operation identifier>",
  "exercise_action_digest": "sha256:<64-hex>",
  "amount": 1,
  "unit": "<signed budget unit>",
  "scale": 0,
  "audience": "<relying-party-pinned executor audience>",
  "state_domain_digest": "sha256:<64-hex>"
}
]]></sourcecode>
      <t>Every value in that object <bcp14>MUST</bcp14> be taken from the
      independently verified receipt, immutable exercise snapshot, and
      relying-party configuration used by the reservation. Presenter-supplied
      replacements <bcp14>MUST NOT</bcp14> be accepted. Replaying the same
      signed request is refused by the capability-scoped operation key;
      changing the operation ID, action, amount, unit, scale, audience, or
      state domain requires a new signature. This proof establishes control of
      the committed key for that reservation request. It does not establish a
      human gesture, comprehension, or approval ceremony.</t>
      <t>For <tt>ed25519-operation-proof</tt>, the portable
      <tt>threshold</tt> value <bcp14>MUST</bcp14> be <tt>m=1, n=1</tt>.
      Threshold or hardware custody behind the committed Ed25519 public key is
      an implementation property and does not become a portable multi-party or
      human-approval claim.</t>
      <t>The preimage may be divided using a threshold secret-sharing scheme
      before presentation. Share format, participant authentication,
      confidentiality, recovery, and distribution are outside this document.
      Reconstructing <tt>m</tt> shares proves control of the holder secret; it
      does not prove that <tt>m</tt> distinct humans reviewed or approved the
      action. Human multi-party approval requires a protocol such as
      <xref target="EP-QUORUM"/>.</t>
    </section>

    <section anchor="registration">
      <name>Registration</name>
      <t>After receipt verification and one-time consumption of the issuance
      authorization, the issuer registers the capability in the authoritative
      store. Registration <bcp14>MUST</bcp14> atomically create immutable
      fields for capability ID, receipt digest, unit, scale, total budget,
      scope digest, validity interval, revocation mode, and parent. It
      <bcp14>MUST</bcp14> initialize <tt>consumed</tt> and
      <tt>reserved</tt> to zero.</t>
      <t>A second registration of the same capability ID
      <bcp14>MUST</bcp14> succeed only when every immutable field and receipt
      digest is identical. Any mismatch is a collision and
      <bcp14>MUST</bcp14> refuse.</t>
      <t>Consumption of the issuance authorization and registration of its
      exact capability receipt <bcp14>MUST</bcp14> form one idempotent logical
      operation bound to the capability receipt digest. If both transitions
      cannot share one atomic state transaction, the issuance-authorization
      consumption record <bcp14>MUST</bcp14> identify the registration
      operation and exact capability receipt digest, and both domains
      <bcp14>MUST</bcp14> retain enough state to query and reconcile an
      ambiguous result. A crash after consumption <bcp14>MUST NOT</bcp14>
      permit the authorization to issue a different capability or to be
      silently restored.</t>
      <t>A deployment using separate domains for those two transitions
      <bcp14>MUST</bcp14> identify a concrete reconciliation profile that
      defines its durable states, authenticated queries, exact-digest join,
      retry behavior, and terminal ambiguous result. In the absence of such a
      profile, consumption and registration <bcp14>MUST</bcp14> occur in one
      authoritative atomic state transaction.</t>
      <t>Retry of that registration may return the existing identical
      capability only after verifying the same issuance-consumption record.
      An absent or conflicting record <bcp14>MUST</bcp14> refuse or return
      <tt>INDETERMINATE</tt>; it <bcp14>MUST NOT</bcp14> create a second root
      capability from uncertain issuance state.</t>
      <t>Mutable counters in a presented receipt are not authoritative.
      Remaining budget is computed only from the shared store:</t>
      <sourcecode type="text"><![CDATA[
remaining = total - consumed - reserved
]]></sourcecode>
      <t>The authoritative state <bcp14>MUST</bcp14> maintain the invariant
      <tt>reserved + consumed &lt;= total</tt> for every capability. For a
      parent capability, each registered child allocation
      <bcp14>MUST</bcp14> be covered by one or more distinct terminal
      <tt>delegated</tt> operation committed against that parent before child
      registration. The aggregate amount of registered direct children
      <bcp14>MUST NOT</bcp14> exceed the amount committed by those distinct
      parent delegation operations, and each operation identifier
      <bcp14>MUST NOT</bcp14> fund more than one child receipt digest.</t>
    </section>

    <section anchor="state-machine">
      <name>Reserve, Execute, and Commit</name>
      <section anchor="reserve">
        <name>Reserve</name>
        <t>A reservation request contains the capability ID, capability
        receipt digest, operation ID unique under that capability, the
        immutable canonical exercise-action digest and CAID where used,
        positive integer amount,
        unit, scale, and authenticated holder proof. The same immutable action
        snapshot <bcp14>MUST</bcp14> be used for scope evaluation,
        authorization, reservation accounting, and the effect callback; a
        mutable caller object <bcp14>MUST NOT</bcp14> cross those boundaries.
        Validity and expiry <bcp14>MUST</bcp14> be evaluated from one
        authoritative time sample obtained inside the same state transaction;
        caller-supplied time is not authoritative.
        The relying party <bcp14>MUST</bcp14> pin a positive maximum
        pre-entry reservation interval. The store <bcp14>MUST</bcp14> derive
        and record a provider-entry deadline equal to the earlier of capability
        expiry and that authoritative transaction time plus the pinned
        interval.
        In one serializable transaction, or while holding an equivalent row
        lock, the store <bcp14>MUST</bcp14>:</t>
        <ol spacing="normal">
          <li>load the registered capability and compare the receipt digest;</li>
          <li>resolve the complete authority-bearing ancestor lineage in the
          same authoritative state domain and reject unavailable,
          inconsistent, or truncated state;</li>
          <li>reject an unknown, not-yet-valid, expired, or revoked capability;</li>
          <li>reject when any revoked ancestor has
          <tt>revocation_mode</tt> equal to <tt>cascade</tt>;</li>
          <li>reject a unit or scale mismatch;</li>
          <li>reject any already-seen operation key for that capability,
          regardless of its previous outcome;</li>
          <li>verify that the amount is positive and no greater than
          <tt>total - consumed - reserved</tt>;</li>
          <li>increase <tt>reserved</tt> by the amount; and</li>
          <li>create an operation in state <tt>reserved</tt> with an
          unguessable reservation token, exercise-action digest, amount, and
          provider-entry deadline, and return that token only to the owner.</li>
        </ol>
        <t>Scope evaluation and local authorization policy
        <bcp14>MUST</bcp14> succeed before the effect adapter is entered.
        Deployments <bcp14>SHOULD</bcp14> perform them before reserving to
        reduce abandoned reservations.</t>
      </section>

      <section anchor="execute">
        <name>Effect Boundary</name>
      <t>The enforcement point enters the effect adapter only after a
      successful reservation. It <bcp14>MUST NOT</bcp14> expose an alternate
      path to the same effect that bypasses capability enforcement when the
      action requires this profile.</t>
      <t>Immediately before provider entry, the store
      <bcp14>MUST</bcp14> atomically verify reservation ownership and that its
      authoritative transaction time is earlier than the recorded
      provider-entry deadline, then record that provider entry has begun. A
      reservation that has reached its deadline <bcp14>MUST NOT</bcp14> enter
      the effect adapter. A serialized absence of the provider-entry marker
      after the deadline is authoritative proof of non-entry and may drive the
      <tt>not_entered</tt> transition in
      <xref target="reconciliation"/>.</t>
      </section>

      <section anchor="commit">
        <name>Commit</name>
        <t>A commit request contains the operation ID, reservation token, and
        one of three outcomes: <tt>executed</tt>, <tt>indeterminate</tt>, or
        <tt>delegated</tt>. In one atomic transaction, the store
        <bcp14>MUST</bcp14> verify ownership and reserved state, decrease
        <tt>reserved</tt>, increase <tt>consumed</tt> by the same amount, and
        make the operation terminal.</t>
        <t>A repeated commit, wrong reservation token, or commit against a
        non-reserved operation <bcp14>MUST</bcp14> refuse. A caller timeout
        does not justify retrying with a new operation ID; the caller
        <bcp14>MUST</bcp14> query the original operation or reconcile it.</t>
        <t>If the executor cannot prove that the effect boundary was not
        crossed, it <bcp14>MUST</bcp14> commit
        <tt>indeterminate</tt> and charge the budget. Availability loss is
        safer than allowing the same authority to be spent again after an
        unobserved external effect.</t>
        <t>Capability expiry or the provider-entry deadline prevents a new
        provider entry; it does not invalidate accounting for an operation
        that entered the provider beforehand. Such an operation
        <bcp14>MUST</bcp14> remain committable or reconcilable after those
        instants. This closes an already admitted attempt and does not extend
        authority to begin another effect.</t>
      </section>

      <section anchor="reconciliation">
        <name>Crash Recovery and Reconciliation</name>
        <t>Reservations survive process and replica failure. A deployment
        <bcp14>MUST</bcp14> define a reconciler for non-terminal operations.
        The reconciler may commit <tt>executed</tt> only with authenticated
        effect evidence. It may restore budget only when it can prove the
        effect boundary was never crossed. In every other case it
        <bcp14>MUST</bcp14> commit <tt>indeterminate</tt>.</t>
        <t>When non-entry is proved, the store <bcp14>MUST</bcp14> use one
        atomic transition to verify the reservation owner and exact action,
        decrease <tt>reserved</tt> without increasing <tt>consumed</tt>, and
        make the operation terminal with outcome <tt>not_entered</tt>. The
        operation key and its action binding <bcp14>MUST</bcp14> remain as a
        replay tombstone after budget restoration. A later presentation of
        that operation key <bcp14>MUST NOT</bcp14> create a new reservation.
        Repeated reconciliation is idempotent only for the same terminal
        outcome and authenticated evidence binding.</t>
      </section>
    </section>

    <section anchor="executor-domain-binding">
      <name>Executor and State-Domain Binding</name>
      <t>The state domain is a relying-party trust input. A portable capability
      receipt need not embed a globally meaningful domain identifier, but the
      registration and operation records <bcp14>SHOULD</bcp14> identify the
      domain and executor participant used for each admission so that a relying
      party can detect an unsupported state fork.</t>
      <t>When multiple executors are authorized to present one capability, the
      store <bcp14>MUST</bcp14> serialize their reservations and commitments in
      one domain. Merely replicating a signed receipt, copying a remaining
      counter, or exchanging eventual spending logs does not satisfy this
      requirement. A deployment that uses independent stores may still use
      signed receipts, but it <bcp14>MUST NOT</bcp14> describe the resulting
      behavior as one aggregate budget.</t>
      <t>A scope that names one executor is a valid narrower deployment choice.
      The applicable scope profile <bcp14>MUST</bcp14> define how that executor
      participant is identified and compared at admission. This removes the
      cross-executor guarantee requirement; it does not turn a local record into
      a global budget or provide offline double-spend prevention.</t>
    </section>

    <section anchor="delegation">
      <name>Narrowing Delegation</name>
      <t>A child capability <bcp14>MUST NOT</bcp14> outlive its parent,
      exceed the authenticated amount delegated from the parent, change unit
      or scale, or broaden the parent's scope. Its delegation chain
      <bcp14>MUST</bcp14> be bounded by deployment policy and
      <bcp14>MUST</bcp14> include the parent receipt digest.</t>
      <t>Before registering a child, the verifier <bcp14>MUST</bcp14>
      validate complete digest-linked ancestry to a trusted root within the
      configured depth bound, or enforce equivalent authenticated parent-edge
      constraints in one authoritative store. The verified lineage
      <bcp14>MUST</bcp14> form a simple path. The verifier
      <bcp14>MUST</bcp14> reject a repeated capability identifier or receipt
      digest, a missing or inconsistent parent, a substituted or reordered
      edge, or a chain whose trusted root cannot be established. A cycle,
      truncated lineage, or over-depth chain <bcp14>MUST</bcp14> fail closed.
      Per-receipt identifier uniqueness or a self-declared list of ancestors
      does not establish graph-wide acyclicity. An implementation
      <bcp14>MUST NOT</bcp14> infer acyclicity merely because its ordinary
      issuance path constructs children from known parents; verification
      applies the same check to imported and reconstructed chains.</t>
      <t>Creating a child is itself a parent-funded operation. Before
      registering the child, the issuer <bcp14>MUST</bcp14> reserve the
      delegated amount from the parent and <bcp14>MUST</bcp14> commit that
      exact reservation once with outcome <tt>delegated</tt>. The
      authenticated terminal operation record <bcp14>MUST</bcp14> bind the
      exact child receipt digest, delegated amount, unit, scale, scope,
      validity interval, and revocation mode before the child is
      registered; otherwise a valid parent spend could be paired with a
      different child. A shared store
      <bcp14>SHOULD</bcp14> perform parent commitment and child registration
      atomically. If that is impossible and child registration fails after
      the parent is committed, the parent budget remains consumed and the
      orphaned delegation <bcp14>MUST</bcp14> be retained for reconciliation.
      The system <bcp14>MUST NOT</bcp14> silently refund it.</t>

      <section anchor="delegation-revocation">
        <name>Revocation Inheritance Across Delegation Lineage</name>
        <t>Delegation transfers bounded authority rather than leaving every
        child as a live reference to its parent. Direct revocation of an
        ancestor therefore does not, by itself, determine whether authority
        already transferred to registered descendants survives. The signed
        <tt>revocation_mode</tt> field makes that choice explicit.</t>
        <t>When a capability's <tt>revocation_mode</tt> is
        <tt>direct</tt>, revoking that capability <bcp14>MUST</bcp14> prevent
        new reservations and child allocations funded by that capability. It
        <bcp14>MUST NOT</bcp14>, solely because of that revocation, invalidate
        a child registered before the revocation committed. The child remains
        subject to its own validity, scope, budget, direct revocation, and any
        cascade-mode ancestor.</t>
        <t>When a capability's <tt>revocation_mode</tt> is
        <tt>cascade</tt>, revoking that capability <bcp14>MUST</bcp14> prevent
        every descendant from making a new reservation or funding a new child.
        The enforcement point <bcp14>MUST</bcp14> establish the current
        revocation state of every authority-bearing cascade-mode ancestor in
        the same authoritative atomic state domain used for the descendant
        reservation. A cached status value or eventually consistent
        notification does not establish immediate cascade revocation.</t>
        <t>The ancestor revocation transition and a descendant reservation
        <bcp14>MUST</bcp14> be serialized in that state domain. If revocation
        commits first, the descendant request <bcp14>MUST</bcp14> refuse. If
        the reservation commits first, the revocation is late for that
        operation and prevents later authority claims; it <bcp14>MUST
        NOT</bcp14> retroactively release the reservation, relabel an effect,
        or authorize a retry. Any operation whose effect outcome is unresolved
        remains subject to the reconciliation rules in
        <xref target="reconciliation"/>.</t>
        <t>If complete current ancestor state cannot be established before
        reservation, the request <bcp14>MUST</bcp14> refuse without entering
        the effect adapter. This is a pre-effect status failure, not evidence
        that an external effect is indeterminate. A deployment using separate
        state domains or freshness-bounded status distribution
        <bcp14>MUST NOT</bcp14> claim immediate cascade revocation across
        those domains.</t>
        <t>Neither mode grants a grace period after revocation. Continued or
        wind-down authority <bcp14>MUST</bcp14> be established by a separate
        authorization with its own exact scope, budget, holder, and validity
        interval; it <bcp14>MUST NOT</bcp14> be inferred from an in-flight
        delegation. This document defines the consequence of an authenticated
        revocation within one state domain. It does not define who is entitled
        to revoke, how revocation is distributed, or how independently
        operated domains transfer exclusive admission ownership.</t>
      </section>
    </section>

    <section anchor="evidence">
      <name>Evidence and Decision Vocabulary</name>
      <t>A capability receipt can be <tt>VERIFIED</tt>. A scope verifier can
      return the profile-local result <tt>IN_SCOPE</tt>,
      <tt>OUT_OF_SCOPE</tt>, or <tt>INDETERMINATE</tt>. This containment
      result is not the architecture's <tt>MATCH</tt> state, which is reserved
      for correlation of exact material actions. A relying-party evidence
      requirement can be <tt>SATISFIED</tt>. Successful local policy and an
      atomic reservation together can establish <tt>AUTHORIZED</tt> for one
      exercise. Separately authenticated effect evidence can establish
      <tt>EXECUTED</tt>. No earlier state implies a later one.</t>
      <t>Portable evidence for a capability-funded operation
      <bcp14>SHOULD</bcp14> include the capability receipt digest, issuance
      authorization digest, scope profile and digest, operation ID, the exact
      exercise action digest and CAID where used, amount, unit, scale,
      reservation timestamp, terminal outcome, and any authenticated effect
      statement. The integrity-protected operation record
      <bcp14>MUST</bcp14> bind the exercise action and the capability receipt
      digest. Holder secrets and reservation tokens <bcp14>MUST NOT</bcp14> be
      included.</t>
      <t>An Authorization Evidence Chain may carry that operation record as a
      native component whose verifier recursively verifies the capability
      receipt, issuance authorization, scope result, and operation-record
      integrity. The static grant is not a same-action component for every
      later exercise. Evidence satisfaction does not query or reserve current
      budget; that state transition remains at the enforcement point.</t>
    </section>

    <section anchor="failure-codes">
      <name>Failure Codes</name>
      <t>Implementations <bcp14>SHOULD</bcp14> expose stable,
      non-authorizing failure codes including:</t>
      <ul spacing="normal">
        <li><tt>capability_untrusted_issuer</tt></li>
        <li><tt>capability_authorization_mismatch</tt></li>
        <li><tt>capability_scope_mismatch</tt></li>
        <li><tt>capability_scope_indeterminate</tt></li>
        <li><tt>capability_holder_proof_invalid</tt></li>
        <li><tt>capability_not_active</tt></li>
        <li><tt>capability_expired</tt></li>
        <li><tt>capability_revoked</tt></li>
        <li><tt>capability_revocation_mode_invalid</tt></li>
        <li><tt>capability_ancestor_revoked</tt></li>
        <li><tt>capability_ancestor_status_unavailable</tt></li>
        <li><tt>capability_budget_exceeded</tt></li>
        <li><tt>capability_delegation_lineage_invalid</tt></li>
        <li><tt>capability_delegation_not_narrowed</tt></li>
        <li><tt>capability_operation_replay</tt></li>
        <li><tt>capability_reservation_owner_mismatch</tt></li>
        <li><tt>capability_reservation_expired</tt></li>
        <li><tt>capability_commit_indeterminate</tt></li>
      </ul>
      <t>A failure code is diagnostic output, not an authorization artifact.
      Responses <bcp14>SHOULD</bcp14> avoid revealing secret, budget, or scope
      details to an unauthenticated caller.</t>
    </section>

    <section anchor="conformance">
      <name>Conformance</name>
      <t>A conforming implementation <bcp14>MUST</bcp14> pass positive and
      adversarial vectors for receipt canonicalization and signature,
      authorization-digest substitution, untrusted issuer, unknown scope
      profile, action mismatch, holder-proof failure, duplicate registration,
      concurrent overspend, operation replay, wrong reservation token,
      double commit, expiry, a cycle spread across separately signed receipts,
      repeated ancestors, leaf-as-ancestor, missing or truncated lineage,
      reordered or substituted parent links, parent-receipt and
      delegation-operation substitution, a single-hop child exceeding the
      authenticated delegated amount, unit or scale changes, scope or validity
      widening at every hop, over-depth chains, parent over-allocation, crash
      recovery, and indeterminate-effect charging.</t>
      <t>The conformance set <bcp14>MUST</bcp14> exercise revocation
      inheritance over a root, child, and grandchild. It
      <bcp14>MUST</bcp14> show that direct-mode revocation leaves previously
      registered descendant authority independently usable, while cascade-mode
      revocation refuses every later descendant reservation and child
      allocation. It <bcp14>MUST</bcp14> reject a missing or unknown
      <tt>revocation_mode</tt>, refuse when required ancestor state is
      unavailable, and cover a race between ancestor revocation and descendant
      reservation in which exactly one transition commits first. A
      reservation that commits first remains owned and reconcilable; a
      revocation that commits first prevents the reservation.</t>
      <t>The conformance set <bcp14>MUST</bcp14> also include multiple executor
      participants sharing one domain, an independent-store state fork, and a
      scope restricted to one executor; only the shared-domain case may claim
      one aggregate budget.</t>
      <t>The scope-profile conformance set <bcp14>MUST</bcp14> show exact CAID
      equality and non-strict subset attenuation, including unchanged parent
      and child sets. For a profile whose relation is mechanically checkable,
      it <bcp14>MUST</bcp14> enumerate the complete declared finite domain and
      test reflexivity and transitivity. It <bcp14>MUST</bcp14> also include a
      relation that passes every adjacent hop but fails transitivity, and
      demonstrate that the verifier labels those hop results local-only and
      refuses to claim chain-wide non-widening. An asserted-transitive profile
      <bcp14>MUST NOT</bcp14> be reported as demonstrably transitive. The set
      <bcp14>MUST</bcp14> cover both a verifier-performed enumeration and
      reliance on an authenticated prior conformance run, and
      <bcp14>MUST</bcp14> refuse chain-wide promotion when that prior record is
      unavailable, invalid, or does not cover the complete declared finite
      domain.</t>
      <t>The conformance set <bcp14>MUST</bcp14> include an authenticated prior
      record that differs from the current evaluation in the profile or rule
      content digest, complete-domain encoding, digest algorithm, digest or
      cardinality, or deterministic procedure identifier, version or content
      digest, and demonstrate that every such mismatch prevents chain-wide
      promotion. It <bcp14>MUST</bcp14> show that a stale record contributes no
      current local result, while a separately executed current comparison can
      still be reported local-only. It <bcp14>MUST</bcp14> also demonstrate
      that a matching prior
      record can support chain composition without repeating the enumeration,
      subject to relying-party policy.</t>
      <t>The conformance set <bcp14>MUST</bcp14> reject an establishment record
      from an authenticated but untrusted runner, a record using the same
      mutable version label over different profile or rule content, a chain
      value outside the mechanically enumerated domain, and a multi-hop chain
      whose adjacent comparisons use different relations that are each
      independently transitive. It <bcp14>MUST</bcp14> demonstrate that a
      local-only multi-hop result cannot establish descendant authority.</t>
      <t>The conformance set <bcp14>MUST</bcp14> cover a crash between
      issuance-authorization consumption and root-capability registration, an
      exact retry that resolves to the existing capability, and a conflicting
      retry that refuses. It <bcp14>MUST</bcp14> also show that authenticated
      proof of provider non-entry restores reserved budget while retaining a
      terminal replay tombstone, and that the same raw operation ID under a
      different capability is not by itself a replay. Reservation-lifetime
      cases <bcp14>MUST</bcp14> show refusal of provider entry at the deadline,
      recovery of an abandoned pre-entry reservation after the deadline, and
      successful terminal accounting after capability expiry for an operation
      whose provider entry was recorded beforehand. A split-domain root
      registration case <bcp14>MUST</bcp14> identify and exercise its concrete
      reconciliation profile; without one, the case
      <bcp14>MUST</bcp14> refuse the split deployment.</t>
      <t>The conformance set <bcp14>MUST</bcp14> reject a holder preimage of the
      wrong length or digest, and <bcp14>MUST</bcp14> demonstrate that a
      captured valid preimage does not bypass scope, budget, status, validity,
      operation replay, or provider-entry-deadline checks. It
      <bcp14>MUST</bcp14> also reject an amount-and-scale combination outside
      the operating range declared by the selected profile. For
      <tt>ed25519-operation-proof</tt>, it <bcp14>MUST</bcp14> include a valid
      proof and mutations of the public key, capability digest, operation ID,
      action digest, amount, unit, scale, audience, and state-domain digest;
      every mutation <bcp14>MUST</bcp14> refuse. It
      <bcp14>MUST</bcp14> also refuse a portable threshold other than
      <tt>m=1, n=1</tt> for that method.</t>
      <t>The parent-over-allocation case <bcp14>MUST</bcp14> include at least
      three sibling child-creation attempts whose individually valid amounts
      collectively exceed the parent's available balance, with concurrent
      reservation ordering chosen by the implementation. At most a
      balance-preserving subset may commit. The case <bcp14>MUST</bcp14> also
      cover one operation identifier presented for two different child receipt
      digests and an orphaned child-registration failure after parent
      commitment. The former refuses as operation replay; the latter leaves
      the committed parent amount consumed pending reconciliation.</t>
      <t>A wire-format implementation that does not implement one shared
      atomic store is a receipt verifier, not a conforming spend-control
      implementation. A store implementation that accepts a capability without
      pinned issuer verification, issuance authorization, and scope matching
      is not conforming.</t>
    </section>

    <section anchor="relationship">
      <name>Relationship to Other Work</name>
      <t>Rich Authorization Requests <xref target="RFC9396"/> carries
      fine-grained authorization details but deliberately leaves comparison
      semantics for arbitrary detail types to their specifications. This
      document defines an executor-side durable spend state machine and
      requires a named closed scope profile.</t>
      <t>OAuth Transaction Tokens <xref target="TXN-TOKENS"/> propagate
      transaction-specific authorization context through a call chain.
      Bounded Capability Receipts instead address an aggregate budget shared
      across multiple operations and the reserve/commit boundary at the
      executor. A deployment can use both.</t>
      <t>The Delegation Receipt Protocol for AI Agent Authorization
      <xref target="DRP"/> records delegation and narrowing. This document
      requires narrowing for child
      capabilities and additionally accounts delegated budget as a terminal
      parent spend.</t>
      <t>Attenuating Authorization Tokens for Agentic Delegation Chains
      <xref target="ATTENUATING"/> describes constrained, attenuable agent
      tokens. This document's distinct contribution is not the existence of
      constrained tokens; it is the composition of a signed grant with shared
      reservation ownership, committed budget accounting, and conservative
      treatment of indeterminate external effects.</t>
      <t>The Agent Identity Protocol <xref target="AIP"/> defines per-token
      budget ceilings and explicitly assigns cumulative spending enforcement
      to the orchestration runtime. A bounded capability budget is instead a
      balance-valued authority in one authoritative store: reservation and
      consumption reduce the amount available to every sibling allocation in
      that domain.</t>
      <t>PEDIGREE <xref target="PEDIGREE"/> defines cryptographic delegation,
      mandate narrowing, and an operator-controlled ceiling. This document
      preserves that identity and policy role and addresses the adjacent
      runtime question of how one parent balance funds multiple children
      without multiplying aggregate authority.</t>
      <t>The Credential Broker for Agents <xref target="CB4A"/> defines proxy
      and short-lived-token delivery patterns that keep long-lived provider
      credentials away from agents. A deployment can use such a broker as the
      credential-owning effect adapter after this protocol grants one valid
      reservation; this document does not duplicate credential brokering.</t>
      <t>Condition-Bounded Credentials <xref target="CBC"/> binds workload-key
      use to live, verifier-appraised conditions. That property composes with
      holder proof and provider entry, especially for stable attestable
      workloads. It does not replace aggregate balance accounting, and this
      document does not extend its hardware assumptions to hardware-less or
      cross-domain swarms.</t>
      <t>The affine Token Budgets work <xref target="TOKEN-BUDGETS"/> studies
      LLM cost overruns and uses Rust ownership to prevent cloning and
      use-after-delegation in one process. It is adjacent prior art. This
      document instead binds human- or policy-authorized consequential
      authority, exact exercise actions, durable provider-entry reservations,
      and conservative post-entry uncertainty across a transactional runtime.
      It does not claim that balance-valued budgets or affine ownership were
      invented here.</t>
      <t>The Attested Payment Authorization for Autonomous Agents
      <xref target="HAWKINS"/>
      binds an attested payment key and endorsed software identity to a
      payment authorization scope and requires verification before settlement.
      It is adjacent and complementary work: this document does not define
      hardware attestation or transparency registration, while that document
      does not specify the authoritative shared-state, reserve-and-commit,
      parent-funded delegation, and post-entry uncertainty machinery defined
      here. A deployment can compose the two by
      binding their decisions to the same exact exercise-action digest without
      making either verifier consume the other's evidence as a trust anchor.</t>
    </section>

    <section anchor="security">
      <name>Security Considerations</name>
      <t><strong>Identifier substitution.</strong> Capability signatures bind
      the full issuance authorization digest, not only an identifier. Scope,
      budget units, parent, holder commitment, and validity are all inside the
      issuer signature.</t>
      <t><strong>State forks.</strong> Two stores accepting the same
      capability lineage can each spend or delegate its full budget. Global
      offline or cross-domain double-spend prevention is therefore not
      provided. Deployments that cannot name one authoritative atomic state
      domain for a capability and every authority-bearing ancestor and
      descendant <bcp14>MUST NOT</bcp14> claim aggregate sibling conservation
      or an enforced aggregate budget.</t>
      <t><strong>Executor federation.</strong> A multi-rail or multi-process
      deployment does not, by itself, establish a shared budget. Every
      executor that can admit an exercise must be bound to the same state
      domain, or the scope must be restricted to one executor and the claim
      must be stated as per-executor. Eventual reconciliation after independent
      admissions cannot retroactively prevent overspend.</t>
      <t><strong>Crash ambiguity.</strong> Restoring budget after a timeout can
      authorize duplicate external effects. Once the effect boundary may have
      been crossed, uncertainty is charged as <tt>indeterminate</tt>.</t>
      <t><strong>Reservation lifetime and expiry.</strong> An unbounded
      pre-entry reservation permits durable capacity denial and creates
      ambiguous expiry behavior. The provider-entry deadline bounds that
      state. Expiry prevents new provider entry but does not erase or reopen an
      attempt that entered before expiry; that attempt remains terminally
      accounted. A store that cannot serialize deadline recovery against
      provider entry <bcp14>MUST NOT</bcp14> restore the budget.</t>
      <t><strong>External predicate freshness.</strong> Reservation protects
      the bounded budget; it does not make mutable world facts current. If an
      action depends on a record, counterparty status, market condition, or
      other external predicate that can change after scope evaluation, the
      deployment <bcp14>MUST</bcp14> require freshness-bound live evidence or
      re-evaluate that predicate in boundary policy before provider entry. A
      short reserve-to-effect interval reduces exposure but is not a
      correctness mechanism. If the re-evaluation refuses before provider
      entry, budget may be restored only through the authenticated
      <tt>not_entered</tt> transition in
      <xref target="reconciliation"/>.</t>
      <t><strong>Operation-key scope.</strong> Operation IDs are unique under
      one capability receipt rather than globally attacker-reserved across the
      state domain. The store <bcp14>MUST</bcp14> bind the capability receipt
      digest and operation ID as one operation key. Preventing the same
      material action from being admitted under two independently valid
      capabilities is a separate relying-party policy and action-fencing
      concern. Replay refusal in this document means refusal of an already-seen
      operation key. It does not prohibit two otherwise authorized operations
      with different operation IDs from carrying the same action digest. A
      deployment requiring one occurrence per material action
      <bcp14>MUST</bcp14> add a durable action fence or bind a unique occurrence
      identifier into the material action.</t>
      <t><strong>Bearer and share theft.</strong> A raw holder secret or enough
      unauthenticated shares can authorize possession and every remaining
      in-scope operation. Confidential transport does not protect against an
      enforcement point, endpoint, or log that leaks the reusable preimage.
      Secret shares require confidential distribution, authenticated
      participants, compromise response, and rate limiting. Deployments that
      require non-exportable custody need a separately defined signature- or
      hardware-bound holder profile. The built-in
      <tt>ed25519-operation-proof</tt> prevents a reusable bearer secret from
      crossing the boundary, but protection of the signing key and resistance
      to signing-oracle abuse remain deployment responsibilities. Threshold
      custody is not human quorum.</t>
      <t><strong>Revocation.</strong> Expiry and exhausted budget are not
      revocation. A deployment that requires early invalidation
      <bcp14>MUST</bcp14> consult a separately authenticated revocation or
      status source before reservation and define its freshness policy.
      Revocation inheritance is not inferred from lineage alone: the signed
      mode determines whether already transferred descendant authority
      survives. An immediate cascade claim requires the ancestor revocation
      transition and descendant reservation to be serialized in the same
      authoritative atomic state domain. Notification or eventual cache
      refresh cannot supply that guarantee. Full-lineage locking can make a
      high-fan-out ancestor a contention and denial-of-service hot spot;
      deployments <bcp14>MUST</bcp14> bound lineage depth, admission work, and
      lock acquisition time without weakening the fail-closed result.</t>
      <t><strong>Units and arithmetic.</strong> All accounting uses integers
      with signed unit and scale. Floating-point arithmetic, implicit currency
      conversion, and caller-selected rounding <bcp14>MUST NOT</bcp14> occur
      in the authoritative budget path. The safe-integer ceiling and decimal
      scale jointly limit range; a high scale does not provide both arbitrary
      precision and arbitrary major-unit magnitude.</t>
      <t><strong>Database authority.</strong> The capability tables contain
      authorization state. Deployments <bcp14>MUST</bcp14> restrict writes to
      the enforcement service, use least-privilege credentials, protect
      backups, and audit administrative changes.</t>
      <t><strong>Delegation lineage.</strong> Local uniqueness checks over one
      presented receipt do not establish graph-wide acyclicity or complete
      ancestry. Separately presented receipts can omit links, substitute a
      parent operation, or form a cycle unless each parent edge is
      authenticated and resolved by digest, or an authoritative store
      enforces equivalent edge constraints. Implementations
      <bcp14>MUST</bcp14> fail closed on incomplete, cyclic, substituted, or
      non-narrowing lineage. Verifiers apply the complete traversal and
      refusal rules in <xref target="delegation"/> to imported chains and
      chains reconstructed from storage.</t>
      <t><strong>Comparison-proof substitution and exhaustion.</strong> A
      signed conformance record from an untrusted runner does not establish a
      relation property. Profiles that permit mechanical establishment
      <bcp14>MUST</bcp14> bound domain cardinality and procedure work, define
      one canonical domain encoding, and reject values outside the established
      domain for chain-composition purposes. Implementations
      <bcp14>MUST</bcp14> apply bounded parsing before processing a presented
      record and <bcp14>MUST NOT</bcp14> perform attacker-sized enumeration on
      the admission path.</t>
      <t><strong>Semantic limits.</strong> A valid capability does not prove
      that an action is safe, lawful, beneficial, or correctly executed.
      Local policy and domain controls remain necessary.</t>
      <t><strong>Cryptographic scope.</strong> This version uses SHA-256 and
      Ed25519. It does not provide a post-quantum signature profile or a
      zero-knowledge receipt. Algorithm agility and long-term preservation are
      separate concerns.</t>
    </section>

    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>Capability receipts and operation records can reveal spending limits,
      organizational roles, intended action classes, counterparties, and
      timing. Profiles <bcp14>SHOULD</bcp14> minimize identifiers, separate
      portable evidence from operational secrets, and define retention and
      access controls. Hashing a low-entropy scope or identifier does not make
      it confidential.</t>
    </section>

    <section anchor="implementation">
      <name>Implementation Status</name>
      <t>The Apache-2.0 TypeScript reference implementation includes a
      signed pre-standard capability envelope, holder-secret commitment,
      optional threshold secret reconstruction, and a durable PostgreSQL
      reservation and commitment store. Its issuer-controlled delegation API,
      when used with one shared capability store, reserves and commits a child
      amount from the immediate parent before registering the child. Both the
      in-memory and PostgreSQL stores record a provider-entry deadline bounded
      by capability expiry, refuse late provider entry, retain an explicit
      provider-entry marker, and recover a timed-out pre-entry reservation as
      <tt>not_entered</tt> without deleting its operation record.
      The store has adversarial tests for overspend, replay, ownership fencing,
      expiry, terminal commitment, concurrent N-sibling aggregate
      over-allocation, one operation identifier paired with different child
      digests, orphaned registration after parent commitment, and an explicit
      two-store state-fork counterexample. These are same-team implementation
      and regression results, not independent implementation or production
      deployment evidence.</t>
      <t>The prototype wire format predates this document and does not yet
      implement all mandatory fields in this version, including full issuance
      authorization digest binding, an explicit action-scope profile, and
      explicit budget unit scale, digest-linked parent lineage, authenticated
      parent-delegation binding, <tt>not_before</tt>, and complete ingest-time
      cycle validation. It is therefore implementation experience, not a claim
      of conformance. There is no independent implementation, interoperability
      event, production transaction history, post-quantum profile, or
      zero-knowledge implementation. The executor-domain participant binding
      and per-action human-authorization composition added in -02 are protocol
      requirements and composition rules. The reference execution path now
      implements those two integrations: an aggregate budget claim requires an
      exact match to a relying-party-pinned atomic state-domain digest; a
      mismatch may fall back only to an explicitly pinned single executor; and
      a required per-action human authorization must pass a native verifier
      under relying-party pins and bind the exact exercise-action digest. Calls
      without an executor-domain binding are labeled local_store_only and do
      not claim aggregate enforcement. A configured state-domain digest is a
      deployment trust binding; the code cannot by itself prove that two
      processes connect to the same physical database.</t>
      <t>The reference implementation now signs and requires
      <tt>revocation_mode</tt>, records each capability's immediate parent, and
      implements direct and cascade revocation in both the in-memory test store
      and PostgreSQL store. A descendant reservation resolves the complete
      registered ancestor lineage. The PostgreSQL path locks those state rows
      in the reservation transaction, so an ancestor revocation that commits
      first refuses the reservation, while a reservation that commits first
      remains owned and reconcilable. Missing, malformed, or migration-incomplete
      ancestor state refuses before provider entry. The tracked migration
      quarantines legacy rows without an explicit mode rather than inferring
      direct or cascade. Regression cases cover the signed closed field, direct
      descendant survival, cascade refusal, unavailable ancestor state, child
      allocation after revocation, and both orderings of the revocation race.
      This is same-team implementation evidence inside one authoritative atomic
      state domain; it is not independent interoperability, revocation
      distribution, or cross-domain cascade enforcement.</t>
      <t>The -04 scope-profile contract and comparison-reporting rules are not
      yet implemented. In particular, the reference implementation does not
      yet emit per-component decidability records, relation reflexivity,
      transitivity classification or basis, mechanical-establishment
      provenance, or the local-only versus chain-composable result. No
      implementation or conformance claim is made for those additions. The
      -04 atomic root-issuance registration rule is also not implemented as a
      conforming protocol operation because the prototype does not yet bind
      and consume the full issuance authorization described here. The
      capability-scoped operation key and terminal budget-restoring
      <tt>not_entered</tt> behavior are implemented in the reference stores,
      but that implementation evidence does not close the other -04 gaps. The
      <tt>ed25519-operation-proof</tt> holder method is not yet implemented by
      the reference capability API; no implementation claim is made for it.</t>
      <t>The reference implementation does reject repeated delegation identifiers,
      repeated parent capability identifiers, a leaf named as its own parent,
      and increasing amounts within the delegation chain presented at mint or
      verification time. Those checks provide local simple-path and monotonic
      amount enforcement. They do not discover omitted parents or establish the
      digest-linked, graph-wide lineage required by <xref target="delegation"/>,
      so they do not close the remaining conformance gap.</t>
      <t>The public repository contains two CI-gated bounded TLA+ models
      relevant here. The capability-accounting model covers registration,
      reservation, commitment, delegation, replay refusal, parent-funded child
      registration, and aggregate sibling conservation. A separate -03
      revocation-inheritance model covers every direct/cascade assignment over
      a root, child, and grandchild; complete ancestor-state availability;
      future child allocation; and both serialized orderings of revocation and
      reservation. Exact state and obligation counts are emitted by governed
      proof-status artifacts. These are bounded results about the models, not
      refinement proofs of the TypeScript, SQL, transaction adapter,
      cryptography, lineage verification, or complete protocol defined here.
      Arbitrary implementation inputs still require the runtime traversal and
      refusal rules in <xref target="delegation"/>.</t>
      <t>The main branch also runs a fixed-seed adversarial harness in
      per-push CI over the actual JavaScript in-memory capability and
      consumption stores. It includes a true-concurrency
      <tt>Promise.all</tt> race target and a deliberately non-atomic
      comparison store that demonstrates the race detector can expose
      over-commitment. Additional targets exercise accounting and ownership
      invariants at whole-method boundaries. This is regression evidence for
      those in-process stores, not complete protocol conformance: it does not
      fuzz the PostgreSQL capability transaction path, the atomic handshake
      RPC, replica or connection failures, and no deeper nightly sweep is
      scheduled.</t>
    </section>

    <section anchor="changes-since-03">
      <name>Changes Since -03</name>
      <ul spacing="normal">
        <li>Defined the mandatory CAID-set scope relation and required profiles
        to state reflexivity, transitivity, and the basis for transitivity.</li>
        <li>Prevented local hop comparisons from being promoted into a
        chain-wide non-widening claim without a definition-derived or
        mechanically established transitive relation.</li>
      <li>Required one immutable comparison context across every hop used for
      chain composition and prohibited local-only multi-hop evidence from
      establishing descendant authority.</li>
      <li>Required mechanical-establishment provenance, including whether
      the deciding verifier ran the complete enumeration or relied on an
      authenticated prior conformance run.</li>
      <li>Bound prior-run applicability to the exact profile, rule, complete
      domain, and procedure selected for the current evaluation; stale
      records now contribute no current comparison result.</li>
      <li>Added relying-party trust of the conformance runner, complete-domain
      membership, immutable semantic pins, and resource bounds.</li>
      <li>Made operation identity capability-scoped, defined terminal
      <tt>not_entered</tt> restoration with a retained replay tombstone, and
      made issuance consumption plus root registration one idempotent logical
      operation.</li>
      <li>Separated bounded-budget reservation from freshness of mutable
      external predicates.</li>
      <li>Bounded pre-entry reservation lifetime, defined expiry-versus-commit
      behavior, and required a concrete profile for split-domain root
      registration reconciliation.</li>
      <li>Made bearer-secret exposure, cascade-lineage contention, and the
      safe-integer amount/scale range explicit.</li>
      <li>Defined an Ed25519 operation-bound holder proof alongside the
      mandatory preimage interoperability baseline.</li>
      <li>Clarified that reliance on an authenticated matching prior run is
      deliberately permitted and remains subject to relying-party policy.</li>
      </ul>
    </section>

    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The author thanks Sumit P. Ahuja for the scope-comparison analysis
      that led to the transitivity-basis, mechanical-establishment provenance,
      and chain-composition requirements in <xref target="scope-evaluation"/>.</t>
    </section>

    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions. A future revision may request a
      media type and registries for receipt versions, scope profiles, holder
      methods, and failure codes after implementation experience stabilizes
      the protocol.</t>
    </section>
  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="BCP14" target="https://www.rfc-editor.org/info/bcp14">
          <front>
            <title>Key Words for Use in RFCs to Indicate Requirement Levels</title>
            <author><organization>Internet Engineering Task Force</organization></author>
            <date year="2017"/>
          </front>
          <seriesInfo name="BCP" value="14"/>
        </reference>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3339.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4648.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8032.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8785.xml"/>
      </references>
      <references>
        <name>Informative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9396.xml"/>
        <reference anchor="EP-QUORUM" target="https://datatracker.ietf.org/doc/draft-schrock-ep-quorum/">
          <front>
            <title>Multi-Party Authorization (Quorum) for the EMILIA Protocol</title>
            <author fullname="Iman Schrock"/>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="TXN-TOKENS" target="https://datatracker.ietf.org/doc/draft-ietf-oauth-transaction-tokens/">
          <front>
            <title>Transaction Tokens</title>
            <author fullname="Atul Tulshibagwale"/>
            <author fullname="George Fletcher"/>
            <author fullname="Pieter Kasselman"/>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="DRP" target="https://datatracker.ietf.org/doc/draft-nelson-agent-delegation-receipts/">
          <front>
            <title>Delegation Receipt Protocol for AI Agent Authorization</title>
            <author fullname="Ryan Nelson"/>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="ATTENUATING" target="https://datatracker.ietf.org/doc/draft-niyikiza-oauth-attenuating-agent-tokens/">
          <front>
            <title>Attenuating Authorization Tokens for Agentic Delegation Chains</title>
            <author fullname="Niki Aimable"/>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="AIP" target="https://datatracker.ietf.org/doc/draft-prakash-aip/">
          <front>
            <title>Agent Identity Protocol (AIP): Verifiable Delegation for AI Agent Systems</title>
            <author fullname="Sunil Prakash"/>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="PEDIGREE" target="https://datatracker.ietf.org/doc/draft-rampalli-pedigree/">
          <front>
            <title>PEDIGREE: Verifiable Delegation Identity for Agentic AI Systems</title>
            <author fullname="Karthik Rampalli"/>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="CB4A" target="https://datatracker.ietf.org/doc/draft-hartman-credential-broker-4-agents/">
          <front>
            <title>Credential Broker for Agents (CB4A)</title>
            <author fullname="Kenneth G. Hartman"/>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="CBC" target="https://datatracker.ietf.org/doc/draft-winmagic-wimse-condition-bounded-credentials/">
          <front>
            <title>Condition-Bounded Credentials for Workload and Agent Identity: Non-Exfiltratable Keys and Validity by Presence</title>
            <author fullname="Thi Nguyen Huu"/>
            <author fullname="Sergei Nikitin"/>
            <author fullname="John O'Leary"/>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="TOKEN-BUDGETS" target="https://arxiv.org/abs/2606.04056">
          <front>
            <title>Token Budgets: An Empirical Catalog of 63 LLM-Agent Budget-Overrun Incidents, with an Affine-Typed Rust Mitigation as a Case Study</title>
            <author fullname="Sajjad Khan"/>
            <date year="2026"/>
          </front>
          <seriesInfo name="arXiv" value="2606.04056"/>
        </reference>
        <reference anchor="HAWKINS" target="https://datatracker.ietf.org/doc/draft-hawkins-scitt-attested-agent-payment/">
          <front>
            <title>Attested Payment Authorization for Autonomous Agents</title>
            <author fullname="Walter Hawkins"/>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hawkins-scitt-attested-agent-payment-00"/>
        </reference>
      </references>
    </references>
  </back>
</rfc>
