<?xml version='1.0' encoding='utf-8'?>

<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-whelan-chio-protocol-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="Chio Protocol">The Chio Protocol: Kernel Primitives for Agentic Operating Systems</title>
    <seriesInfo name="Internet-Draft" value="draft-whelan-chio-protocol-00"/>
    <author fullname="Connor Whelan">
      <organization>Backbay Industries</organization>
      <address>
        <email>connor@backbay.io</email>
      </address>
    </author>
    <date year="2026" month="October" day="02"/>
    <keyword>agent</keyword>
    <keyword>kernel</keyword>
    <keyword>agentic operating system</keyword>
    <keyword>tool</keyword>
    <keyword>capability</keyword>
    <keyword>delegation</keyword>
    <keyword>attenuation</keyword>
    <keyword>receipt</keyword>
    <keyword>governed execution</keyword>
    <keyword>MCP</keyword>
    <abstract>
      <t>Chio is a kernel for agentic operating systems. It provides shared
primitives for delegated authority, resource accounting, governed
execution, and verifiable records. This document specifies the Chio
protocol: the signed objects and exchanges through which agents,
kernels, and supporting services use those primitives.</t>
      <t>The protocol defines capability tokens, receipts, budgets and metering,
governed transactions, and signed checkpoints. A capability token binds
time-bounded authority to a subject key. The authenticated attenuation
profile binds delegated authority to the parent scope and checks the
child against that scope. Governed transactions require declared intent
and approval; checkpoints commit to batches of receipts.</t>
      <t>Agents access the kernel through a framed native transport or a binding
to the Model Context Protocol. HTTP interfaces support issuance,
delegation, receipt query, and revocation. The kernel establishes
authority before execution, accounts for committed resources, controls
the release of results, and preserves verifiable evidence across retries
and recovery. These functions provide a common execution foundation for
agents, applications, and workflows.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Agentic operating systems need a shared execution core beneath their
agents, applications, and workflows. That core establishes the authority
an agent can exercise, the constraints on delegated work, the accounting
of resource use, and the records that other parties can verify. These
responsibilities span individual models, tools, and application
frameworks.</t>
      <t>Chio supplies this foundation as a kernel. Capability-based authority,
local policy evaluation, budgets, governed transactions, and signed
records form a common execution model on which agentic systems can
build. This document specifies the protocol primitives and exchanges
that make those functions interoperable across kernel implementations.</t>
      <t>Agents read and write files, query services, send messages, and spend
money on behalf of people and organizations. When an agent directly
holds broad tool credentials, delegating a task can also delegate more
authority than it needs. Unless the deployment records an authenticated
authorization decision and result binding, a third party lacks that
evidence of what was authorized and what happened.</t>
      <t>The kernel separates an agent's requested operation from the authority
to execute it. A native agent sends each kernel-mediated call with a
capability token: a statement, signed by an issuer, that a subject key
may call named tools under stated constraints and limits until a stated
time. The kernel verifies the token, evaluates local policy, dispatches
the call to the tool server only if both permit it, and records the
decision and result in a signed receipt. Execution is a stateful kernel
operation: admission, resource reservation, dispatch, output release,
and finalization have distinct authority and failure semantics. The
kernel preserves those distinctions through concurrency, process
failure, and restart (<xref target="execution-lifecycle"/>).</t>
      <t>Chio's authenticated delegation profiles enforce narrowing of authority.
A holder can request or arrange trusted-issuer signing of a narrower
token for another key. The resulting token signature is made by a
trusted issuer; a delegation-link signature alone does not make an
arbitrary holder a trusted token issuer. Each delegation link is signed.
In the authenticated attenuation profile, scope hashes and a subset
witness bind the child scope to the issuer-resolved parent scope. A
kernel enforcing that profile rejects a claimed parent scope that is not
bound to the chain. Plain delegated v1 tokens do not themselves require
these hashes or witnesses; deployments requiring authenticated
attenuation enforce the profile in <xref target="chain-binding"/>.</t>
      <t>This document specifies the objects and exchanges that independent
implementations need in order to interoperate: capability tokens,
receipts, their canonical encoding and signatures, the native transport
between agent and kernel, a binding to the Model Context Protocol
<xref target="MCP"/>, and the HTTP interface of the trust-control service. It also
specifies three extensions that deployments use to reserve spend exposure and
to audit history: budgets and metering, governed transactions, and
receipt checkpoints.</t>
      <section anchor="goals">
        <name>Design Goals</name>
        <dl>
          <dt>Shared kernel primitives:</dt>
          <dd>
            <t>Agents and applications use a common model of authority, constrained
execution, and signed records across the protocol's transports.</t>
          </dd>
          <dt>Explicit authority:</dt>
          <dd>
            <t>Every mediated call names the capability token that authorizes it.
The kernel grants no authority that a presented token does not carry.</t>
          </dd>
          <dt>Narrowing delegation:</dt>
          <dd>
            <t>An authenticated attenuation profile rejects authority beyond its
trusted parent in the checked dimensions:
tools, operations, constraints, invocation counts, costs, or time.</t>
          </dd>
          <dt>Fail-closed evaluation:</dt>
          <dd>
            <t>A failure to verify a token, a delegation chain, a proof, or a policy
result denies the call.</t>
          </dd>
          <dt>Durable execution and evidence:</dt>
          <dd>
            <t>The kernel binds authorization, resource accounting, and signed outcomes
to the same operation. Recovery preserves committed authority and
prevents an uncertain operation from silently becoming a new execution.</t>
          </dd>
          <dt>Portable verification:</dt>
          <dd>
            <t>A party with the receipt and an independently trusted kernel key can
verify its integrity without contacting the kernel. Additional claims,
such as inclusion in a particular log or execution by a particular
provider, require evidence appropriate to that claim.</t>
          </dd>
          <dt>Transport independence:</dt>
          <dd>
            <t>The native transport and the MCP binding use the same signed capability
and receipt formats. Native replies and hosted MCP tool results carry receipts for kernel
outcomes; authorized consumers can also query retained receipts.</t>
          </dd>
          <dt>Algorithm agility:</dt>
          <dd>
            <t>Keys and signatures identify their own algorithm, so classical and
post-quantum hybrid signature suites can coexist in one deployment.</t>
          </dd>
        </dl>
      </section>
      <section anchor="scope">
        <name>Scope</name>
        <t>This document specifies the kernel's signed artifacts and protocol
exchanges. Implementations choose the runtime architecture and host
isolation mechanisms that support those exchanges.</t>
        <t>This document does not specify:</t>
        <ul spacing="normal">
          <li>
            <t>a policy language or a set of guards. Each kernel evaluates its own
local policy and records the results in receipts;</t>
          </li>
          <li>
            <t>how tool servers implement tools;</t>
          </li>
          <li>
            <t>a replacement for the Model Context Protocol, the Agent2Agent
protocol <xref target="A2A"/>, or other agent communication protocols. Protocol
bindings connect those interfaces to the kernel's authority and
execution model;</t>
          </li>
          <li>
            <t>an OAuth authorization server;</t>
          </li>
          <li>
            <t>payment settlement, standing relationships between operators, or
portable identity credentials for agents. <xref target="related-work"/> lists these
as candidate companion documents.</t>
          </li>
        </ul>
      </section>
      <section anchor="organization">
        <name>Document Organization</name>
        <t><xref target="overview"/> describes the roles and walks through one native kernel
execution.
<xref target="encoding"/> through <xref target="checkpoints"/> define the signed objects: the
encoding and signature rules, capability tokens, receipts, budgets,
governed transactions, and checkpoints. <xref target="native-transport"/> through
<xref target="trust-control"/> define the exchanges: the native transport, the MCP
binding, and the trust-control interface. <xref target="versioning"/> and <xref target="errors"/>
define version negotiation and the error model. The remaining sections
cover security, privacy, IANA registrations, and implementation status.
<xref target="examples"/> and <xref target="test-vectors"/> give examples and test vectors
generated from the reference implementation.</t>
      </section>
    </section>
    <section anchor="terminology">
      <name>Conventions and Terminology</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP&#160;14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <t>This document uses the following terms.</t>
      <dl>
        <dt>Agent:</dt>
        <dd>
          <t>A software actor that requests tool calls. The kernel does not trust
an agent; an agent acts only through the capability tokens it presents.</t>
        </dd>
        <dt>Kernel:</dt>
        <dd>
          <t>The trusted execution core of an agentic system. It verifies
capability authority, evaluates local policy, applies the configured
budget and governance checks, dispatches permitted calls to tool
servers, and durably records signed outcomes. Its execution state survives a
restart without recreating consumed authority.</t>
        </dd>
        <dt>Tool server:</dt>
        <dd>
          <t>A service that implements tools, resources, or prompts, to which a
kernel dispatches permitted calls.</t>
        </dd>
        <dt>Trust-control service:</dt>
        <dd>
          <t>The service that issues and revokes capability tokens and answers
queries over stored receipts.</t>
        </dd>
        <dt>Capability:</dt>
        <dd>
          <t>The authority to call a set of tools, read a set of resources, or use
a set of prompts, under stated constraints and limits.</t>
        </dd>
        <dt>Capability token:</dt>
        <dd>
          <t>A signed, time-bounded JSON object that grants a capability to a
subject key (<xref target="capabilities"/>).</t>
        </dd>
        <dt>Issuer:</dt>
        <dd>
          <t>The key that signs a capability token.</t>
        </dd>
        <dt>Subject:</dt>
        <dd>
          <t>The key to which a capability token is bound. Only the holder of the
subject key can exercise the token when the token requires a sender
proof.</t>
        </dd>
        <dt>Grant:</dt>
        <dd>
          <t>One entry in a capability token's scope: a tool grant, a resource
grant, or a prompt grant.</t>
        </dd>
        <dt>Delegation:</dt>
        <dd>
          <t>Issuing a capability token from the authority of an existing token.</t>
        </dd>
        <dt>Delegation link:</dt>
        <dd>
          <t>One signed step in a capability token's delegation chain.</t>
        </dd>
        <dt>Attenuation:</dt>
        <dd>
          <t>A narrowing of authority along one or more dimensions: the grants
themselves, their operations and constraints, invocation counts, cost
ceilings, budget shares, or time.</t>
        </dd>
        <dt>Guard:</dt>
        <dd>
          <t>A check that the kernel evaluates before dispatch or before releasing
output, as part of its local policy.</t>
        </dd>
        <dt>Receipt:</dt>
        <dd>
          <t>A signed record of a call or operation, carrying a kernel decision,
trace observation, or advisory evaluation (<xref target="receipts"/>).</t>
        </dd>
        <dt>Operation:</dt>
        <dd>
          <t>One logical execution, including its admission, reservations, dispatch,
recovery, and finalization. A transport request identifier correlates an
exchange; it is not by itself a durable operation identifier.</t>
        </dd>
        <dt>Dispatch commitment:</dt>
        <dd>
          <t>The durable transition that consumes an operation's dispatch authority
and captures its associated resource exposure. Commitment does not
prove that an external effect occurred.</t>
        </dd>
        <dt>Output release:</dt>
        <dd>
          <t>The authorized transfer of a result across a kernel trust boundary,
after the applicable output checks and durable release conditions.</t>
        </dd>
        <dt>Execution profile:</dt>
        <dd>
          <t>The agreed set of enforcement and evidence requirements for a call.
A profile cannot weaken the artifact verification rules in this
document.</t>
        </dd>
        <dt>Decision:</dt>
        <dd>
          <t>The outcome that a receipt records for a mediated call: <tt>allow</tt>,
<tt>deny</tt>, <tt>cancelled</tt>, or <tt>incomplete</tt>.</t>
        </dd>
        <dt>Checkpoint:</dt>
        <dd>
          <t>A signed statement by a kernel that commits to a batch of receipts in
a Merkle tree (<xref target="checkpoints"/>).</t>
        </dd>
      </dl>
      <t>Code-formatted words such as <tt>expires_at</tt> are protocol element names and
values, which are case-sensitive. JSON is defined in <xref target="RFC8259"/>.</t>
    </section>
    <section anchor="overview">
      <name>Protocol Overview</name>
      <section anchor="roles">
        <name>Roles and Trust Boundaries</name>
        <t><xref target="fig-roles"/> shows the roles and the four flows between them.</t>
        <figure anchor="fig-roles">
          <name>Roles and Flows</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="288" width="520" viewBox="0 0 520 288" class="aasvg">
                <path d="M 8,32L 8,64" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 56,128L 56,176" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 104,64L 104,126.81765" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 152,128L 152,176" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 200,32L 200,64" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 240,240L 240,272" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 328,128L 328,176" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 352,240L 352,272" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 360,176L 360,230.81765" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 376,240L 376,272" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 416,176L 416,238.81765" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 448,128L 448,176" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 488,240L 488,272" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 8,32L 200,32" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 8,64L 200,64" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 56,128L 152,128" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 328,128L 448,128" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 152,144L 326.81765,144" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 153.18235,160L 328,160" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 56,176L 152,176" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 328,176L 448,176" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 240,240L 352,240" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 376,240L 488,240" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 240,272L 352,272" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 376,272L 488,272" fill="none" stroke="black" stroke-linecap="round"/>
                <polygon class="arrowhead" points="416,240 421.6,228 410.4,228" fill="black"/>
                <polygon class="arrowhead" points="360,232 365.6,220 354.4,220" fill="black"/>
                <polygon class="arrowhead" points="328,144 316,138.4 316,149.6" fill="black"/>
                <polygon class="arrowhead" points="152,160 164,165.6 164,154.4" fill="black"/>
                <polygon class="arrowhead" points="104,128 109.6,116 98.4,116" fill="black"/>
                <g class="text">
                  <text x="72" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">Trust-control</text>
                  <text x="160" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">service</text>
                  <text x="128" y="100" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">(1)</text>
                  <text x="188" y="100" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">capability</text>
                  <text x="256" y="100" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">token</text>
                  <text x="184" y="132" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">(2)</text>
                  <text x="220" y="132" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">call</text>
                  <text x="248" y="132" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">+</text>
                  <text x="280" y="132" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">token</text>
                  <text x="104" y="148" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">Agent</text>
                  <text x="388" y="148" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">Kernel</text>
                  <text x="196" y="180" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">result</text>
                  <text x="232" y="180" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">+</text>
                  <text x="272" y="180" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">receipt</text>
                  <text x="264" y="212" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">(3)</text>
                  <text x="316" y="212" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">dispatch</text>
                  <text x="440" y="212" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">(4)</text>
                  <text x="488" y="212" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">receipt</text>
                  <text x="268" y="260" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">Tool</text>
                  <text x="316" y="260" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">server</text>
                  <text x="416" y="260" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">Receipt</text>
                  <text x="464" y="260" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">log</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art">
+-----------------------+
| Trust-control service |
+-----------+-----------+
            |
            | (1) capability token
            v
      +-----------+  (2) call + token   +--------------+
      |   Agent   +--------------------&#62;|    Kernel    |
      |           |&#60;--------------------+              |
      +-----------+  result + receipt   +---+------+---+
                                            |      |
                               (3) dispatch |      | (4) receipt
                                            v      v
                             +-------------+  +-------------+
                             | Tool server |  | Receipt log |
                             +-------------+  +-------------+
</artwork>
          </artset>
        </figure>
        <t>The trust-control service issues a capability token to the agent (1).
The agent sends a call, with the token, to the kernel (2). The kernel
verifies the token, evaluates policy, and, if both permit the call,
dispatches it to the tool server (3). The kernel signs a receipt for the
receipt-bearing outcome and records it (4). The illustrated native
exchange returns that receipt with the result. The hosted MCP binding
returns the receipt in result metadata (<xref target="hosted-tool-calls"/>).
Authorized consumers can query retained evidence through trust-control.</t>
        <t>The kernel is trusted to mediate the call path. It holds the key that
signs receipts and the configuration of trusted issuer keys. The agent
is untrusted: it can present any token it holds, and the kernel verifies
each one. Preventing calls that bypass the kernel depends on deployment
isolation and credential controls (<xref target="security-tool-servers"/>). A tool
server role does not itself confer token-issuing authority. The
trust-control service is trusted to issue and revoke tokens under the
operator's policy.</t>
      </section>
      <section anchor="conformance">
        <name>Conformance and Feature Selection</name>
        <t>This document distinguishes artifact verification from kernel execution.
An artifact verifier implements the encoding, signature, and semantic
checks for the artifact types it accepts. It <bcp14>MUST</bcp14> identify unsupported
schemas, algorithms, and required features as unsupported; it <bcp14>MUST NOT</bcp14>
report them as successfully verified. A valid signature authenticates
signed bytes under a key. Trust in that key and acceptance of the
artifact's authority are separate checks.</t>
        <t>A conforming execution kernel implements capability verification,
policy enforcement, receipts, and the durable lifecycle in
<xref target="execution-lifecycle"/>. Budgets, governed transactions, authenticated
attenuation, and checkpoints are feature profiles. A kernel that accepts
a call requiring a feature <bcp14>MUST</bcp14> enforce that feature's complete
requirements. Otherwise, it <bcp14>MUST</bcp14> reject the call before dispatch. It
<bcp14>MUST NOT</bcp14> discard a constraint or substitute an advisory check for an
enforcement requirement.</t>
        <t>Peers <bcp14>MUST</bcp14> establish the required features, signature policy, trusted
identities, and transport binding before accepting execution requests.
The native v1 binding uses authenticated deployment configuration; its
wire version alone does not negotiate these features. The MCP binding
uses its initialization exchange and trusted server policy. An
agent-supplied feature list cannot lower that policy. A change that
requires a new wire member or value <bcp14>MUST</bcp14> follow <xref target="versioning"/>.</t>
        <t>Confinement, credential custody, information-flow control, and active
response extend the kernel's execution boundary. <xref target="security-runtime"/>
defines their security requirements when selected by an execution
profile. Their platform mechanisms and companion artifact formats are
not additional wire formats implicitly negotiated by this document. An
implementation <bcp14>MUST</bcp14> state which profiles it implements. Support for an
artifact library or protocol adapter alone is not conformance as an
execution kernel.</t>
      </section>
      <section anchor="mediated-call">
        <name>Kernel Execution</name>
        <t><xref target="fig-call"/> shows one call over the native transport (<xref target="native-transport"/>).</t>
        <figure anchor="fig-call">
          <name>One Native Kernel Execution</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="544" viewBox="0 0 544 320" class="aasvg">
                <path d="M 24,48L 24,304" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 240,48L 240,304" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 496,48L 496,304" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 24,96L 238.81765,96" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 240,176L 494.81765,176" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 241.18235,208L 496,208" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 25.18235,256L 240,256" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 25.18235,304L 240,304" fill="none" stroke="black" stroke-linecap="round"/>
                <polygon class="arrowhead" points="496,176 484,170.4 484,181.6" fill="black"/>
                <polygon class="arrowhead" points="240,208 252,213.6 252,202.4" fill="black"/>
                <polygon class="arrowhead" points="240,96 228,90.4 228,101.6" fill="black"/>
                <polygon class="arrowhead" points="24,304 36,309.6 36,298.4" fill="black"/>
                <polygon class="arrowhead" points="24,256 36,261.6 36,250.4" fill="black"/>
                <g class="text">
                  <text x="24" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">Agent</text>
                  <text x="244" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">Kernel</text>
                  <text x="468" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">Tool</text>
                  <text x="516" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">server</text>
                  <text x="112" y="68" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">tool_call_request</text>
                  <text x="88" y="84" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">(capability</text>
                  <text x="164" y="84" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">token)</text>
                  <text x="276" y="116" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">verify</text>
                  <text x="332" y="116" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">token,</text>
                  <text x="388" y="116" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">chain,</text>
                  <text x="296" y="132" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">revocation,</text>
                  <text x="372" y="132" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">grant;</text>
                  <text x="416" y="132" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">run</text>
                  <text x="460" y="132" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">guards</text>
                  <text x="292" y="164" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">dispatch</text>
                  <text x="284" y="196" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">output</text>
                  <text x="268" y="228" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">sign</text>
                  <text x="320" y="228" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">receipt</text>
                  <text x="104" y="244" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">tool_call_chunk</text>
                  <text x="196" y="244" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">(0..n)</text>
                  <text x="116" y="276" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">tool_call_response</text>
                  <text x="76" y="292" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">(result,</text>
                  <text x="148" y="292" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">receipt)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art">
Agent                      Kernel                       Tool server
  |                          |                               |
  |  tool_call_request       |                               |
  |  (capability token)      |                               |
  +-------------------------&#62;|                               |
  |                          | verify token, chain,          |
  |                          | revocation, grant; run guards |
  |                          |                               |
  |                          |  dispatch                     |
  |                          +------------------------------&#62;|
  |                          |  output                       |
  |                          |&#60;------------------------------+
  |                          | sign receipt                  |
  |  tool_call_chunk (0..n)  |                               |
  |&#60;-------------------------+                               |
  |  tool_call_response      |                               |
  |  (result, receipt)       |                               |
  |&#60;-------------------------+                               |
</artwork>
          </artset>
        </figure>
        <t>The figure shows a successful execution. A kernel can buffer output
until finalization, or use a streaming release policy that enforces the
output requirements below. Chunk boundaries describe delivery, not the
time at which the tool produced the data.</t>
        <t>A native call proceeds as follows:</t>
        <ol spacing="normal" type="1"><li>
            <t>The agent sends a <tt>tool_call_request</tt> with its capability token,
target, and parameters.</t>
          </li>
          <li>
            <t>The kernel verifies the token, chain, validity interval, revocation
state, matching grant, required proofs, and local policy. The native
v1 request has no sender-proof field; a call requiring an explicit
sender proof is rejected on this binding.</t>
          </li>
          <li>
            <t>The kernel reserves applicable resources and resolves required
approvals. A pending approval does not authorize dispatch.</t>
          </li>
          <li>
            <t>The kernel commits dispatch authority and calls the tool server.
It evaluates the returned output under the selected release policy.</t>
          </li>
          <li>
            <t>The kernel durably finalizes the operation and its receipt, then
returns the authorized result. <xref target="execution-lifecycle"/> specifies the
failure and recovery cases; <xref target="tool-call-results"/> defines the wire
outcomes.</t>
          </li>
        </ol>
      </section>
      <section anchor="execution-lifecycle">
        <name>Durable Execution Lifecycle</name>
        <t>The kernel <bcp14>MUST</bcp14> bind the authenticated subject, capability digest,
normalized target, parameters digest, selected policy, and required
resource reservations to one logical operation. A retry, approval, or
recovery message <bcp14>MUST NOT</bcp14> replace that binding with caller-supplied
state. Concurrent processes sharing an authority domain <bcp14>MUST</bcp14> serialize
consumption of its single-use authority and resource limits.</t>
        <t>Before dispatch, the kernel <bcp14>MUST</bcp14> verify current authority and acquire
the required reservations. A reservation, successful evaluation, pending
approval, or execution nonce is not permission for an independent caller
to perform an external effect. Dispatch authority <bcp14>MUST</bcp14> be committed
durably before a tool is permitted to execute. The commit <bcp14>MUST</bcp14> bind the
operation to its executor and resource state. A stale process or expired
ownership lease <bcp14>MUST NOT</bcp14> authorize a new transition.</t>
        <t>Before commitment, the kernel can cancel an operation and release its
unconsumed reservations. After commitment, loss of a response or absence
of evidence of an effect <bcp14>MUST NOT</bcp14> be treated as proof of non-execution.
The kernel <bcp14>MUST</bcp14> preserve committed exposure until authenticated evidence
and the applicable accounting rules authorize reconciliation. It <bcp14>MUST
NOT</bcp14> automatically redispatch a committed operation, refund its exposure,
or mint replacement single-use authority because a process restarted or
a deadline elapsed. An uncertain effect is recorded as incomplete.</t>
        <t>Output <bcp14>MUST</bcp14> pass the applicable guards before crossing the agent-facing
boundary. When a policy requires the complete result, the kernel <bcp14>MUST</bcp14>
buffer it within configured limits before release. A streaming profile
<bcp14>MUST</bcp14> define the unit of inspection and release; an unchecked prefix
cannot be exposed and retroactively described as blocked. The kernel
<bcp14>MUST</bcp14> durably record the release authorization and retain the evidence
needed to finalize the operation before releasing protected output. A
release record does not prove that the client received the bytes.</t>
        <t>Finalization <bcp14>MUST</bcp14> bind the original operation, accounting outcome, and
receipt. Recovery <bcp14>MUST</bcp14> reuse that binding and any already-finalized
receipt; it <bcp14>MUST NOT</bcp14> silently sign a different account of the same
terminal outcome. If safe recovery cannot establish ownership or recover
required state, the affected execution domain <bcp14>MUST</bcp14> remain unavailable. A
missing or corrupt authority store <bcp14>MUST NOT</bcp14> be replaced with an empty
store that restores consumed authority.</t>
        <t>Failures before sufficient authenticated context exists can produce only
a transport error. A signing or storage failure can also prevent a
receipt from being delivered. Such failures <bcp14>MUST NOT</bcp14> authorize dispatch
or output release that requires the missing evidence. If an effect might
already have occurred, the kernel <bcp14>MUST</bcp14> preserve an incomplete operation
for reconciliation. It <bcp14>MUST NOT</bcp14> fabricate a successful receipt or use an
untrusted emergency signing key.</t>
        <t>These rules provide durable execution authority, not a generic guarantee
of exactly-once external effects. An external executor needs an
authenticated operation binding and durable duplicate suppression, or a
provider-specific idempotency and recovery contract. A client <bcp14>MUST NOT</bcp14>
infer that a timed-out operation is safe to repeat from its transport
status alone.</t>
      </section>
      <section anchor="surfaces">
        <name>Protocol Surfaces</name>
        <t>Capability tokens and receipts use the same object formats across the
three surfaces. Their delivery differs:</t>
        <table anchor="tab-surfaces">
          <name>Protocol Surfaces</name>
          <thead>
            <tr>
              <th align="left">Surface</th>
              <th align="left">Carries</th>
              <th align="left">Encoding</th>
              <th align="left">Defined in</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Native transport</td>
              <td align="left">Calls from agent to kernel</td>
              <td align="left">Length-prefixed canonical JSON</td>
              <td align="left">
                <xref target="native-transport"/></td>
            </tr>
            <tr>
              <td align="left">MCP binding</td>
              <td align="left">Calls from MCP clients to a hosted kernel</td>
              <td align="left">JSON-RPC over HTTP with server-sent events</td>
              <td align="left">
                <xref target="hosted-mcp"/></td>
            </tr>
            <tr>
              <td align="left">Trust-control interface</td>
              <td align="left">Issuance, delegation, receipt query, revocation</td>
              <td align="left">JSON over HTTP</td>
              <td align="left">
                <xref target="trust-control"/></td>
            </tr>
          </tbody>
        </table>
        <t>The native transport has no initialization exchange. A native agent
obtains its capability tokens out of band, for example from the
trust-control service, and then sends calls.</t>
      </section>
    </section>
    <section anchor="encoding">
      <name>Encoding and Cryptography</name>
      <t>Chio signs typed JSON projections. A verifier reconstructs the
projection specified for that artifact, canonicalizes it, and verifies
its signature. It does not sign the original transport bytes,
whitespace, or unknown members discarded during typed parsing. Consumers
therefore distinguish authenticated fields from other data in the
incoming envelope.</t>
      <section anchor="canonical-json">
        <name>Canonical JSON</name>
        <t>Canonical bytes are UTF-8. Object members are ordered lexicographically
by their UTF-16 code-unit sequences; a proper prefix sorts first. Arrays
retain order. The encoding emits no whitespace between tokens. It
escapes quotation marks, reverse solidus, and U+0000 through U+001F,
using the short escapes for backspace, form feed, line feed, carriage
return, and tab. Other control escapes use four lowercase hexadecimal
digits. Other Unicode characters are emitted without normalization.</t>
        <t>Floating-point values use the shortest round-trip decimal
representation. Negative zero becomes <tt>0</tt>. Values with magnitude at
least 0.000001 and less than 1e21 use decimal notation; other nonzero
values use exponent notation, with <tt>+</tt> on a non-negative exponent.
Non-finite values cannot be encoded. These rules follow <xref target="RFC8785"/>.</t>
        <t>The v1 typed encoding additionally preserves signed 64-bit and unsigned
64-bit integer values as exact decimal integers. It does not round those
values to binary64. For example, <tt>9007199254740993</tt> remains those
decimal digits. This compatibility rule differs from unrestricted
application of RFC 8785's I-JSON number model. An implementation using
only binary64 numbers cannot verify such an artifact after rounding its
integer fields. For interoperable inputs within the shared I-JSON
domain, the encodings agree. Producers can keep integers within the safe
binary64 range when interacting with consumers that cannot preserve
full-width integers.</t>
        <t>Receivers <bcp14>MUST</bcp14> validate the original UTF-8 input before constructing a
typed object. They <bcp14>MUST</bcp14> reject duplicate object member names at every
nesting level, including duplicates written with different JSON escape
sequences. Parsing into a map and checking afterward is insufficient.
Receivers <bcp14>MUST</bcp14> reject invalid Unicode, non-finite numbers, out-of-range
integers, and conversions that round or truncate a signed field. Signed
integer fields <bcp14>MUST</bcp14> use decimal integer tokens without a fraction or
exponent; their full declared range <bcp14>MUST</bcp14> be preserved. An unsigned field
<bcp14>MUST NOT</bcp14> accept a negative spelling, including negative zero. These
requirements apply to network input, persisted signed records, imports,
and nested signed envelopes.</t>
        <t>Unsigned application parameters may contain ordinary JSON floating-point
values. Their canonical representation, rather than their source
spelling, is hashed. A receiver <bcp14>MUST NOT</bcp14> apply an integer-only
restriction to an arbitrary JSON field. Where a protocol specifies exact
canonical bytes, the receiver <bcp14>MUST</bcp14> additionally compare the original
bytes with the canonical encoding.</t>
        <t>Each artifact specifies the fields covered by its signature. Unknown
members <bcp14>MUST NOT</bcp14> confer authority or satisfy a required feature. A
closed schema rejects them; an explicitly extensible metadata object
retains them in the signed projection. A verifier <bcp14>MUST NOT</bcp14> silently drop
a recognized security constraint to make an artifact verify.</t>
      </section>
      <section anchor="hashing">
        <name>Hashing</name>
        <t>Unless a structure specifies a domain prefix or Merkle construction,
Chio uses SHA-256 over the specified bytes <xref target="FIPS180-4"/>.
Content-addressed receipt identifiers and scope hashes are lowercase
hexadecimal strings without <tt>0x</tt>. Capability and other
application-assigned identifiers are strings; they are not required to
be hashes. Merkle hashes are serialized as <tt>0x</tt> followed by 64 lowercase
hexadecimal digits. A hash of canonical JSON means the hash of its UTF-8
bytes, rather than a hash of an application language's object storage.</t>
      </section>
      <section anchor="signature-suites">
        <name>Signature Suites</name>
        <t>This document defines Ed25519 <xref target="RFC8032"/>, ECDSA P-256 with SHA-256,
ECDSA P-384 with SHA-384 <xref target="FIPS186-5"/>, and a composite of each
classical suite with ML-DSA-65 <xref target="FIPS204"/>. ECDSA signatures use ASN.1
DER encoding <xref target="RFC3279"/>. ML-DSA-65 uses an empty context string.
Composite verification requires both components over identical message
bytes and matching encoded algorithm sets.</t>
        <t>A verifier dispatches from the parsed key and signature material. It
<bcp14>MUST</bcp14> reject a key/signature algorithm mismatch. A composite verifier
<bcp14>MUST</bcp14> reject a different algorithm set on the key and signature, an
invalid component pairing, or either failed component signature. An
unsupported suite fails verification. Capability and receipt v1
verification uses ordinary Ed25519 verification; it does not imply the
additional weak-key checks of a strict-verification profile.</t>
        <t>Cryptographic floors are <tt>allow_classical</tt>, <tt>allow_hybrid</tt>, and
<tt>pq_required</tt>. They respectively accept classical suites only, classical
or composite suites, and composite suites only. A floor-aware verifier
<bcp14>MUST</bcp14> reject an artifact disallowed by the configured floor. On artifacts
with an <tt>algorithm</tt> envelope hint, it also rejects a present hint
inconsistent with the signature encoding. A missing hint does not
override a self-describing signature unless the artifact explicitly
defines a legacy default. Approval tokens and threshold proposals
interpret an absent hint as Ed25519. A verifier <bcp14>MUST</bcp14> apply the rules of
the artifact it is verifying rather than infer a different default from
another artifact.</t>
        <t>An execution profile <bcp14>MUST</bcp14> select its accepted suites through trusted
configuration. That policy applies to every required signature,
including capabilities, approval proposals, votes, receipts, and
recovery evidence. The allowed sets can differ by signer role, but an
artifact cannot select its own lower floor. A signer <bcp14>MUST</bcp14> check that the
backend's returned key and algorithm match the requested signing
identity and that the produced signature verifies. It <bcp14>MUST NOT</bcp14> fall back
to a weaker backend after a signing failure. Receipt signing, error
paths, and recovery <bcp14>MUST</bcp14> use the configured receipt authority. Persisted
terminal receipts are replayed as original signed envelopes, even when a
suite can produce multiple valid signatures for the same message.</t>
      </section>
      <section anchor="key-encoding">
        <name>Key and Signature Encodings</name>
        <t>Ed25519 public keys are 32 octets encoded as 64 lowercase hexadecimal
characters; signatures are 64 octets encoded as 128 such characters.
These encodings have no algorithm prefix. ECDSA keys use uncompressed
SEC1 points <xref target="SEC1"/>: <tt>p256:</tt> followed by hexadecimal of <tt>04 || X || Y</tt>
(65 octets), or <tt>p384:</tt> followed by the corresponding 97-octet point.
ECDSA signatures use the same prefix followed by hexadecimal of DER
signature bytes.</t>
        <t>The composite format for keys and signatures is:</t>
        <artwork><![CDATA[
hybrid:<classical-encoding>:<pq-hex>:<algorithm-set>
]]></artwork>
        <t>The classical component retains its own prefix when it is ECDSA. The
algorithm set is exactly <tt>ed25519+mldsa65</tt>, <tt>p256+mldsa65</tt>, or
<tt>p384+mldsa65</tt>. ML-DSA-65 public keys occupy 1952 octets and signatures
3309 octets. Components are separated from the right, since an ECDSA
classical encoding contains a colon. Composites cannot nest. This
version defines no standalone ML-DSA wire encoding.</t>
        <t>Producers emit lowercase hexadecimal and no <tt>0x</tt> on classical material.
Classical decoders also accept uppercase hexadecimal and an optional
<tt>0x</tt>; typed serialization normalizes those spellings before
verification.</t>
        <section anchor="crypto-bounds">
          <name>Bounded Cryptographic Decoding</name>
          <t>A decoder <bcp14>MUST</bcp14> bound encoded lengths before allocation and decoding.
Ed25519 keys and signatures contain exactly 32 and 64 octets. P-256 and
P-384 public keys contain exactly 65 and 97 octets; their DER signatures
are at most 72 and 104 octets respectively. An ECDSA verifier <bcp14>MUST</bcp14>
reject non-DER encodings, trailing data, and invalid scalar or point
values. ML-DSA-65 components contain exactly 1952 public-key octets or
3309 signature octets. A composite contains exactly one permitted
classical component and one ML-DSA-65 component; recursive composites
are invalid. A length-valid encoding still requires full cryptographic
verification.</t>
        </section>
      </section>
      <section anchor="signing-input">
        <name>Artifact Signing Inputs</name>
        <t>The projection is part of the protocol. Capability tokens include their
schema and exclude their signature and algorithm hint. Receipts sign a
wrapper containing the computed identifier and identity projection.
Delegation links, approvals, child receipts, and checkpoints use their
own body projections. Aggregate budget roots add a domain prefix.
Copying a signing rule from one artifact to another is not valid. The
relevant sections define the exact bytes.</t>
      </section>
      <section anchor="did-chio">
        <name>Chio Key Identifiers</name>
        <t>The <tt>did:chio</tt> form in this version is <tt>did:chio:</tt> followed by the 64
lowercase hexadecimal characters of an Ed25519 public key. It does not
encode an ECDSA or composite key. Resolution constructs a local key
document; it does not perform an online trust lookup. The key method
identifier is the DID plus <tt>#key-1</tt>, with type
<tt>Ed25519VerificationKey2020</tt>. Its <tt>publicKeyMultibase</tt> is <tt>z</tt> followed
by base58btc of <tt>0xed 0x01</tt> and the raw key. Authentication and
assertion references identify that method. Knowing the DID does not
establish permission to issue capabilities or sign receipts for an
operator.</t>
      </section>
    </section>
    <section anchor="capabilities">
      <name>Capability Tokens</name>
      <t>A capability token is an issuer-signed grant to a subject key for a
bounded time. The issuer's trust relationship, the grant's scope, local
policy, and the runtime's enforcement profile jointly determine whether
the kernel can dispatch a request.</t>
      <section anchor="capability-structure">
        <name>Capability Structure</name>
        <table anchor="tab-capability-fields">
          <name>Capability Token Fields</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>schema</tt></td>
              <td align="left">
                <tt>chio.capability.v1</tt> string</td>
              <td align="left">Defaulted on input</td>
            </tr>
            <tr>
              <td align="left">
                <tt>id</tt></td>
              <td align="left">String</td>
              <td align="left">Always</td>
            </tr>
            <tr>
              <td align="left">
                <tt>issuer</tt>, <tt>subject</tt></td>
              <td align="left">Encoded public keys</td>
              <td align="left">Always</td>
            </tr>
            <tr>
              <td align="left">
                <tt>scope</tt></td>
              <td align="left">Scope object</td>
              <td align="left">Always</td>
            </tr>
            <tr>
              <td align="left">
                <tt>issued_at</tt>, <tt>expires_at</tt></td>
              <td align="left">Unsigned 64-bit Unix seconds</td>
              <td align="left">Always</td>
            </tr>
            <tr>
              <td align="left">
                <tt>delegation_chain</tt></td>
              <td align="left">Array of links</td>
              <td align="left">When nonempty</td>
            </tr>
            <tr>
              <td align="left">
                <tt>aggregate_invocation_budget</tt></td>
              <td align="left">Budget object</td>
              <td align="left">When present</td>
            </tr>
            <tr>
              <td align="left">
                <tt>caveats</tt></td>
              <td align="left">Array</td>
              <td align="left">When nonempty</td>
            </tr>
            <tr>
              <td align="left">
                <tt>scope_attenuations</tt></td>
              <td align="left">Array</td>
              <td align="left">When nonempty</td>
            </tr>
            <tr>
              <td align="left">
                <tt>attenuation_proof</tt></td>
              <td align="left">Proof object</td>
              <td align="left">When present</td>
            </tr>
            <tr>
              <td align="left">
                <tt>budget_share_bps</tt></td>
              <td align="left">Unsigned 16-bit integer</td>
              <td align="left">When present</td>
            </tr>
            <tr>
              <td align="left">
                <tt>algorithm</tt></td>
              <td align="left">Algorithm hint</td>
              <td align="left">When non-default</td>
            </tr>
            <tr>
              <td align="left">
                <tt>signature</tt></td>
              <td align="left">Encoded signature</td>
              <td align="left">Always</td>
            </tr>
          </tbody>
        </table>
        <t>The signing input is one flattened object containing every typed member
above except <tt>algorithm</tt> and <tt>signature</tt>, with the same omission rules.
The <tt>schema</tt> member is included and equals <tt>chio.capability.v1</tt>, even
when omitted by an older wire producer. There is no byte prefix. The
issuer <bcp14>MUST</bcp14> reject a signing operation whose actual key differs from
<tt>issuer</tt>. <xref target="example-capability"/> gives exact generated bytes.</t>
        <t>For compatibility, verification can retry the body without <tt>schema</tt> only
for a plain v1 token: no caveats, no nonempty <tt>scope_attenuations</tt>, no
attenuation proof, no budget share, no aggregate budget, and no
cumulative-approval constraint. A delegation chain alone does not
disable this fallback. New signing uses the schema-aware projection.
Other schema values fail validation.</t>
      </section>
      <section anchor="scope-and-grants">
        <name>Scope and Grants</name>
        <t>A scope has <tt>grants</tt> (tool grants), <tt>resource_grants</tt>, and
<tt>prompt_grants</tt>. Each array defaults to empty and is omitted when empty.
An empty scope is <tt>{}</tt>. Operations are <tt>invoke</tt>, <tt>read_result</tt>, <tt>read</tt>,
<tt>subscribe</tt>, <tt>get</tt>, and <tt>delegate</tt>. An operation name is not proof that
a runtime implements an enforcement point for it.</t>
        <section anchor="tool-grants">
          <name>Tool Grants</name>
          <t>A tool grant requires <tt>server_id</tt>, <tt>tool_name</tt>, and <tt>operations</tt>.
<tt>constraints</tt> is omitted when empty. <tt>max_invocations</tt>,
<tt>max_cost_per_invocation</tt>, <tt>max_total_cost</tt>, and <tt>dpop_required</tt> are
included when present. <xref target="budgets"/> defines the ceilings.</t>
          <t>A grant matches an invocation when the server and tool each equal the
request value or the literal <tt>*</tt>, the operations contain <tt>invoke</tt>, and
all argument constraints match. Tool names have no prefix-glob rule.
Matches are ordered by server exactness, tool exactness, then constraint
count, each descending; ties keep the original grant index. A constraint
evaluation error on a target-matching grant aborts resolution rather
than allowing a less specific grant to hide that error. The portable
tool profile selects the first match. The hosted kernel can try matched
grants in order through governance, policy, runtime, and budget
admission.</t>
        </section>
        <section anchor="resource-grants">
          <name>Resource Grants</name>
          <t>A resource grant requires <tt>uri_pattern</tt> and <tt>operations</tt>. Resource
reading checks <tt>read</tt>; subscription checks <tt>subscribe</tt>. Patterns use
raw-string equality, <tt>*</tt> for all values, or a trailing <tt>*</tt> for a prefix.
No URI normalization is implied by that comparison.</t>
        </section>
        <section anchor="prompt-grants">
          <name>Prompt Grants</name>
          <t>A prompt grant requires <tt>prompt_name</tt> and <tt>operations</tt>. Prompt retrieval
checks <tt>get</tt> using the same exact, universal, or trailing-prefix pattern
rules. Resource and prompt matching are outside the portable tool-only
profile.</t>
        </section>
      </section>
      <section anchor="constraints">
        <name>Constraints</name>
        <t>Constraints use <tt>{"type":name,"value":payload}</tt> with case-sensitive
snake_case names. A unit constraint omits <tt>value</tt>. Unknown variants or
unknown members of the constraint object fail parsing. The portable
argument profile evaluates these constraints:</t>
        <ul spacing="normal">
          <li>
            <t><tt>path_prefix</tt> (string): identify path-like string leaves, normalize
slash and reverse-solidus separators, remove empty and <tt>.</tt> segments,
resolve <tt>..</tt> without escaping the root, and require matching absolute
or relative form and the stated segment prefix for every candidate.</t>
          </li>
          <li>
            <t><tt>domain_exact</tt> and <tt>domain_glob</tt> (strings): extract host-like values
from string leaves, remove scheme, user information, port, path,
query, and fragment, trim dots, and lowercase. Exact compares hosts;
the glob's <tt>*</tt> matches any run including dots. At least one candidate
is needed, and every candidate has to match.</t>
          </li>
          <li>
            <t><tt>max_length</tt> (non-negative integer): limit the UTF-8 byte count of
each argument string leaf.</t>
          </li>
          <li>
            <t><tt>max_args_size</tt> (non-negative integer): limit the bytes in compact
JSON of the entire arguments value, rather than its canonical form.</t>
          </li>
          <li>
            <t><tt>custom</tt> (two-string array): require a recursively found object
member whose name and string value match. Reserved delivery and
recovery spellings are errors, not custom predicates. They are
<tt>output_digest_sha256</tt>, <tt>require_finding_purchase</tt>,
<tt>require_finding_recovery</tt>, <tt>recovery_of_receipt_id</tt>, and
<tt>recovery_of_capability_id</tt>.</t>
          </li>
          <li>
            <t><tt>audience_allowlist</tt> (string array): check members named <tt>recipient</tt>,
<tt>recipients</tt>, <tt>audience</tt>, <tt>to</tt>, <tt>channel</tt>, or <tt>channels</tt>, ignoring
case in the names. If present, each value must contain at least one
string and contain only strings or recursively nested arrays. Every
string value is allowlisted, including an empty string only when
explicitly allowlisted. Absent audience members pass.</t>
          </li>
          <li>
            <t><tt>memory_store_allowlist</tt> (string array): the same rule for <tt>store</tt>,
<tt>memory_store</tt>, <tt>collection</tt>, and <tt>namespace</tt>.</t>
          </li>
        </ul>
        <t>Path candidates have a case-insensitive key containing <tt>path</tt> or equal
to <tt>file</tt>, <tt>filepath</tt>, <tt>dir</tt>, <tt>directory</tt>, <tt>root</tt>, or <tt>cwd</tt>; path-like
values without <tt>://</tt> are also candidates when they begin with <tt>/</tt>, <tt>./</tt>,
<tt>../</tt>, or <tt>~/</tt>, or contain a path separator. A missing path candidate
does not match. Host candidates are <tt>localhost</tt> or strings containing a
dot with only ASCII alphanumerics, dots, and hyphens after extraction.</t>
        <t>Governed constraints are defined in <xref target="intent-constraints"/>. Other
constraint families require an explicitly supported runtime profile.
When constraint evaluation encounters an unsupported constraint, the
portable kernel <bcp14>MUST</bcp14> fail grant resolution. A marker that a hosted
matcher defers to a guard is not evidence that the guard enforced it.
<xref target="implementation-status"/> identifies that profile boundary.</t>
      </section>
      <section anchor="sender-constraint">
        <name>Sender Constraint</name>
        <t>The Chio invocation proof object below is distinct from the hosted HTTP
DPoP proof. The native <tt>tool_call_request</tt> has no field carrying it; the
ordinary session bridge supplies no invocation proof. Hosted HTTP sender
proof authenticates the edge session and is not forwarded as this kernel
invocation proof. A grant requiring invocation-level DPoP therefore
needs a surface that carries the object; neither transport silently
supplies it.</t>
        <t>When any matching tool grant has <tt>dpop_required: true</tt>, the hosted
kernel requires a valid proof before invocation. The native proof is
<tt>{body,signature}</tt>. Its body has <tt>schema</tt> (<tt>chio.dpop_proof.v1</tt>),
<tt>capability_id</tt>, <tt>tool_server</tt>, <tt>tool_name</tt>, <tt>action_hash</tt>, <tt>nonce</tt>,
<tt>issued_at</tt> (Unix seconds), and <tt>agent_key</tt>. The subject signs canonical
JSON of that body, without a prefix. <tt>action_hash</tt> hashes canonical
arguments only. This is capability/action proof of possession; it is
distinct from the HTTP-method and URI JWT binding in <xref target="RFC9449"/>.</t>
        <t>The kernel checks schema, subject key, capability/server/tool/action
bindings, freshness, signature, and nonce replay state. The default
freshness window is 300 seconds with 30 seconds future-clock allowance;
the expiration comparison is inclusive. The nonce's replay identity is
<tt>(nonce, capability_id)</tt> and is retained through its signed expiry.
Preview and dispatch revalidation can be stateless; dispatch credential
reservation reserves the nonce. A required proof with unavailable replay
state fails closed. Hosted HTTP sender constraint is a separate binding
specified in <xref target="hosted-admission"/>.</t>
      </section>
      <section anchor="delegation">
        <name>Delegation</name>
        <t>A delegation link requires <tt>capability_id</tt>, <tt>delegator</tt>, <tt>delegatee</tt>,
<tt>timestamp</tt>, and <tt>signature</tt>. It includes <tt>attenuations</tt> when nonempty,
and <tt>scope_hash</tt>, <tt>aggregate_budget</tt>, and <tt>cumulative_approval</tt> when
present. The delegator signs canonical JSON of those typed fields except
<tt>signature</tt>; there is no schema member or domain prefix. The signer has
to match <tt>delegator</tt>.</t>
        <t>A chain verifier checks each link's signature, adjacent key
connectivity, nondecreasing timestamps, and final delegatee equal to the
token subject. A configured maximum depth is also enforced. A portable
verifier has no universal default depth limit. The hosted kernel
additionally validates stored parent snapshots, delegator authority,
validity windows, expiry narrowing, and delegation permissions. It
checks revocation for the token and every named ancestor.</t>
      </section>
      <section anchor="attenuation">
        <name>Attenuation</name>
        <t>Signed attenuation arrays use internally tagged objects. Members below
are beside <tt>type</tt>, rather than nested inside a <tt>value</tt> member:</t>
        <table anchor="tab-attenuation-variants">
          <name>Signed Attenuation Variants</name>
          <thead>
            <tr>
              <th align="left">type</th>
              <th align="left">Additional required members</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>remove_tool</tt></td>
              <td align="left">
                <tt>server_id</tt>, <tt>tool_name</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>remove_operation</tt></td>
              <td align="left">
                <tt>server_id</tt>, <tt>tool_name</tt>, <tt>operation</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>add_constraint</tt></td>
              <td align="left">
                <tt>server_id</tt>, <tt>tool_name</tt>, <tt>constraint</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>reduce_budget</tt></td>
              <td align="left">
                <tt>server_id</tt>, <tt>tool_name</tt>, <tt>max_invocations</tt> (unsigned 32-bit integer)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>shorten_expiry</tt></td>
              <td align="left">
                <tt>new_expires_at</tt> (unsigned 64-bit integer)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>reduce_cost_per_invocation</tt></td>
              <td align="left">
                <tt>server_id</tt>, <tt>tool_name</tt>, <tt>max_cost_per_invocation</tt> (monetary amount)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>reduce_total_cost</tt></td>
              <td align="left">
                <tt>server_id</tt>, <tt>tool_name</tt>, <tt>max_total_cost</tt> (monetary amount)</td>
            </tr>
          </tbody>
        </table>
        <t>Target names are strings; <tt>operation</tt>, <tt>constraint</tt>, and monetary
amounts use the types defined above. A receiver <bcp14>MUST</bcp14> reject unknown
variants and unknown members within a variant.</t>
        <t>A cumulative-approval constraint in a child scope <bcp14>MUST</bcp14> preserve the
parent's approval-budget identifier, epoch, currency, and canonically
equal root binding, or have both root bindings absent. Its threshold
<bcp14>MUST NOT</bcp14> exceed the parent's threshold. A child <bcp14>MUST NOT</bcp14> introduce a
cumulative-approval marker absent from its covering parent grant.</t>
        <t>Every child grant fits a parent grant of the same kind. For tools, the
parent covers the child server and tool, child operations are contained,
parent constraints remain present, invocation and monetary caps remain
or narrow, and <tt>dpop_required: true</tt> remains true. Monetary caps
preserve currency. Constraint preservation uses equality except the
supported cumulative-approval narrowing rule in
<xref target="governed-transactions"/>. Resource and prompt narrowing use their
pattern-coverage rules. Delegating authority additionally requires a
covering parent grant with <tt>delegate</tt>.</t>
        <t>The attenuation proof uses camelCase members <tt>parentScopeHash</tt>,
<tt>childScopeHash</tt>, and <tt>normalizedSubsetProof</tt>. The witness contains
<tt>normalizedParentScope</tt> and <tt>normalizedChildScope</tt> (JSON strings),
<tt>subsetRelations</tt> and <tt>restrictedPredicates</tt> when nonempty, and
<tt>aggregateBudget</tt> and <tt>cumulativeApproval</tt> when present. A relation has
<tt>grantKind</tt>, <tt>childIndex</tt>, <tt>parentIndex</tt>, and boolean <tt>subset</tt>. Scope
hashes are SHA-256 of the canonical typed scope bytes. Array order is
preserved; normalization does not sort grants or operations.</t>
        <t>The verifier hashes the supplied scope strings, parses both scopes, and
requires both strings to be exact canonical JSON and recomputes actual
grant subset relationships. It rejects a false declared subset relation,
child-hash mismatch, or a widened actual scope. Relation indices and
textual restricted-predicate descriptions are not independent
authorization evidence. The token's <tt>scope_attenuations</tt> is signed but
does not substitute for recomputing the subset. The only supported
caveat in this document is the security-context binding below. A
verifier <bcp14>MUST</bcp14> reject other caveat kinds and a token containing more than
one security-context binding.</t>
        <section anchor="capability-security-context">
          <name>Authenticated Security Context</name>
          <t>A capability can bind its authority to an authenticated runtime context
through a caveat whose <tt>kind</tt> is <tt>bind_security_context</tt>. Its
<tt>predicate</tt> is a string containing the exact canonical JSON of the
following object. The caveat <bcp14>MUST NOT</bcp14> carry a detached <tt>sig</tt>; the
capability signature covers the complete caveat.</t>
          <table anchor="tab-security-binding">
            <name>Capability Security Context</name>
            <thead>
              <tr>
                <th align="left">Member</th>
                <th align="left">Type and meaning</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>schema</tt></td>
                <td align="left">
                  <tt>chio.capability-security-binding.v1</tt></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>tenantId</tt></td>
                <td align="left">Tenant identity</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>lineageId</tt></td>
                <td align="left">Capability lineage identity</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>sessionId</tt></td>
                <td align="left">Authenticated session identity</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>principalId</tt></td>
                <td align="left">Authenticated principal identity</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>isolationEpochId</tt></td>
                <td align="left">Isolation epoch identity</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>contextGeneration</tt></td>
                <td align="left">Positive unsigned 64-bit context generation</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>workloadId</tt></td>
                <td align="left">Workload identity</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>serverId</tt></td>
                <td align="left">Tool-server identity</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>workloadSignerPublicKey</tt></td>
                <td align="left">Workload signing key (<xref target="key-encoding"/>)</td>
              </tr>
            </tbody>
          </table>
          <t>All members are <bcp14>REQUIRED</bcp14>. All identities are nonempty strings without
leading or trailing whitespace or control characters. Unknown members
are invalid. The receiver <bcp14>MUST</bcp14> validate the predicate's original bytes,
require exact canonical encoding, validate the key, and compare every
member with independently authenticated runtime context. A caller's
unsigned assertion of the same identifiers is insufficient.</t>
          <t>An execution kernel <bcp14>MUST</bcp14> reject a context-bound call if it cannot obtain
that trusted context or if any member differs. Protocol adapters <bcp14>MUST</bcp14>
preserve the binding through dispatch; they <bcp14>MUST NOT</bcp14> remove the caveat
to obtain compatibility with a weaker evaluator. A new session,
principal, tenant, workload, or isolation epoch does not inherit
authority merely because it presents an old token. Delegation requiring
a different binding needs explicit authorization from the trusted issuer
and a new valid token.</t>
        </section>
      </section>
      <section anchor="chain-binding">
        <name>Chain Binding</name>
        <t>A proof, nonempty <tt>scope_attenuations</tt>, or a budget share triggers chain
binding. The verifier <bcp14>MUST</bcp14> require an attenuation proof and an
issuer-resolved trust-root scope hash for such a token. For an empty
chain, the proof's parent hash equals that root hash. For a delegated
token, the last link's hash equals the proof's parent hash, the first
link's hash equals the root hash, and every link carries a scope hash.
This proof-bearing profile accepts at most one link. A plain chain alone
does not trigger this rule; aggregate and cumulative profiles impose
their own authenticated root-snapshot checks.</t>
        <figure anchor="fig-delegation">
          <name>One-Hop Scope-Bound Delegation</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="112" width="552" viewBox="0 0 552 112" class="aasvg">
                <path d="M 56,48L 56,80" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 56,64L 88,64" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 200,64L 312,64" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 432,64L 456,64" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 272,64C 280.83064,64 288,71.16936 288,80" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 272,64C 280.83064,64 288,56.83064 288,48" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 456,64C 464.83064,64 472,71.16936 472,80" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 456,64C 464.83064,64 472,56.83064 472,48" fill="none" stroke="black" stroke-linecap="round"/>
                <g class="text">
                  <text x="20" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">Root</text>
                  <text x="64" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">scope</text>
                  <text x="108" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">hash</text>
                  <text x="252" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">Parent</text>
                  <text x="304" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">scope</text>
                  <text x="348" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">hash</text>
                  <text x="440" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">Child</text>
                  <text x="488" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">scope</text>
                  <text x="532" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">hash</text>
                  <text x="124" y="68" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">signed</text>
                  <text x="172" y="68" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">link</text>
                  <text x="348" y="68" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">subset</text>
                  <text x="400" y="68" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">proof</text>
                  <text x="40" y="100" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">trusted</text>
                  <text x="92" y="100" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">root</text>
                  <text x="284" y="100" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">delegating</text>
                  <text x="344" y="100" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">key</text>
                  <text x="464" y="100" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">subject</text>
                  <text x="512" y="100" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">key</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art">
Root scope hash             Parent scope hash       Child scope hash
      |                            |                      |
      +---- signed link ----------+---- subset proof ----+
      |                            |                      |
 trusted root                 delegating key          subject key
</artwork>
          </artset>
        </figure>
      </section>
      <section anchor="capability-verification">
        <name>Verification</name>
        <t>Portable full verification checks, in order: peer profile validity;
issuer trust; optional-feature negotiation; algorithm-hint consistency
and cryptographic floor; schema and signature; time; supplied
direct-root capability, if present; aggregate and cumulative budget
bindings; chain shape; chain binding; and sibling-share admission. Time
is valid exactly when <tt>issued_at &#60;= now &#60; expires_at</tt>, with no
capability clock-skew allowance.</t>
        <t>Failures deny admission. They distinguish untrusted issuer, invalid
signature, rejected cryptographic floor, not-yet-valid, expired,
attenuation violation, and budget split rejection. Some schema or proof
errors occur inside signature reconstruction and surface as internal
verification failures. The wire mapping is specified in <xref target="errors"/>.</t>
        <t>Hosted admission adds token/ancestor revocation, stored delegation
lineage, exact subject binding (<tt>agent_id</tt> equals normalized subject-key
encoding), scope resolution, proof of possession, governance, guards,
runtime and budget admission, credential reservation, and immediate
dispatch revalidation. Checks can repeat across that boundary. A token
verified earlier is not exempt from later revocation or changed state.</t>
      </section>
      <section anchor="feature-negotiation">
        <name>Feature Negotiation</name>
        <t>A capability-feature profile is
<tt>{"schema":"chio.capabilities.v1","features":{"name":true}}</tt>. <tt>schema</tt>
defaults to this value on parsing and is always serialized; an empty
<tt>features</tt> map is omitted. Unknown envelope members are rejected.
Feature names contain 1 to 96 ASCII bytes from <tt>[a-z0-9_.-]</tt>; values are
booleans. The flags relevant here are <tt>delegation_chain_binding</tt>,
<tt>aggregate_invocation_budget</tt>, <tt>cumulative_approval_budget</tt>, and
<tt>threshold_governed_approvals</tt>, <tt>governed_active_response_plan</tt>, and
<tt>opaque_supplemental_authorization</tt>. The last two select a response-plan
validator or an installed supplemental-authorization verifier;
preserving an opaque object does not verify it or authorize execution.</t>
        <t>The intersection of two valid profiles contains true only when both
sides declare true, false when either explicitly declares false, and
omits a flag declared true by only one side. The chain-binding rule's
absent-flag compatibility default still applies to that intersection.</t>
        <t>Before an invocation crosses an adapter, the adapter <bcp14>MUST</bcp14> check support
for every required feature against the host-authenticated peer profile.
Invocation metadata <bcp14>MUST NOT</bcp14> supply that profile. The adapter <bcp14>MUST NOT</bcp14>
strip approval artifacts, aggregate limits, or supplemental
authorization to make a request acceptable to an unsupported receiver.
An absent chain- binding flag defaults to enabled; explicitly disabling
it rejects tokens that require it. A feature flag describes supported
validation behavior, not permission to skip a constraint whose
evaluation is unsupported. The local kernel configures this profile
through trusted deployment state; the separately specified federation
handshake carries signed capability negotiation and a pinned
intersection. MCP initialization advertises its own transport features,
not the complete <tt>chio.capabilities.v1</tt> negotiation object.</t>
      </section>
    </section>
    <section anchor="receipts">
      <name>Receipts</name>
      <t>A receipt binds a kernel key to a recorded outcome. Its signature
permits a verifier to detect changes to the signed record. The verifier
separately decides whether to trust that key and what authority the
recorded boundary supports. A trace of an observed call does not
establish that the kernel authorized that call.</t>
      <section anchor="receipt-structure">
        <name>Receipt Structure</name>
        <t>The receipt is one JSON object. It has no top-level <tt>schema</tt> member.
<tt>chio.receipt.v1</tt> names the artifact and signing projection, rather than
a field to insert into the wire object. All names below are
case-sensitive.</t>
        <table anchor="tab-receipt-fields">
          <name>Receipt Fields</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>id</tt></td>
              <td align="left">Lowercase SHA-256 hex string</td>
              <td align="left">Always</td>
            </tr>
            <tr>
              <td align="left">
                <tt>timestamp</tt></td>
              <td align="left">Unsigned 64-bit Unix seconds</td>
              <td align="left">Always</td>
            </tr>
            <tr>
              <td align="left">
                <tt>capability_id</tt></td>
              <td align="left">String</td>
              <td align="left">Always</td>
            </tr>
            <tr>
              <td align="left">
                <tt>tool_server</tt>, <tt>tool_name</tt></td>
              <td align="left">Strings</td>
              <td align="left">Always</td>
            </tr>
            <tr>
              <td align="left">
                <tt>action</tt></td>
              <td align="left">Action object</td>
              <td align="left">Always</td>
            </tr>
            <tr>
              <td align="left">
                <tt>receipt_kind</tt></td>
              <td align="left">Kind string</td>
              <td align="left">Always</td>
            </tr>
            <tr>
              <td align="left">
                <tt>boundary_class</tt></td>
              <td align="left">Boundary string</td>
              <td align="left">Always</td>
            </tr>
            <tr>
              <td align="left">
                <tt>tool_origin</tt></td>
              <td align="left">Origin string</td>
              <td align="left">Always</td>
            </tr>
            <tr>
              <td align="left">
                <tt>redaction_mode</tt></td>
              <td align="left">Redaction string</td>
              <td align="left">Always</td>
            </tr>
            <tr>
              <td align="left">
                <tt>decision</tt></td>
              <td align="left">Decision object</td>
              <td align="left">Mediated kind</td>
            </tr>
            <tr>
              <td align="left">
                <tt>observation_outcome</tt></td>
              <td align="left">Outcome string</td>
              <td align="left">Other kinds</td>
            </tr>
            <tr>
              <td align="left">
                <tt>content_hash</tt></td>
              <td align="left">SHA-256 hex string</td>
              <td align="left">Always</td>
            </tr>
            <tr>
              <td align="left">
                <tt>policy_hash</tt></td>
              <td align="left">Policy identifier string</td>
              <td align="left">Always</td>
            </tr>
            <tr>
              <td align="left">
                <tt>actor_chain</tt></td>
              <td align="left">Array of actor objects</td>
              <td align="left">When nonempty</td>
            </tr>
            <tr>
              <td align="left">
                <tt>evidence</tt></td>
              <td align="left">Array of guard evidence</td>
              <td align="left">When nonempty</td>
            </tr>
            <tr>
              <td align="left">
                <tt>trust_level</tt></td>
              <td align="left">Trust string</td>
              <td align="left">Always</td>
            </tr>
            <tr>
              <td align="left">
                <tt>metadata</tt></td>
              <td align="left">JSON value</td>
              <td align="left">When present</td>
            </tr>
            <tr>
              <td align="left">
                <tt>tenant_id</tt></td>
              <td align="left">String</td>
              <td align="left">When present</td>
            </tr>
            <tr>
              <td align="left">
                <tt>kernel_key</tt></td>
              <td align="left">Encoded public key</td>
              <td align="left">Always</td>
            </tr>
            <tr>
              <td align="left">
                <tt>algorithm</tt></td>
              <td align="left">Algorithm hint</td>
              <td align="left">When non-default</td>
            </tr>
            <tr>
              <td align="left">
                <tt>signature</tt></td>
              <td align="left">Encoded signature</td>
              <td align="left">Always</td>
            </tr>
          </tbody>
        </table>
        <t>The action has <tt>parameters</tt> (any JSON value) and <tt>parameter_hash</tt>. The
latter is lowercase hexadecimal SHA-256 of the canonical parameters. An
actor has <tt>actor_id</tt> and, when supplied, <tt>actor_kind</tt>. Guard evidence
has <tt>guard_name</tt>, <tt>verdict</tt> (boolean), and, when supplied, <tt>details</tt>.
<tt>policy_hash</tt> identifies the evaluated policy; a symbolic policy
identifier is also representable, so this field is not necessarily a
SHA-256 digest.</t>
        <t><tt>tool_origin</tt> is <tt>caller_executed</tt>, <tt>host_executed_provider_reported</tt>,
<tt>host_executed_unmediated</tt>, or <tt>chio_internal</tt>. The last class
identifies an operation executed within Chio's trusted runtime; it does
not confer additional authority or change the receipt's decision
semantics. <tt>redaction_mode</tt> is <tt>none</tt>, <tt>summary</tt>, or <tt>redacted</tt>. The
origin describes the execution path; it does not change the boundary's
authority. Redaction describes the producer's representation of the
record, not permission to modify an already signed receipt.</t>
      </section>
      <section anchor="receipt-kinds">
        <name>Receipt Kinds and Boundaries</name>
        <t>The kernel or other producer <bcp14>MUST</bcp14> check the following coherence rules
before signing. A receipt verifier <bcp14>MUST</bcp14> reject a record that violates
them.</t>
        <table anchor="tab-receipt-kinds">
          <name>Receipt Coherence</name>
          <thead>
            <tr>
              <th align="left">Kind</th>
              <th align="left">Boundary</th>
              <th align="left">Trust</th>
              <th align="left">Outcome member</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>mediated_decision</tt></td>
              <td align="left">
                <tt>prevent</tt></td>
              <td align="left">
                <tt>mediated</tt></td>
              <td align="left">
                <tt>decision</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>trace_observation</tt></td>
              <td align="left">
                <tt>detect_only</tt></td>
              <td align="left">
                <tt>verified</tt></td>
              <td align="left">
                <tt>observation_outcome</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>advisory_evaluation</tt></td>
              <td align="left">
                <tt>advisory_only</tt></td>
              <td align="left">
                <tt>advisory</tt></td>
              <td align="left">
                <tt>observation_outcome</tt></td>
            </tr>
          </tbody>
        </table>
        <t>A mediated receipt carries a decision and no observation outcome. A
non-mediated receipt carries an observation outcome and no decision.
Observation outcomes are <tt>observed</tt>, <tt>evaluated</tt>, and <tt>dropped</tt>.
<tt>cannot_see</tt> is not a signable receipt boundary in this version. The
word <tt>verified</tt> in a trust label describes the observation class; it
does not prove preventive enforcement.</t>
      </section>
      <section anchor="decisions">
        <name>Decisions</name>
        <t>Decisions are JSON objects tagged by <tt>verdict</tt>:</t>
        <ul spacing="normal">
          <li>
            <t><tt>allow</tt>: no additional members.</t>
          </li>
          <li>
            <t><tt>deny</tt>: <tt>reason</tt> and <tt>guard</tt>, both strings.</t>
          </li>
          <li>
            <t><tt>cancelled</tt>: <tt>reason</tt>, a string.</t>
          </li>
          <li>
            <t><tt>incomplete</tt>: <tt>reason</tt>, a string.</t>
          </li>
        </ul>
        <t>An allow decision establishes authorization only inside a coherent
<tt>mediated_decision</tt> receipt, under a trusted kernel key. Denied,
canceled, and incomplete outcomes do not authorize the call. An
incomplete outcome preserves uncertainty about execution; it is not a
statement that nothing happened. An observation or advisory receipt
never substitutes for an allow decision at a preventive boundary.</t>
      </section>
      <section anchor="content-hash">
        <name>Content Binding</name>
        <t>For a mediated value result, the kernel hashes canonical JSON of the
evaluated output. For an ordinary, non-redacted call with no output, it
hashes the four UTF-8 bytes <tt>null</tt>. For a stream, it first hashes each
chunk's canonical data; then it hashes the concatenation of those
lowercase hexadecimal digests, in chunk order, without separators. The
concatenated values are ASCII hexadecimal strings, not raw 32-octet
digests. Stream metadata records chunk hashes, count, and canonical byte
count. A delivery-mismatch denial uses the distinct redacted commitment
<tt>H(UTF8("chio.delivery-mismatch.redacted.v1") || 0x00 ||
ASCII(expected_digest))</tt> and omits public stream metadata. A verifier
<bcp14>MUST</bcp14> select that producer profile before comparing the content binding.</t>
        <t>When the kernel holds the evaluated output, it <bcp14>MUST</bcp14> recompute its
content hash before signing. A pre-filled hash that does not match is
rejected. A trusted-body relay can sign a record supplied by a trusted
producer when it does not hold that output. That seam preserves producer
trust; it does not provide an independent check of the content.</t>
        <t>Different observation producers can bind different content preimages. A
verifier therefore needs the producer's content profile and the actual
content to check <tt>content_hash</tt>; the signature alone does not perform
this check.</t>
      </section>
      <section anchor="receipt-identifier">
        <name>Receipt Identifier</name>
        <t>Let <tt>J(x)</tt> be the canonical JSON UTF-8 encoding in <xref target="canonical-json"/>
and let <tt>H(x)</tt> be lowercase hexadecimal SHA-256. Construct the identity
projection <tt>I</tt> from all typed receipt fields except <tt>id</tt>, <tt>algorithm</tt>,
<tt>signature</tt>, and the selective-disclosure extension signature. Preserve
the omission rules of <xref target="receipt-structure"/>. The identifier is:</t>
        <artwork><![CDATA[
id = H(J(I))
]]></artwork>
        <t>Thus the kernel key, decision, content binding, action, evidence,
attribution, metadata, and tenant are bound into the identifier. Field
order in an incoming JSON object does not affect it. Unknown members
discarded by a typed parser are outside this projection; consumers
cannot infer that such members were authenticated. Extensions that
change the projection need a separately defined profile. A base-profile
consumer <bcp14>MUST</bcp14> reject <tt>bbs_projection_version</tt> or <tt>bbs_signature</tt>, or
route the object to the separately defined selective-disclosure profile.
This document does not define that extension's projection or signing
wrapper.</t>
      </section>
      <section anchor="receipt-signing">
        <name>Signing</name>
        <t>Preparation proceeds in order: validate semantic coherence; bind the
signing nonce if the pre-binding identifier is nonempty; compute the
content-addressed identifier; then sign the wrapper below. The nonce is
the trimmed pre-binding identifier. It is placed in
<tt>metadata.chio_receipt_signing_nonce</tt>, replacing an existing value.
Absent metadata becomes an object. Non-object metadata is preserved
under <tt>original_metadata</tt> before the nonce is inserted. An empty
pre-binding identifier does not insert a nonce. A verifier cannot assume
every receipt carries one.</t>
        <t>Without selective-disclosure extension material, the signature input is
exactly the canonical UTF-8 encoding of:</t>
        <artwork><![CDATA[
{"id": <computed identifier>, "body": <identity projection I>}
]]></artwork>
        <t>The angle-bracket notation describes a projection, not a JSON example.
The kernel <bcp14>MUST</bcp14> reject a signing operation whose actual key differs from
the embedded <tt>kernel_key</tt>. The signature covers the wrapper, not the
wire envelope or the identity projection by itself. The optional
<tt>algorithm</tt> hint is outside the signed projection. <xref target="key-encoding"/>
defines the self-describing signature encodings. <xref target="examples"/> contains a
generated receipt and its exact signing input.</t>
      </section>
      <section anchor="receipt-lineage">
        <name>Receipt Lineage</name>
        <t>An ordinary receipt has no top-level DAG ordinal, parent set, or hybrid
logical clock. A governed call carries pairwise continuation information
inside signed metadata, as specified in <xref target="call-chain-continuation"/>. A
separate lineage statement can connect parent and child receipts.
Multiple verified statements can describe multiple parents; this does
not make generic receipt signature verification a DAG validator.</t>
        <t>The lineage statement uses camelCase names. Its signed body contains
<tt>schema</tt> (<tt>chio.receipt_lineage_statement.v1</tt>), <tt>id</tt>, <tt>parentReceiptId</tt>,
<tt>childReceiptId</tt>, <tt>parentRequestId</tt>, <tt>childRequestId</tt>,
<tt>parentSessionAnchor</tt>, <tt>childSessionAnchor</tt>, <tt>relationKind</tt>,
<tt>evidenceClass</tt>, <tt>issuedAt</tt>, and <tt>kernelKey</tt>; <tt>continuationTokenId</tt> is
included when present. The session-anchor reference and governed
continuation are defined in <xref target="call-chain-continuation"/>. Relations in
this document are <tt>local_child</tt> and <tt>continued</tt>. The signature covers
the canonical body, including its identifier; it does not use the
ordinary receipt wrapper or nonce rule. A lineage statement verifier
checks the schema and signature. The endpoints' authenticity, authority,
and relationship need separate verification.</t>
        <t>A parent-set hash helper hashes canonical JSON of a sorted, deduplicated
array of receipt identifier strings. That helper does not bind a chain
identifier or enforce DAG topology. This document defines no common
top-level multi-parent receipt envelope and makes no acyclicity or
child-ordinal claim for ordinary receipt verification.</t>
      </section>
      <section anchor="child-receipts">
        <name>Child Receipts</name>
        <t>A child operation can end without being a mediated tool decision. Its
receipt carries <tt>id</tt>, <tt>session_id</tt>, <tt>parent_request_id</tt>, <tt>request_id</tt>,
<tt>operation_kind</tt>, <tt>timestamp</tt>, <tt>terminal_state</tt>, <tt>outcome_hash</tt>,
<tt>policy_hash</tt>, <tt>kernel_key</tt>, and <tt>signature</tt>. <tt>metadata</tt> and <tt>algorithm</tt>
use the ordinary presence rules. Its identifier is a producer-assigned
string, not the content address of <xref target="receipt-identifier"/>.</t>
        <t>Operation kinds are <tt>tool_call</tt>, <tt>create_message</tt>, <tt>create_elicitation</tt>,
<tt>list_roots</tt>, <tt>list_resources</tt>, <tt>read_resource</tt>,
<tt>list_resource_templates</tt>, <tt>list_prompts</tt>, <tt>get_prompt</tt>, <tt>complete</tt>,
<tt>list_capabilities</tt>, and <tt>heartbeat</tt>. The <tt>terminal_state</tt> is tagged by
<tt>state</tt>: <tt>completed</tt>, <tt>cancelled</tt> with a string <tt>reason</tt>, or
<tt>incomplete</tt> with a string <tt>reason</tt>.</t>
        <t>The child signature covers canonical JSON of its body, including <tt>id</tt>
and excluding <tt>algorithm</tt> and <tt>signature</tt>. It has no ordinary receipt
wrapper or signing nonce. A successful child outcome hashes canonical
JSON of <tt>{"outcome":"result","result":value}</tt>; an error hashes
<tt>{"outcome":"error","message":text}</tt>. An ordinary operation error can be
a completed child operation. Child completion therefore does not mean
that its result succeeded or was authorized. A child verifier <bcp14>MUST</bcp14>
verify the canonical child body under its embedded signing key, and a
consumer accepting it as evidence <bcp14>MUST</bcp14> separately authorize that signer
and apply any configured cryptographic floor. It <bcp14>MUST NOT</bcp14> apply the
ordinary receipt content-addressed identifier or wrapper to a child
receipt. Signature verification does not recompute <tt>outcome_hash</tt>.</t>
      </section>
      <section anchor="receipt-verification">
        <name>Verification</name>
        <t>An ordinary receipt verifier follows this procedure; child receipts use
the distinct preimage and checks in <xref target="child-receipts"/>:</t>
        <ol spacing="normal" type="1"><li>
            <t>Parse the typed fields and apply the kind, boundary, decision, and
trust coherence rules in <xref target="receipt-kinds"/>.</t>
          </li>
          <li>
            <t>Reconstruct <tt>I</tt>, recompute <tt>H(J(I))</tt>, and reject a different <tt>id</tt>.</t>
          </li>
          <li>
            <t>Reconstruct the signing wrapper and verify the signature using the
embedded key and signature encoding. Reject an algorithm mismatch
between the key and signature. When a cryptographic floor is applied,
also check a present hint for consistency and enforce the floor.</t>
          </li>
          <li>
            <t>Check whether the kernel key belongs to the verifier's configured
trusted set. A self-consistent record signed by an untrusted key is
not accepted as evidence of that verifier's kernel.</t>
          </li>
          <li>
            <t>Recompute <tt>parameter_hash</tt> from <tt>action.parameters</tt> and reject a
mismatch. Before claiming content integrity, obtain the output and
its producer profile, then recompute its content binding. If the
output is unavailable, report content integrity as unchecked.</t>
          </li>
          <li>
            <t>Evaluate the policy identity, time, tenant, attribution, and any
lineage evidence against the verifier's own application policy.</t>
          </li>
        </ol>
        <t>A consumer accepting a receipt as evidence <bcp14>MUST</bcp14> perform steps 1 through
6 for its intended use. A signature-only helper implements only part of
this procedure and <bcp14>MUST NOT</bcp14> be presented as complete receipt
verification. Freshness, external content, and the operational meaning
of metadata require the context identified above. A field named
<tt>trust_level</tt> or <tt>evidenceClass</tt> never replaces those checks.</t>
      </section>
    </section>
    <section anchor="budgets">
      <name>Budgets and Metering</name>
      <t>Budgets mediate admission and reserve accounting headroom before
dispatch. They do not, by themselves, establish the amount an external
service billed or stop a provider from reporting more than the reserved
exposure. A verifier distinguishes an authorization ceiling, a durable
reservation, realized accounting, and an external charge.</t>
      <section anchor="monetary-amounts">
        <name>Monetary Amounts</name>
        <t>A monetary amount is exactly <tt>{"units":integer,"currency":string}</tt>.
<tt>units</tt> is an unsigned 64-bit integer in minor units; zero is
representable. <tt>currency</tt> denotes an ISO 4217 currency <xref target="ISO4217"/>, such
as USD with cents or JPY with yen. The wire type rejects unknown
members. The typed grant path does not independently validate ISO
spelling or the equality of per-call and total currencies. Delegation
narrowing does compare currency strings and rejects a changed currency.</t>
        <t>A monetary-amount producer <bcp14>MUST</bcp14> include both members and encode units as
an integer from 0 through 18446744073709551615. A typed monetary-amount
decoder <bcp14>MUST</bcp14> reject missing members, unknown members, a non-integer
units value, or a units value outside that range. The JSON-schema
profile additionally requires a nonempty currency string. The typed
grant path does not enforce that string's ISO spelling or compare the
per-call denomination with the total denomination; deployments that
require those properties apply a separate currency policy.</t>
        <t>Budget-store additions <bcp14>MUST</bcp14> fail on integer overflow rather than wrap. A
store whose integer range is narrower <bcp14>MUST</bcp14> reject values outside that
range. The reference SQLite store supports nonnegative values through
9223372036854775807. These budget-store rules do not describe the
saturating totals in auxiliary metering records.</t>
      </section>
      <section anchor="grant-ceilings">
        <name>Grant Ceilings</name>
        <t>A tool grant can carry <tt>max_invocations</tt> (unsigned 32-bit integer),
<tt>max_cost_per_invocation</tt> (monetary amount), and <tt>max_total_cost</tt>
(monetary amount). Each is independently omitted when absent.</t>
        <t>A store enforcing a grant's invocation and monetary ceilings <bcp14>MUST</bcp14>
authorize an admission only when every applicable check succeeds:</t>
        <ul spacing="normal">
          <li>
            <t>The grant's reserved plus captured invocation count is less than
max_invocations. A maximum of zero admits no invocation.</t>
          </li>
          <li>
            <t>Requested exposure is no greater than max_cost_per_invocation.</t>
          </li>
          <li>
            <t>Existing exposed units plus realized spend plus requested exposure
is no greater than max_total_cost.</t>
          </li>
        </ul>
        <t>An absent ceiling contributes no check. Equality is permitted for the
monetary checks. The kernel requests max_cost_per_invocation.units as
exposure, or zero when that ceiling is absent. It does not compute
exposure from a realized cost. Therefore max_total_cost alone does not
advance monetary accounting and is not an enforced standalone spending
ceiling.</t>
        <t>An admission in the durable monetary profile <bcp14>MUST</bcp14> have a positive
per-call exposure. A kernel enforcing that profile <bcp14>MUST</bcp14> deny financial
tool dispatch when no durable admission covers the selected grant. An
explicitly enabled development escape from that check does not establish
durable monetary enforcement.</t>
        <t>Monetary rows are scoped to the capability identifier and grant index. A
delegated token does not automatically share its parent's monetary row.</t>
      </section>
      <section anchor="budget-holds">
        <name>Budget Holds</name>
        <t>The admission lifecycle is authorize exposure and reserve invocation
quotas, capture before dispatch, then reconcile measured spend. The
kernel <bcp14>MUST</bcp14> use checked arithmetic and reject any transition that cannot
be represented exactly in its authoritative store. It <bcp14>MUST NOT</bcp14> admit a
value by wrapping, rounding, or saturating a counter.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="160" width="512" viewBox="0 0 512 160" class="aasvg">
              <path d="M 40,48L 40,70.81765" fill="none" stroke="black" stroke-linecap="round"/>
              <path d="M 40,96L 40,144" fill="none" stroke="black" stroke-linecap="round"/>
              <path d="M 240,48L 240,70.81765" fill="none" stroke="black" stroke-linecap="round"/>
              <path d="M 472,48L 472,70.81765" fill="none" stroke="black" stroke-linecap="round"/>
              <path d="M 472,88L 472,104" fill="none" stroke="black" stroke-linecap="round"/>
              <path d="M 80,80L 200,80" fill="none" stroke="black" stroke-linecap="round"/>
              <path d="M 288,80L 408,80" fill="none" stroke="black" stroke-linecap="round"/>
              <path d="M 40,112L 64,112" fill="none" stroke="black" stroke-linecap="round"/>
              <path d="M 40,144L 64,144" fill="none" stroke="black" stroke-linecap="round"/>
              <polygon class="arrowhead" points="472,72 477.6,60 466.4,60" fill="black"/>
              <polygon class="arrowhead" points="240,72 245.6,60 234.4,60" fill="black"/>
              <polygon class="arrowhead" points="40,72 45.6,60 34.4,60" fill="black"/>
              <g class="text">
                <text x="40" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">authorize</text>
                <text x="220" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">dispatch</text>
                <text x="280" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">fence</text>
                <text x="476" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">terminal</text>
                <text x="36" y="84" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">reserved</text>
                <text x="244" y="84" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">captured</text>
                <text x="460" y="84" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">reconciled</text>
                <text x="132" y="116" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">cancel/reverse</text>
                <text x="388" y="116" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">unused</text>
                <text x="452" y="116" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">exposure</text>
                <text x="424" y="132" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">returns</text>
                <text x="128" y="148" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">reserved-hold</text>
                <text x="216" y="148" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">expiry:</text>
                <text x="284" y="148" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">exposure</text>
                <text x="360" y="148" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">forfeited</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art">
authorize              dispatch fence                  terminal
    |                        |                            |
    v                        v                            v
reserved ---------------- captured ---------------- reconciled
    |                                                     |
    +--- cancel/reverse                      unused exposure
    |                                            returns
    +--- reserved-hold expiry: exposure forfeited
</artwork>
        </artset>
        <t>For a positive monetary exposure, a hold store <bcp14>MUST</bcp14> reject
reconciliation unless the invocation is captured, the monetary state is
exposed, the supplied exposure equals the hold's remaining exposure, and
realized units do not exceed that exposure. Successful reconciliation
removes that exposure and adds realized units; the unused portion
returns to headroom. Realized units can be zero.</t>
        <t>A hold store <bcp14>MUST</bcp14> reject a monetary release unless the release is
positive, does not exceed remaining exposure, the monetary state is
exposed, and the invocation remains authorized. It <bcp14>MUST</bcp14> reject reversal
unless the invocation remains authorized and the reversed amount is the
complete remaining exposure. Release and reversal therefore cannot cross
invocation capture. Cancellation of a captured admission before dispatch
is a separate operation.</t>
        <t>For an explicitly caller-reserved hold that is still open and whose
reserved_until is at or before the reaper's time, the reaper <bcp14>MUST</bcp14>
capture the invocation if needed and realize the full remaining
exposure. This conservative legacy v1 accounting rule forfeits an
abandoned reservation; it is not evidence that an external effect
occurred. An operation-owned caller profile can instead compensate an
uncommitted reservation when it proves that no dispatch authority was
released. It <bcp14>MUST NOT</bcp14> compensate committed or uncertain execution merely
because a deadline expired. Neither rule applies indiscriminately to
every open inline hold. A zero-exposure invocation reservation settles
through capture alone.</t>
        <t>On the measured-cost path, the kernel reconciles at no more than the
authorized exposure. A missing cost report on that path defaults to the
full exposure. If reported cost exceeds a positive exposure, accounting
closes at exposure and settlement_status is failed; the financial
reported amount can retain the larger cost and the call can remain
allowed. The receipt does not prove the external charge was limited. If
an adapter cannot measure realized cost or provide the required final
authorization, the kernel <bcp14>MUST</bcp14> either retain conservative exposure or
reject a call requiring authoritative spend. An explicitly advisory
profile can record a provisional outcome, but <bcp14>MUST NOT</bcp14> present zero
reported cost as proof of zero liability or release committed exposure
without authority.</t>
      </section>
      <section anchor="budget-shares">
        <name>Delegated Budget Shares</name>
        <t>The signed token member budget_share_bps is an unsigned 16-bit value
from 0 through 10000, omitted when absent. A token verifier <bcp14>MUST</bcp14> reject
a value above 10000. A token carrying this member <bcp14>MUST</bcp14> also carry the
attenuation proof required by <xref target="chain-binding"/>.</t>
        <t>For delegated-token sibling admission, the parent identifier is the last
delegation link's capability_id, the child identifier is the token's id,
and an absent share is treated as 10000. The registry <bcp14>MUST</bcp14> reject an
unknown parent, a changed share for an already admitted child, or an
existing sibling sum plus the proposed share greater than the registered
parent share. Re-admitting the same child and share is idempotent. Each
intermediate parent requires its own registration; admitting a child
does not automatically register it as a parent.</t>
        <t>The registry compares parent and child shares on one basis-point scale.
It does not scale max_invocations, max_cost_per_invocation, or
max_total_cost, and the share alone does not establish a shared monetary
balance. An execution kernel using shares as an admission constraint
<bcp14>MUST</bcp14> maintain one authoritative registry for the delegation family. It
<bcp14>MUST</bcp14> preserve admitted allocations across restart, serialize concurrent
allocation, and release an allocation only when no live or recoverable
holder can exercise it. An offline share calculation does not establish
availability in that registry.</t>
      </section>
      <section anchor="aggregate-budgets">
        <name>Aggregate Invocation Budgets</name>
        <t>The token's <tt>aggregate_invocation_budget</tt> is an object with <tt>scope</tt>
(<tt>capability</tt> or <tt>delegation_family</tt>), <tt>max_invocations</tt> (unsigned
32-bit integer), and <tt>root_binding</tt> when needed. Capability scope
forbids a root binding and delegation. Delegation-family scope requires
one. Neither this object nor its root body has an epoch member.</t>
        <t>The signed root binding has <tt>body</tt>, <tt>signature</tt>, and the non-default
<tt>algorithm</tt> hint when supplied. The body has:</t>
        <ul spacing="normal">
          <li>
            <t><tt>schema</tt>: <tt>chio.aggregate-budget-root.v1</tt>.</t>
          </li>
          <li>
            <t><tt>root_capability_id</tt>, <tt>root_capability_hash</tt>, <tt>root_scope_hash</tt>:
strings committing the root token and scope.</t>
          </li>
          <li>
            <t><tt>root_issuer</tt>, <tt>root_subject</tt>: encoded public keys.</t>
          </li>
          <li>
            <t><tt>max_invocations</tt>: unsigned 32-bit integer.</t>
          </li>
          <li>
            <t><tt>root_expires_at</tt>: unsigned 64-bit Unix seconds.</t>
          </li>
        </ul>
        <t>Let C(x) denote the typed canonical UTF-8 JSON bytes in
<xref target="canonical-json"/>, and H(x) denote SHA-256 rendered as 64 lowercase
hexadecimal characters without 0x. A domain string below is UTF-8
followed by one zero octet. Let R be the authenticated direct root
token, S = H(C(R.scope)), and N the family's max_invocations.</t>
        <t>The root commitment projection is exactly:</t>
        <artwork><![CDATA[
{
  "root_capability_id": R.id,
  "root_issuer": R.issuer,
  "root_subject": R.subject,
  "root_scope_hash": S,
  "root_issued_at": R.issued_at,
  "root_expires_at": R.expires_at,
  "aggregate_scope": "delegation_family",
  "max_invocations": N
}
]]></artwork>
        <t>Here the expressions R.id and similar expressions denote copied values,
not JSON strings. root_capability_hash is:</t>
        <artwork><![CDATA[
H("chio.aggregate-budget-root-commitment.v1" || 0x00 ||
  C(projection))
]]></artwork>
        <t>The binding body B is exactly the following projection:</t>
        <artwork><![CDATA[
{
  "schema": "chio.aggregate-budget-root.v1",
  "root_capability_id": R.id,
  "root_capability_hash": the commitment hash above,
  "root_issuer": R.issuer,
  "root_subject": R.subject,
  "max_invocations": N,
  "root_expires_at": R.expires_at,
  "root_scope_hash": S
}
]]></artwork>
        <t>The commitment's root_issued_at and aggregate_scope are not members of
B. A root-binding signer <bcp14>MUST</bcp14> use the key identified by B.root_issuer
and sign exactly:</t>
        <artwork><![CDATA[
"chio.aggregate-budget-root.v1" || 0x00 || C(B)
]]></artwork>
        <t>The signature is placed beside body, with a non-default algorithm hint
when supplied. A verifier <bcp14>MUST</bcp14> reject an unsupported body schema, a
present algorithm hint inconsistent with the signature, or a failed
signature under B.root_issuer. A verifier comparing the binding with R
<bcp14>MUST</bcp14> require equality of root_capability_id, root_capability_hash,
root_issuer, root_subject, max_invocations, root_expires_at, and
root_scope_hash with their recomputed root values.</t>
        <t>For the complete binding E, including its signature and any non-default
algorithm hint, the descendant marker digest is:</t>
        <artwork><![CDATA[
H("chio.aggregate-budget-root-binding-digest.v1" || 0x00 || C(E))
]]></artwork>
        <t>The shared family-accounting owner is:</t>
        <artwork><![CDATA[
H("chio.aggregate-budget-family-key.v1" || 0x00 || C(B))
]]></artwork>
        <t>The owner hashes the body, while the marker digest hashes the complete
binding. Neither the aggregate object nor B has an epoch member.</t>
        <t>A capability-scoped aggregate object <bcp14>MUST</bcp14> omit root_binding and <bcp14>MUST NOT</bcp14>
authorize delegation. A delegation-family object <bcp14>MUST</bcp14> carry
root_binding, and its maximum <bcp14>MUST</bcp14> equal the binding body's maximum. An
implementation of this aggregate profile <bcp14>MUST</bcp14> reject family delegation
longer than one hop.</t>
        <t>A family-descendant verifier <bcp14>MUST</bcp14> authenticate a direct root token with
an empty delegation chain and a trusted root issuer. It <bcp14>MUST</bcp14> reject the
descendant unless all of the following hold:</t>
        <ul spacing="normal">
          <li>
            <t>The first link's capability_id equals the root id, its delegator
equals the root subject, and its scope_hash equals the root scope
hash.</t>
          </li>
          <li>
            <t>The first link timestamp is at least root.issued_at and less than
root.expires_at; the child issued_at is at least the final link
timestamp.</t>
          </li>
          <li>
            <t>The final delegatee equals the child's subject, the child's
expiry is no later than the root expiry, and its scope passes
delegable attenuation against the root scope.</t>
          </li>
          <li>
            <t>The child has delegation_family scope, the same maximum, and a
root binding whose typed canonical JSON is identical to the
root's binding.</t>
          </li>
          <li>
            <t>Every link carries aggregate_budget with the binding digest and
maximum. When an attenuation witness is present, it carries the
same marker as aggregateBudget.</t>
          </li>
        </ul>
        <t>An aggregate-feature verifier <bcp14>MUST</bcp14> reject aggregate evidence when
aggregate_invocation_budget was not negotiated. An enforcement path
without the required durable composite admission <bcp14>MUST</bcp14> reject the
aggregate request rather than infer enforcement from parsing.</t>
        <t>Composite quota admission <bcp14>MUST</bcp14> check every participating quota before
writing any reservation. It <bcp14>MUST</bcp14> reject a changed stored maximum, an
exhausted reserved-plus-captured count, or a maximum of zero. Its quota
set <bcp14>MUST</bcp14> be strictly sorted by unique key and contain at most eight
entries. Capability aggregate quotas use the capability id as owner
under chio.aggregate-capability-invocation.v1; family quotas use the
derived family owner under chio.aggregate-family-invocation.v1. Neither
key has a grant index. Monetary rows remain per capability and grant.</t>
        <t>An issuer supporting aggregate invocation budgets <bcp14>MUST</bcp14> emit all required
root, link, and witness bindings. A verifier <bcp14>MUST</bcp14> check those bindings
and the authoritative quota state before dispatch. An implementation
that supports only ordinary per-token limits <bcp14>MUST</bcp14> reject a token
requiring aggregate enforcement. Syntax validation alone does not
establish a family's remaining authority.</t>
      </section>
      <section anchor="guarantee-levels">
        <name>Guarantee Levels</name>
        <t>Guarantee identifiers and ranks are advisory_posthoc (0),
single_node_atomic (1), partition_escrowed (2), and ha_linearizable (3).
A guarantee-floor verifier <bcp14>MUST</bcp14> reject an unknown requested floor, a
missing budget-authority block, an unknown claimed level, or a claimed
level ranked below the requested floor.</t>
        <t>A producer of budget execution metadata <bcp14>MUST</bcp14> obtain the guarantee
identifier from its accounting store. The reference local stores return
single_node_atomic; the remote trust-control accounting client returns
advisory_posthoc. The reference implementation does not supply a store
that returns partition_escrowed or ha_linearizable. Recognizing those
identifiers does not establish those backings. Likewise, a
single_node_atomic label by itself does not establish durable storage or
distributed accounting truth.</t>
        <t>Hold authority can carry <tt>authority_id</tt>, <tt>lease_id</tt>, and <tt>lease_epoch</tt>.
A budget term is <tt>authority_id:lease_epoch</tt>. Local authority uses a
kernel-key identifier, lease <tt>single-node</tt>, and epoch 1. A durable
serving store checks its ownership fence within the transaction. An
epoch on a hold authority is distinct from an aggregate invocation
budget.</t>
      </section>
      <section anchor="authoritative-spend">
        <name>Authoritative Spend</name>
        <t>An execution nonce has exactly the envelope members <tt>nonce</tt> and
<tt>signature</tt>. The legacy v1 profile signs the body directly. The
operation-owned v2 profile binds that body to durable admission context
(<xref target="operation-nonce"/>). Neither profile alone authorizes an external
caller to execute. The nonce body and its binding are:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Member</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">schema</td>
              <td align="left">chio.execution_nonce.v1 or chio.execution_nonce.v2</td>
              <td align="left">required</td>
            </tr>
            <tr>
              <td align="left">nonce_id</td>
              <td align="left">nonempty string</td>
              <td align="left">required</td>
            </tr>
            <tr>
              <td align="left">issued_at</td>
              <td align="left">integer from 0 through 9223372036854775807, Unix seconds</td>
              <td align="left">required</td>
            </tr>
            <tr>
              <td align="left">expires_at</td>
              <td align="left">integer in the same range, Unix seconds</td>
              <td align="left">required</td>
            </tr>
            <tr>
              <td align="left">bound_to</td>
              <td align="left">object in the following table</td>
              <td align="left">required</td>
            </tr>
            <tr>
              <td align="left">reserved_hold_id</td>
              <td align="left">nonempty string</td>
              <td align="left">omitted when absent</td>
            </tr>
            <tr>
              <td align="left">reserving_request_id</td>
              <td align="left">nonempty string</td>
              <td align="left">omitted when absent</td>
            </tr>
          </tbody>
        </table>
        <table>
          <thead>
            <tr>
              <th align="left">bound_to member</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">subject_id</td>
              <td align="left">nonempty string</td>
              <td align="left">required</td>
            </tr>
            <tr>
              <td align="left">request_id</td>
              <td align="left">nonempty string</td>
              <td align="left">required</td>
            </tr>
            <tr>
              <td align="left">capability_id</td>
              <td align="left">nonempty string</td>
              <td align="left">required</td>
            </tr>
            <tr>
              <td align="left">tool_server</td>
              <td align="left">nonempty string</td>
              <td align="left">required</td>
            </tr>
            <tr>
              <td align="left">tool_name</td>
              <td align="left">nonempty string</td>
              <td align="left">required</td>
            </tr>
            <tr>
              <td align="left">parameter_hash</td>
              <td align="left">64 lowercase hexadecimal SHA-256 characters</td>
              <td align="left">required</td>
            </tr>
          </tbody>
        </table>
        <t>For this JSON-schema profile, a receiver <bcp14>MUST</bcp14> reject missing required
members, unknown members at any of the three object levels, and values
outside the listed types and ranges. A receiver <bcp14>MUST NOT</bcp14> default a
missing request binding or infer it from another operation.</t>
        <t>A v1 nonce signer <bcp14>MUST</bcp14> sign the typed canonical JSON of the complete
nonce body, including each optional body member that is present, without
a domain prefix. The signature is beside nonce, not inside it. The
signer and verifier <bcp14>MUST</bcp14> use the kernel's configured nonce signing
authority and accepted suite policy. A nonce identifier <bcp14>MUST</bcp14> be unique
within that authority's lifetime; UUIDv7 is one implementation choice.
The issuer <bcp14>MUST</bcp14> bound the lifetime by the operation's remaining
authority. A 30-second lifetime is suitable only when consistent with
the selected execution profile and its clock assumptions.</t>
        <t>A v1 nonce verifier for a presented tool-call request <bcp14>MUST</bcp14> reject any
schema other than <tt>chio.execution_nonce.v1</tt>, a time before <tt>issued_at</tt>
or at or after <tt>expires_at</tt>, an empty request_id, a mismatch in any of
the six binding fields against the independently derived expected
request, or an invalid signature under the kernel key. Before accepting
that execution, it <bcp14>MUST</bcp14> reserve the nonce identifier exactly once in its
replay store and reject a replay or replay-store failure. The consumed
marker remains needed through the signed expiry.</t>
        <section anchor="operation-nonce">
          <name>Operation-Owned Nonces</name>
          <t>A <tt>chio.execution_nonce.v2</tt> signer signs the canonical JSON of an object
with exactly three members:</t>
          <table anchor="tab-operation-nonce">
            <name>Operation-Owned Nonce Signing Input</name>
            <thead>
              <tr>
                <th align="left">Member</th>
                <th align="left">Value</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>schema</tt></td>
                <td align="left">
                  <tt>chio.admission-execution-nonce-signature.v1</tt></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>operation_id</tt></td>
                <td align="left">Authenticated durable admission operation identifier</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>nonce</tt></td>
                <td align="left">Complete v2 nonce body, including all present optional members</td>
              </tr>
            </tbody>
          </table>
          <t>There is no additional domain prefix. The wire envelope remains <tt>nonce</tt>
and <tt>signature</tt>; the signing wrapper is reconstructed from trusted
admission state and is not supplied by the agent. The operation
identifier names a binding that includes the authenticated namespace,
capability artifact, request, policy, and effect class. The verifier
<bcp14>MUST</bcp14> resolve that binding independently and check all six nonce request
fields, the trusted signer, issuance interval, and current expiry. An
identifier chosen in untrusted metadata cannot select a different
operation for verification.</t>
          <t>The kernel <bcp14>MUST</bcp14> atomically reserve and consume the nonce under its
original operation's durable ownership. Fresh operation-owned admission
<bcp14>MUST</bcp14> reject v1, even if a legacy replay cache reports the nonce unused.
A v1 verifier <bcp14>MUST</bcp14> reject v2 before consuming any replay marker.
Relabeling the schema does not convert a signature between these
profiles. Historical v1 reservations and terminal decisions remain
evidence, not renewed execution authority; cleanup <bcp14>MUST</bcp14> retain any
tombstones required to prevent their reuse.</t>
        </section>
        <section anchor="caller-spend-evidence">
          <name>Caller Execution and Spend Evidence</name>
          <t>A caller-reserved nonce is an admission artifact, not a dispatch
credential. An execution profile that delegates the external effect to a
caller <bcp14>MUST</bcp14> separately authenticate that executor and bind dispatch to
the original operation, capability digest, target, parameters digest,
reservation, executor identity and key epoch, and validity interval. The
executor <bcp14>MUST</bcp14> authenticate the kernel's dispatch authorization and
durably claim the operation before performing the effect. Reconciliation
<bcp14>MUST</bcp14> authenticate the executor's report and bind it to that same
authorization. A caller-supplied cost or an unsigned assertion of
success is insufficient to release captured exposure or claim verified
execution.</t>
          <t>The kernel <bcp14>MUST</bcp14> retain the original dispatch authorization and report
identity for recovery. An uncertain committed operation remains subject
to <xref target="execution-lifecycle"/>; a missing report does not authorize refund
or redispatch. The output of a caller-executed operation passes the same
release checks as native tool output. The executor's signed report
attests to that executor's account, not independently to the provider's
external state. The executor-authorization and report wire formats
belong to a separately agreed execution profile; the execution nonce
defined here does not supply those messages.</t>
          <t>A consumer recognizing the legacy <tt>chio.mediated_spend.v1</tt> receipt
predicate with a <tt>chio.execution_nonce.v1</tt> nonce <bcp14>MUST</bcp14> reject the receipt
unless every following condition holds:</t>
          <ol spacing="normal" type="1"><li>
              <t>The receipt signature is valid under its embedded kernel_key and
that key belongs to the consumer's admitted kernel signer set.</t>
            </li>
            <li>
              <t>receipt_kind is mediated_decision, boundary_class is prevent,
trust_level is mediated, the decision is allow, and
observation_outcome is absent.</t>
            </li>
            <li>
              <t>metadata.budget_authority contains a nonempty hold_id and
mediated_spend.profile equal to chio.mediated_spend.v1.</t>
            </li>
            <li>
              <t>authorize.exposure_units is positive. terminal.disposition is
reconciled and terminal.event_id is present.</t>
            </li>
            <li>
              <t>execution_nonce_id equals the presented signed nonce's nonce_id.
If that nonce has reserved_hold_id, it equals hold_id.</t>
            </li>
            <li>
              <t>The nonce's capability_id, tool_server, tool_name, and
parameter_hash equal the receipt's corresponding call fields.</t>
            </li>
            <li>
              <t>The nonce signature verifies under the same admitted kernel_key.</t>
            </li>
          </ol>
          <t>This predicate does not independently check nonce subject_id,
request_id, schema, expiry, replay state, or the guarantee floor. It
also does not query a budget store or quorum and does not require a
budget_commit_index. Its terminal realized accounting amount is
terminal.realized_spend_units, which can differ from the reported
financial.cost_charged. Execution-time nonce verification and
guarantee-floor checking are separate checks; successful evaluation of
this predicate alone does not establish them.</t>
        </section>
      </section>
      <section anchor="metering">
        <name>Metering Metadata</name>
        <t>The receipt's financial and budget_authority metadata are inside the
signed receipt projection. A producer of a financial block <bcp14>MUST</bcp14> include
the required fields below and omit an optional field that has no value.</t>
        <table>
          <thead>
            <tr>
              <th align="left">financial member</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">grant_index</td>
              <td align="left">unsigned 32-bit integer</td>
              <td align="left">required</td>
              <td align="left">Matching grant index.</td>
            </tr>
            <tr>
              <td align="left">cost_charged</td>
              <td align="left">unsigned 64-bit integer</td>
              <td align="left">required</td>
              <td align="left">Recorded financial amount; can exceed ledger-realized units on a reported overrun.</td>
            </tr>
            <tr>
              <td align="left">currency</td>
              <td align="left">string</td>
              <td align="left">required</td>
              <td align="left">Recorded denomination. A zero-exposure invocation reconciliation uses an empty string.</td>
            </tr>
            <tr>
              <td align="left">budget_remaining</td>
              <td align="left">unsigned 64-bit integer</td>
              <td align="left">required</td>
              <td align="left">Recorded remaining amount. Reconciled paths subtract committed units from the recorded total, saturating at zero; an exhaustion denial can record the total without reading current usage.</td>
            </tr>
            <tr>
              <td align="left">budget_total</td>
              <td align="left">unsigned 64-bit integer</td>
              <td align="left">required</td>
              <td align="left">Recorded grant ceiling or path-specific bounded envelope. The inline path uses the maximum u64 value when no total ceiling exists.</td>
            </tr>
            <tr>
              <td align="left">delegation_depth</td>
              <td align="left">unsigned 32-bit integer</td>
              <td align="left">required</td>
              <td align="left">Recorded delegation-chain depth.</td>
            </tr>
            <tr>
              <td align="left">root_budget_holder</td>
              <td align="left">string</td>
              <td align="left">required</td>
              <td align="left">Recorded holder identifier; inline receipts use the capability issuer key encoding.</td>
            </tr>
            <tr>
              <td align="left">settlement_status</td>
              <td align="left">string</td>
              <td align="left">required</td>
              <td align="left">not_applicable, pending, settled, or failed.</td>
            </tr>
            <tr>
              <td align="left">payment_reference</td>
              <td align="left">string</td>
              <td align="left">omitted when absent</td>
              <td align="left">Optional external reference; settlement rails are outside this document.</td>
            </tr>
            <tr>
              <td align="left">cost_breakdown</td>
              <td align="left">JSON value</td>
              <td align="left">omitted when absent</td>
              <td align="left">Optional itemized report.</td>
            </tr>
            <tr>
              <td align="left">oracle_evidence</td>
              <td align="left">object</td>
              <td align="left">omitted when absent</td>
              <td align="left">Optional conversion evidence; verification of that evidence is outside this section.</td>
            </tr>
            <tr>
              <td align="left">attempted_cost</td>
              <td align="left">unsigned 64-bit integer</td>
              <td align="left">omitted when absent</td>
              <td align="left">Attempted amount on a denial.</td>
            </tr>
          </tbody>
        </table>
        <t>A producer of a full hold-lineage budget_authority block <bcp14>MUST</bcp14> use the
member names and presence rules below. A label-only denial can carry
only guarantee_level, authority_profile, and metering_profile; that
reduced block does not satisfy the authoritative-spend profile.</t>
        <t>In the full hold-lineage block, authority_profile is
<tt>authoritative_hold_event</tt>, metering_profile is
<tt>max_cost_preauthorize_then_reconcile_actual</tt>, and guarantee_level is
one of the identifiers in <xref target="guarantee-levels"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">budget_authority member</th>
              <th align="left">Type</th>
              <th align="left">Presence in full block</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">guarantee_level</td>
              <td align="left">string</td>
              <td align="left">required</td>
            </tr>
            <tr>
              <td align="left">authority_profile</td>
              <td align="left">string</td>
              <td align="left">required</td>
            </tr>
            <tr>
              <td align="left">metering_profile</td>
              <td align="left">string</td>
              <td align="left">required</td>
            </tr>
            <tr>
              <td align="left">hold_id</td>
              <td align="left">string</td>
              <td align="left">required</td>
            </tr>
            <tr>
              <td align="left">budget_term</td>
              <td align="left">string</td>
              <td align="left">omitted when absent</td>
            </tr>
            <tr>
              <td align="left">authority</td>
              <td align="left">object</td>
              <td align="left">omitted when absent</td>
            </tr>
            <tr>
              <td align="left">authorize</td>
              <td align="left">object</td>
              <td align="left">required</td>
            </tr>
            <tr>
              <td align="left">invocation_capture</td>
              <td align="left">object</td>
              <td align="left">omitted when absent</td>
            </tr>
            <tr>
              <td align="left">terminal</td>
              <td align="left">object</td>
              <td align="left">omitted when absent</td>
            </tr>
            <tr>
              <td align="left">execution_nonce_id</td>
              <td align="left">string</td>
              <td align="left">omitted when absent</td>
            </tr>
            <tr>
              <td align="left">mediated_spend</td>
              <td align="left">object containing profile</td>
              <td align="left">omitted when absent; profile is chio.mediated_spend.v1 when included</td>
            </tr>
          </tbody>
        </table>
        <table>
          <thead>
            <tr>
              <th align="left">authority member</th>
              <th align="left">Type</th>
              <th align="left">Presence when authority is included</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">authority_id</td>
              <td align="left">string</td>
              <td align="left">required</td>
            </tr>
            <tr>
              <td align="left">lease_id</td>
              <td align="left">string</td>
              <td align="left">required</td>
            </tr>
            <tr>
              <td align="left">lease_epoch</td>
              <td align="left">unsigned 64-bit integer</td>
              <td align="left">required</td>
            </tr>
          </tbody>
        </table>
        <table>
          <thead>
            <tr>
              <th align="left">authorize member</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">exposure_units</td>
              <td align="left">unsigned 64-bit integer</td>
              <td align="left">required</td>
            </tr>
            <tr>
              <td align="left">committed_cost_units_after</td>
              <td align="left">unsigned 64-bit integer</td>
              <td align="left">required</td>
            </tr>
            <tr>
              <td align="left">event_id</td>
              <td align="left">string</td>
              <td align="left">omitted when absent</td>
            </tr>
            <tr>
              <td align="left">budget_commit_index</td>
              <td align="left">unsigned 64-bit integer</td>
              <td align="left">omitted when absent</td>
            </tr>
          </tbody>
        </table>
        <table>
          <thead>
            <tr>
              <th align="left">terminal member</th>
              <th align="left">Type</th>
              <th align="left">Presence when terminal is included</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">disposition</td>
              <td align="left">string</td>
              <td align="left">required; reference emitted values are reconciled, reversed, and cancelled_before_dispatch</td>
            </tr>
            <tr>
              <td align="left">exposure_units</td>
              <td align="left">unsigned 64-bit integer</td>
              <td align="left">required</td>
            </tr>
            <tr>
              <td align="left">realized_spend_units</td>
              <td align="left">unsigned 64-bit integer</td>
              <td align="left">required</td>
            </tr>
            <tr>
              <td align="left">committed_cost_units_after</td>
              <td align="left">unsigned 64-bit integer</td>
              <td align="left">required</td>
            </tr>
            <tr>
              <td align="left">event_id</td>
              <td align="left">string</td>
              <td align="left">omitted when absent</td>
            </tr>
            <tr>
              <td align="left">budget_commit_index</td>
              <td align="left">unsigned 64-bit integer</td>
              <td align="left">omitted when absent</td>
            </tr>
          </tbody>
        </table>
        <t>A successful invocation_capture object records invocation_count_after
and includes event_id and budget_commit_index when available. An
ambiguous-capture denial instead records event_id with
invocation_capture_ambiguous and admission_retained set to true. These
are distinct projections of capture state.</t>
        <t>When a producer links a v1 nonce to a <tt>chio.mediated_spend.v1</tt> block, it
<bcp14>MUST</bcp14> include both execution_nonce_id and mediated_spend.profile. A v2
nonce <bcp14>MUST NOT</bcp14> be labeled as satisfying that legacy predicate merely
because it occupies the same transport envelope. Receipt consumers
distinguish reported financial amounts from the committed authorize,
capture, and terminal lineage. The typed financial and budget_authority
decoders do not universally reject unknown members; these metadata
blocks are not a strict unknown-member-rejection profile.</t>
        <t>Auxiliary metering records can measure compute time, data volume, API
cost, warehouse queries, and custom dimensions. They are not
automatically attached to kernel receipts and do not substitute for the
durable hold contract in this section.</t>
      </section>
    </section>
    <section anchor="governed-transactions">
      <name>Governed Transactions</name>
      <t>A governed transaction is a tool call that carries a declared intent: a
JSON object that names the call's target and purpose and can bound its
cost, name a seller, carry a price quote, and assert the call chain the
call belongs to. When a grant requires it, the call also carries an
approval, signed by one trusted approver or by a quorum of eligible
approvers. The kernel checks the intent against the call and the grant,
verifies the approval, classifies the asserted call chain, and records
the intent hash and its findings in the receipt.</t>
      <t>A <tt>tool_call_request</tt> (<xref target="native-messages"/>) carries these objects in
four <bcp14>OPTIONAL</bcp14> members, each omitted when absent:</t>
      <dl>
        <dt><tt>governed_intent</tt>:</dt>
        <dd>
          <t>The intent (<xref target="governed-intent"/>).</t>
        </dd>
        <dt><tt>approval_token</tt>:</dt>
        <dd>
          <t>A single approval (<xref target="approval-tokens"/>).</t>
        </dd>
        <dt><tt>approval_tokens</tt>:</dt>
        <dd>
          <t>An array of 1 to 32 approval tokens that vote on a threshold
proposal (<xref target="threshold-approval"/>). It is omitted when empty.</t>
        </dd>
        <dt><tt>threshold_approval_proposal</tt>:</dt>
        <dd>
          <t>The proposal that the tokens in <tt>approval_tokens</tt> vote on.</t>
        </dd>
      </dl>
      <t>The MCP binding carries the same objects in <tt>_meta</tt>
(<xref target="hosted-tool-calls"/>). An approval binds to the call's request
identifier: the <tt>id</tt> of a native <tt>tool_call_request</tt>, or
<tt>_meta.chioRequestId</tt> on the MCP binding.</t>
      <t>An agent <bcp14>MUST NOT</bcp14> send both <tt>approval_token</tt> and a non-empty
<tt>approval_tokens</tt>. An agent that sends <tt>threshold_approval_proposal</tt>
        <bcp14>MUST</bcp14> send a non-empty <tt>approval_tokens</tt>, and an agent that sends a
non-empty <tt>approval_tokens</tt> <bcp14>MUST</bcp14> send <tt>threshold_approval_proposal</tt>. The
kernel denies a call that breaks these rules.</t>
      <section anchor="governed-evaluation">
        <name>Applying the Checks</name>
        <t>The kernel applies the checks in this section to a grant that matches
the call (<xref target="capability-verification"/>) when the grant carries any of the
constraints <tt>governed_intent_required</tt>, <tt>require_approval_above</tt>,
<tt>seller_exact</tt>, <tt>minimum_runtime_assurance</tt>, or <tt>minimum_autonomy_tier</tt>
(<xref target="constraints"/>), or when the request carries any of the four members
above. When the checks apply, the kernel <bcp14>MUST</bcp14> deny a call that carries
no <tt>governed_intent</tt>.</t>
        <t>The kernel runs the checks for each matching grant in turn, before it
runs the guards for that grant. It does not use a grant whose checks
fail, and it goes on to the next matching grant. If no matching grant
passes, the kernel denies the call. It runs the checks again for the
chosen grant immediately before dispatch.</t>
        <t>Unless this section says otherwise, a governed validation failure <bcp14>MUST</bcp14>
prevent dispatch. For authorization artifacts representable by the typed
digest structures, the kernel returns a signed denial with decision
<tt>deny</tt> and guard <tt>kernel</tt>; the native result is <tt>policy_denied</tt>.
Structurally inconsistent approvals can prevent construction of the
usual governed metadata. If the kernel can still authenticate the
request and persist a valid denial, it returns <tt>internal_error</tt> with a
receipt under its configured receipt authority. Otherwise it terminates
the exchange as specified in <xref target="tool-call-results"/>. An unconfigured
signing key is never an error-recovery mechanism.</t>
      </section>
      <section anchor="governed-intent">
        <name>Governed Intent</name>
        <t>The intent is a JSON object. Its own members and those of <tt>commerce</tt>
have snake_case names. The members of <tt>metered_billing</tt>, <tt>call_chain</tt>,
and <tt>autonomy</tt> have camelCase names. <bcp14>OPTIONAL</bcp14> members are omitted when
absent.</t>
        <table anchor="tab-governed-intent">
          <name>Governed Intent Members</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>id</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Identifier chosen by the agent. The kernel copies it to the receipt.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>server_id</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Target tool server.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>tool_name</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Target tool.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>purpose</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Free text; can be empty.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>max_amount</tt></td>
              <td align="left">MonetaryAmount object (<xref target="monetary-amounts"/>)</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Largest amount the intent authorizes.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>commerce</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Seller context (<xref target="tab-governed-commerce"/>).</td>
            </tr>
            <tr>
              <td align="left">
                <tt>metered_billing</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Settlement mode and quote (<xref target="governed-metered-billing"/>).</td>
            </tr>
            <tr>
              <td align="left">
                <tt>runtime_attestation</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Runtime attestation evidence, in the form defined in <xref target="issuance"/>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>call_chain</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Asserted call chain (<xref target="tab-governed-call-chain"/>).</td>
            </tr>
            <tr>
              <td align="left">
                <tt>autonomy</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Autonomy tier (<xref target="governed-intent-checks"/>).</td>
            </tr>
            <tr>
              <td align="left">
                <tt>context</tt></td>
              <td align="left">JSON value</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Free-form context. Two keys are reserved (<xref target="call-chain-continuation"/>).</td>
            </tr>
            <tr>
              <td align="left">
                <tt>body</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">
                <tt>tool_invocation</tt>, <tt>bound_tool_invocation</tt>, or the companion <tt>active_response_plan</tt> profile. Omission means <tt>tool_invocation</tt>.</td>
            </tr>
          </tbody>
        </table>
        <table anchor="tab-governed-commerce">
          <name>Commerce Members</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>seller</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Seller or payee that the call pays.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>shared_payment_token_id</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Reference to the payment credential the seller will use.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>settlement_destination_ref</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Reference to the account that receives the payment.</td>
            </tr>
          </tbody>
        </table>
        <table anchor="tab-governed-call-chain">
          <name>Call Chain Members</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>chainId</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Identifier of the call chain.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>parentRequestId</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Request identifier of the parent call.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>parentReceiptId</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Receipt identifier of the parent call.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>originSubject</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Subject that started the chain.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>delegatorSubject</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Subject that delegated to the caller.</td>
            </tr>
          </tbody>
        </table>
        <t>The <tt>autonomy</tt> object has a <bcp14>REQUIRED</bcp14> <tt>tier</tt>, one of <tt>direct</tt>,
<tt>delegated</tt>, and <tt>autonomous</tt> in increasing order, and an <bcp14>OPTIONAL</bcp14>
string <tt>delegationBondId</tt>.</t>
        <t>The following intent is illustrative; its values come from the tests of
the reference implementation.</t>
        <sourcecode type="json">
{
  "id": "intent-1",
  "server_id": "srv-pay",
  "tool_name": "charge",
  "purpose": "pay supplier",
  "max_amount": { "units": 500, "currency": "USD" },
  "commerce": {
    "seller": "merchant.example",
    "shared_payment_token_id": "spt_123",
    "settlement_destination_ref": "acct:merchant-primary"
  },
  "metered_billing": {
    "settlementMode": "allow_then_settle",
    "quote": {
      "quoteId": "quote-1",
      "provider": "meter.chio",
      "billingUnit": "1k_tokens",
      "quotedUnits": 12,
      "quotedCost": { "units": 300, "currency": "USD" },
      "issuedAt": 950,
      "expiresAt": 1300
    },
    "maxBilledUnits": 20
  },
  "call_chain": {
    "chainId": "chain-1",
    "parentRequestId": "req-parent-1",
    "parentReceiptId": "rc-parent-1",
    "originSubject": "origin-subject",
    "delegatorSubject": "delegator-subject"
  }
}
</sourcecode>
        <t>Its intent hash is
<tt>6584f466fdfd57b71861d268d2ffe45a48b179a5999ab9502cb58e935bdb875d</tt>.</t>
        <section anchor="bound-tool-intent">
          <name>Approval of Exact Arguments</name>
          <t>An intent requesting approval of exact tool arguments <bcp14>MUST</bcp14> carry a body
with <tt>kind: bound_tool_invocation</tt> and a <tt>value</tt> object containing
exactly <tt>capability_id</tt> and <tt>parameters_hash</tt>. The first is the nonempty
identifier of the authorizing capability. The second is SHA-256 over
canonical JSON of the call's parameters, encoded as <tt>0x</tt> followed by 64
lowercase hexadecimal digits. The intent hash commits both values.</t>
          <t>Before checking approval artifacts or dispatching, the kernel <bcp14>MUST</bcp14>
compare those bindings with the authenticated capability and actual
arguments. A mismatch <bcp14>MUST</bcp14> deny the call, including substitution of a
different capability belonging to the same subject. Approval interfaces
<bcp14>MUST</bcp14> show or otherwise bind the approved arguments and target to this
intent, rather than relying solely on its free-text purpose.</t>
          <t>An omitted body or <tt>tool_invocation</tt> retains the legacy intent-only
binding. It <bcp14>MUST NOT</bcp14> be described as approval of exact arguments. A host
requiring that property <bcp14>MUST</bcp14> reject a receiver that does not support the
bound body; moving the digest into advisory metadata is not an
equivalent fallback. The body does not itself require approval: the
matched grant's approval constraints determine that requirement.
Authenticated session ownership remains a separate host responsibility.</t>
          <t>An <tt>active_response_plan</tt> body selects the companion response-plan
profile and its installed validator. An ordinary tool-call evaluator
<bcp14>MUST</bcp14> reject that body rather than treat it as a tool invocation.</t>
        </section>
        <section anchor="governed-intent-hash">
          <name>Intent Hash</name>
          <t>The intent hash is the SHA-256 digest (<xref target="hashing"/>), as 64 lowercase
hexadecimal characters, of the canonical JSON serialization
(<xref target="canonical-json"/>) of the intent. It has no domain-separation prefix.
It covers <tt>context</tt>, including any proof or token carried there.</t>
          <t>The kernel computes the hash over the intent as it parsed it. It ignores
members that this section does not define, so they are not hashed; an
undefined member inside <tt>max_amount</tt> or <tt>verifiedOutcome</tt> makes the
request malformed instead. It also omits a <tt>body</tt> whose <tt>kind</tt> is
<tt>tool_invocation</tt>. Approval tokens, threshold proposals, and receipts
carry this hash.</t>
        </section>
        <section anchor="governed-intent-checks">
          <name>Intent Checks</name>
          <t>When the checks apply, the kernel <bcp14>MUST</bcp14> verify the following and <bcp14>MUST</bcp14>
deny the call if any item fails:</t>
          <ol spacing="normal" type="1"><li>
              <t><tt>server_id</tt> and <tt>tool_name</tt> equal the target of the call.</t>
            </li>
            <li>
              <t><tt>body</tt> is absent, has kind <tt>tool_invocation</tt>, or is a valid
<tt>bound_tool_invocation</tt> whose bindings pass <xref target="bound-tool-intent"/>.
An active-response operation instead requires its separately
selected profile (<xref target="security-active-response"/>).</t>
            </li>
            <li>
              <t>If <tt>runtime_attestation</tt> is present, it passes the kernel's local
verification of attestation evidence. This holds even when no grant
requires attestation.</t>
            </li>
            <li>
              <t>If <tt>call_chain</tt> is present:  </t>
              <ul spacing="normal">
                <li>
                  <t><tt>chainId</tt>, <tt>parentRequestId</tt>, <tt>originSubject</tt>, and
<tt>delegatorSubject</tt> each contain a character other than white
space, and so does <tt>parentReceiptId</tt> when present;</t>
                </li>
                <li>
                  <t><tt>parentRequestId</tt> differs from the call's request identifier;</t>
                </li>
                <li>
                  <t>if the capability token has a delegation chain (<xref target="delegation"/>),
<tt>delegatorSubject</tt> equals the public key string (<xref target="key-encoding"/>)
of the <tt>delegator</tt> of the last link, and <tt>originSubject</tt> equals
that of the first link;</t>
                </li>
                <li>
                  <t>if the kernel evaluates the call within a parent request of the
same session, <tt>parentRequestId</tt> equals that parent's request
identifier;</t>
                </li>
                <li>
                  <t>a proof or token in <tt>context</tt> passes <xref target="call-chain-continuation"/>.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>If <tt>commerce</tt> is present, <tt>seller</tt> and <tt>shared_payment_token_id</tt>
each contain a character other than white space, and <tt>max_amount</tt> is
present. A <tt>settlement_destination_ref</tt> is not empty, has no leading
or trailing white space, has at most 2048 characters, and has no
control characters.</t>
            </li>
            <li>
              <t>If <tt>autonomy</tt> is present, a <tt>direct</tt> tier carries no non-whitespace
<tt>delegationBondId</tt>. The kernel trims a bond identifier for lookup and
treats an empty result as absent. A <tt>delegated</tt> or <tt>autonomous</tt> tier requires
<tt>call_chain</tt>, a <tt>runtime_attestation</tt> that the kernel accepts at
tier <tt>attested</tt> or <tt>verified</tt> respectively, or higher, and a
<tt>delegationBondId</tt> that the kernel resolves to a delegation bond it
accepts for the call. Delegation bonds are outside the scope of this
document.</t>
            </li>
            <li>
              <t>If <tt>metered_billing</tt> is present, it passes
<xref target="governed-metered-billing"/>.</t>
            </li>
            <li>
              <t>If the grant declares <tt>max_cost_per_invocation</tt> and the intent
carries <tt>max_amount</tt>, the two have the same currency, and
<tt>max_amount.units</tt> is at least the ceiling's <tt>units</tt>, the amount
that the kernel holds before dispatch (<xref target="budget-holds"/>).</t>
            </li>
          </ol>
        </section>
        <section anchor="governed-metered-billing">
          <name>Metered Billing</name>
          <t>The <tt>metered_billing</tt> object carries a price quote for a tool that bills
by usage:</t>
          <table anchor="tab-governed-metered">
            <name>Metered Billing Members</name>
            <thead>
              <tr>
                <th align="left">Field</th>
                <th align="left">Type</th>
                <th align="left">Presence</th>
                <th align="left">Meaning</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>settlementMode</tt></td>
                <td align="left">string</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">
                  <tt>must_prepay</tt>, <tt>hold_capture</tt>, or <tt>allow_then_settle</tt>.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>quote</tt></td>
                <td align="left">object</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">The quote (<xref target="tab-governed-quote"/>).</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>maxBilledUnits</tt></td>
                <td align="left">integer</td>
                <td align="left">
                  <bcp14>OPTIONAL</bcp14></td>
                <td align="left">Largest number of units the call can be billed.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>verifiedOutcome</tt></td>
                <td align="left">object</td>
                <td align="left">
                  <bcp14>OPTIONAL</bcp14></td>
                <td align="left">Reserved. A kernel denies an intent that carries it.</td>
              </tr>
            </tbody>
          </table>
          <table anchor="tab-governed-quote">
            <name>Quote Members</name>
            <thead>
              <tr>
                <th align="left">Field</th>
                <th align="left">Type</th>
                <th align="left">Presence</th>
                <th align="left">Meaning</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>quoteId</tt></td>
                <td align="left">string</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Quote identifier.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>provider</tt></td>
                <td align="left">string</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Party that issued the quote.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>billingUnit</tt></td>
                <td align="left">string</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Unit of <tt>quotedUnits</tt>, for example <tt>1k_tokens</tt>.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>quotedUnits</tt></td>
                <td align="left">integer</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Quoted number of units.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>quotedCost</tt></td>
                <td align="left">MonetaryAmount object</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Quoted price.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>issuedAt</tt></td>
                <td align="left">integer</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Issue time, Unix seconds.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>expiresAt</tt></td>
                <td align="left">integer</td>
                <td align="left">
                  <bcp14>OPTIONAL</bcp14></td>
                <td align="left">Expiry time, Unix seconds.</td>
              </tr>
            </tbody>
          </table>
          <t>The kernel <bcp14>MUST</bcp14> deny the call unless all of the following hold:</t>
          <ol spacing="normal" type="1"><li>
              <t><tt>quoteId</tt>, <tt>provider</tt>, and <tt>billingUnit</tt> each contain a character
other than white space, and <tt>quotedUnits</tt> is greater than 0.</t>
            </li>
            <li>
              <t><tt>expiresAt</tt>, when present, is greater than <tt>issuedAt</tt>, and the quote
is valid at the current time <tt>now</tt>: <tt>issuedAt &#60;= now</tt>, and
<tt>now &#60; expiresAt</tt> when <tt>expiresAt</tt> is present.</t>
            </li>
            <li>
              <t><tt>maxBilledUnits</tt>, when present, is at least <tt>quotedUnits</tt> and
greater than 0.</t>
            </li>
            <li>
              <t>Neither <tt>verifiedOutcome</tt> is present nor <tt>billingUnit</tt> is
<tt>verified_outcome</tt>. This version of the protocol does not define
outcome-based billing.</t>
            </li>
            <li>
              <t><tt>quotedCost.currency</tt> equals the currency of <tt>max_amount</tt> when
present, and the currency of the grant's <tt>max_cost_per_invocation</tt>,
or else of its <tt>max_total_cost</tt>, when the grant declares one.</t>
            </li>
          </ol>
          <t>The modes <tt>hold_capture</tt> and <tt>allow_then_settle</tt> add no checks; the
kernel records them in the receipt (<xref target="governed-receipts"/>). For
<tt>must_prepay</tt>, the kernel <bcp14>MUST</bcp14> also deny the call in each of these
cases:</t>
          <ul spacing="normal">
            <li>
              <t>the kernel is not configured to authorize payments;</t>
            </li>
            <li>
              <t>the grant declares <tt>max_total_cost</tt> but not
<tt>max_cost_per_invocation</tt>;</t>
            </li>
            <li>
              <t><tt>quotedCost.units</tt> exceeds the <tt>units</tt> of either ceiling that the
grant declares, or <tt>max_amount.units</tt> is below <tt>quotedCost.units</tt>.</t>
            </li>
          </ul>
          <t>The quoted cost of a <tt>must_prepay</tt> intent counts toward
<tt>require_approval_above</tt> (<xref target="intent-constraints"/>). When the kernel
answers such a call with an execution nonce instead of executing it
(<xref target="native-messages"/>), the call <bcp14>MUST</bcp14> carry a singular <tt>approval_token</tt>.</t>
        </section>
      </section>
      <section anchor="intent-constraints">
        <name>Intent Constraints</name>
        <t>Three grant constraints (<xref target="constraints"/>) govern intents and approvals.
They do not affect whether a grant matches a call; the kernel enforces
them in the checks of this section. A delegated grant keeps each of them
unchanged (<xref target="attenuation"/>).</t>
        <sourcecode type="json">
[
  { "type": "governed_intent_required" },
  { "type": "require_approval_above",
    "value": { "threshold_units": 5000 } },
  { "type": "seller_exact", "value": "merchant.example" }
]
</sourcecode>
        <dl>
          <dt><tt>governed_intent_required</tt>:</dt>
          <dd>
            <t>The call <bcp14>MUST</bcp14> carry <tt>governed_intent</tt>. The kernel then applies every
check in <xref target="governed-intent-checks"/>.</t>
          </dd>
          <dt><tt>require_approval_above</tt>:</dt>
          <dd>
            <t>The call <bcp14>MUST</bcp14> carry an approval when its requested amount is greater
than or equal to <tt>threshold_units</tt>. If a grant carries several of
these constraints, the largest threshold applies. The requested
amount, in minor units, is the largest of: the base; <tt>quotedCost.units</tt>
when <tt>settlementMode</tt> is <tt>must_prepay</tt>; and 0. The base is the <tt>units</tt>
of the grant's <tt>max_cost_per_invocation</tt> when the grant declares it,
and otherwise the <tt>units</tt> of the intent's <tt>max_amount</tt> when present.
A <tt>threshold_units</tt> of 0 therefore always requires approval. The
constraint carries no currency, and a smaller <tt>max_amount</tt> does not
lower the requested amount when the grant declares a ceiling.</t>
          </dd>
          <dt><tt>seller_exact</tt>:</dt>
          <dd>
            <t>The intent <bcp14>MUST</bcp14> carry <tt>commerce</tt>, and <tt>commerce.seller</tt> <bcp14>MUST</bcp14> equal the
constraint's value exactly, with no case folding or normalization. If
a grant carries several of these constraints, the last one applies.</t>
          </dd>
        </dl>
        <t>A commerce intent under a grant that charges per call also needs an
approval. When the grant's <tt>max_cost_per_invocation</tt> has <tt>units</tt> greater
than 0 and the intent carries <tt>commerce</tt>, the intent <bcp14>MUST</bcp14> carry
<tt>settlement_destination_ref</tt>, and the call <bcp14>MUST</bcp14> carry an approval,
whatever <tt>require_approval_above</tt> requires.</t>
        <t>An approval is a singular token that passes <xref target="approval-tokens"/> or a
threshold set that passes <xref target="threshold-approval"/>. The kernel <bcp14>MUST</bcp14> deny a
call that needs an approval and carries neither. The kernel verifies a
presented approval even when no approval is required, and an approval
that fails verification denies the call.</t>
        <t>The constraints <tt>minimum_runtime_assurance</tt> and <tt>minimum_autonomy_tier</tt>
also trigger the checks. For each, the largest value in a grant applies.
The first requires a <tt>runtime_attestation</tt> that the kernel accepts at
that tier or higher, in the order <tt>none</tt>, <tt>basic</tt>, <tt>attested</tt>,
<tt>verified</tt>. The second requires an <tt>autonomy</tt> object whose <tt>tier</tt> is at
least the required tier.</t>
      </section>
      <section anchor="approval-tokens">
        <name>Approval Tokens</name>
        <t>An approval token is a signed JSON object that approves one intent for
one request by one subject. All member names are snake_case.</t>
        <table anchor="tab-approval-token">
          <name>Approval Token Members</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>id</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Token identifier.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>approver</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Public key of the signer (<xref target="key-encoding"/>).</td>
            </tr>
            <tr>
              <td align="left">
                <tt>subject</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Subject key of the capability token that authorizes the call.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>governed_intent_hash</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Intent hash (<xref target="governed-intent-hash"/>).</td>
            </tr>
            <tr>
              <td align="left">
                <tt>request_id</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Request identifier of the call.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>threshold_proposal_hash</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Digest of the proposal that the token votes on (<xref target="threshold-approval"/>).</td>
            </tr>
            <tr>
              <td align="left">
                <tt>issued_at</tt></td>
              <td align="left">integer</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Start of validity, Unix seconds.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>expires_at</tt></td>
              <td align="left">integer</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">End of validity, exclusive, Unix seconds.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>decision</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">
                <tt>approved</tt> or <tt>denied</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>algorithm</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">
                <tt>ed25519</tt>, <tt>p256</tt>, <tt>p384</tt>, or <tt>hybrid</tt>. Informational; omitted when absent or <tt>ed25519</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>signature</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Signature by <tt>approver</tt> (<xref target="signature-suites"/>).</td>
            </tr>
          </tbody>
        </table>
        <t>The approver signs the canonical JSON of the token without <tt>algorithm</tt>
and <tt>signature</tt> (<xref target="signing-input"/>), with no domain-separation prefix.
The token digest is the lowercase hexadecimal SHA-256 digest of the
ASCII bytes <tt>chio.governed-approval-token.v1</tt>, one zero byte, and the
canonical JSON of the whole token, <tt>signature</tt> included.</t>
        <t>The following token is taken from the schema fixtures of the reference
implementation. Its hashes and signature are placeholders. It is a vote
on a threshold proposal; a singular token omits
<tt>threshold_proposal_hash</tt>.</t>
        <sourcecode type="json">
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "id": "approval-1",
  "approver": \
  "8888888888888888888888888888888888888888888888888888888888888888",
  "subject": \
  "2222222222222222222222222222222222222222222222222222222222222222",
  "governed_intent_hash": \
  "1111111111111111111111111111111111111111111111111111111111111111",
  "request_id": "request-1",
  "threshold_proposal_hash": \
  "9999999999999999999999999999999999999999999999999999999999999999",
  "issued_at": 110,
  "expires_at": 190,
  "decision": "approved",
  "signature": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
  aaaaaaaaaa"
}
</sourcecode>
        <t>The kernel <bcp14>MUST</bcp14> verify a singular <tt>approval_token</tt> as follows, at the
current time <tt>now</tt>, and <bcp14>MUST</bcp14> deny the call if a step fails:</t>
        <ol spacing="normal" type="1"><li>
            <t><tt>issued_at &#60;= now &#60; expires_at</tt>.</t>
          </li>
          <li>
            <t><tt>request_id</tt> equals the call's request identifier.</t>
          </li>
          <li>
            <t><tt>governed_intent_hash</tt> equals the intent hash.</t>
          </li>
          <li>
            <t><tt>subject</tt> equals the <tt>subject</tt> of the capability token.</t>
          </li>
          <li>
            <t><tt>decision</tt> is <tt>approved</tt>.</t>
          </li>
          <li>
            <t><tt>approver</tt> is explicitly authorized by the applicable approval policy,
and the signature verifies under that key and its configured suite
policy. Trust as a receipt signer or capability issuer alone does not
confer approval authority (<xref target="security-key-lifecycle"/>).</t>
          </li>
          <li>
            <t><tt>expires_at - issued_at</tt> is at most 3600 seconds.</t>
          </li>
        </ol>
        <t>The kernel does not check <tt>id</tt> or <tt>threshold_proposal_hash</tt> of a
singular token.</t>
        <t>A singular token authorizes one dispatch. When it reserves the call for
dispatch, the kernel records the tuple of the subject key, the request
identifier, and the intent hash until the token's <tt>expires_at</tt>. The
kernel <bcp14>MUST</bcp14> deny the call as a replay if the tuple is already recorded
and has not expired. Because the record is keyed by the tuple and not by
the token's <tt>id</tt>, a second token for the same subject, request, and
intent is also refused. The kernel releases an owned replay reservation
only after definite pre-effect rejection with successful rollback. After
acknowledged or ambiguous external payment authorization it retains the
marker, even when later checks prevent tool dispatch. Uncertain cleanup
can also retain it; a denial alone does not authorize replay. If the
kernel cannot record the tuple, for example because its record store is
full, it <bcp14>MUST</bcp14> deny the call. The kernel <bcp14>MUST</bcp14> retain these records
durably across restarts and enforce uniqueness across all processes that
can consume the approval. It <bcp14>MUST NOT</bcp14> discard a record while an accepted
operation still requires it for recovery, even when the original
approval has expired.</t>
      </section>
      <section anchor="threshold-approval">
        <name>Threshold Approval</name>
        <t>A threshold approval authorizes a call with a quorum of votes. A
proposal, signed by a policy authority, fixes the request, the intent,
the subject, the authorizing capability token, the policy, the quorum,
the set of eligible approvers, and a deadline. Each vote is an approval
token (<xref target="approval-tokens"/>) whose <tt>threshold_proposal_hash</tt> is the
proposal's digest.</t>
        <t>The kernel accepts a threshold set only when the feature
<tt>threshold_governed_approvals</tt> is supported for the request's origin
(<xref target="feature-negotiation"/>). It <bcp14>MUST</bcp14> deny the call otherwise.</t>
        <t>The kernel takes the threshold requirement for the call from its active
policy, by policy hash, tool server, and tool. The policy language is
out of scope (<xref target="scope"/>). A requirement has:</t>
        <ul spacing="normal">
          <li>
            <t>a policy hash: 64 lowercase hexadecimal characters, equal to the
kernel's active policy hash;</t>
          </li>
          <li>
            <t>an eligible set of 1 to 32 approvers, each a JSON object with the
string members <tt>identifier</tt> and <tt>public_key</tt>. Identifiers are unique,
not empty, free of leading and trailing white space and of control
characters; public keys are unique;</t>
          </li>
          <li>
            <t>a threshold from 1 to the number of eligible approvers;</t>
          </li>
          <li>
            <t>a timeout from 1 to 3600 seconds.</t>
          </li>
        </ul>
        <t>For durable threshold coordination, the call's request identifier,
server identifier, and tool name <bcp14>MUST</bcp14> each contain 1 to 256 UTF-8 octets,
with no leading or trailing whitespace or control characters. This
profile's bound applies even when a transport permits a longer request
identifier. An unsupported identifier <bcp14>MUST</bcp14> be rejected before creating
a proposal or consuming approval authority.</t>
        <t>The eligible set digest is the lowercase hexadecimal SHA-256 digest of
the ASCII bytes <tt>chio.approver-set.v1</tt>, one zero byte, and the canonical
JSON of the array of eligible approvers, sorted by <tt>identifier</tt> and then
by <tt>public_key</tt>.</t>
        <section anchor="threshold-proposal">
          <name>Proposal</name>
          <t>A proposal is a JSON object with snake_case members. A receiver rejects
a proposal with members that <xref target="tab-threshold-proposal"/> does not list.</t>
          <table anchor="tab-threshold-proposal">
            <name>Threshold Proposal Members</name>
            <thead>
              <tr>
                <th align="left">Field</th>
                <th align="left">Type</th>
                <th align="left">Presence</th>
                <th align="left">Meaning</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>schema</tt></td>
                <td align="left">string</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">
                  <tt>chio.threshold-approval-proposal.v1</tt>.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>proposal_id</tt></td>
                <td align="left">string</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Proposal identifier.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>request_id</tt></td>
                <td align="left">string</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Request identifier of the call.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>governed_intent_hash</tt></td>
                <td align="left">string</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Intent hash (<xref target="governed-intent-hash"/>).</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>subject</tt></td>
                <td align="left">string</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Subject key of the capability token.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>authorizing_capability_digest</tt></td>
                <td align="left">string</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">SHA-256 digest of the canonical JSON of the capability token, signature included, with no prefix.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>policy_hash</tt></td>
                <td align="left">string</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Policy hash of the requirement.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>threshold</tt></td>
                <td align="left">integer</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Quorum size.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>eligible_set_digest</tt></td>
                <td align="left">string</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Eligible set digest.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>proposal_created_at</tt></td>
                <td align="left">integer</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Start of the voting window, Unix seconds.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>proposal_deadline</tt></td>
                <td align="left">integer</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">End of the voting window, exclusive, Unix seconds.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>policy_authority</tt></td>
                <td align="left">string</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Public key of the signer.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>algorithm</tt></td>
                <td align="left">string</td>
                <td align="left">
                  <bcp14>OPTIONAL</bcp14></td>
                <td align="left">As for approval tokens.</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>signature</tt></td>
                <td align="left">string</td>
                <td align="left">
                  <bcp14>REQUIRED</bcp14></td>
                <td align="left">Signature by <tt>policy_authority</tt>.</td>
              </tr>
            </tbody>
          </table>
          <t>The four digest members are 64 lowercase hexadecimal characters.
<tt>proposal_id</tt> and <tt>request_id</tt> are not empty and have no leading or
trailing white space. <tt>threshold</tt> is greater than 0, and
<tt>proposal_created_at</tt> is less than <tt>proposal_deadline</tt>. The policy
authority signs the canonical JSON of the proposal without <tt>algorithm</tt>
and <tt>signature</tt>, with no prefix. The proposal digest is the SHA-256
digest, in lowercase hexadecimal, of the ASCII bytes
<tt>chio.threshold-approval-proposal.v1</tt>, one zero byte, and the canonical
JSON of the whole proposal, <tt>signature</tt> included.</t>
          <t>The following proposal is taken from the schema fixtures of the
reference implementation; its digests and signature are placeholders.</t>
          <sourcecode type="json">
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "schema": "chio.threshold-approval-proposal.v1",
  "proposal_id": "proposal-1",
  "request_id": "request-1",
  "governed_intent_hash": \
  "1111111111111111111111111111111111111111111111111111111111111111",
  "subject": \
  "2222222222222222222222222222222222222222222222222222222222222222",
  "authorizing_capability_digest": \
  "3333333333333333333333333333333333333333333333333333333333333333",
  "policy_hash": \
  "4444444444444444444444444444444444444444444444444444444444444444",
  "threshold": 2,
  "eligible_set_digest": \
  "5555555555555555555555555555555555555555555555555555555555555555",
  "proposal_created_at": 100,
  "proposal_deadline": 200,
  "policy_authority": \
  "6666666666666666666666666666666666666666666666666666666666666666",
  "signature": "7777777777777777777777777777777777777777777777777777\
  777777777777777777777777777777777777777777777777777777777777777777\
  7777777777"
}
</sourcecode>
        </section>
        <section anchor="threshold-verification">
          <name>Verifying a Threshold Set</name>
          <t>The kernel <bcp14>MUST</bcp14> verify a threshold set as follows, at the current time
<tt>now</tt>, and <bcp14>MUST</bcp14> deny the call if a step fails:</t>
          <ol spacing="normal" type="1"><li>
              <t><tt>approval_tokens</tt> holds 1 to 32 tokens, and the kernel has a
threshold requirement for the call.</t>
            </li>
            <li>
              <t><tt>threshold_approval_proposal</tt> is present, its members are valid as
stated above, and <tt>proposal_created_at &#60;= now &#60; proposal_deadline</tt>.</t>
            </li>
            <li>
              <t><tt>policy_authority</tt> is the kernel's own key, a configured capability-
authority key, or another issuer key trusted by the kernel
(<xref target="capability-verification"/>), and the signature verifies.</t>
            </li>
            <li>
              <t><tt>request_id</tt>, <tt>governed_intent_hash</tt>, and <tt>subject</tt> match the call as
for a singular token. <tt>authorizing_capability_digest</tt> matches the
capability token. <tt>policy_hash</tt>, <tt>threshold</tt>, and
<tt>eligible_set_digest</tt> equal those of the requirement.</t>
            </li>
            <li>
              <t><tt>proposal_deadline</tt> equals the smaller of <tt>proposal_created_at</tt> plus
the requirement's timeout and the capability token's <tt>expires_at</tt>.</t>
            </li>
            <li>
              <t>Each token is valid at <tt>now</tt>; its <tt>id</tt> is not empty and has no
leading or trailing white space; its <tt>request_id</tt>,
<tt>governed_intent_hash</tt>, and <tt>subject</tt> match the call; its <tt>decision</tt>
is <tt>approved</tt>; and its <tt>threshold_proposal_hash</tt> equals the proposal
digest.</t>
            </li>
            <li>
              <t>Each token's <tt>issued_at</tt> is at least <tt>proposal_created_at</tt> and less
than <tt>proposal_deadline</tt>, and its <tt>expires_at</tt> is at most
<tt>proposal_deadline</tt>.</t>
            </li>
            <li>
              <t>Each token's <tt>approver</tt> is the public key of an eligible approver,
and its signature verifies. The kernel's trusted issuer keys do not
apply to votes.</t>
            </li>
            <li>
              <t>No two tokens share an <tt>id</tt>, a token digest, or an <tt>approver</tt>. The
kernel does not remove duplicates; a duplicate denies the call.</t>
            </li>
            <li>
              <t>The number of approvers is at least <tt>threshold</tt>. Extra valid votes
are allowed.</t>
            </li>
          </ol>
          <t>The kernel <bcp14>MUST</bcp14> resolve the threshold requirement from trusted policy
and authenticated request context, not from the proposal alone. It <bcp14>MUST</bcp14>
apply the configured signature floor to both the proposal and every
vote. A collection service can assemble votes but cannot confer
authority by declaring that a quorum was reached. The executing kernel
performs the verification itself. On resumption, it <bcp14>MUST</bcp14> recheck current
policy, revocation, validity, and signer eligibility against the
original binding; it <bcp14>MUST NOT</bcp14> rewrite a pending proposal to fit changed
policy.</t>
          <t>A vote whose <tt>decision</tt> is <tt>denied</tt> fails step 6, so it denies the call
rather than counting against the quorum.</t>
          <t>The approval set hash identifies the verified set. Its input is a JSON
object with the members <tt>token_digests</tt>, an array of the digests of all
the tokens sorted in ascending order with no duplicates, and
<tt>threshold_proposal_hash</tt>, the proposal digest, together with these
members copied from the proposal: <tt>policy_hash</tt>, <tt>threshold</tt>,
<tt>eligible_set_digest</tt>, <tt>request_id</tt>, <tt>governed_intent_hash</tt>, <tt>subject</tt>,
<tt>authorizing_capability_digest</tt>, <tt>proposal_id</tt>, <tt>proposal_created_at</tt>,
and <tt>proposal_deadline</tt>. The hash is the SHA-256 digest, in lowercase
hexadecimal, of the ASCII bytes <tt>chio.verified-approval-set.v1</tt>, one
zero byte, and the canonical JSON of that object. The order of the
tokens in the request does not change it.</t>
          <t>A proposal and its votes authorize one call. Before dispatch, the kernel
<bcp14>MUST</bcp14> record the proposal digest and the approval set hash with its
durable record of the call's admission, and <bcp14>MUST</bcp14> deny the call if it
keeps no durable admission records. It <bcp14>MUST NOT</bcp14> record the same
proposal, approval set hash, or token digest for a second call. When the
kernel resumes an admission it has already recorded, both hashes <bcp14>MUST</bcp14>
equal the recorded values.</t>
        </section>
        <section anchor="threshold-kernel-proposals">
          <name>Kernel-Issued Proposals</name>
          <t>A kernel issues a proposal when cumulative budget approval is required
(<xref target="budget-holds"/>). It signs with its configured proposal authority,
takes <tt>proposal_created_at</tt> from the recorded hold, and durably retains
the proposal with the admission. If votes are absent, it <bcp14>MUST NOT</bcp14>
dispatch. It returns <tt>pending_approval</tt> with the complete signed
proposal (<xref target="tool-call-results"/>). The receipt records <tt>deny</tt>, with guard
<tt>kernel</tt> and reason <tt>cumulative approval required</tt>; its
<tt>metadata.threshold_approval</tt> contains <tt>proposal_id</tt>, <tt>proposal_hash</tt>,
<tt>proposal_deadline</tt>, and <tt>state: approval_required</tt>. Here <tt>deny</tt> records
that execution was not authorized in this exchange; the operation can
still await approval.</t>
          <t>A subsequent request carries the original request identifier, unchanged
execution binding, exact retained proposal, and collected votes. The
kernel <bcp14>MUST</bcp14> resume the original admission or reject the request; it <bcp14>MUST
NOT</bcp14> create a second reservation for the same pending operation. A
pending response <bcp14>MUST NOT</bcp14> carry an execution nonce or tool output. A
client <bcp14>MUST</bcp14> verify the proposal's signature and binding before
presenting it to approvers. The MCP projection is defined in
<xref target="hosted-tool-calls"/>.</t>
        </section>
      </section>
      <section anchor="provenance">
        <name>Provenance Classes</name>
        <t>A <tt>call_chain</tt> is the agent's assertion. The intent has no member that
states its strength; the kernel assigns an evidence class when it writes
the receipt:</t>
        <dl>
          <dt><tt>asserted</tt>:</dt>
          <dd>
            <t>The kernel checked only the rules of <xref target="governed-intent-checks"/>.</t>
          </dd>
          <dt><tt>observed</tt>:</dt>
          <dd>
            <t>At least one local evidence source in <xref target="tab-evidence-sources"/>
matched the call chain.</t>
          </dd>
          <dt><tt>verified</tt>:</dt>
          <dd>
            <t>An upstream proof in <tt>context</tt> passed its checks
(<xref target="call-chain-continuation"/>).</t>
          </dd>
        </dl>
        <table anchor="tab-evidence-sources">
          <name>Call-Chain Evidence Sources</name>
          <thead>
            <tr>
              <th align="left">Source</th>
              <th align="left">Condition</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>session_parent_request_lineage</tt></td>
              <td align="left">The kernel evaluates the call within a parent request of the same session whose request identifier equals <tt>parentRequestId</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>local_parent_receipt_linkage</tt></td>
              <td align="left">
                <tt>parentReceiptId</tt> names a receipt that the kernel holds.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>capability_delegator_subject</tt></td>
              <td align="left">
                <tt>delegatorSubject</tt> equals the key of the last delegator in the capability token's delegation chain.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>capability_origin_subject</tt></td>
              <td align="left">
                <tt>originSubject</tt> equals the key of the first delegator.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>upstream_delegator_proof</tt></td>
              <td align="left">A <tt>callChainUpstreamProof</tt> passed its checks.</td>
            </tr>
          </tbody>
        </table>
        <t>When a grant has been selected and its validated evidence is retained
for the receipt, the kernel <bcp14>MUST</bcp14> assign <tt>verified</tt> if and only if a
<tt>callChainUpstreamProof</tt> passed its checks. Otherwise it <bcp14>MUST</bcp14> assign
<tt>observed</tt> if at least one source matched, and <tt>asserted</tt> if none did.
No other evidence raises the class. In particular, a
<tt>callChainContinuation</tt> that passes every check adds no source of its
own: the kernel records its <tt>tokenId</tt>, and the class stays at <tt>observed</tt>
or <tt>asserted</tt> as the other sources decide.</t>
        <t>The sources are narrow. <tt>local_parent_receipt_linkage</tt> means only that
the identifier resolves to a stored receipt. For a delegated capability
token, the rules of <xref target="governed-intent-checks"/> already force both
subject sources to match, so its call chain is at least <tt>observed</tt>. A
receipt for a call that the kernel denied because no grant passed its
checks carries the class <tt>asserted</tt>.</t>
      </section>
      <section anchor="call-chain-continuation">
        <name>Call-Chain Continuation</name>
        <t>Two keys of the intent's <tt>context</tt> carry evidence for a <tt>call_chain</tt>:
<tt>callChainUpstreamProof</tt> and <tt>callChainContinuation</tt>. The kernel reads
them only when <tt>context</tt> is a JSON object and <tt>call_chain</tt> is present. A
key whose value is <tt>null</tt> counts as absent, and a value that does not
parse as the object below denies the call. If <tt>callChainContinuation</tt> is
present, the kernel validates it and ignores <tt>callChainUpstreamProof</tt>.
Both objects have camelCase members, and each is signed by its <tt>signer</tt>
over the canonical JSON of all its members except <tt>signature</tt>, with no
domain-separation prefix.</t>
        <t>An upstream proof is a statement by the delegator that handed the call
chain to the caller. It has the call-chain members of
<xref target="tab-governed-call-chain"/> together with <tt>signer</tt> and <tt>subject</tt>
(public key strings), <tt>issuedAt</tt> and <tt>expiresAt</tt> (integers, Unix
seconds), and <tt>signature</tt>. The kernel <bcp14>MUST</bcp14> deny the call unless the
signature verifies; <tt>issuedAt &#60;= now &#60; expiresAt</tt>; <tt>subject</tt> equals the
capability token's <tt>subject</tt>; the capability token has a delegation
chain and <tt>signer</tt> equals the <tt>delegator</tt> of its last link; and the
five call-chain members equal those of the intent's <tt>call_chain</tt>, with
<tt>parentReceiptId</tt> absent from both or equal.</t>
        <t>A continuation token carries call-chain context from a parent call to a
child call:</t>
        <table anchor="tab-continuation-token">
          <name>Continuation Token Members</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>schema</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Continuation schema.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>tokenId</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Token identifier.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>signer</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Public key of the signer.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>subject</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Subject key of the child's capability token.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>chainId</tt>, <tt>parentRequestId</tt>, <tt>originSubject</tt>, <tt>delegatorSubject</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">As in <xref target="tab-governed-call-chain"/>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>parentReceiptId</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">As in <xref target="tab-governed-call-chain"/>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>parentReceiptHash</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">SHA-256 digest of the canonical JSON of the parent receipt, signature included, with no prefix.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>parentSessionAnchor</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Reference to the parent's session anchor: <tt>sessionAnchorId</tt> and <tt>sessionAnchorHash</tt>, both strings.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>currentSubject</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Public key string of the child's subject.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>parentCapabilityId</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">
                <tt>capability_id</tt> of the last delegation link.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>delegationLinkHash</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">SHA-256 digest of the canonical JSON of the last delegation link without its <tt>signature</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>governedIntentHash</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Intent hash of the child call.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>audience</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">
                <tt>serverId</tt> and <tt>toolName</tt> of the child call, both strings.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>nonce</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Not checked.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>issuedAt</tt>, <tt>expiresAt</tt></td>
              <td align="left">integer</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Validity interval, Unix seconds.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>signature</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Signature by <tt>signer</tt>.</td>
            </tr>
          </tbody>
        </table>
        <t>The kernel <bcp14>MUST</bcp14> verify a continuation token as follows and <bcp14>MUST</bcp14> deny the
call if a step fails:</t>
        <ol spacing="normal" type="1"><li>
            <t><tt>schema</tt> is <tt>chio.call_chain_continuation.v1</tt>, and the signature
verifies.</t>
          </li>
          <li>
            <t><tt>issuedAt &#60;= now &#60; expiresAt</tt>.</t>
          </li>
          <li>
            <t><tt>subject</tt> equals the capability token's <tt>subject</tt>, and
<tt>currentSubject</tt> equals its public key string.</t>
          </li>
          <li>
            <t><tt>signer</tt> is the kernel's own key, one of its trusted issuer keys
(<xref target="capability-verification"/>), or the <tt>delegator</tt> of the last link
of the capability token's delegation chain.</t>
          </li>
          <li>
            <t>The five call-chain members equal those of the intent's
<tt>call_chain</tt>.</t>
          </li>
          <li>
            <t>Each <bcp14>OPTIONAL</bcp14> binding that is present matches: <tt>audience</tt> names the
call's server and tool; <tt>governedIntentHash</tt> equals the intent hash;
<tt>parentCapabilityId</tt> and <tt>delegationLinkHash</tt> match the last
delegation link, and a token that carries either one requires a
delegated capability token.</t>
          </li>
          <li>
            <t>If <tt>parentReceiptId</tt> names a receipt that the kernel holds, that
receipt's signature verifies under the kernel's algorithm policy
(<xref target="receipt-verification"/>). If it names no such receipt, the token
carries neither <tt>parentReceiptHash</tt> nor <tt>parentSessionAnchor</tt>. A
token without <tt>parentReceiptId</tt> carries no <tt>parentReceiptHash</tt>.</t>
          </li>
          <li>
            <t><tt>parentReceiptHash</tt>, when present, equals the digest of the parent
receipt.</t>
          </li>
          <li>
            <t><tt>parentSessionAnchor</tt>, when present, equals the kernel's reference
for the parent session: that of the live parent session when the
kernel evaluates the call within a parent request, and otherwise the
<tt>sessionAnchorId</tt> and <tt>sessionAnchorHash</tt> that the parent receipt's
<tt>metadata</tt> carries. The kernel denies the call when it has no such
reference.</t>
          </li>
        </ol>
        <t>An embedded token's <tt>governedIntentHash</tt> would bind an intent containing
that same signed token. This document defines no construction for that
self-bound form; senders omit this member on a token embedded in
<tt>context</tt>. The kernel does not use <tt>nonce</tt> or <tt>tokenId</tt> to detect
replay. It records <tt>tokenId</tt> in the receipt, and the anchor's
<tt>sessionAnchorId</tt> when step 9 applied.</t>
        <t>This document specifies how a kernel verifies these objects, not when a
kernel issues them. Carrying call chains between operators is outside
its scope (<xref target="scope"/>).</t>
      </section>
      <section anchor="governed-receipts">
        <name>Governed Context in Receipts</name>
        <t>For a normal signed result carrying <tt>governed_intent</tt>, the kernel adds
<tt>governed_transaction</tt> to receipt metadata, including on denial. The
malformed-authorization error path in <xref target="governed-evaluation"/> is an
exception. Its members are:</t>
        <table anchor="tab-governed-receipt">
          <name>Governed Transaction Receipt Members</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>intent_id</tt>, <tt>purpose</tt>, <tt>server_id</tt>, <tt>tool_name</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Copied from the intent.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>intent_hash</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Intent hash (<xref target="governed-intent-hash"/>).</td>
            </tr>
            <tr>
              <td align="left">
                <tt>max_amount</tt>, <tt>commerce</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Copied from the intent.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>metered_billing</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">
                <tt>settlementMode</tt>, <tt>quote</tt>, and <tt>maxBilledUnits</tt>, copied from the intent.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>approval</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">The approval the call carried.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>runtime_assurance</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Present when the kernel accepted <tt>runtime_attestation</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>call_chain</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">The classified call chain.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>autonomy</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Copied from the intent.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>economic_authorization</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Payment and settlement terms; outside the scope of this document.</td>
            </tr>
          </tbody>
        </table>
        <t>The <tt>approval</tt> object has snake_case members. For a singular token,
<tt>token_id</tt> is its <tt>id</tt>, <tt>approver_key</tt> its <tt>approver</tt>,
<tt>approval_artifact_digest</tt> its token digest, and <tt>approved</tt> is true when
its <tt>decision</tt> is <tt>approved</tt>. For a threshold set, <tt>token_id</tt> is the
<tt>proposal_id</tt>, <tt>approver_key</tt> the <tt>policy_authority</tt>,
<tt>approval_artifact_digest</tt> the approval set hash, and <tt>approved</tt> is
true. The object describes what the call carried. On a receipt whose
decision is <tt>allow</tt>, the approval passed verification; on a denial, it
might not have.</t>
        <t>The <tt>runtime_assurance</tt> object has the camelCase members <tt>schema</tt>,
<tt>tier</tt>, <tt>verifier</tt>, <tt>evidenceSha256</tt>, and the <bcp14>OPTIONAL</bcp14> <tt>verifierFamily</tt>
and <tt>workloadIdentity</tt>.</t>
        <t>The <tt>call_chain</tt> object has camelCase members: <tt>evidenceClass</tt>
(<xref target="provenance"/>); <tt>evidenceSources</tt>, an array of the matched sources,
omitted when empty; <tt>upstreamProof</tt>, the proof that passed its checks;
<tt>continuationTokenId</tt> and <tt>sessionAnchorId</tt> from a continuation token;
and the five call-chain members, copied from the intent unchanged.</t>
        <t>When the class is <tt>asserted</tt>, the kernel also adds the member
<tt>governed_transaction_diagnostics</tt> beside <tt>governed_transaction</tt>. Its
member <tt>assertedCallChain</tt> holds a copy of the <tt>call_chain</tt> object. The
kernel also adds the diagnostics member when a continuation token
supplied a session anchor; its member <tt>lineageReferences</tt> then holds
<tt>sessionAnchorId</tt>.</t>
        <t>When the grant charges per call and the intent carries <tt>commerce</tt>, the
kernel binds the seller, the settlement destination, the intent hash,
and the approval's digest together in <tt>economic_authorization</tt>.</t>
      </section>
    </section>
    <section anchor="checkpoints">
      <name>Receipt Checkpoints</name>
      <t>A checkpoint signs a commitment to a local receipt batch and, for v2,
can commit the sequence of checkpoint batch roots. It supports audit
evidence and checked continuity over supplied statements. It does not
prove that a publisher disclosed every view it signed.</t>
      <section anchor="checkpoint-statement">
        <name>Checkpoint Statement</name>
        <t>The signed object has two required members, <tt>body</tt> and <tt>signature</tt>. A
verifier <bcp14>MUST</bcp14> reject any unknown member in either the envelope or the
body. New issuance uses <tt>chio.checkpoint_statement.v2</tt>. Legacy
<tt>chio.checkpoint_statement.v1</tt> remains accepted for verification.</t>
        <table anchor="tab-checkpoint-fields">
          <name>Checkpoint Statement Body</name>
          <thead>
            <tr>
              <th align="left">Body field</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>schema</tt></td>
              <td align="left">String</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>checkpoint_seq</tt></td>
              <td align="left">Unsigned 64-bit integer</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>batch_start_seq</tt></td>
              <td align="left">Unsigned 64-bit integer</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>batch_end_seq</tt></td>
              <td align="left">Unsigned 64-bit integer</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>tree_size</tt></td>
              <td align="left">Positive integer</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>merkle_root</tt></td>
              <td align="left">32-octet hash</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>issued_at</tt></td>
              <td align="left">Unsigned 64-bit integer</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>kernel_key</tt></td>
              <td align="left">Public-key string (<xref target="key-encoding"/>)</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>previous_checkpoint_sha256</tt></td>
              <td align="left">String</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>chain_root</tt></td>
              <td align="left">32-octet hash</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
            </tr>
          </tbody>
        </table>
        <table anchor="tab-checkpoint-fields-meaning">
          <name>Checkpoint Statement Body Meanings</name>
          <thead>
            <tr>
              <th align="left">Body field</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>schema</tt></td>
              <td align="left">Exactly <tt>chio.checkpoint_statement.v1</tt> or <tt>chio.checkpoint_statement.v2</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>checkpoint_seq</tt></td>
              <td align="left">Positive checkpoint number.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>batch_start_seq</tt></td>
              <td align="left">Positive first claim-log entry in the batch.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>batch_end_seq</tt></td>
              <td align="left">Last claim-log entry in the batch, not less than its first.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>tree_size</tt></td>
              <td align="left">Number of leaves in this batch, not a cumulative log size.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>merkle_root</tt></td>
              <td align="left">Root of the receipt batch tree.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>issued_at</tt></td>
              <td align="left">Positive Unix timestamp in seconds.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>kernel_key</tt></td>
              <td align="left">Key used to verify the statement signature.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>previous_checkpoint_sha256</tt></td>
              <td align="left">SHA-256 of the preceding canonical body, exactly 64 lowercase hexadecimal characters without <tt>0x</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>chain_root</tt></td>
              <td align="left">Commitment to the checkpoint chain, subject to <xref target="merkle-tree"/>.</td>
            </tr>
          </tbody>
        </table>
        <t>The two <bcp14>OPTIONAL</bcp14> fields default to absence. A producer <bcp14>MUST</bcp14> omit an
absent field, and a verifier <bcp14>MUST</bcp14> reject explicit <tt>null</tt> for either. The
body has no <tt>log_id</tt>. Producers <bcp14>MUST</bcp14> encode <tt>merkle_root</tt> and
<tt>chain_root</tt> as <tt>0x</tt> followed by 64 lowercase hexadecimal characters.
The compatibility decoder also accepts typed hashes without the <tt>0x</tt>
prefix and accepts hexadecimal digits in either case; typed
reserialization restores the producer form. Key and signature input
compatibility follows <xref target="key-encoding"/>.</t>
        <t>A verifier <bcp14>MUST</bcp14> reject an unsupported schema, a zero checkpoint number,
zero batch start, inverted range, zero tree size, zero timestamp, or
<tt>tree_size</tt> unequal to <tt>batch_end_seq - batch_start_seq + 1</tt>. It <bcp14>MUST</bcp14>
reject a present predecessor digest that does not have the exact form in
the table. Count arithmetic that overflows is invalid.</t>
        <t>The signer <bcp14>MUST</bcp14> sign the canonical typed encoding of <tt>body</tt> alone,
without the envelope signature or an additional domain prefix. A
verifier <bcp14>MUST</bcp14> reconstruct that typed body, serialize it according to
<xref target="canonical-json"/>, and verify the signature using <tt>kernel_key</tt> over
those bytes. It does not require the received JSON bytes to equal the
signed bytes. The reference issuer uses Ed25519; the generic verifier
dispatches on matching encoded key and signature suites. Its ordinary
Ed25519 check does not imply the additional weak-key checks of a
strict-verification profile.</t>
        <t><tt>tree_size</tt> is represented as a machine-sized unsigned integer in the
reference implementation. Checkpoint sequence numbers used as chain-tree
sizes must also fit that implementation's addressable size. These are
implementation bounds; the typed integer compatibility rules in
<xref target="canonical-json"/> also apply to checkpoint bodies.</t>
      </section>
      <section anchor="merkle-tree">
        <name>Merkle Trees</name>
        <t>For the local claim-log checkpointing profile, a checkpoint issuer <bcp14>MUST</bcp14>
select a gap-free inclusive range ordered by claim-log entry sequence.
For each <tt>tool_receipt</tt> or <tt>child_receipt</tt>, leaf data <bcp14>MUST</bcp14> be the
canonical typed JSON of the full verified signed receipt, including its
signature and kernel key. Other entry kinds are invalid for this batch
projection. Receipt identifiers alone are not the leaf data.</t>
        <t>For leaf data <tt>b</tt>, an implementation <bcp14>MUST</bcp14> compute its leaf hash as
<tt>SHA-256(0x00 || b)</tt>. It <bcp14>MUST</bcp14> compute a parent as <tt>SHA-256(0x01 || left
|| right)</tt>, where each child is its raw 32-octet hash. For a subtree of
<tt>n &#62; 1</tt> leaves, the recursive split is the largest power of two strictly
less than <tt>n</tt>, as in <xref target="RFC9162"/>. An unpaired rightmost node advances
unchanged. A single-leaf root is its leaf hash; an empty receipt batch
is invalid.</t>
        <t>The checkpoint-chain leaf is canonical JSON of exactly <tt>checkpoint_seq</tt>,
<tt>batch_start_seq</tt>, <tt>batch_end_seq</tt>, and <tt>merkle_root</tt>. Its canonical
member order is <tt>batch_end_seq</tt>, <tt>batch_start_seq</tt>, <tt>checkpoint_seq</tt>,
<tt>merkle_root</tt>. It excludes every other checkpoint field. Its hash is
<tt>SHA-256(0x00 || canonical_chain_leaf_bytes)</tt>. An issuer carrying
<tt>chain_root</tt> <bcp14>MUST</bcp14> compute it by combining the already hashed chain
leaves for checkpoint 1 through <tt>checkpoint_seq</tt>, in sequence order,
with the parent hash above, without hashing them as leaves again. The
chain tree's size is the checkpoint count.</t>
        <t>A v1 checkpoint producer <bcp14>MUST</bcp14> omit <tt>chain_root</tt>. A v2 checkpoint 1
producer <bcp14>MUST</bcp14> carry a <tt>chain_root</tt> equal to its own chain-leaf hash. A
detached later v2 statement can pass standalone validation without a
chain root; a verifier <bcp14>MUST</bcp14> reject its use as a successor in a
predecessor pair. For the local store profile, the first persisted
checkpoint <bcp14>MUST</bcp14> have checkpoint number 1, batch start 1, and no
predecessor digest. Those store-genesis rules are separate from
standalone statement validation.</t>
        <t>A local store accepting a checkpoint <bcp14>MUST</bcp14> verify the covered receipts,
require every receipt's <tt>kernel_key</tt> to equal the checkpoint's
<tt>kernel_key</tt>, and require the rebuilt batch's leaf count and root to
equal the signed <tt>tree_size</tt> and <tt>merkle_root</tt>. A mixed-signer receipt
batch is invalid for this store profile.</t>
      </section>
      <section anchor="consistency-proofs">
        <name>Predecessor and Consistency Proofs</name>
        <t>A predecessor-pair verifier <bcp14>MUST</bcp14> validate both statements and their
signatures. It <bcp14>MUST</bcp14> require the successor's checkpoint number to equal
the predecessor's plus 1, its batch start to equal the predecessor's
batch end plus 1, and its <tt>previous_checkpoint_sha256</tt> to equal the
SHA-256 digest of the predecessor's canonical typed body, excluding
signature. Overflow is invalid. It <bcp14>MUST</bcp14> reject a successor that drops an
existing chain commitment, and a v2 successor without a chain root.
Predecessor linkage alone does not prove Merkle prefix extension or
require increasing timestamps.</t>
        <t>The consistency record is unsigned. Its fields are:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
              <th align="left">Parsing presence/default</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>schema</tt></td>
              <td align="left">String</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>log_id</tt></td>
              <td align="left">String</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>from_checkpoint_seq</tt></td>
              <td align="left">Unsigned 64-bit integer</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>to_checkpoint_seq</tt></td>
              <td align="left">Unsigned 64-bit integer</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>from_checkpoint_sha256</tt></td>
              <td align="left">String</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>to_checkpoint_sha256</tt></td>
              <td align="left">String</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>from_log_tree_size</tt></td>
              <td align="left">Unsigned 64-bit integer</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>to_log_tree_size</tt></td>
              <td align="left">Unsigned 64-bit integer</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>appended_entry_start_seq</tt></td>
              <td align="left">Unsigned 64-bit integer</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>appended_entry_end_seq</tt></td>
              <td align="left">Unsigned 64-bit integer</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>from_chain_root</tt></td>
              <td align="left">Hash or null</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14>; absent by default</td>
            </tr>
            <tr>
              <td align="left">
                <tt>to_chain_root</tt></td>
              <td align="left">Hash or null</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14>; absent by default</td>
            </tr>
            <tr>
              <td align="left">
                <tt>chain_proof_hashes</tt></td>
              <td align="left">Array of hashes</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14>; defaults to <tt>[]</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>from_leaf_inclusion</tt></td>
              <td align="left">Merkle inclusion object or null</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14>; absent by default</td>
            </tr>
            <tr>
              <td align="left">
                <tt>to_leaf_inclusion</tt></td>
              <td align="left">Merkle inclusion object or null</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14>; absent by default</td>
            </tr>
          </tbody>
        </table>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Valid v2 meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>schema</tt></td>
              <td align="left">
                <tt>chio.checkpoint_consistency_proof.v2</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>log_id</tt></td>
              <td align="left">Derived log identifier of both endpoints.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>from_checkpoint_seq</tt></td>
              <td align="left">Earlier checkpoint number.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>to_checkpoint_seq</tt></td>
              <td align="left">Immediately following checkpoint number.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>from_checkpoint_sha256</tt></td>
              <td align="left">Earlier canonical body digest, 64 lowercase hex characters without <tt>0x</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>to_checkpoint_sha256</tt></td>
              <td align="left">Later canonical body digest, in the same form.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>from_log_tree_size</tt></td>
              <td align="left">Earlier endpoint's <tt>batch_end_seq</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>to_log_tree_size</tt></td>
              <td align="left">Later endpoint's <tt>batch_end_seq</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>appended_entry_start_seq</tt></td>
              <td align="left">Later endpoint's <tt>batch_start_seq</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>appended_entry_end_seq</tt></td>
              <td align="left">Later endpoint's <tt>batch_end_seq</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>from_chain_root</tt></td>
              <td align="left">Earlier signed chain root, required for successful v2 verification.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>to_chain_root</tt></td>
              <td align="left">Later signed chain root, required for successful v2 verification.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>chain_proof_hashes</tt></td>
              <td align="left">RFC 9162 consistency path.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>from_leaf_inclusion</tt></td>
              <td align="left">Earlier endpoint's own chain leaf at its final position.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>to_leaf_inclusion</tt></td>
              <td align="left">Later endpoint's own chain leaf at its final position.</td>
            </tr>
          </tbody>
        </table>
        <t>The first ten fields have no parsing defaults. A verifier <bcp14>MUST</bcp14> reject
unknown members of the outer record. Producers omit absent roots and
inclusions and an empty <tt>chain_proof_hashes</tt>. The compatibility parser
accepts explicit null for the four optional roots/inclusions, but not
for the array. Its nested inclusion objects have the format in
<xref target="inclusion-proofs"/> and accept unknown members. Parsing acceptance
does not establish a valid v2 proof.</t>
        <t>The log identifier is <tt>local-log-</tt> followed by 64 lowercase hexadecimal
characters: SHA-256 of the raw Ed25519 key bytes, or of the UTF-8 bytes
of the normalized prefixed public-key encoding for another suite. This
proof profile supports adjacent checkpoints under one derived log
identifier. A consistency verifier <bcp14>MUST</bcp14> reject a pair with different
derived identifiers, and <bcp14>MUST</bcp14> compare every metadata field against the
values recomputed from the signed bodies.</t>
        <t>For v2 verification, both signed statements <bcp14>MUST</bcp14> carry chain roots. The
verifier <bcp14>MUST</bcp14> require the record's roots to equal them and both endpoint
inclusion objects to be present. For each endpoint, it <bcp14>MUST</bcp14> require an
inclusion tree size equal to that endpoint's checkpoint number, an index
equal to that number minus 1, and a path proving that endpoint's own
chain-leaf hash against its signed chain root.</t>
        <t>The verifier <bcp14>MUST</bcp14> establish the earlier prefix by one of these methods:</t>
        <ul spacing="normal">
          <li>
            <t>Genesis: the earlier endpoint is checkpoint 1.</t>
          </li>
          <li>
            <t>A chain root previously accepted for the earlier endpoint: it equals
the earlier signed root.</t>
          </li>
          <li>
            <t>The ordered chain-leaf hashes from checkpoint 1 through the earlier
endpoint, including it: their count equals its checkpoint number and
their root equals its signed chain root.</t>
          </li>
        </ul>
        <t>An application using a previously accepted root or prefix supplies it
as verifier input; the unsigned proof record cannot establish that
trust. A mid-chain pair without such input is invalid. The verifier
<bcp14>MUST</bcp14> then verify the Merkle consistency path using the two checkpoint
numbers as tree sizes and the two signed chain roots, following
<xref target="RFC9162"/>, Section 2.1.4.2. Structural input failures are errors;
unsuccessful metadata, root, inclusion, anchor, or path comparisons
are failed proofs.</t>
        <t>Legacy <tt>chio.checkpoint_consistency_proof.v1</tt> carries metadata
continuity only. A verifier <bcp14>MUST NOT</bcp14> treat it as a cryptographic prefix
proof. Successful legacy verification requires two v1 statements,
decoded absence of both chain roots and endpoint inclusions, and an
empty decoded <tt>chain_proof_hashes</tt>. Omission and explicit null both
represent absence for its four optional fields; omission and <tt>[]</tt> both
represent an empty path. Prefix anchors are not evaluated for legacy
records.</t>
      </section>
      <section anchor="inclusion-proofs">
        <name>Inclusion Proofs</name>
        <t>The Merkle inclusion object has three required members:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>tree_size</tt></td>
              <td align="left">Positive integer</td>
              <td align="left">Number of leaves in the tree being proved.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>leaf_index</tt></td>
              <td align="left">Non-negative integer</td>
              <td align="left">Zero-based leaf position.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>audit_path</tt></td>
              <td align="left">Array of 32-octet hashes</td>
              <td align="left">Sibling hashes in order from leaf toward root.</td>
            </tr>
          </tbody>
        </table>
        <t><tt>audit_path</tt> has no parsing default and remains present when empty.
The compatibility decoder accepts unknown members. Counts and indices
use machine-sized unsigned integers in the reference implementation.
Hash serialization and compatibility parsing follow
<xref target="checkpoint-statement"/>.</t>
        <t>An inclusion verifier <bcp14>MUST</bcp14> reject a zero tree size or an index not less
than that size. It <bcp14>MUST</bcp14> compute the leaf hash from the specified bytes
and combine the supplied siblings using <xref target="merkle-tree"/>. A carried
rightmost node consumes no sibling at that level. It <bcp14>MUST</bcp14> reject a path
with missing or unused hashes and accept membership only when the
computed root equals the expected root.</t>
        <t>The evidence-export wrapper is unsigned and has no schema identifier. It
has these five required members, none with a parsing default:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>checkpoint_seq</tt></td>
              <td align="left">Unsigned 64-bit integer</td>
              <td align="left">Referenced checkpoint number.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>receipt_seq</tt></td>
              <td align="left">Unsigned 64-bit integer</td>
              <td align="left">Receipt's claim-log entry sequence claimed by the wrapper.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>leaf_index</tt></td>
              <td align="left">Non-negative integer</td>
              <td align="left">Receipt's claimed position in this batch.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>merkle_root</tt></td>
              <td align="left">32-octet hash</td>
              <td align="left">Advertised batch root.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>proof</tt></td>
              <td align="left">Merkle inclusion object</td>
              <td align="left">Nested path and tree parameters.</td>
            </tr>
          </tbody>
        </table>
        <t>Its compatibility decoder accepts unknown members. Basic wrapper
verification <bcp14>MUST</bcp14> require matching wrapper and nested indices and verify
the canonical receipt bytes against the expected root supplied by the
caller. It does not independently authenticate the wrapper's sequence
metadata or advertised root.</t>
        <t>An evidence-package verifier <bcp14>MUST</bcp14> resolve the referenced checkpoint and
receipt, compare the wrapper root to the signed checkpoint root, require
the wrapper index to be below the checkpoint's batch size, and require
<tt>receipt_seq</tt> to fall within its inclusive batch range. It <bcp14>MUST</bcp14> reject
two proofs for the same receipt sequence, verify the canonical receipt
bytes against the signed root, and require the number of exported tool
receipts without successful proofs to equal the manifest's
uncheckpointed count.</t>
        <t>The verifier <bcp14>MUST</bcp14> also require <tt>proof.tree_size ==
checkpoint.body.tree_size</tt> and <tt>leaf_index == receipt_seq -
checkpoint.body.batch_start_seq</tt>, after checking the sequence range. It
<bcp14>MUST</bcp14> reject arithmetic overflow and inconsistent batch bounds. These
checks bind membership to the claimed position, not merely to an
unsigned wrapper containing a valid path.</t>
        <t>The current export emits tool-receipt proofs. Child receipts can be
batch leaves, while child-receipt inclusion-proof export remains outside
this export profile. Uncovered tool receipts are reported explicitly;
absence of a proof establishes no membership.</t>
      </section>
      <section anchor="checkpoint-verification">
        <name>Checkpoint Verification</name>
        <t>A consumer that treats a checkpoint as evidence from an expected kernel
<bcp14>MUST</bcp14> check its <tt>kernel_key</tt> against a separately configured trusted-key
policy. Signature validity under a key carried in the statement does not
establish that key's authority. The consumer <bcp14>MUST</bcp14> apply its trusted
signer roles, accepted suites, and any required signer validity interval
before accepting the statement. A checkpoint timestamp by itself cannot
prove that a signature preceded a key compromise.</t>
        <t>A checkpoint-set verifier for this profile <bcp14>MUST</bcp14> validate every statement
and signature, reject duplicate checkpoint numbers and observed
conflicting statements, and require each predecessor digest to resolve
within the supplied set and pass predecessor validation. A checkpoint
without a predecessor <bcp14>MUST</bcp14> be checkpoint 1 with batch start 1. A cited
predecessor absent from the set is invalid. The reference set verifier
requires the complete prefix through checkpoint 1 and has no separately
pinned-boundary input; the pair-level anchor interface in
<xref target="consistency-proofs"/> is a distinct verification path.</t>
        <t>Scoped evidence exports retain the prefix through the newest checkpoint
covering the selected receipts. Inclusion and consistency verification
uses the roots in the validated signed bodies, rather than relying on an
unsigned advertised root. Consumer signer policy determines which of
those signed bodies is accepted as evidence from the intended kernel.</t>
        <section anchor="checkpoint-retention">
          <name>Retention and Evidence Availability</name>
          <t>A receipt, its sequence, and the checkpoint covering that sequence <bcp14>MUST</bcp14>
be read from a consistent authenticated state. A verifier <bcp14>MUST NOT</bcp14>
combine a receipt from one log view with a root or sequence assignment
from another. An uncovered tail is uncheckpointed evidence, even if its
receipts have valid signatures.</t>
          <t>Archival <bcp14>MUST</bcp14> preserve original signed bytes, sequence identities,
checkpoint links, and the information needed to verify retained proofs.
Deleting payloads under a retention policy does not authorize
renumbering or rewriting history. A service <bcp14>MUST</bcp14> distinguish unavailable
evidence from a valid proof of absence. It <bcp14>MUST NOT</bcp14> reconstruct a
missing history as a new empty log under the old identity.</t>
          <t>Replay records, unresolved operations, consumed approvals, and
accounting obligations have security lifetimes independent of receipt
presentation policies. Retention <bcp14>MUST NOT</bcp14> remove state still required to
prevent replay or recover an operation. A recovery process <bcp14>MUST</bcp14>
authenticate retained records and reject rollback to an older authority
state before resuming execution.</t>
        </section>
      </section>
      <section anchor="checkpoint-claims">
        <name>Claim Limits</name>
        <t>The checkpoint surface provides local signed audit evidence and verified
continuity for the supplied, anchored views. It does not establish
public append-only publication, complete receipt-family sequencing, or
strong non-repudiation. A verifier can detect conflicting statements
that it receives; it cannot detect a hidden competing view from these
bytes alone. External witnessing and publication policies need separate
protocols and qualification and are outside this document.</t>
      </section>
    </section>
    <section anchor="native-transport">
      <name>Native Transport</name>
      <t>The native transport carries messages between an agent and a kernel over
a reliable, ordered, bidirectional byte stream, such as a pair of pipes,
a TCP connection, or a Unix domain socket. The agent sends agent
messages, the kernel sends kernel messages, and each message travels in
one frame.</t>
      <t>A native session lasts as long as the byte stream. The transport has no
initialization exchange and no in-band version negotiation: both parties
use version <tt>chio-wire-v1</tt>, agreed out of band (<xref target="versioning"/>). The
kernel binds each session to one agent key, which it establishes when
the session opens by means outside this document. It denies a call whose
capability token has a different subject (<xref target="capability-verification"/>).</t>
      <t>The native transport provides no confidentiality, integrity protection,
or peer authentication of its own. It relies on the underlying byte
stream for them (<xref target="security"/>).</t>
      <section anchor="native-framing">
        <name>Native Framing</name>
        <t>Each frame is a length followed by a payload (<xref target="fig-native-frame"/>).</t>
        <figure anchor="fig-native-frame">
          <name>Native Frame</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="176" width="528" viewBox="0 0 528 176" class="aasvg">
                <path d="M 8,64L 8,112" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 8,144L 8,160" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 520,64L 520,112" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 520,144L 520,160" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 8,64L 520,64" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 8,96L 520,96" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 8,160L 520,160" fill="none" stroke="black" stroke-linecap="round"/>
                <g class="text">
                  <text x="16" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">0</text>
                  <text x="176" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">1</text>
                  <text x="336" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">2</text>
                  <text x="496" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">3</text>
                  <text x="16" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">0</text>
                  <text x="32" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">1</text>
                  <text x="48" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">2</text>
                  <text x="64" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">3</text>
                  <text x="80" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">4</text>
                  <text x="96" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">5</text>
                  <text x="112" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">6</text>
                  <text x="128" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">7</text>
                  <text x="144" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">8</text>
                  <text x="160" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">9</text>
                  <text x="176" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">0</text>
                  <text x="192" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">1</text>
                  <text x="208" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">2</text>
                  <text x="224" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">3</text>
                  <text x="240" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">4</text>
                  <text x="256" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">5</text>
                  <text x="272" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">6</text>
                  <text x="288" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">7</text>
                  <text x="304" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">8</text>
                  <text x="320" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">9</text>
                  <text x="336" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">0</text>
                  <text x="352" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">1</text>
                  <text x="368" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">2</text>
                  <text x="384" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">3</text>
                  <text x="400" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">4</text>
                  <text x="416" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">5</text>
                  <text x="432" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">6</text>
                  <text x="448" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">7</text>
                  <text x="464" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">8</text>
                  <text x="480" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">9</text>
                  <text x="496" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">0</text>
                  <text x="512" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">1</text>
                  <text x="220" y="84" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">Length</text>
                  <text x="264" y="84" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">(32</text>
                  <text x="304" y="84" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">bits)</text>
                  <text x="8" y="132" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">:</text>
                  <text x="144" y="132" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">Payload</text>
                  <text x="208" y="132" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">(Length</text>
                  <text x="272" y="132" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">octets,</text>
                  <text x="344" y="132" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">canonical</text>
                  <text x="408" y="132" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">JSON)</text>
                  <text x="520" y="132" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">:</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art">
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Length (32 bits)                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
:             Payload (Length octets, canonical JSON)           :
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </artset>
        </figure>
        <dl>
          <dt>Length:</dt>
          <dd>
            <t>An unsigned 32-bit integer in network byte order that gives the
number of octets in Payload. It does not count its own four octets.</t>
          </dd>
          <dt>Payload:</dt>
          <dd>
            <t>One agent message or kernel message (<xref target="native-messages"/>), encoded as
canonical JSON (<xref target="canonical-json"/>).</t>
          </dd>
        </dl>
        <t>The maximum payload length is 16,777,216 octets. A sender <bcp14>MUST NOT</bcp14> send
a frame with a longer payload, and a receiver <bcp14>MUST</bcp14> reject a frame whose
Length exceeds 16,777,216 (<xref target="native-receiver"/>). A payload of exactly
16,777,216 octets is permitted.</t>
        <t>A sender <bcp14>MUST</bcp14> encode each message as canonical JSON and <bcp14>MUST</bcp14> put exactly
one message in each frame. A sender that fails to encode a message sends
no part of its frame. A receiver parses the payload as JSON and does not
check that it is canonical. A zero-length payload is valid framing but
never a valid message.</t>
        <t>For example, the message <tt>{"type":"heartbeat"}</tt> is 20 octets long, so
its frame is the octets 0x00 0x00 0x00 0x14 followed by those 20 octets.</t>
      </section>
      <section anchor="native-messages">
        <name>Native Messages</name>
        <t>Every message is a JSON object whose <tt>type</tt> member names its kind
(<xref target="tab-native-types"/>). A sender <bcp14>MUST NOT</bcp14> include members that this
document does not define for the message. The kernel ignores such
members when it receives them.</t>
        <table anchor="tab-native-types">
          <name>Native Message Types</name>
          <thead>
            <tr>
              <th align="left">Sender</th>
              <th align="left">type</th>
              <th align="left">Other members</th>
              <th align="left">Purpose</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">agent</td>
              <td align="left">
                <tt>tool_call_request</tt></td>
              <td align="left">
                <xref target="tab-tool-call-request"/></td>
              <td align="left">Request one tool call</td>
            </tr>
            <tr>
              <td align="left">agent</td>
              <td align="left">
                <tt>list_capabilities</tt></td>
              <td align="left">none</td>
              <td align="left">Request the session's tokens</td>
            </tr>
            <tr>
              <td align="left">agent</td>
              <td align="left">
                <tt>heartbeat</tt></td>
              <td align="left">none</td>
              <td align="left">Liveness probe</td>
            </tr>
            <tr>
              <td align="left">kernel</td>
              <td align="left">
                <tt>tool_call_chunk</tt></td>
              <td align="left">
                <xref target="tab-tool-call-chunk"/></td>
              <td align="left">One piece of streamed output</td>
            </tr>
            <tr>
              <td align="left">kernel</td>
              <td align="left">
                <tt>tool_call_response</tt></td>
              <td align="left">
                <xref target="tab-tool-call-response"/></td>
              <td align="left">Terminal outcome of a call</td>
            </tr>
            <tr>
              <td align="left">kernel</td>
              <td align="left">
                <tt>capability_list</tt></td>
              <td align="left">
                <tt>capabilities</tt></td>
              <td align="left">The session's tokens</td>
            </tr>
            <tr>
              <td align="left">kernel</td>
              <td align="left">
                <tt>capability_revoked</tt></td>
              <td align="left">
                <tt>id</tt></td>
              <td align="left">Notice of a revoked capability</td>
            </tr>
            <tr>
              <td align="left">kernel</td>
              <td align="left">
                <tt>heartbeat</tt></td>
              <td align="left">none</td>
              <td align="left">Reply to <tt>heartbeat</tt></td>
            </tr>
          </tbody>
        </table>
        <t>A <tt>tool_call_request</tt> has the members in <xref target="tab-tool-call-request"/>. A
sender omits an <bcp14>OPTIONAL</bcp14> member that has no value and omits
<tt>approval_tokens</tt> when it is empty.</t>
        <table anchor="tab-tool-call-request">
          <name>tool_call_request Members</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>type</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>id</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>capability_token</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>server_id</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>tool</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>params</tt></td>
              <td align="left">JSON value</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>governed_intent</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>approval_token</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>approval_tokens</tt></td>
              <td align="left">array of object</td>
              <td align="left">CONDITIONAL</td>
            </tr>
            <tr>
              <td align="left">
                <tt>threshold_approval_proposal</tt></td>
              <td align="left">object</td>
              <td align="left">CONDITIONAL</td>
            </tr>
            <tr>
              <td align="left">
                <tt>supplemental_authorization</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>execution_nonce</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
            </tr>
          </tbody>
        </table>
        <table anchor="tab-tool-call-request-meaning">
          <name>tool_call_request Members Meanings</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>type</tt></td>
              <td align="left">
                <tt>tool_call_request</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>id</tt></td>
              <td align="left">Request identifier chosen by the agent</td>
            </tr>
            <tr>
              <td align="left">
                <tt>capability_token</tt></td>
              <td align="left">Capability token (<xref target="capability-structure"/>) that authorizes the call</td>
            </tr>
            <tr>
              <td align="left">
                <tt>server_id</tt></td>
              <td align="left">Identifier of the target tool server</td>
            </tr>
            <tr>
              <td align="left">
                <tt>tool</tt></td>
              <td align="left">Name of the tool on that server</td>
            </tr>
            <tr>
              <td align="left">
                <tt>params</tt></td>
              <td align="left">Arguments for the tool</td>
            </tr>
            <tr>
              <td align="left">
                <tt>governed_intent</tt></td>
              <td align="left">Governed transaction intent (<xref target="governed-intent"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>approval_token</tt></td>
              <td align="left">One approval token (<xref target="approval-tokens"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>approval_tokens</tt></td>
              <td align="left">1 to 32 approval tokens; present exactly when <tt>threshold_approval_proposal</tt> is (<xref target="threshold-approval"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>threshold_approval_proposal</tt></td>
              <td align="left">Present exactly when <tt>approval_tokens</tt> is (<xref target="threshold-approval"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>supplemental_authorization</tt></td>
              <td align="left">Opaque authorization extension (<xref target="budgets"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>execution_nonce</tt></td>
              <td align="left">Execution nonce that the kernel returned for this <tt>id</tt> (<xref target="authoritative-spend"/>)</td>
            </tr>
          </tbody>
        </table>
        <t>The agent <bcp14>MUST NOT</bcp14> reuse an <tt>id</tt> within a session except to resume the
same operation with a kernel-issued execution nonce or a pending
approval proposal and its votes. The target, parameters, subject, and
capability binding <bcp14>MUST</bcp14> remain unchanged. The kernel <bcp14>MUST</bcp14> correlate an
accepted resumption with the original admission; other reuse is rejected
with <tt>internal_error</tt> (<xref target="native-errors"/>). A repeated identifier alone
does not request or authorize a second execution.</t>
        <t>The kernel denies a request that carries both <tt>approval_token</tt> and a
non-empty <tt>approval_tokens</tt>, a <tt>threshold_approval_proposal</tt> without
<tt>approval_tokens</tt>, or <tt>approval_tokens</tt> without a
<tt>threshold_approval_proposal</tt>. It reports <tt>policy_denied</tt> with <tt>guard</tt>
set to <tt>session_authorization</tt>.</t>
        <t>No member of <tt>tool_call_request</tt> carries a sender proof. A kernel
therefore denies every native call for which a matching grant requires
one (<xref target="sender-constraint"/>). No member carries model metadata either, so
a model constraint that requires metadata (<xref target="constraints"/>) is never
satisfied on this transport.</t>
        <t>The following request is shown with whitespace added and with its
capability token abbreviated to the <tt>id</tt> member. <xref target="examples"/> gives a
complete frame.</t>
        <sourcecode type="json">
{
  "capability_token": {"id": "cap-1"},
  "id": "req-001",
  "params": {"text": "hello"},
  "server_id": "srv",
  "tool": "echo",
  "type": "tool_call_request"
}
</sourcecode>
        <t>The kernel answers each <tt>list_capabilities</tt> with one <tt>capability_list</tt>,
whose <tt>capabilities</tt> member is an array of the capability tokens that
the kernel issued for the session. The kernel does not remove expired or
revoked tokens from the list, and it sends an empty array if it cannot
produce the list. A kernel <bcp14>MAY</bcp14> also send <tt>capability_list</tt> unprompted,
for example as its first message, to deliver the tokens it issued when
the session opened.</t>
        <t>The kernel answers each <tt>heartbeat</tt> with one <tt>heartbeat</tt>. It sends no
<tt>heartbeat</tt> unprompted, and this document defines no heartbeat interval
or timeout.</t>
        <t>A kernel <bcp14>MAY</bcp14> send <tt>capability_revoked</tt>, whose <tt>id</tt> member is the
identifier of a revoked capability. A kernel does not otherwise notify
the agent of a revocation: the agent learns of it when a call that
depends on the revoked capability is denied (<xref target="revocation"/>).</t>
      </section>
      <section anchor="tool-call-results">
        <name>Tool Call Results</name>
        <t>For each <tt>tool_call_request</tt> whose exchange completes, the kernel sends
zero or more <tt>tool_call_chunk</tt> messages and then one
<tt>tool_call_response</tt>. Transport, signing, or durable-state failures can
terminate the exchange without a response, as specified below. Each
carries the request's <tt>id</tt>, and the agent correlates them by that value.
<xref target="tab-tool-call-response"/> lists the members of <tt>tool_call_response</tt>.</t>
        <table anchor="tab-tool-call-response">
          <name>tool_call_response Members</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>type</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">
                <tt>tool_call_response</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>id</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">The <tt>id</tt> of the request</td>
            </tr>
            <tr>
              <td align="left">
                <tt>result</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Outcome of the call (<xref target="tab-tool-call-result"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>receipt</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Receipt for the call (<xref target="receipt-structure"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>execution_nonce</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Nonce to present when retrying this <tt>id</tt> (<xref target="authoritative-spend"/>); omitted when absent</td>
            </tr>
          </tbody>
        </table>
        <t>The <tt>result</tt> member is an object whose <tt>status</tt> member selects its other
members (<xref target="tab-tool-call-result"/>). The "Decision" column gives the
decision that the receipt records (<xref target="decisions"/>). The receipt's
parameters, target, and any available result binding <bcp14>MUST</bcp14> agree with the
request and returned result. A valid receipt for a different call is not
evidence for this response.</t>
        <table anchor="tab-tool-call-result">
          <name>Tool Call Results</name>
          <thead>
            <tr>
              <th align="left">status</th>
              <th align="left">Other members</th>
              <th align="left">Decision</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>ok</tt></td>
              <td align="left">
                <tt>value</tt> (JSON value)</td>
              <td align="left">
                <tt>allow</tt></td>
              <td align="left">The call completed. <tt>value</tt> is the output, or <tt>null</tt> if there is none.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>stream_complete</tt></td>
              <td align="left">
                <tt>total_chunks</tt> (integer)</td>
              <td align="left">
                <tt>allow</tt></td>
              <td align="left">The call completed after streaming <tt>total_chunks</tt> chunks.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>cancelled</tt></td>
              <td align="left">
                <tt>reason</tt> (string), <tt>chunks_received</tt> (integer)</td>
              <td align="left">
                <tt>cancelled</tt></td>
              <td align="left">The call was canceled.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>incomplete</tt></td>
              <td align="left">
                <tt>reason</tt> (string), <tt>chunks_received</tt> (integer)</td>
              <td align="left">
                <tt>incomplete</tt></td>
              <td align="left">The call ended before completion.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>err</tt></td>
              <td align="left">
                <tt>error</tt> (object, <xref target="native-errors"/>)</td>
              <td align="left">
                <tt>deny</tt></td>
              <td align="left">The kernel denied the call or failed to evaluate it; this status does not establish absence of an external effect.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>pending_approval</tt></td>
              <td align="left">
                <tt>proposal</tt> (object, <xref target="threshold-proposal"/>)</td>
              <td align="left">
                <tt>deny</tt></td>
              <td align="left">Execution awaits approval; no tool was dispatched.</td>
            </tr>
          </tbody>
        </table>
        <t>A <tt>pending_approval</tt> result contains exactly <tt>status</tt> and <tt>proposal</tt>.
It ends this request-response exchange but does not finalize the logical
operation. The kernel <bcp14>MUST</bcp14> send no output chunks and <bcp14>MUST</bcp14> omit
<tt>execution_nonce</tt>. A client that does not support this result <bcp14>MUST</bcp14> stop;
it <bcp14>MUST NOT</bcp14> interpret it as an allowed call. Resumption follows
<xref target="threshold-kernel-proposals"/>.</t>
        <t>In <tt>cancelled</tt> and <tt>incomplete</tt> results, <tt>chunks_received</tt> is the number
of chunks that the kernel sent for the call.</t>
        <t>A <tt>tool_call_chunk</tt> carries one piece of streamed output
(<xref target="tab-tool-call-chunk"/>).</t>
        <table anchor="tab-tool-call-chunk">
          <name>tool_call_chunk Members</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>type</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">
                <tt>tool_call_chunk</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>id</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">The <tt>id</tt> of the request</td>
            </tr>
            <tr>
              <td align="left">
                <tt>chunk_index</tt></td>
              <td align="left">integer</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Position of the chunk, starting at 0</td>
            </tr>
            <tr>
              <td align="left">
                <tt>data</tt></td>
              <td align="left">JSON value</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Content of the chunk</td>
            </tr>
          </tbody>
        </table>
        <t>The kernel sends the chunks of a call in order, with <tt>chunk_index</tt>
values 0, 1, 2, and so on without gaps, and it sends all of them before
the call's <tt>tool_call_response</tt>. A kernel can collect the whole stream
before it sends the first chunk, so an agent cannot assume that chunks
arrive while the tool runs. Each chunk travels in its own frame, and the
frame limit (<xref target="native-framing"/>) applies to each one. A kernel <bcp14>MAY</bcp14> bound
the duration, total size, or chunk count of a stream. When it stops a
stream at such a bound, it sends only chunks already authorized for
release under <xref target="execution-lifecycle"/> and ends the call as <tt>incomplete</tt>.
If the policy requires complete-output inspection, it releases no
unchecked partial result.</t>
        <t>Every <tt>tool_call_response</tt> carries a receipt signed by the configured
kernel receipt authority, including denials, pending approvals,
cancellations, and incomplete calls. The receiver <bcp14>MUST</bcp14> verify the
receipt as specified in <xref target="receipt-verification"/> before relying on it.
If signing or durable finalization fails, the kernel <bcp14>MUST NOT</bcp14> substitute
a newly generated, unauthenticated key. It terminates or resets the
affected exchange and preserves recoverable operation state. A closed
transport does not establish that an external effect was absent.</t>
      </section>
      <section anchor="native-errors">
        <name>Native Errors</name>
        <t>An <tt>err</tt> result carries an error object in its <tt>error</tt> member. The
object's <tt>code</tt> member names the error, and for some codes a <tt>detail</tt>
member adds information (<xref target="tab-native-errors"/>). A code without detail
is serialized with no <tt>detail</tt> member. The native transport carries no
numeric error code; <xref target="error-mapping"/> maps each <tt>code</tt> to the registry
code shown.</t>
        <table anchor="tab-native-errors">
          <name>Native Error Codes</name>
          <thead>
            <tr>
              <th align="left">code</th>
              <th align="left">detail</th>
              <th align="left">Meaning</th>
              <th align="left">Registry</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>capability_denied</tt></td>
              <td align="left">string</td>
              <td align="left">The capability token is invalid for the call, for example because its signature does not verify</td>
              <td align="left">2100</td>
            </tr>
            <tr>
              <td align="left">
                <tt>capability_expired</tt></td>
              <td align="left">none</td>
              <td align="left">The token is outside its validity interval</td>
              <td align="left">2101</td>
            </tr>
            <tr>
              <td align="left">
                <tt>capability_revoked</tt></td>
              <td align="left">none</td>
              <td align="left">The token, or a capability in its delegation chain, is revoked</td>
              <td align="left">2102</td>
            </tr>
            <tr>
              <td align="left">
                <tt>policy_denied</tt></td>
              <td align="left">object</td>
              <td align="left">A check of the kernel or a guard denied the call</td>
              <td align="left">3100</td>
            </tr>
            <tr>
              <td align="left">
                <tt>tool_server_error</tt></td>
              <td align="left">string</td>
              <td align="left">The tool server failed</td>
              <td align="left">5100</td>
            </tr>
            <tr>
              <td align="left">
                <tt>internal_error</tt></td>
              <td align="left">string</td>
              <td align="left">The kernel failed to evaluate the call</td>
              <td align="left">6100</td>
            </tr>
          </tbody>
        </table>
        <t>The <tt>detail</tt> of <tt>policy_denied</tt> has two string members: <tt>guard</tt>, which
names the check that denied the call, and <tt>reason</tt>, a description for
people. The kernel uses these <tt>guard</tt> values:</t>
        <dl>
          <dt><tt>kernel</tt>:</dt>
          <dd>
            <t>The kernel's own checks or policy denied the call.</t>
          </dd>
          <dt><tt>approval</tt>:</dt>
          <dd>
            <t>The call needs an approval that the request did not carry
(<xref target="approval-tokens"/>).</t>
          </dd>
          <dt><tt>session_authorization</tt>:</dt>
          <dd>
            <t>The request's approval members conflict (<xref target="native-messages"/>).</t>
          </dd>
        </dl>
        <t>The codes <tt>capability_denied</tt>, <tt>capability_expired</tt>,
<tt>capability_revoked</tt>, and <tt>tool_server_error</tt> identify specific
failures, and a kernel <bcp14>SHOULD</bcp14> use them for those failures. A kernel <bcp14>MAY</bcp14>
instead report any denial as <tt>policy_denied</tt> with <tt>guard</tt> set to
<tt>kernel</tt> and a <tt>reason</tt> that names the failure, such as "capability has
expired", and any evaluation failure as <tt>internal_error</tt>. An agent can
therefore receive either form for the same condition.</t>
        <t>A diagnostic code identifies the failure, not whether a committed effect
occurred. If dispatch has been committed and the effect cannot be
resolved, the kernel <bcp14>MUST</bcp14> preserve the operation as incomplete under
<xref target="execution-lifecycle"/>. A denial receipt or <tt>tool_server_error</tt> <bcp14>MUST
NOT</bcp14> be used to justify refund or redispatch of that operation.</t>
        <t>The following <tt>err</tt> result reports an expired token in the second form.</t>
        <sourcecode type="json">
{
  "error": {
    "code": "policy_denied",
    "detail": {
      "guard": "kernel",
      "reason": "capability has expired"
    }
  },
  "status": "err"
}
</sourcecode>
      </section>
      <section anchor="native-receiver">
        <name>Receiver Behavior</name>
        <t>A receiver reads a frame in two steps: it reads the four octets of
Length, then Length octets of payload. It handles failures as follows:</t>
        <ul spacing="normal">
          <li>
            <t>If the stream ends before all four octets of Length arrive, the
connection is closed and no message is delivered.</t>
          </li>
          <li>
            <t>If the stream ends after Length but before the full payload arrives,
the connection is closed and the partial payload is discarded.</t>
          </li>
          <li>
            <t>If Length exceeds 16,777,216, the receiver <bcp14>MUST</bcp14> reject the frame
without reading or allocating its payload.</t>
          </li>
          <li>
            <t>If the payload is not exactly one JSON object that forms a valid
message of the kind the receiver expects (for example, it is empty,
it is not JSON, a <bcp14>REQUIRED</bcp14> member is missing, a member has the wrong
type, or <tt>type</tt> is unknown), the receiver <bcp14>MUST</bcp14> reject the frame.</t>
          </li>
        </ul>
        <t>The transport defines no marker from which a receiver could find the
next frame boundary, and a receiver <bcp14>MUST NOT</bcp14> attempt to resynchronize.
After any of these failures, and after a failure to send, the kernel
ends the session: it reads no further frames, sends no further messages,
and closes the session. It sends the peer no error message first.
Neither party resumes a session. A peer that wants to continue opens a
new transport, which begins a new session.</t>
        <t>Signed objects travel inside messages, including capability tokens (in
<tt>tool_call_request</tt> and <tt>capability_list</tt>) and receipts (in
<tt>tool_call_response</tt>), approval artifacts, and execution nonces. Each
artifact defines its own authenticated projection and signing input
(<xref target="signing-input"/>). A party that forwards an artifact <bcp14>MUST</bcp14> preserve
that projection and its signature. It <bcp14>MAY</bcp14> re-encode the same typed
values when this produces the same signing input. Unknown JSON members
are not thereby authenticated.</t>
      </section>
    </section>
    <section anchor="hosted-mcp">
      <name>Hosted MCP Binding</name>
      <t>A hosted edge exposes the kernel's execution services as an MCP server
<xref target="MCP"/>. It uses the MCP Streamable HTTP transport: the client sends
each JSON-RPC 2.0 message <xref target="JSON-RPC"/> in an HTTP POST <xref target="RFC9110"/>, and
the edge answers requests with server-sent events <xref target="SSE"/>. The edge
supports MCP version 2025-11-25, which it selects as <xref target="versioning"/>
specifies.</t>
      <t>A client never handles capability tokens. For each MCP session the edge
opens a kernel session, creates an agent key, and obtains capability
tokens for that key under its issuance policy. For each tool call it
selects one of those tokens (<xref target="hosted-tool-calls"/>).</t>
      <section anchor="hosted-endpoints">
        <name>Endpoints and Headers</name>
        <t>The edge serves one endpoint path, <tt>/mcp</tt>, with the methods in
<xref target="tab-hosted-methods"/>.</t>
        <table anchor="tab-hosted-methods">
          <name>Hosted Endpoint Methods</name>
          <thead>
            <tr>
              <th align="left">Method</th>
              <th align="left">Use</th>
              <th align="left">Success response</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">POST</td>
              <td align="left">Send one JSON-RPC request, notification, or response</td>
              <td align="left">200 with an event stream for an accepted request; 202 with no body for an accepted notification or response</td>
            </tr>
            <tr>
              <td align="left">GET</td>
              <td align="left">Open the notification stream (<xref target="hosted-replay"/>)</td>
              <td align="left">200 with an event stream</td>
            </tr>
            <tr>
              <td align="left">DELETE</td>
              <td align="left">End the session</td>
              <td align="left">204</td>
            </tr>
          </tbody>
        </table>
        <t><xref target="tab-hosted-headers"/> lists the request headers that the edge
examines.</t>
        <table anchor="tab-hosted-headers">
          <name>Hosted Request Headers</name>
          <thead>
            <tr>
              <th align="left">Header</th>
              <th align="left">Sent with</th>
              <th align="left">Rule</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>Authorization</tt></td>
              <td align="left">every request</td>
              <td align="left">A <tt>Bearer</tt> credential (<xref target="hosted-admission"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>Origin</tt></td>
              <td align="left">any request</td>
              <td align="left">If present, its complete origin matches the configured allowlist</td>
            </tr>
            <tr>
              <td align="left">
                <tt>Accept</tt></td>
              <td align="left">POST, GET</td>
              <td align="left">POST lists <tt>application/json</tt> and <tt>text/event-stream</tt>; GET lists <tt>text/event-stream</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>Content-Type</tt></td>
              <td align="left">POST</td>
              <td align="left">Parsed media type equals <tt>application/json</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>MCP-Session-Id</tt></td>
              <td align="left">every request after <tt>initialize</tt></td>
              <td align="left">The session identifier</td>
            </tr>
            <tr>
              <td align="left">
                <tt>MCP-Protocol-Version</tt></td>
              <td align="left">every request after <tt>initialize</tt></td>
              <td align="left">Client sends the negotiated version; server compatibility handling follows <xref target="versioning"/></td>
            </tr>
            <tr>
              <td align="left">
                <tt>Last-Event-ID</tt></td>
              <td align="left">GET</td>
              <td align="left">Replay cursor (<xref target="hosted-replay"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>DPoP</tt></td>
              <td align="left">any request</td>
              <td align="left">Sender proof, when the access token requires one (<xref target="hosted-admission"/>)</td>
            </tr>
          </tbody>
        </table>
        <t>The edge limits the request rate of each client address and answers a
request over the limit with 429 and a <tt>Retry-After</tt> header. It then
processes a POST in this order, stopping at the first failure:</t>
        <ol spacing="normal" type="1"><li>
            <t>A present <tt>Origin</tt> that is malformed or absent from the deployment's
explicit allowed-origin set: 403. Matching compares the complete
origin, including scheme, host, and effective port. A loopback host
name alone is not authorization for an arbitrary browser origin.</t>
          </li>
          <li>
            <t>Admission fails (<xref target="hosted-admission"/>): 401.</t>
          </li>
          <li>
            <t><tt>Accept</tt> does not accept both required media types: 406. The parsed
<tt>Content-Type</tt> media type is not <tt>application/json</tt>: 415. Parameters
are parsed as HTTP parameters; a prefix such as
<tt>application/json-extra</tt> is not a match.</t>
          </li>
          <li>
            <t><tt>Content-Length</tt> is not an integer: 400, with JSON-RPC code -32600.
The body exceeds 8,388,608 octets: 413, with JSON-RPC code -32600.
The body is not JSON, or reading it fails: 400, with JSON-RPC code -32700.</t>
          </li>
          <li>
            <t>If <tt>method</tt> is <tt>initialize</tt>, the edge continues as
<xref target="hosted-initialization"/> describes.</t>
          </li>
          <li>
            <t><tt>MCP-Session-Id</tt> is missing, empty, or has leading or trailing
whitespace: 400, with JSON-RPC code -32600. The session is unknown:
404.</t>
          </li>
          <li>
            <t>For a session in a terminal state (<xref target="hosted-sessions"/>), the edge
answers 404, as required by the MCP session lifecycle.</t>
          </li>
          <li>
            <t>Otherwise, a <tt>MCP-Protocol-Version</tt> header that differs from the
session's version: 400. Credential continuity fails: 403. The
session is not <tt>ready</tt>: 409.</t>
          </li>
        </ol>
        <t>Where a step gives a JSON-RPC code, the response body is a JSON object
with members <tt>jsonrpc</tt>, <tt>error</tt>, and <tt>id</tt>. The <tt>id</tt> equals the request
identifier when it can be determined safely; otherwise it is <tt>null</tt>, as
specified by <xref target="JSON-RPC"/>. HTTP-layer rejection of a notification uses
an HTTP error status rather than a JSON-RPC response to that
notification. Other error responses carry a plain-text body.</t>
        <t>A POST that carries a request, meaning a message with both <tt>id</tt> and
<tt>method</tt>, receives an event stream. The stream starts with a priming
event that has an event identifier, a <tt>retry</tt> field of 1000
milliseconds, and empty data. It ends after the event that carries the
response to the request. The edge handles the requests of a session one
at a time: a request POST waits until the stream of the previous request
has ended. An accepted POST carrying a notification or response <bcp14>MUST</bcp14>
receive 202 with no body. The edge <bcp14>MUST</bcp14> process the accepted message; an
occupied request stream is not permission to silently discard it. Any
resulting server messages use an appropriate open stream under the MCP
transport rules.</t>
        <t>A DELETE is checked for Origin and admission as a POST is. It then needs
an <tt>MCP-Session-Id</tt> of a known session (400 or 404 otherwise, with
plain-text bodies) and credential continuity (403). The edge answers 404
for a session already in a terminal state. Otherwise it moves the
session to <tt>deleted</tt> and answers 204.</t>
      </section>
      <section anchor="hosted-admission">
        <name>Session Admission</name>
        <t>Every request, <tt>initialize</tt> included, <bcp14>MUST</bcp14> carry an <tt>Authorization</tt>
header with the <tt>Bearer</tt> scheme and a non-empty token. The edge answers
a request without one, or with a token that it does not accept, with 401
and a <tt>WWW-Authenticate</tt> challenge. If the edge publishes OAuth
protected resource metadata <xref target="RFC9728"/>, the challenge is <tt>Bearer</tt> with
a <tt>resource_metadata</tt> parameter that gives the metadata URL, and a
<tt>scope</tt> parameter when scopes are configured. Otherwise the challenge is
<tt>Bearer</tt> alone.</t>
        <t>The edge accepts tokens in one configured mode:</t>
        <ul spacing="normal">
          <li>
            <t>a static token, which has to equal the configured value;</t>
          </li>
          <li>
            <t>a JWT <xref target="RFC7519"/>, signed with EdDSA, RS256, RS384, RS512, PS256,
PS384, PS512, ES256, or ES384 under a configured key or key set. The
edge <bcp14>MUST</bcp14> configure an allowed algorithm set independently of the
token, require and validate <tt>iss</tt>, <tt>aud</tt>, and <tt>exp</tt>, and reject a
token before a present <tt>nbf</tt> or at or after <tt>exp</tt>. It <bcp14>MUST</bcp14> bind issuer
keys to the expected issuer, validate its own audience and configured
resource and scopes, and reject a token intended for a different use.
JWT processing follows <xref target="RFC8725"/>;</t>
          </li>
          <li>
            <t>a token that the edge validates by OAuth token introspection
<xref target="RFC7662"/>.</t>
          </li>
        </ul>
        <t>Introspection <bcp14>MUST</bcp14> use an authenticated, protected connection to the
configured authorization server and require an active token for the
expected resource, principal, scope, and validity interval. Static
bearer credentials are an explicitly configured shared-principal
profile; they <bcp14>MUST NOT</bcp14> be described as distinct authenticated users or
sender-bound credentials.</t>
        <t>The edge has no unauthenticated mode.</t>
        <t>A JWT or introspected token can bind the request to a sender through
members of its <tt>cnf</tt> claim. For <tt>chioSenderKey</tt>, the request <bcp14>MUST</bcp14> carry
a <tt>DPoP</tt> header whose value is the base64url encoding without padding
<xref target="RFC4648"/> of a Chio sender proof (<xref target="sender-constraint"/>) signed by
that key. The proof binds <tt>capability_id</tt> to the token's <tt>jti</tt> claim,
<tt>tool_server</tt> to the edge's resource identifier (its protected resource,
or <tt>/mcp</tt>), <tt>tool_name</tt> to the HTTP method, and <tt>action_hash</tt> to the
SHA-256 hash of the empty octet string. The edge rejects a stale proof,
a proof issued too far in the future, and a proof whose nonce it has
already seen for the same <tt>jti</tt>. For <tt>x5t#S256</tt> and
<tt>chioAttestationSha256</tt>, the request <bcp14>MUST</bcp14> carry the header
<tt>x-chio-mtls-thumbprint-sha256</tt> or <tt>x-chio-runtime-attestation-sha256</tt>,
respectively, with a value equal to the claim. A failed check is 401.
These checks authenticate HTTP requests; the edge does not pass the
proof to the kernel (<xref target="hosted-tool-calls"/>).</t>
        <t>A present <tt>cnf</tt> <bcp14>MUST</bcp14> select at least one supported sender-key or
certificate binding, and every selected binding <bcp14>MUST</bcp14> be verified. The
edge <bcp14>MUST</bcp14> reject malformed, empty, or unsupported confirmation methods;
it <bcp14>MUST NOT</bcp14> silently treat such a token as an unconstrained bearer.
In particular, a <tt>jkt</tt> confirmation requires the separately implemented
OAuth DPoP binding and cannot be satisfied by the Chio proof format.</t>
        <t>The Chio object carried in this binding's <tt>DPoP</tt> header is not the JWT
proof format of <xref target="RFC9449"/>. Implementations <bcp14>MUST NOT</bcp14> advertise this
binding as OAuth DPoP interoperability. Deployments needing that format
require a separately specified binding.</t>
        <t>Certificate and attestation headers <bcp14>MUST</bcp14> originate from an authenticated
trusted ingress that strips client-supplied copies and validates the
underlying evidence. An attestation digest comparison alone is not
sender authentication. Tokens with an attestation binding <bcp14>MUST</bcp14> also have
a verified sender-key or certificate binding on the same request. The
edge <bcp14>MUST</bcp14> reject the request if the required trusted ingress context is
unavailable.</t>
        <t>The edge binds the authentication context of <tt>initialize</tt> to the
session. Every later request of the session <bcp14>MUST</bcp14> present the same
context: the same <tt>Origin</tt> value or none, and either the same static
token or, for a JWT or introspected token, the same principal, issuer,
subject, audience, scopes, and identity claims. When the edge recorded a
fingerprint of the token, the request <bcp14>MUST</bcp14> carry the same token. The
edge answers a mismatch with 403.</t>
      </section>
      <section anchor="hosted-initialization">
        <name>Initialization</name>
        <t>A client opens a session as follows:</t>
        <ol spacing="normal" type="1"><li>
            <t>The client sends an <tt>initialize</tt> request in a POST without an
<tt>MCP-Session-Id</tt> header. The edge answers 400, with JSON-RPC code
-32600, if the message has no <tt>id</tt> or if the POST carries an
<tt>MCP-Session-Id</tt> header with any value. It creates no session in
either case.</t>
          </li>
          <li>
            <t>The edge creates a session in state <tt>initializing</tt>, with a new
session identifier, a new kernel session, an agent key, and
capability tokens for that key. It generates the session identifier
from fresh randomness; clients treat it as opaque.</t>
          </li>
          <li>
            <t>The edge answers with an event stream that holds a priming event and
then the <tt>initialize</tt> response. If the response is a result, the
edge sets <tt>MCP-Session-Id</tt> on the HTTP response, records
<tt>result.protocolVersion</tt> as the session's version, and moves the
session to <tt>ready</tt>. If initialization fails, the HTTP response has no
<tt>MCP-Session-Id</tt> and the edge discards the session.</t>
          </li>
          <li>
            <t>The client sends <tt>notifications/initialized</tt> in a POST with the
session identifier. The edge then activates the kernel session. Until
it does, the edge answers <tt>tools/list</tt>, <tt>tools/call</tt>, and the other
operations of a session with JSON-RPC error -32002. It answers
<tt>ping</tt> at any time.</t>
          </li>
        </ol>
        <t>Every <tt>initialize</tt> creates a new session, and the edge never
re-initializes an existing one. A client that sets
<tt>toolCallChunkNotifications</tt> within
<tt>capabilities.experimental.chioToolStreaming</tt> to <tt>true</tt> in <tt>initialize</tt>
receives streamed tool output as notifications (<xref target="hosted-tool-calls"/>).
The result's <tt>capabilities.experimental</tt> member advertises that feature
as <tt>chioToolStreaming</tt> and describes version selection as <tt>chioProtocol</tt>
(<xref target="versioning"/>).</t>
      </section>
      <section anchor="hosted-sessions">
        <name>Session States</name>
        <t><xref target="fig-hosted-states"/> shows the states of a hosted session.</t>
        <figure anchor="fig-hosted-states">
          <name>Hosted Session States</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="472" viewBox="0 0 472 192" class="aasvg">
                <path d="M 32,80L 32,118.81765" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 160,80L 160,118.81765" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 160,137.18235L 160,160" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 272,80L 272,118.81765" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 320,64L 320,80" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 416,80L 416,118.81765" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 416,144L 416,160" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 112,48L 294.81765,48" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 32,80L 416,80" fill="none" stroke="black" stroke-linecap="round"/>
                <path d="M 160,160L 416,160" fill="none" stroke="black" stroke-linecap="round"/>
                <polygon class="arrowhead" points="416,120 421.6,108 410.4,108" fill="black"/>
                <polygon class="arrowhead" points="296,48 284,42.4 284,53.6" fill="black"/>
                <polygon class="arrowhead" points="272,120 277.6,108 266.4,108" fill="black"/>
                <polygon class="arrowhead" points="160,136 154.4,148 165.6,148" fill="black"/>
                <polygon class="arrowhead" points="160,120 165.6,108 154.4,108" fill="black"/>
                <polygon class="arrowhead" points="32,120 37.6,108 26.4,108" fill="black"/>
                <g class="text">
                  <text x="164" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">initialize</text>
                  <text x="244" y="36" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">succeeds</text>
                  <text x="52" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">initializing</text>
                  <text x="320" y="52" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">ready</text>
                  <text x="60" y="100" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">idle</text>
                  <text x="112" y="100" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">timeout</text>
                  <text x="196" y="100" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">DELETE</text>
                  <text x="316" y="100" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">shutdown</text>
                  <text x="448" y="100" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">drain</text>
                  <text x="32" y="132" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">expired</text>
                  <text x="160" y="132" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">deleted</text>
                  <text x="276" y="132" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">closed</text>
                  <text x="412" y="132" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">draining</text>
                  <text x="240" y="180" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">grace</text>
                  <text x="292" y="180" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">period</text>
                  <text x="340" y="180" font-family="monospace" font-size="13px" text-anchor="middle" fill="black">ends</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art">
               initialize succeeds
initializing ----------------------&#62; ready
                                       |
   +---------------+-------------+-----+-----------+
   | idle timeout  | DELETE      | shutdown        | drain
   v               v             v                 v
expired         deleted        closed          draining
                   ^                               |
                   +-------------------------------+
                           grace period ends
</artwork>
          </artset>
        </figure>
        <t>A <tt>ready</tt> session becomes <tt>expired</tt> when no request has been accepted
for the idle period, which is 15 minutes by default. Each POST or GET
that the edge accepts restarts the idle period; an open stream does not.
An operator can drain a <tt>ready</tt> session, which then becomes <tt>deleted</tt>
when a grace period ends, 5 seconds by default. A DELETE moves any
session that is not in a terminal state to <tt>deleted</tt>, and an operator
shutdown moves it to <tt>closed</tt>.</t>
        <t>The states <tt>deleted</tt>, <tt>expired</tt>, and <tt>closed</tt> are terminal, and a
terminal session never changes state. The edge answers a request to an
<tt>initializing</tt> or <tt>draining</tt> session with 409 and a request to a
terminal session with 404. Retaining an internal tombstone for replay
protection does not change that externally visible status.</t>
        <t>The edge does not resume a terminal session. A client continues after
404 only by opening a new session. While a session is <tt>ready</tt>, a client
that loses a connection can keep sending requests with the same session
identifier and credentials. A response lost with its stream cannot be
recovered through the notification replay buffer (<xref target="hosted-replay"/>).
The client <bcp14>MUST</bcp14> resolve the original operation's outcome through an
authenticated recovery path before retrying a call with possible side
effects. A new session does not make a new execution of that call safe.</t>
      </section>
      <section anchor="hosted-replay">
        <name>Notification Stream and Replay</name>
        <t>A client opens the notification stream of a session with a GET. The GET
needs an <tt>MCP-Session-Id</tt> header (400, with JSON-RPC code -32600,
otherwise) and an <tt>Accept</tt> header that lists <tt>text/event-stream</tt> (406
otherwise). The edge applies the Origin, admission, version, continuity,
and state checks of a POST. A session has at most one notification
stream: the edge answers a second GET with 409 while the first stream is
open. The stream carries only notifications, meaning messages with
<tt>method</tt> and without <tt>id</tt>. It has no priming event and ends when its
output channel closes or the client disconnects. A logical session-state
transition does not guarantee immediate closure of an already open
stream.</t>
        <t>While a notification stream is open, the edge sends notifications only
on it. While none is open, it sends them on the stream of the current
request POST. A request stream also carries the edge's requests to the
client, which have both <tt>method</tt> and <tt>id</tt>.</t>
        <t>Each event has an identifier of the form <tt>&#60;session-id&#62;-&#60;n&#62;</tt>, where <tt>&#60;n&#62;</tt>
is a decimal counter. The counter starts at 1 and counts every event of
the session on every stream, priming events included. The counter is
allocated when the edge creates an event, so its value does not
establish delivery order across streams or buffered events. For a
non-priming event, <tt>data</tt> is one JSON-RPC message; a priming event has
empty data. The edge sets no <tt>event</tt> field. The edge retains the last 64
notifications for replay and retains no other events. Delivery on an
open stream is best effort: the edge drops events, without notice, for a
reader that falls too far behind.</t>
        <t>A GET with a <tt>Last-Event-ID</tt> header asks the edge to replay the
notifications that followed that event. The edge splits the value at its
last hyphen. The part before it has to equal the session identifier, and
the part after it, the cursor, has to be an unsigned decimal integer.
The edge answers 409 and opens no stream if the value is malformed or
names another session, if it retains no notifications, or if the cursor
is below one less than the counter of the oldest retained notification
or above that of the newest. Otherwise it sends each retained
notification with a larger counter and then continues with live
notifications, without duplicates. After a 409, a client can open a
stream without <tt>Last-Event-ID</tt> and accept that it missed notifications.</t>
        <t>An edge can serve several sessions through one connection to an upstream
tool server. In that configuration it delivers every notification from
the upstream server into every live session's queue. Session workers
filter resource updates by subscription and elicitation completion by
session context, and ignore unsupported notifications.</t>
      </section>
      <section anchor="hosted-tool-calls">
        <name>Tool Calls</name>
        <t>A <tt>tools/call</tt> request names the tool in <tt>params.name</tt> and passes
<tt>params.arguments</tt>, which defaults to an empty object. The edge answers
JSON-RPC error -32602 if <tt>name</tt> is absent or names a tool it does not
expose. Its <tt>tools/list</tt> lists only the tools that the session's
capability tokens authorize.</t>
        <t>The client sends no capability token. The edge selects the first of the
session's tokens whose grants match the tool's server and name, the
arguments, and the model metadata (<xref target="model-metadata"/>). If no token
matches, the edge returns a result with <tt>isError</tt> set to <tt>true</tt> and does
not submit the call to the kernel, so no receipt records the call.
Otherwise the edge submits the call to the kernel with the selected
token, and the kernel evaluates it as it evaluates a native call
(<xref target="capability-verification"/>). The submission carries no sender proof:
the kernel denies a call for which a matching grant requires one
(<xref target="sender-constraint"/>).</t>
        <t>The members of <tt>params._meta</tt> in <xref target="tab-hosted-meta"/> carry the other
inputs of a native request (<xref target="tab-tool-call-request"/>). When a member
and its alias are both present, the edge uses the member. <tt>_meta</tt> has to
be an object, and each member has to have the structure of its native
equivalent; the edge answers -32602 otherwise.</t>
        <table anchor="tab-hosted-meta">
          <name>Chio Members of _meta in tools/call</name>
          <thead>
            <tr>
              <th align="left">Member</th>
              <th align="left">Native equivalent</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>chioRequestId</tt></td>
              <td align="left">
                <tt>id</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>modelMetadata</tt></td>
              <td align="left">none (<xref target="model-metadata"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>executionNonce</tt></td>
              <td align="left">
                <tt>execution_nonce</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>governedIntent</tt></td>
              <td align="left">
                <tt>governed_intent</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>approvalToken</tt></td>
              <td align="left">
                <tt>approval_token</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>approvalTokens</tt></td>
              <td align="left">
                <tt>approval_tokens</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>thresholdApprovalProposal</tt></td>
              <td align="left">
                <tt>threshold_approval_proposal</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>supplementalAuthorization</tt></td>
              <td align="left">
                <tt>supplemental_authorization</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>routeSelection</tt></td>
              <td align="left">none</td>
            </tr>
          </tbody>
        </table>
        <table anchor="tab-hosted-aliases">
          <name>Accepted Chio Metadata Aliases</name>
          <thead>
            <tr>
              <th align="left">Member</th>
              <th align="left">Accepted alias</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>chioRequestId</tt></td>
              <td align="left">none</td>
            </tr>
            <tr>
              <td align="left">
                <tt>modelMetadata</tt></td>
              <td align="left">
                <tt>chioModelMetadata</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>executionNonce</tt></td>
              <td align="left">
                <tt>chioExecutionNonce</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>governedIntent</tt></td>
              <td align="left">
                <tt>chioGovernedIntent</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>approvalToken</tt></td>
              <td align="left">
                <tt>chioApprovalToken</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>approvalTokens</tt></td>
              <td align="left">
                <tt>chioApprovalTokens</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>thresholdApprovalProposal</tt></td>
              <td align="left">
                <tt>chioThresholdApprovalProposal</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>supplementalAuthorization</tt></td>
              <td align="left">
                <tt>chioSupplementalAuthorization</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>routeSelection</tt></td>
              <td align="left">
                <tt>route_selection</tt>, <tt>chioRouteSelection</tt></td>
            </tr>
          </tbody>
        </table>
        <t><tt>chioRequestId</tt> is a non-empty string of at most 2048 UTF-8 octets, with
no leading or trailing whitespace and no control characters. The kernel
uses it as the request identifier. Without it, the edge uses the request
identifier bound in a presented execution nonce, or assigns a new
identifier to each call. A request that carries approval members or
<tt>supplementalAuthorization</tt> <bcp14>MUST</bcp14> carry <tt>chioRequestId</tt>, and the approval
members have to follow the combination rules of <xref target="native-messages"/>; the
edge answers -32602 otherwise. Calls requiring durable threshold
coordination also satisfy the narrower identifier bounds in
<xref target="threshold-approval"/>. The kernel records <tt>routeSelection</tt>, an
object, in the receipt's metadata as <tt>route_selection</tt>.</t>
        <t>The following request is illustrative.</t>
        <sourcecode type="json">
{
  "jsonrpc": "2.0",
  "id": 7,
  "method": "tools/call",
  "params": {
    "name": "echo",
    "arguments": {"text": "hi"},
    "_meta": {
      "chioRequestId": "req-7",
      "modelMetadata": {
        "model_id": "m-1",
        "safety_tier": "standard",
        "provider": "p"
      }
    }
  }
}
</sourcecode>
        <t>The edge returns the kernel's outcome as an MCP tool result:</t>
        <ul spacing="normal">
          <li>
            <t>For an allowed call, <tt>isError</tt> defaults to <tt>false</tt>. A tool output already
shaped as an MCP result can retain an existing <tt>isError: true</tt>. An object value becomes
<tt>structuredContent</tt> plus a text rendering in <tt>content</tt>. A string value
becomes one text item. A value that already has the members of a tool
result keeps its existing fields. Missing <tt>isError</tt> defaults to <tt>false</tt>;
missing <tt>content</tt> is synthesized only when <tt>structuredContent</tt> is present.</t>
          </li>
          <li>
            <t>For a denied, canceled, or incomplete call, and for a failure of the
kernel to evaluate the call, <tt>isError</tt> is <tt>true</tt>. An ordinary error
has one text item that states the reason. A retained streamed error
instead describes the stream delivery in <tt>content</tt> and records the
reason in <tt>structuredContent.chioToolStream.reason</tt>.</t>
          </li>
          <li>
            <t>For pending approval, <tt>content</tt> is an empty array, <tt>isError</tt> is
<tt>false</tt>, and <tt>structuredContent</tt> is the native pending result:
<tt>status: pending_approval</tt> and the complete signed <tt>proposal</tt>.
This is a workflow state, not permission to execute. The next call
uses the original <tt>chioRequestId</tt>, proposal, and collected votes.</t>
          </li>
          <li>
            <t>For a call that needs a URL elicitation, the edge returns JSON-RPC
error -32042 with <tt>data.elicitations</tt>.</t>
          </li>
        </ul>
        <t>For a kernel outcome, the edge includes the signed receipt in
<tt>result._meta.chio.receipt</tt>, its identifier in <tt>receiptId</tt>, the
projected decision in <tt>decision</tt>, and diagnostic lifecycle information
in <tt>terminalState</tt>. The projected decision is <tt>allow</tt>, <tt>deny</tt>, or
<tt>pending_approval</tt>; it <bcp14>MUST NOT</bcp14> replace the signed receipt's decision.
In particular, a pending result's receipt records denied execution for
that exchange (<xref target="threshold-kernel-proposals"/>).</t>
        <t>The edge also returns <tt>result._meta.chioEvidence</tt>, with schema
<tt>chio.mcp.execution-evidence.v1</tt>, the signed <tt>receipt</tt>, <tt>requestId</tt>,
<tt>outputKind</tt>, <tt>output</tt>, and diagnostic <tt>terminalState</tt>. <tt>requestId</tt> is
the request identifier from signed receipt metadata, or <tt>null</tt> when that
metadata is absent. Consumers <bcp14>MUST</bcp14> compare a present identifier with the
expected request; a null value cannot establish request correlation by
itself. For
an allowed scalar or object result, <tt>outputKind</tt> is <tt>value</tt> and <tt>output</tt>
contains the original value whose canonical bytes the kernel bound. A
projected MCP wrapper is not a substitute for that original value. For a
stream, <tt>outputKind</tt> is <tt>stream</tt> and <tt>output</tt> is <tt>null</tt>; stream content
verification requires the ordered chunks and their binding profile. When
no releasable value is available, <tt>outputKind</tt> is <tt>none</tt> and <tt>output</tt> is
<tt>null</tt>. The evidence wrapper is not separately signed; consumers <bcp14>MUST</bcp14>
verify the enclosed receipt and all claimed bindings. They <bcp14>MUST NOT</bcp14>
infer permission from an unsigned diagnostic field or from MCP's
<tt>isError</tt> alone.</t>
        <t>The edge <bcp14>MUST</bcp14> construct these metadata namespaces from the actual kernel
response, replacing conflicting tool-supplied metadata. It <bcp14>MUST</bcp14> preserve
the original signed receipt. Authorized consumers can also query
retained receipts through trust-control (<xref target="receipt-query"/>). An
admission or transport failure can occur before a receipt exists; such
an error <bcp14>MUST NOT</bcp14> carry fabricated execution evidence. When issued, an
execution nonce is returned in <tt>result._meta.chioExecutionNonce</tt>; it
<bcp14>MUST</bcp14> be absent from a pending approval response.</t>
        <t>If the client enabled chunk notifications at initialization, the edge
sends one <tt>notifications/chio/tool_call_chunk</tt> notification per chunk
before the result. Its <tt>params</tt> members are <tt>requestId</tt> (the JSON-RPC
<tt>id</tt> of the call), <tt>chunkIndex</tt>, <tt>totalChunks</tt>, and <tt>chunk</tt>. The
result's <tt>structuredContent.chioToolStream</tt> then has <tt>mode</tt> set to
<tt>notification_stream</tt>. Otherwise a retained stream's <tt>chioToolStream</tt>
has <tt>mode</tt> set to <tt>collapsed_result</tt> and carries every chunk in
<tt>chunks</tt>. In both cases <tt>chioToolStream</tt> also carries <tt>totalChunks</tt> and
<tt>terminalState</tt>, which is <tt>completed</tt> or <tt>incomplete</tt> in retained
streamed results. Cancellation is an exception: the edge returns a
reason-only error result and omits the stream summary and collapsed
chunks. Chunk notifications can already have been queued before that
cancellation result.</t>
      </section>
      <section anchor="model-metadata">
        <name>Model Metadata</name>
        <t>A client can describe the model on whose behalf it calls a tool, in the
<tt>modelMetadata</tt> member of <tt>_meta</tt> (<xref target="tab-model-metadata"/>).</t>
        <table anchor="tab-model-metadata">
          <name>Model Metadata</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>model_id</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Model identifier</td>
            </tr>
            <tr>
              <td align="left">
                <tt>safety_tier</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">
                <tt>low</tt>, <tt>standard</tt>, <tt>high</tt>, or <tt>restricted</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>provider</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Provider name</td>
            </tr>
            <tr>
              <td align="left">
                <tt>provenance_class</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Replaced by the edge</td>
            </tr>
          </tbody>
        </table>
        <t>The edge has not verified this metadata, so it <bcp14>MUST</bcp14> set
<tt>provenance_class</tt> to <tt>asserted</tt>, whatever value the client sent. The
other provenance classes, <tt>observed</tt> and <tt>verified</tt>, are not available
to a client. The kernel evaluates model constraints (<xref target="constraints"/>)
against the metadata; those constraints do not consider the provenance
class. The kernel records the metadata in the receipt's
<tt>metadata.model_metadata</tt> member, where <tt>provenance_class</tt> is always
present. For the request above, the receipt records:</t>
        <sourcecode type="json">
{
  "model_metadata": {
    "model_id": "m-1",
    "provenance_class": "asserted",
    "provider": "p",
    "safety_tier": "standard"
  }
}
</sourcecode>
      </section>
    </section>
    <section anchor="trust-control">
      <name>Trust-Control Interface</name>
      <t>The trust-control service offers an HTTP interface <xref target="RFC9110"/> whose
paths begin with <tt>/v1</tt> (<xref target="versioning"/>). Request and response bodies are
JSON objects with camelCase member names. Nested capability tokens,
receipts, and attestation statements keep their own member names. This
section specifies four endpoints: issuance, delegated issuance, receipt
query, and revocation.</t>
      <t>A caller authenticates with an <tt>Authorization</tt> header that carries the
<tt>Bearer</tt> scheme and the service token. The service compares the token
with its configured value in constant time and answers a missing or
wrong token with 401 and <tt>WWW-Authenticate: Bearer</tt>. The receipt query
also accepts tenant read tokens (<xref target="receipt-query"/>). The nodes of a
clustered service can authenticate issuance requests to each other by a
mechanism outside the scope of this document; a clustered service also
adds members that describe the node that handled a request.</t>
      <t>An error response has the body <tt>{"error": "&#60;message&#62;"}</tt>, and its status
code gives the class of error. The service rejects a body or query
string that does not parse into the structure defined here with a 4xx
status, which can precede authentication and can carry a different body.
It answers 503 when it sheds load.</t>
      <section anchor="issuance">
        <name>Capability Issuance</name>
        <t><tt>POST /v1/capabilities/issue</tt> issues a direct capability token, one with
an empty delegation chain. <xref target="tab-issue-request"/> lists the request
members. A 200 response has one member, <tt>capability</tt>, which holds the
token (<xref target="capability-structure"/>).</t>
        <table anchor="tab-issue-request">
          <name>Issuance Request Members</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>subjectPublicKey</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Subject key (<xref target="key-encoding"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>scope</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Requested scope (<xref target="scope-and-grants"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>ttlSeconds</tt></td>
              <td align="left">integer</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Requested lifetime in seconds</td>
            </tr>
            <tr>
              <td align="left">
                <tt>runtimeAttestation</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Runtime attestation statement; omitted when absent</td>
            </tr>
          </tbody>
        </table>
        <t>The service signs the token with its authority key. The token's
<tt>subject</tt> is <tt>subjectPublicKey</tt>, its <tt>issued_at</tt> is the current time,
and its <tt>expires_at</tt> is <tt>issued_at</tt> plus a policy-bounded <tt>ttlSeconds</tt>.
The lifetime <bcp14>MUST</bcp14> be positive. The service <bcp14>MUST</bcp14> reject overflow or an
unrepresentable deadline instead of saturating it. Its scope is the
requested scope, to whose grants the service's issuance policy can add
constraints. The service answers:</t>
        <ul spacing="normal">
          <li>
            <t>400 if <tt>subjectPublicKey</tt> is not a valid key, or if
<tt>runtimeAttestation</tt> has a malformed <tt>workload_identity</tt> or one that
conflicts with a SPIFFE URI in <tt>runtime_identity</tt>;</t>
          </li>
          <li>
            <t>403 if its issuance policy denies the request, including when it
rejects the runtime attestation;</t>
          </li>
          <li>
            <t>409 if the authority backend is not configured or its configuration
conflicts with the issuance mode;</t>
          </li>
          <li>
            <t>500 for any other failure.</t>
          </li>
        </ul>
        <t>A runtime attestation statement is a normalized result from an
attestation verifier, with members <tt>schema</tt>, <tt>verifier</tt>, <tt>tier</tt> (<tt>none</tt>,
<tt>basic</tt>, <tt>attested</tt>, or <tt>verified</tt>), <tt>issued_at</tt>, <tt>expires_at</tt>,
<tt>evidence_sha256</tt>, and the <bcp14>OPTIONAL</bcp14> <tt>runtime_identity</tt>,
<tt>workload_identity</tt>, and <tt>claims</tt>. The service rejects a statement
outside its validity interval (<tt>issued_at</tt> &#60;= now &#60; <tt>expires_at</tt>).
Configured trust and assurance policies determine acceptance and
effective tier; without trust rules, untrusted evidence can be
downgraded to <tt>none</tt>. That effective tier selects any configured scope
and lifetime ceilings. Attestation evidence formats and their appraisal
are outside the scope of this document.</t>
      </section>
      <section anchor="delegated-issuance">
        <name>Delegated Issuance</name>
        <t><tt>POST /v1/federation/capabilities/issue</tt> issues a capability token to
the subject of an Agent Passport presentation, optionally within a
delegation policy signed by another party. Passports and presentations
are outside the scope of this document; this section specifies the
delegation policy and the checks that bound the issued token. Only the
service token authenticates this endpoint.</t>
        <table anchor="tab-delegated-request">
          <name>Delegated Issuance Request Members</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>presentation</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Passport presentation; its format is outside this document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>expectedChallenge</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Challenge that the presentation answers; its format is outside this document, except its <tt>verifier</tt> member, a string that names the verifying service</td>
            </tr>
            <tr>
              <td align="left">
                <tt>capability</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Requested token: <tt>scope</tt> (object, <xref target="scope-and-grants"/>) and <tt>ttl</tt> (integer, seconds)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>admissionPolicy</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Admission policy for enterprise identities; outside this document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>enterpriseIdentity</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Enterprise identity of the subject; outside this document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>delegationPolicy</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Signed delegation policy (<xref target="tab-delegation-policy"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>upstreamCapabilityId</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Parent capability that the delegation policy names</td>
            </tr>
          </tbody>
        </table>
        <t>A <tt>delegationPolicy</tt> has two members: <tt>body</tt> (<xref target="tab-delegation-policy"/>)
and <tt>signature</tt>, the signature of <tt>signerPublicKey</tt> over the canonical
encoding of <tt>body</tt> (<xref target="signing-input"/>).</t>
        <table anchor="tab-delegation-policy">
          <name>Delegation Policy Body Members</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>schema</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">
                <tt>chio.federated-delegation-policy.v1</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>issuer</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Party that grants the delegation</td>
            </tr>
            <tr>
              <td align="left">
                <tt>partner</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Party that receives it</td>
            </tr>
            <tr>
              <td align="left">
                <tt>verifier</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Service that may issue under the policy</td>
            </tr>
            <tr>
              <td align="left">
                <tt>signerPublicKey</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Key that signs the policy (<xref target="key-encoding"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>createdAt</tt></td>
              <td align="left">integer</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Start of validity, in Unix seconds</td>
            </tr>
            <tr>
              <td align="left">
                <tt>expiresAt</tt></td>
              <td align="left">integer</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">End of validity, in Unix seconds</td>
            </tr>
            <tr>
              <td align="left">
                <tt>ttlSeconds</tt></td>
              <td align="left">integer</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Largest lifetime of an issued token</td>
            </tr>
            <tr>
              <td align="left">
                <tt>scope</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Largest scope of an issued token</td>
            </tr>
            <tr>
              <td align="left">
                <tt>purpose</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Stated purpose</td>
            </tr>
            <tr>
              <td align="left">
                <tt>parentCapabilityId</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Parent capability to which the policy is bound</td>
            </tr>
          </tbody>
        </table>
        <t>The service <bcp14>MUST</bcp14> perform these checks, in this order, and reject the
request at the first that fails:</t>
        <ol spacing="normal" type="1"><li>
            <t>If the service has a configured public URL, <tt>expectedChallenge</tt>'s
<tt>verifier</tt> equals it (400).</t>
          </li>
          <li>
            <t>If <tt>delegationPolicy</tt> is present: its <tt>schema</tt> is the value above,
<tt>createdAt</tt> &#60;= <tt>expiresAt</tt>, <tt>ttlSeconds</tt> is greater than 0, the
signature verifies, <tt>createdAt</tt> &#60;= now &#60;= <tt>expiresAt</tt>, and its
<tt>verifier</tt> equals the challenge's <tt>verifier</tt> and the configured
public URL, if any (400 for each).</t>
          </li>
          <li>
            <t>If <tt>delegationPolicy</tt> is present, the requested token is within its
ceiling: the requested scope is a subset of the policy's <tt>scope</tt>
(<xref target="attenuation"/>), <tt>ttl</tt> is greater than zero and no greater than
<tt>ttlSeconds</tt>, and checked addition of now plus <tt>ttl</tt> is representable
and no greater than <tt>expiresAt</tt> (403). Overflow <bcp14>MUST</bcp14> reject issuance;
it <bcp14>MUST NOT</bcp14> be replaced by a saturated expiry.</t>
          </li>
          <li>
            <t><tt>upstreamCapabilityId</tt>, if present, equals the policy's
<tt>parentCapabilityId</tt>, and a policy <tt>parentCapabilityId</tt> is present
only with <tt>upstreamCapabilityId</tt> (400).</t>
          </li>
          <li>
            <t>The presentation verifies against the challenge and the service's
verifier policy, by rules outside this document (400, 403, or 409).</t>
          </li>
          <li>
            <t>If <tt>upstreamCapabilityId</tt> is present, the service holds a record of
that capability imported from the operator that issued it (404), the
policy's <tt>signerPublicKey</tt> is the key that shared the record, and the
requested scope and expiry fit within the parent's (403). Importing
such records is outside the scope of this document.</t>
          </li>
          <li>
            <t>If <tt>delegationPolicy</tt> is present, <tt>signerPublicKey</tt> is one of the
keys that the service's capability authority trusts (403).</t>
          </li>
        </ol>
        <t>The service then issues a direct token from its authority key to the
presentation's subject, with the requested <tt>scope</tt> and <tt>ttl</tt>, under its
issuance policy (403 if that policy denies it). With a delegation
policy, the service records the policy as the lineage parent of the new
token (409 if it has no receipt store) and returns the identifier of
that record. The delegation appears in the service's records, not in the
token's delegation chain (<xref target="delegation"/>).</t>
        <t>A 200 response has the members in <xref target="tab-delegated-response"/>.</t>
        <table anchor="tab-delegated-response">
          <name>Delegated Issuance Response Members</name>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>subject</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">The presentation's subject as a <tt>did:chio</tt> identifier (<xref target="did-chio"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>subjectPublicKey</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">The subject key</td>
            </tr>
            <tr>
              <td align="left">
                <tt>verification</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">Result of verifying the presentation; outside this document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>capability</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">The issued token</td>
            </tr>
            <tr>
              <td align="left">
                <tt>enterpriseIdentityProvenance</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Outside this document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>enterpriseAudit</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">Outside this document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>delegationAnchorCapabilityId</tt></td>
              <td align="left">string</td>
              <td align="left">CONDITIONAL</td>
              <td align="left">Present when <tt>delegationPolicy</tt> was: identifier of the recorded lineage parent</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="receipt-query">
        <name>Receipt Query</name>
        <t><tt>GET /v1/receipts/query</tt> returns the stored receipts that match its
query parameters (<xref target="tab-receipt-query"/>). Every parameter is <bcp14>OPTIONAL</bcp14>,
and the filters that are present all apply.</t>
        <table anchor="tab-receipt-query">
          <name>Receipt Query Parameters</name>
          <thead>
            <tr>
              <th align="left">Parameter</th>
              <th align="left">Type</th>
              <th align="left">Selects receipts</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>capabilityId</tt></td>
              <td align="left">string</td>
              <td align="left">whose <tt>capability_id</tt> equals the value</td>
            </tr>
            <tr>
              <td align="left">
                <tt>toolServer</tt></td>
              <td align="left">string</td>
              <td align="left">whose <tt>tool_server</tt> equals the value</td>
            </tr>
            <tr>
              <td align="left">
                <tt>toolName</tt></td>
              <td align="left">string</td>
              <td align="left">whose <tt>tool_name</tt> equals the value</td>
            </tr>
            <tr>
              <td align="left">
                <tt>outcome</tt></td>
              <td align="left">string</td>
              <td align="left">whose decision is the value: <tt>allow</tt>, <tt>deny</tt>, <tt>cancelled</tt>, or <tt>incomplete</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>since</tt></td>
              <td align="left">integer</td>
              <td align="left">whose <tt>timestamp</tt> is at or after the value (Unix seconds)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>until</tt></td>
              <td align="left">integer</td>
              <td align="left">whose <tt>timestamp</tt> is at or before the value</td>
            </tr>
            <tr>
              <td align="left">
                <tt>minCost</tt></td>
              <td align="left">integer</td>
              <td align="left">whose charged cost, in minor units (<xref target="monetary-amounts"/>), is at least the value</td>
            </tr>
            <tr>
              <td align="left">
                <tt>maxCost</tt></td>
              <td align="left">integer</td>
              <td align="left">whose charged cost is at most the value</td>
            </tr>
            <tr>
              <td align="left">
                <tt>costCurrency</tt></td>
              <td align="left">string</td>
              <td align="left">whose charged cost is in this currency (<xref target="ISO4217"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>agentSubject</tt></td>
              <td align="left">string</td>
              <td align="left">whose subject key equals the value; the capability's subject key is used only when the receipt subject is absent</td>
            </tr>
            <tr>
              <td align="left">
                <tt>cursor</tt></td>
              <td align="left">integer</td>
              <td align="left">after this position (<xref target="receipt-query-paging"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>limit</tt></td>
              <td align="left">integer</td>
              <td align="left">up to this many; default 50, clamped to the range 1 to 200</td>
            </tr>
          </tbody>
        </table>
        <t>The service <bcp14>MUST</bcp14> reject the query with 400 if <tt>minCost</tt> exceeds
<tt>maxCost</tt>, if <tt>minCost</tt> or <tt>maxCost</tt> is present without <tt>costCurrency</tt>,
or if <tt>costCurrency</tt> is not exactly three uppercase ASCII letters. It
<bcp14>MUST</bcp14> also reject an <tt>outcome</tt> outside the four values with 400. A
receipt without cost data matches no cost filter.</t>
        <t>A caller authenticated with the service token reads all receipts. The
service <bcp14>MAY</bcp14> also accept read tokens that are each bound to one tenant; a
query authenticated with such a token returns only receipts whose signed
<tt>tenant_id</tt> is that tenant. The service <bcp14>MUST</bcp14> derive tenant context from
authenticated credentials, apply it to every lookup and page, and verify
that returned signed bodies match that context. An identifier or query
parameter is not read authority. Receipts without authenticated tenant
attribution <bcp14>MUST NOT</bcp14> be included in a tenant query. Privileged
administrative access is an explicitly separate authorization role.</t>
        <section anchor="receipt-query-paging">
          <name>Paging</name>
          <t>The service orders matching receipts by their position in its store,
ascending, and returns those whose position is greater than <tt>cursor</tt>.
The response has three members:</t>
          <dl>
            <dt><tt>totalCount</tt>:</dt>
            <dd>
              <t>The number of receipts that match the filters, regardless of <tt>cursor</tt>
and <tt>limit</tt>.</t>
            </dd>
            <dt><tt>nextCursor</tt>:</dt>
            <dd>
              <t>The position of the last receipt returned when the page is full, and
<tt>null</tt> otherwise.</t>
            </dd>
            <dt><tt>receipts</tt>:</dt>
            <dd>
              <t>An array of receipt objects (<xref target="receipt-structure"/>).</t>
            </dd>
          </dl>
          <t>A client pages by passing <tt>nextCursor</tt> as <tt>cursor</tt> until <tt>nextCursor</tt> is
<tt>null</tt>; the last page can be empty. Positions are not otherwise exposed.
The service verifies the signature of each receipt before it returns it,
and it fails the query with 500 if a stored receipt does not verify. A
query that matches nothing returns:</t>
          <sourcecode type="json">
{"nextCursor": null, "receipts": [], "totalCount": 0}
</sourcecode>
        </section>
      </section>
      <section anchor="revocation">
        <name>Revocation</name>
        <t><tt>POST /v1/revocations</tt> revokes a capability. Its request body has one
<bcp14>REQUIRED</bcp14> member, <tt>capabilityId</tt>, a string that identifies the
capability. Only the service token authenticates this endpoint. The
service records the identifier as revoked without checking that it names
an issued capability, so a caller can revoke an identifier before any
token uses it. It answers 200 only after the revocation is visible in
its store, 409 if it has no revocation store, and 500 if the store
fails. A 200 response has these members:</t>
        <dl>
          <dt><tt>capabilityId</tt>:</dt>
          <dd>
            <t>The identifier from the request.</t>
          </dd>
          <dt><tt>revoked</tt>:</dt>
          <dd>
            <t><tt>true</tt>.</t>
          </dd>
          <dt><tt>newlyRevoked</tt>:</dt>
          <dd>
            <t><tt>false</tt> if the identifier was already revoked, and <tt>true</tt> otherwise.</t>
          </dd>
        </dl>
        <sourcecode type="json">
{"capabilityId": "cap-1", "newlyRevoked": true, "revoked": true}
</sourcecode>
        <t><tt>GET /v1/revocations</tt>, authenticated by the service token, reports
revocation state. With the parameter <tt>capabilityId</tt>, its response
includes <tt>capabilityId</tt> and a boolean <tt>revoked</tt> for that identifier. The
response also has <tt>configured</tt> (boolean), <tt>backend</tt> (string), <tt>count</tt>
(integer), and <tt>revocations</tt>, an array of up to <tt>limit</tt> objects with
members <tt>capabilityId</tt> and <tt>revokedAt</tt> (Unix seconds).</t>
        <t>A kernel learns of a revocation only when it checks. Before it
dispatches a call, the kernel checks the revocation state of the
token's <tt>id</tt> and of each capability in the token's delegation chain
(<xref target="capability-verification"/>). A kernel configured with a trust-control
service makes each check a <tt>GET /v1/revocations</tt> request with
<tt>capabilityId</tt> set to the identifier and <tt>limit</tt> set to 1, reads
<tt>revoked</tt>, and keeps no cache. The kernel <bcp14>MUST</bcp14> deny the call if any
identifier is revoked or a check fails. It records a denial receipt when
its signing and storage authorities are available, subject to
<xref target="execution-lifecycle"/>. The
trust-control service does not notify kernels of revocations. The
reference native driver does not notify agents; the optional
<tt>capability_revoked</tt> message remains a permitted wire allocation
(<xref target="native-messages"/>).</t>
        <t>A successful revocation response acknowledges durable visibility at the
responding authority. It does not by itself acknowledge observation by
every kernel or cancellation of an already-committed external effect.
Deployments with replicated authorities <bcp14>MUST</bcp14> define the freshness bound
and admission fence for their revocation profile. A kernel <bcp14>MUST NOT</bcp14>
continue using a stale negative revocation result after that bound.
Unavailable or indeterminate revocation state denies new dispatch.</t>
      </section>
    </section>
    <section anchor="versioning">
      <name>Versioning and Negotiation</name>
      <t>Each wire surface has its own version selector. A version match on one
surface does not establish a match on another surface.</t>
      <t>A schema identifier fixes its field meanings, canonicalization, and
signing input. An incompatible change requires a new schema or binding
version. A registry allocation alone does not negotiate an extension. A
peer <bcp14>MUST</bcp14> reject an unsupported required feature rather than remove it
and retry under weaker semantics. In particular, peers using threshold
approval <bcp14>MUST</bcp14> agree support for the <tt>pending_approval</tt> result before
opening an execution session.</t>
      <t>For the native transport, this document defines <tt>chio-wire-v1</tt>. The
agent and kernel establish that value out of band. Native messages carry
no in-band version field. A kernel that cannot accept the agreed version
closes or resets the transport. Registry code 1000 classifies that
out-of-band incompatibility; there is no native numeric-error frame or
implemented in-band version exchange. There is no native downgrade
exchange.</t>
      <t>The hosted binding supports MCP version <tt>2025-11-25</tt> and follows MCP's
initialization negotiation. The client <bcp14>MUST</bcp14> send <tt>params.protocolVersion</tt>.
If the requested version is supported, the edge returns that version;
otherwise it returns a version it supports. A client that cannot use the
returned version <bcp14>MUST</bcp14> end initialization without submitting operations.
A missing or malformed selector is invalid parameters, not implicit
agreement to a default.</t>
      <t>The client <bcp14>MUST</bcp14> send the selected version in <tt>MCP-Protocol-Version</tt> on
subsequent HTTP requests. The edge rejects an invalid or unsupported
header with HTTP 400. When the header is absent but an authenticated
session identifies the negotiated version, the edge can use that version
for compatibility; it <bcp14>MUST NOT</bcp14> infer another version from request data.
Session admission and state handling are specified in <xref target="hosted-mcp"/>.</t>
      <t>The trust-control interface uses the path prefix <tt>/v1</tt>. A client selects
that prefix explicitly. There is no downgrade negotiation for that
interface. Future prefixes are separate interface versions.</t>
    </section>
    <section anchor="errors">
      <name>Error Model</name>
      <t>Errors describe a failed operation, not proof that a side effect did not
occur. In particular, an incomplete outcome records uncertainty about
the tool's terminal state. Before repeating an operation with side
effects, an agent determines whether it completed or uses the tool's own
idempotency contract.</t>
      <section anchor="error-registry">
        <name>Error Registry</name>
        <t>The numeric registry has eight categories: <tt>protocol</tt>, <tt>auth</tt>,
<tt>capability</tt>, <tt>guard</tt>, <tt>budget</tt>, <tt>tool</tt>, <tt>internal</tt>, and <tt>transaction</tt>.
<xref target="iana-error-codes"/> gives every initial allocation. The transaction
range reserves identifiers for related evidence profiles; this document
does not allocate individual codes or define those profiles.</t>
        <t>A transient flag describes whether a changed condition can permit a
later attempt. It is not permission to repeat the same request without
change. The retry strategy is part of each allocation. For example,
<tt>auth_missing_or_invalid</tt> requires fresh credentials, and
<tt>budget_exhausted</tt> requires a budget change or reconciliation. A revoked
token stays revoked even though a newly issued token can authorize a
later call. For tool and internal failures, bounded backoff controls
load only after the client establishes that retry is safe under
<xref target="execution-lifecycle"/>. It does not resolve an uncertain external effect.</t>
      </section>
      <section anchor="error-mapping">
        <name>Surface Mappings</name>
        <t>A native error is a <tt>tool_call_response</tt> whose result has <tt>status: err</tt>.
The nested error has <tt>code</tt> and, for variants carrying diagnostic text,
<tt>detail</tt>. The native names are <tt>capability_denied</tt>,
<tt>capability_expired</tt>, <tt>capability_revoked</tt>, <tt>policy_denied</tt>,
<tt>tool_server_error</tt>, and <tt>internal_error</tt>. They map to registry codes
2100, 2101, 2102, 3100, 5100, and 6100 respectively. A registry
allocation does not add a variant to the closed native error union.</t>
        <t>Hosted errors use JSON-RPC and, where supplied, a Chio code in error
data. Invalid request shape uses -32600, invalid method parameters use
-32602, and a session that is not initialized uses -32002. Version
selection follows <xref target="versioning"/>; an unsupported later HTTP version
header is an HTTP-layer error.
Authentication failures can occur at HTTP session admission before a
JSON-RPC response exists. A client keeps HTTP status, JSON-RPC code, and
Chio code distinct.</t>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>This section describes the protocol's threat model, controls, and
residual risks using the approach of <xref target="RFC3552"/>. The security boundary
includes authority issuance, kernel admission, dispatch, resource
accounting, output release, and evidence verification.</t>
      <section anchor="security-boundaries">
        <name>Assets and Trust Boundaries</name>
        <t>The protected assets are execution authority, confidential data and
credentials, resource budgets, isolation state, signed evidence, and the
availability of the services that enforce them.</t>
        <t>An adversary can control an agent, its prompts and requested parameters,
a tool's returned data, and an untrusted network. It can steal bearer
tokens, replay or reorder messages, submit malformed signed objects,
collude across sessions, race concurrent admissions, interrupt
processes, and present stale storage snapshots. A compromised tool
server can try to escape its permitted files, destinations, or
credential scope.</t>
        <t>The trusted computing base includes the kernel's enforcement code,
trusted issuers and policy configuration, signing authorities, durable
authority stores, authenticated adapters, and the host isolation
mechanisms selected by the execution profile. A secret broker is also
trusted for the provider credentials and actions entrusted to it.
Protocol signatures do not compensate for compromise of those
components.</t>
        <t>Chio constrains the authority available to an agent even when its
instructions or model behavior are adversarial. It does not infer user
intent from the semantic safety of a prompt. A policy that authorizes an
undesired operation can still produce a correctly signed allow receipt.
Likewise, a compromised kernel key can authenticate false statements; a
verifier checks the signer's statement and the evidence supporting each
additional claim, rather than treating a signature as proof of truth.</t>
        <t>An execution profile <bcp14>MUST</bcp14> identify the components on which its claims
depend and prevent alternative paths around them. An adapter that omits
authenticated context, a tool with ambient credentials, or a recovery
path that recreates consumed authority can defeat otherwise valid
protocol checks.</t>
      </section>
      <section anchor="security-transport">
        <name>Transport Security</name>
        <t><xref target="tab-transport-security"/> states the transport requirements for each
surface. TLS supplies channel protection; <xref target="RFC8446"/> defines TLS 1.3.</t>
        <table anchor="tab-transport-security">
          <name>Transport Security Requirements</name>
          <thead>
            <tr>
              <th align="left">Surface</th>
              <th align="left">TLS</th>
              <th align="left">Mutual TLS</th>
              <th align="left">Without transport security</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Native transport</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14> across hosts or untrusted networks</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14> when TLS peer identity supplies authorization identity</td>
              <td align="left">Authenticated same-host IPC is permitted; unauthenticated loopback is development-only</td>
            </tr>
            <tr>
              <td align="left">MCP binding</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14> for any non-loopback deployment</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14> when the session's sender binding is an mTLS certificate thumbprint</td>
              <td align="left">Conformant only on loopback or in a test harness</td>
            </tr>
            <tr>
              <td align="left">Trust-control interface</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14> for any non-loopback deployment</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14> for service-to-service deployments that rely on transport identity</td>
              <td align="left">Conformant only on loopback</td>
            </tr>
            <tr>
              <td align="left">Kernel to tool server</td>
              <td align="left">Provided by mutual TLS when networked</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14> over TCP across processes or hosts</td>
              <td align="left">Not conformant for production over a network</td>
            </tr>
          </tbody>
        </table>
        <t>A deployment that is missing a transport property that
<xref target="tab-transport-security"/> requires <bcp14>MUST</bcp14> deny the request or restrict
itself to a local development configuration. A deployment <bcp14>MUST NOT</bcp14> claim
confidentiality, peer authentication, or replay resistance for traffic it
carries in plaintext across a network.</t>
        <t>A hosted edge can run behind a proxy that terminates TLS and passes the
client certificate's thumbprint to the edge in a request header. The
edge accepts that value only in authenticated ingress context. The proxy
<bcp14>MUST</bcp14> remove any client-supplied copy, and the edge <bcp14>MUST</bcp14> be unreachable
by untrusted clients through a path that bypasses the proxy. Same-host
IPC used for authority decisions <bcp14>MUST</bcp14> authenticate peer identity and
socket ownership; a pathname or loopback address alone is insufficient.</t>
      </section>
      <section anchor="security-token-theft">
        <name>Token Theft and Replay</name>
        <t>A capability token that is not sender-constrained is a bearer token for
its validity interval: anyone who obtains it can present it. Signatures,
validity intervals, and revocation bound the damage. A correctly bound
sender proof (<xref target="sender-constraint"/>) prevents possession of the token
alone from authorizing a call; compromise of the sender key remains a
compromise of that authority.</t>
        <t>The native transport carries no sender proof (<xref target="native-messages"/>), and
it has no anti-replay marker of its own: a captured frame that carries a
bearer token can be replayed until the token expires or is revoked. The
MCP binding can bind a session to a sender key or a certificate
thumbprint (<xref target="hosted-mcp"/>). Operators <bcp14>SHOULD</bcp14> issue tokens with the
shortest validity interval that the task allows, <bcp14>SHOULD</bcp14> require sender
constraint for sensitive or cross-host flows where the surface supports
it, and <bcp14>SHOULD</bcp14> revoke a token as soon as its holder is suspected of
compromise (<xref target="revocation"/>).</t>
        <t>A kernel <bcp14>MUST</bcp14> durably record consumed sender-proof nonces for their full
acceptance interval. All processes accepting proofs in the same
authority domain <bcp14>MUST</bcp14> share atomic replay protection. An unavailable,
corrupt, or rolled-back replay store <bcp14>MUST</bcp14> deny admission. Expiry-based
collection <bcp14>MUST</bcp14> account for the profile's allowed clock skew and
unresolved operations; restart is not a new replay epoch.</t>
      </section>
      <section anchor="security-kernel-trust">
        <name>Kernel Impersonation and Receipt Trust</name>
        <t>A receipt carries the public key that signed it (<tt>kernel_key</tt>), so a
valid signature proves only that the holder of that key signed the
receipt. A verifier <bcp14>MUST</bcp14> check that <tt>kernel_key</tt> is a key it trusts for
the kernel that it expects to have made the decision, using a key it
obtained out of band, before it treats a receipt as evidence. Receipt
verification therefore depends on how a deployment distributes kernel
keys; this document does not define a public transparency system for
them (<xref target="checkpoint-claims"/>).</t>
        <t>In the same way, a kernel accepts a capability token only from an issuer
in its configured set of trusted issuer keys
(<xref target="capability-verification"/>). Distributions <bcp14>SHOULD</bcp14> pin or securely
provision kernel keys, issuer keys, and certificates, rather than
learning them from the traffic they protect.</t>
        <t>A basic capability token has no general audience member. Without an
additional binding, its issuer trust and grants can make it usable at
more than one kernel. The security-context caveat in
<xref target="capability-security-context"/> restricts use to its authenticated
context; it is not a generic OAuth audience. Operators that run kernels
in different trust domains <bcp14>SHOULD</bcp14> use distinct issuer keys and <bcp14>MUST</bcp14>
configure the context and target checks required by each domain.</t>
        <section anchor="security-key-lifecycle">
          <name>Signing Roles and Key Lifecycle</name>
          <t>Trust is role-specific. Configuring a key to sign receipts <bcp14>MUST NOT</bcp14> make
it a capability issuer, manifest publisher, approver, credential broker,
or active-response authority. Deployments <bcp14>MUST</bcp14> authorize those roles
explicitly and <bcp14>SHOULD</bcp14> use separate keys for independent trust domains.</t>
          <t>Signing keys <bcp14>MUST</bcp14> be generated or derived using cryptographic secret
material appropriate to their suite. Public identifiers, user names,
workload names, and public-key bytes <bcp14>MUST NOT</bcp14> be used alone to derive a
private key. Issuance to a subject public key does not authorize an
adapter to replace that key with one it can reconstruct from public
inputs.</t>
          <t>Changes to issuer sets, signing roles, or key epochs <bcp14>MUST</bcp14> come from an
authenticated authority authorized to make that change. A replication
peer's connectivity or possession of a general service credential is
insufficient. Replicated trust state <bcp14>MUST</bcp14> bind its authority domain and
monotonic revision, reject rollback and cross-domain substitution, and
be durably applied before it authorizes operations. A profile <bcp14>MUST</bcp14>
specify its protected replication channel and authenticated update
format; an unsigned snapshot over an unprotected channel is invalid.</t>
          <t>A key lifecycle profile <bcp14>MUST</bcp14> specify activation, retirement, compromise
handling, and historical verification. Rotation <bcp14>MUST</bcp14> have one
unambiguous active signing authority per role and epoch; concurrent or
stale workers <bcp14>MUST NOT</bcp14> continue signing as that active authority after
its fence changes. Activation <bcp14>MUST</bcp14> follow the profile's authenticated
transition and durable-state requirements. A failed rotation <bcp14>MUST NOT</bcp14>
silently select an older or weaker signer.</t>
          <t>An old public key retained for historical verification does not
authorize new signatures. A verifier <bcp14>MUST</bcp14> apply its own trusted key
history and compromise policy. An artifact's self-asserted timestamp
cannot establish that it predates compromise. When a profile requires
independent key-log witnesses, the roster and quorum <bcp14>MUST</bcp14> come from
trusted configuration, and missing or conflicting witness evidence <bcp14>MUST</bcp14>
block activation. Key-log and witness wire formats are companion-profile
concerns; a receipt checkpoint alone does not supply a key-rotation
protocol.</t>
        </section>
      </section>
      <section anchor="security-delegation">
        <name>Delegation Abuse</name>
        <t>An attacker who holds a delegated token can try to widen its scope,
truncate its lineage, or claim a parent it does not hold. The
attenuation proof and the chain-binding rule (<xref target="attenuation"/>,
<xref target="chain-binding"/>) make a claimed parent scope verifiable against the
trust root or the previous delegation link, and delegated issuance at
the trust-control service cannot exceed its signed delegation policy
(<xref target="delegated-issuance"/>).</t>
        <t>The kernel checks the revocation state of a token and of each ancestor
that its delegation chain names (<xref target="capability-verification"/>), so
revoking a token denies every descendant whose chain names it. Operators
<bcp14>SHOULD</bcp14> revoke the parent token when they suspect a compromise anywhere
below it.</t>
        <t>The kernel enforces delegated budget shares against the state it has
recorded about sibling tokens (<xref target="budget-shares"/>). Two kernels that do
not share that state each admit children up to the full share, so a
deployment that spreads one delegation family across kernel instances
needs a single authority for that state to keep the bound.</t>
      </section>
      <section anchor="security-downgrade">
        <name>Signature Algorithm Downgrade</name>
        <t>Keys and signatures identify their own algorithm (<xref target="key-encoding"/>), and
a verifier rejects an <tt>algorithm</tt> hint that disagrees with the encoded
signature. A verifier that requires post-quantum protection <bcp14>MUST</bcp14> enforce
a minimum accepted signature suite and <bcp14>MUST</bcp14> reject a classical signature
where that minimum requires a hybrid one (<xref target="signature-suites"/>). A
verifier that enforces no minimum accepts classical and hybrid
signatures alike, and so does not protect against an attacker who can
produce a classical signature for a key the verifier trusts.</t>
      </section>
      <section anchor="security-canonicalization">
        <name>Canonicalization</name>
        <t>Signatures cover canonical bytes (<xref target="canonical-json"/>), so two parties
that parse the same bytes differently can disagree about what was
signed. JSON objects with duplicate member names are the usual source of
such disagreement. Verifiers <bcp14>MUST</bcp14> apply the original-byte parsing and
numeric preservation requirements in <xref target="canonical-json"/>. Intermediaries
<bcp14>MUST</bcp14> preserve every member and value in the artifact's typed signing
projection when forwarding it. They <bcp14>MAY</bcp14> change insignificant JSON
whitespace and member order, since verification reconstructs canonical
bytes (<xref target="native-receiver"/>). They <bcp14>MUST NOT</bcp14> add unauthenticated members
and represent them as part of the signed statement.</t>
      </section>
      <section anchor="security-runtime">
        <name>Runtime Enforcement Profiles</name>
        <t>Kernel admission controls entry to an operation. Confinement, credential
custody, and information-flow policies control the authority exercised
while that operation runs and the data released afterward. When a
profile requires these controls, the kernel <bcp14>MUST</bcp14> establish them before
dispatch and <bcp14>MUST</bcp14> deny service if any required control is unavailable.
It <bcp14>MUST NOT</bcp14> fall back to a less restrictive execution path.</t>
        <section anchor="security-tool-servers">
          <name>Tool Server Confinement</name>
          <t>A confined execution profile <bcp14>MUST</bcp14> bind the selected tool to an
authenticated manifest and an independently configured operator ceiling.
The effective authority is their intersection. An adapter <bcp14>MUST</bcp14> apply the
operator's authenticated policy to every exposed operation, including
routes absent from an upstream API description. It <bcp14>MUST NOT</bcp14> infer an
exemption from an HTTP method, a tool-supplied side-effect annotation, or
an untrusted schema. Anonymous or unrestricted operations require an
explicit operator policy. A signed manifest is
accepted only from a publisher authorized for that workload; signature
validity alone does not authorize its requested privileges.</t>
          <t>The launcher <bcp14>MUST</bcp14> establish the required process, filesystem, syscall,
network, environment, and descriptor restrictions before untrusted code
runs. It <bcp14>MUST</bcp14> prevent executable, directory, or socket substitution
between verification and use. Child processes <bcp14>MUST</bcp14> inherit restrictions
that prevent escape from the operation's authority. A failed isolation
setup <bcp14>MUST</bcp14> prevent launch. A pathname constraint on a tool argument is
not an operating-system filesystem boundary.</t>
          <t>A destination policy <bcp14>MUST</bcp14> cover the connection actually made, including
name resolution, redirects, proxying, and endpoint changes. A hostname
string comparison alone is insufficient. Profiles that restrict network
destinations <bcp14>MUST</bcp14> use a trusted enforcement point capable of enforcing
those restrictions. Portable artifacts do not establish that a
particular host installed its promised controls; claims about
confinement require authenticated evidence from that host and its stated
trust assumptions.</t>
        </section>
        <section anchor="security-credential-custody">
          <name>Credential Custody</name>
          <t>A credential-custody profile <bcp14>MUST</bcp14> keep provider secrets outside the
agent and untrusted tool processes. A trusted broker performs the
authorized provider operation without returning reusable credentials.
Secrets <bcp14>MUST NOT</bcp14> be exposed through tool parameters, inherited
environment variables, command-line arguments, IPC responses, logs, or
receipts.</t>
          <t>The broker <bcp14>MUST</bcp14> authenticate the invoking kernel and bind each operation
to the verified capability, caller and tenant, target, parameters,
resource reservation, and executor identity. It <bcp14>MUST</bcp14> reject destination
substitution, stale authority, and replay. Broker-specific quota checks
<bcp14>MUST</bcp14> participate in the same committed accounting decision as the
operation's other required budgets; independent local counters do not
establish a composite spend bound. An upstream timeout preserves an
uncertain committed operation rather than restoring spend authority.</t>
        </section>
        <section anchor="security-information-flow">
          <name>Information-Flow Control</name>
          <t>A flow-enforced profile <bcp14>MUST</bcp14> bind the authenticated principal, tenant,
lineage, session, isolation epoch, and context generation through
<xref target="capability-security-context"/>. The kernel <bcp14>MUST</bcp14> derive input
sensitivity from trusted retained state and authenticated tool declarations,
not from agent-selected labels. Unknown history <bcp14>MUST</bcp14> be treated as the
profile's most restrictive label rather than as public data.</t>
          <t>The kernel <bcp14>MUST</bcp14> propagate accumulated sensitivity through the operation
and check the destination's policy-owned clearance before egress.
Closing a session or changing an untrusted identifier <bcp14>MUST NOT</bcp14> clear
principal or lineage sensitivity. A less restrictive successor requires
an authenticated isolation transition or authorized declassification.</t>
          <t>Declassification <bcp14>MUST</bcp14> bind the exact operation, data or label
transition, permitted purpose and destination, approving authority, and
expiry. Single-use declassification authority <bcp14>MUST</bcp14> be consumed durably
and <bcp14>MUST NOT</bcp14> be restored after an uncertain dispatch. A tool or adapter
that cannot preserve the required context <bcp14>MUST</bcp14> be rejected for that
profile. These requirements constrain explicit flows; they do not
establish elimination of timing, traffic-volume, or other covert
channels.</t>
        </section>
        <section anchor="security-active-response">
          <name>Active Response</name>
          <t>An active-response profile treats containment actions as governed kernel
operations. Detection evidence is an input to policy, not authority to
act. The kernel <bcp14>MUST</bcp14> authenticate its provenance and causal scope and
verify the response plan, required capabilities, and approvals before
applying a response. Untrusted tool output <bcp14>MUST NOT</bcp14> impersonate an
internal security event or approval.</t>
          <t>Simulation and live execution <bcp14>MUST</bcp14> be distinct authenticated modes. A
dry-run result <bcp14>MUST NOT</bcp14> be accepted as evidence that a live action was
applied. Reversible responses <bcp14>MUST</bcp14> retain durable ownership of their
individual contributions so expiry or rollback removes only the state
that response owns. Overlapping responses <bcp14>MUST NOT</bcp14> undo each other's
restrictions. An uncertain rollback <bcp14>MUST</bcp14> remain unresolved and <bcp14>MUST NOT</bcp14>
be recorded as successful restoration.</t>
          <t>Permanent revocation requires separately authorized action; an automatic
containment policy does not implicitly acquire that authority. Recovery
<bcp14>MUST</bcp14> reconcile pending responses and stale ownership before the affected
execution domain becomes ready. These requirements use the governance
model in <xref target="governed-transactions"/> without defining a separate quorum or
approval protocol.</t>
        </section>
      </section>
      <section anchor="security-dos">
        <name>Resource Exhaustion</name>
        <t>A kernel rejects native frames larger than the maximum payload length
before allocating a buffer for them (<xref target="native-framing"/>). The MCP
binding limits each session to one notification stream and never resumes
a session that has reached a terminal state (<xref target="hosted-sessions"/>).
Deployments <bcp14>MUST</bcp14> bound message size, nesting depth, array and string
lengths, signature work, concurrency, queues, and operation duration at
each untrusted boundary. They <bcp14>MUST</bcp14> apply limits before the corresponding
allocation or expensive work where possible. Streaming and decompression
need limits on cumulative decoded size as well as individual frames.
Overload <bcp14>MUST</bcp14> reject or defer work without bypassing authorization,
accounting, or durable finalization. An authenticated caller can still
spend its own budget and queue share; budgets bound the cost of that,
not its occurrence.</t>
      </section>
      <section anchor="security-budgets">
        <name>Budgets and Approvals</name>
        <t>A budget hold is reserved before dispatch and captured once
(<xref target="budget-holds"/>); a kernel denies a request that tries to capture a
hold a second time. Approval tokens and threshold approvals are single
use (<xref target="approval-tokens"/>, <xref target="threshold-approval"/>), and a kernel records
the ones it has accepted. Both singular and threshold approvals require
durable replay protection. Threshold approval <bcp14>MUST</bcp14> use the admission
reservation in <xref target="threshold-verification"/> and <bcp14>MUST</bcp14> deny admission when
that authority is unavailable. Reconstructing a request after restart
<bcp14>MUST NOT</bcp14> produce a new approval or reservation for an already committed
operation.</t>
        <t>Threshold approval counts distinct keys. Distinct keys are not distinct
people or organizations: an operator who configures an eligible key set
decides how independent the approvers are.</t>
      </section>
      <section anchor="security-checkpoints">
        <name>Checkpoint Equivocation</name>
        <t>A kernel signs its own checkpoints, so a kernel whose key is
compromised, or a dishonest operator, can sign two checkpoints that
disagree and show each to a different verifier. Consistency proofs let a
verifier detect the disagreement when it holds both checkpoints
(<xref target="consistency-proofs"/>); nothing in this document makes a verifier hold
both. <xref target="checkpoint-claims"/> states what a verified checkpoint
establishes.</t>
      </section>
      <section anchor="security-provenance">
        <name>Provenance Inflation</name>
        <t>Callers can supply context that the kernel cannot check, such as model
metadata and call-chain information. The kernel records such context as
<tt>asserted</tt> (<xref target="provenance"/>, <xref target="model-metadata"/>). A report or export <bcp14>MUST
NOT</bcp14> present <tt>asserted</tt> context as <tt>observed</tt> or <tt>verified</tt>.</t>
      </section>
      <section anchor="security-attestation">
        <name>Attestation</name>
        <t>Attestation evidence can inform issuance (<xref target="issuance"/>), but it does not
authorize a call by itself. A verifier <bcp14>MUST</bcp14> validate the evidence under
an independently configured attester trust policy, including the
signature or authenticated verification result, workload measurements,
freshness, and challenge or session binding required by the profile.
Agent-supplied assurance labels, verifier names, and evidence digests do
not satisfy those checks. A receipt <bcp14>MUST NOT</bcp14> label such assertions as
verified attestation without that validation. A profile that binds an attestation digest
to a token <bcp14>MUST</bcp14> also bind the request to the token's sender, by a sender
proof or by mutual TLS continuity, on the same request.</t>
      </section>
      <section anchor="security-clock-skew">
        <name>Time and Deadlines</name>
        <t>Validity intervals are half-open: <tt>issued_at &#60;= now &#60; expires_at</tt> unless
an artifact explicitly states a different rule. Remote timestamp
acceptance can use only the skew allowance specified by that artifact's
profile. An allowance for remote clocks <bcp14>MUST NOT</bcp14> excuse regression or
failure of the kernel's own trusted clock.</t>
        <t>The kernel <bcp14>MUST</bcp14> use checked time arithmetic and reject an unreadable,
regressed, or unrepresentable clock value when it affects authority. It
<bcp14>MUST NOT</bcp14> replace a failed time read with zero or extend a deadline
through integer saturation. Issuers and kernels need sufficiently
synchronized wall clocks for the selected validity intervals.</t>
        <t>For an admitted operation, the effective remaining lifetime <bcp14>MUST</bcp14> be
bounded by both its signed wall-clock deadline and its original elapsed-
time budget. Retries, queue transfers, and restarts <bcp14>MUST NOT</bcp14> reset that
budget. A monotonic timestamp from another process or boot is not a
portable time authority. If recovery cannot conservatively establish the
remaining lifetime, it <bcp14>MUST</bcp14> refuse new dispatch under that
authorization.</t>
      </section>
    </section>
    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>Blocking dispatch does not remove attempted arguments from a denial
receipt. A pre-invocation guard can deny an attempt while its raw
arguments remain in signed audit evidence; protect receipt storage and
read access independently of tool admission.</t>
      <t>Receipts are designed to be kept and shown to other parties, and they
contain more than a verdict. A receipt records the tool server and tool,
the capability identifier, the call's parameters as the agent sent them
together with their hash, a hash of the output, the guards that were
evaluated and their evidence, the chain of actors that the kernel
attributes the call to, the time, and, in multi-tenant deployments, the
tenant (<xref target="receipt-structure"/>). A receipt has no dedicated output field.
Free-form metadata can still contain output or other sensitive data.</t>
      <t>Parameters are the most sensitive part. Because a receipt signs the
parameters that the agent sent, anyone who can read the receipt can read
them, including secrets or personal data that the agent placed there.
Agents and tool designers <bcp14>SHOULD</bcp14> keep secrets and personal data out of
tool arguments where the tool allows it. Deployments that handle
regulated data <bcp14>SHOULD</bcp14> evaluate a guard that detects and redacts or
blocks sensitive values before the call, and <bcp14>SHOULD</bcp14> restrict who can
query receipts.</t>
      <t>Receipts are linkable. The capability identifier and the subject key
connect every call made under one token, and a delegation chain reveals
who delegated to whom. A party that sees many receipts can build a
profile of an agent's activity and of the organization behind it.</t>
      <t>The <tt>redaction_mode</tt> field records how much of a receipt's detail was
redacted when it was signed or exported. It describes the receipt; it
does not by itself remove anything.</t>
      <t>A trust-control service limits receipt queries by tenant
(<xref target="receipt-query"/>). A tenant sees its own receipts; an administrator
sees all of them. Checkpoints commit to batches of receipts from every
tenant that a kernel serves, so the size and timing of a batch can
reveal aggregate activity across tenants to anyone who can see the
checkpoint.</t>
      <t>When MCP logging is enabled, a hosted edge can send the client log
messages that name denied tools and carry error text (<xref target="hosted-mcp"/>).
Operators <bcp14>SHOULD</bcp14> review what those messages reveal before enabling them
for untrusted clients.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document requests four registries under a new "Chio Protocol"
registry group. Each uses Specification Required as defined in
<xref target="RFC8126"/>. Registration takes effect through IANA; the initial
allocations below are requests, not assertions that IANA has assigned
these values.</t>
      <t>String values in the message and artifact registries are case-sensitive
ASCII names of 1 to 96 octets using lowercase letters, digits,
underscore, hyphen, and period. Signature-suite names additionally
permit plus. These are proposed registration rules; compatibility
decoders can accept other key spellings as specified in
<xref target="key-encoding"/>.</t>
      <t>A registration identifies its value, name, description, and a stable
specification. The designated experts check uniqueness, complete
encoding and verification rules, and whether the specification states
its security and interoperability consequences. A registration does not
establish cryptographic suitability or implementation support. An update
retains the meaning of previously allocated values; a change that breaks
that meaning receives a new value.</t>
      <section anchor="iana-error-codes">
        <name>Chio Error Codes</name>
        <t>The registration template is: numeric code; symbolic name; category;
transient flag; retry strategy and guidance; native error name, if any;
JSON-RPC code, if any; and reference. Codes are decimal integers from 0
through 2147483647. Negative JSON-RPC codes belong to their separate
namespace and are not values in this registry. Experts check that the
retry guidance distinguishes a changed condition from repeating an
unsafe side effect. The initial allocations follow. Core allocations
reference this document. Values 7100 through 7113 are reserved for
related transaction profiles, rather than allocated by this document. A
future Specification Required registration supplies a permanent public
specification before assigning any reserved value.</t>
        <dl>
          <dt>1000 (<tt>protocol_version_unsupported</tt>):</dt>
          <dd>
            <t>Category <tt>protocol</tt>; transient <tt>false</tt>;
retry <tt>do_not_retry_until_version_change</tt>.
Select a mutually supported binding version before a new operation.
This allocation does not replace MCP initialization negotiation.</t>
          </dd>
          <dt>1001 (<tt>session_not_initialized</tt>):</dt>
          <dd>
            <t>Category <tt>protocol</tt>; transient <tt>false</tt>;
retry <tt>reinitialize</tt>.
JSON-RPC code: -32002.
Open a new session and rerun initialize before retrying the operation.</t>
          </dd>
          <dt>1002 (<tt>invalid_request_shape</tt>):</dt>
          <dd>
            <t>Category <tt>protocol</tt>; transient <tt>false</tt>;
retry <tt>do_not_retry</tt>.
JSON-RPC code: -32600.
Correct the request shape before retrying.</t>
          </dd>
          <dt>1100 (<tt>auth_missing_or_invalid</tt>):</dt>
          <dd>
            <t>Category <tt>auth</tt>; transient <tt>true</tt>;
retry <tt>retry_after_refresh</tt>.
Acquire valid credentials or refresh the token before retrying.</t>
          </dd>
          <dt>2100 (<tt>capability_denied</tt>):</dt>
          <dd>
            <t>Category <tt>capability</tt>; transient <tt>false</tt>;
retry <tt>do_not_retry</tt>.
Native name: <tt>capability_denied</tt>.
Do not retry the same capability without correcting signature, scope, or subject binding.</t>
          </dd>
          <dt>2101 (<tt>capability_expired</tt>):</dt>
          <dd>
            <t>Category <tt>capability</tt>; transient <tt>false</tt>;
retry <tt>retry_after_reissue</tt>.
Native name: <tt>capability_expired</tt>.
Issue or obtain a fresh capability before retrying.</t>
          </dd>
          <dt>2102 (<tt>capability_revoked</tt>):</dt>
          <dd>
            <t>Category <tt>capability</tt>; transient <tt>false</tt>;
retry <tt>retry_after_reissue</tt>.
Native name: <tt>capability_revoked</tt>.
Obtain a newly issued capability; the revoked capability must not be retried.</t>
          </dd>
          <dt>3100 (<tt>guard_denied</tt>):</dt>
          <dd>
            <t>Category <tt>guard</tt>; transient <tt>false</tt>;
retry <tt>do_not_retry</tt>.
Native name: <tt>policy_denied</tt>.
Adjust the request or policy inputs before retrying.</t>
          </dd>
          <dt>4100 (<tt>budget_exhausted</tt>):</dt>
          <dd>
            <t>Category <tt>budget</tt>; transient <tt>true</tt>;
retry <tt>retry_after_budget_change</tt>.
Retry only after budget replenishment, grant widening, or billing reconciliation.</t>
          </dd>
          <dt>5100 (<tt>tool_server_error</tt>):</dt>
          <dd>
            <t>Category <tt>tool</tt>; transient <tt>true</tt>;
retry <tt>retry_with_backoff</tt>.
Native name: <tt>tool_server_error</tt>.
Establish safe recovery or idempotency before a bounded retry.</t>
          </dd>
          <dt>6100 (<tt>internal_error</tt>):</dt>
          <dd>
            <t>Category <tt>internal</tt>; transient <tt>true</tt>;
retry <tt>retry_with_backoff</tt>.
Native name: <tt>internal_error</tt>.
Resolve the original operation's state before a bounded retry.</t>
          </dd>
        </dl>
        <t>Values 7100 through 7113 are Reserved. All other values not allocated
above are Unassigned. Reservation does not define a wire error or imply
support for a companion transaction profile.</t>
      </section>
      <section anchor="iana-signature-suites">
        <name>Chio Signature Suites</name>
        <t>The registration template is: suite name; public-key encoding;
signature encoding; message preparation and hash; verification rule;
and reference. Experts check that key and signature encodings are
unambiguous and that composite suites specify every component and
require all components to verify. <xref target="signature-suites"/> and
<xref target="key-encoding"/> define the initial values:</t>
        <ul spacing="normal">
          <li>
            <t><tt>ed25519</tt>: Ed25519, bare hexadecimal key and signature.</t>
          </li>
          <li>
            <t><tt>p256</tt>: ECDSA P-256 with SHA-256; SEC1 uncompressed key and DER signature.</t>
          </li>
          <li>
            <t><tt>p384</tt>: ECDSA P-384 with SHA-384; SEC1 uncompressed key and DER signature.</t>
          </li>
          <li>
            <t><tt>ed25519+mldsa65</tt>: Ed25519 and ML-DSA-65, composite encoding.</t>
          </li>
          <li>
            <t><tt>p256+mldsa65</tt>: ECDSA P-256 and ML-DSA-65, composite encoding.</t>
          </li>
          <li>
            <t><tt>p384+mldsa65</tt>: ECDSA P-384 and ML-DSA-65, composite encoding.</t>
          </li>
        </ul>
        <t>The envelope hint <tt>hybrid</tt> identifies a composite. It is not a seventh
suite and does not select its components. The composite's encoded
algorithm set selects them.</t>
      </section>
      <section anchor="iana-message-types">
        <name>Chio Native Message Types</name>
        <t>The registration template is: <tt>type</tt> value; direction (agent to kernel
or kernel to agent); payload fields and types; terminal or streaming
behavior; and reference. Experts check that state transitions,
correlation, and failure behavior are defined. Initial values are:</t>
        <table anchor="tab-iana-messages">
          <name>Initial Native Message Types</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Direction</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>tool_call_request</tt></td>
              <td align="left">Agent to kernel</td>
              <td align="left">
                <xref target="native-messages"/></td>
            </tr>
            <tr>
              <td align="left">
                <tt>list_capabilities</tt></td>
              <td align="left">Agent to kernel</td>
              <td align="left">
                <xref target="native-messages"/></td>
            </tr>
            <tr>
              <td align="left">
                <tt>heartbeat</tt></td>
              <td align="left">Both directions</td>
              <td align="left">
                <xref target="native-messages"/></td>
            </tr>
            <tr>
              <td align="left">
                <tt>tool_call_chunk</tt></td>
              <td align="left">Kernel to agent</td>
              <td align="left">
                <xref target="native-messages"/></td>
            </tr>
            <tr>
              <td align="left">
                <tt>tool_call_response</tt></td>
              <td align="left">Kernel to agent</td>
              <td align="left">
                <xref target="native-messages"/></td>
            </tr>
            <tr>
              <td align="left">
                <tt>capability_list</tt></td>
              <td align="left">Kernel to agent</td>
              <td align="left">
                <xref target="native-messages"/></td>
            </tr>
            <tr>
              <td align="left">
                <tt>capability_revoked</tt></td>
              <td align="left">Kernel to agent</td>
              <td align="left">
                <xref target="native-messages"/></td>
            </tr>
          </tbody>
        </table>
        <t>The shared <tt>heartbeat</tt> allocation defines a payload in each direction.
Registering a new type does not make old decoders accept it. A future
wire version or explicit extension agreement defines its availability.</t>
      </section>
      <section anchor="iana-artifact-schemas">
        <name>Chio Signed Artifact Schemas</name>
        <t>The registration template is: schema identifier; artifact role; exact
signed projection; canonical encoding; domain separation, if any;
verification procedure; and reference. Experts check that a verifier
cannot confuse artifacts with different authority or trust roles. A
registry identifier can name a projection without appearing as a member
in its wire envelope. In particular, receipt records carry no top-level
<tt>schema</tt> member.</t>
        <t>Initial values in the scope of this document are:</t>
        <ul spacing="normal">
          <li>
            <t><tt>chio.capability.v1</tt>: capability token (<xref target="capabilities"/>).</t>
          </li>
          <li>
            <t><tt>chio.receipt.v1</tt>: receipt signing projection (<xref target="receipts"/>).</t>
          </li>
          <li>
            <t><tt>chio.aggregate-budget-root.v1</tt>: aggregate budget root
(<xref target="aggregate-budgets"/>).</t>
          </li>
          <li>
            <t><tt>chio.execution_nonce.v1</tt>: legacy execution nonce
(<xref target="authoritative-spend"/>).</t>
          </li>
          <li>
            <t><tt>chio.execution_nonce.v2</tt>: operation-owned execution nonce
(<xref target="operation-nonce"/>).</t>
          </li>
          <li>
            <t><tt>chio.dpop_proof.v1</tt>: Chio sender proof (<xref target="sender-constraint"/>).</t>
          </li>
          <li>
            <t><tt>chio.receipt_lineage_statement.v1</tt>: signed receipt relationship
(<xref target="receipt-lineage"/>).</t>
          </li>
          <li>
            <t><tt>chio.call_chain_continuation.v1</tt>: call-chain continuation
(<xref target="call-chain-continuation"/>).</t>
          </li>
          <li>
            <t><tt>chio.threshold-approval-proposal.v1</tt>: threshold proposal
(<xref target="threshold-approval"/>).</t>
          </li>
          <li>
            <t><tt>chio.checkpoint_statement.v2</tt>: signed receipt checkpoint
(<xref target="checkpoint-statement"/>).</t>
          </li>
        </ul>
        <t>Approval tokens, delegation links, and child receipts do not gain a new
schema member from this registration. Unsigned proof records do not
become signed artifacts through inclusion in a registry.</t>
      </section>
    </section>
    <section removeInRFC="true" anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section follows <xref target="RFC7942"/> and is removed before publication as an
RFC. It describes the implementation supporting this specification;
implementation availability is distinct from IETF endorsement or
independent interoperability results.</t>
      <t>Chio is implemented as a modern Rust kernel for agentic operating
systems. Its source is published under Apache-2.0 at
<eref target="https://github.com/backbay-labs/chio">https://github.com/backbay-labs/chio</eref>. The contact is Connor Whelan,
<eref target="mailto:connor@backbay.io">connor@backbay.io</eref>.</t>
      <t>The implementation provides the signed capability and receipt formats,
framed native transport, hosted MCP binding, trust-control interfaces,
authenticated attenuation, budget accounting, governed approvals, and
receipt checkpoints specified here. The runtime composes these with
authenticated process context, durable execution and recovery, confined
tool processes, brokered credentials, information-flow enforcement, and
governed active response. Cryptographic suites and host mechanisms are
selected through explicit build and deployment profiles.</t>
      <t>The production execution profile uses a single operator authority domain
with durable stores and fenced ownership. Its resource guarantee is
<tt>single_node_atomic</tt>; it does not advertise <tt>ha_linearizable</tt> merely
because multiple clients or processes use that authority. Native
confinement is a platform profile, not a property inferred from an
artifact verifier or transport adapter. Public checkpoint witnessing and
cross-operator federation have separate trust and availability
requirements.</t>
      <t>Conformance artifacts exercise capability validation, attenuation,
receipt integrity, revocation, sender binding, governed transactions,
and the native framing contract. Binding examples and cryptographic
vectors are given in <xref target="examples"/> and <xref target="test-vectors"/>. Runtime
qualification additionally exercises concurrency, process failure,
restart, confinement, credential custody, and retention. These test
categories distinguish wire interoperability from deployment assurance;
no independent multi-implementation interoperability result is claimed
by this section.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC7662">
          <front>
            <title>OAuth 2.0 Token Introspection</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>This specification defines a method for a protected resource to query an OAuth 2.0 authorization server to determine the active state of an OAuth 2.0 token and to determine meta-information about this token. OAuth 2.0 deployments can use this method to convey information about the authorization context of the token from the authorization server to the protected resource.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7662"/>
          <seriesInfo name="DOI" value="10.17487/RFC7662"/>
        </reference>
        <reference anchor="RFC9728">
          <front>
            <title>OAuth 2.0 Protected Resource Metadata</title>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <author fullname="P. Hunt" initials="P." surname="Hunt"/>
            <author fullname="A. Parecki" initials="A." surname="Parecki"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>This specification defines a metadata format that an OAuth 2.0 client or authorization server can use to obtain the information needed to interact with an OAuth 2.0 protected resource.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9728"/>
          <seriesInfo name="DOI" value="10.17487/RFC9728"/>
        </reference>
        <reference anchor="RFC3279">
          <front>
            <title>Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="L. Bassham" initials="L." surname="Bassham"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="May" year="2002"/>
            <abstract>
              <t>This document specifies algorithm identifiers and ASN.1 encoding formats for digital signatures and subject public keys used in the Internet X.509 Public Key Infrastructure (PKI). Digital signatures are used to sign certificates and certificate revocation list (CRLs). Certificates include the public key of the named subject. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3279"/>
          <seriesInfo name="DOI" value="10.17487/RFC3279"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </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="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC8032">
          <front>
            <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8032"/>
          <seriesInfo name="DOI" value="10.17487/RFC8032"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8785">
          <front>
            <title>JSON Canonicalization Scheme (JCS)</title>
            <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
            <author fullname="B. Jordan" initials="B." surname="Jordan"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
              <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8785"/>
          <seriesInfo name="DOI" value="10.17487/RFC8785"/>
        </reference>
        <reference anchor="RFC8725">
          <front>
            <title>JSON Web Token Best Current Practices</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="D. Hardt" initials="D." surname="Hardt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security tokens that contain a set of claims that can be signed and/or encrypted. JWTs are being widely used and deployed as a simple security token format in numerous protocols and applications, both in the area of digital identity and in other application areas. This Best Current Practices document updates RFC 7519 to provide actionable guidance leading to secure implementation and deployment of JWTs.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="225"/>
          <seriesInfo name="RFC" value="8725"/>
          <seriesInfo name="DOI" value="10.17487/RFC8725"/>
        </reference>
        <reference anchor="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="RFC9162">
          <front>
            <title>Certificate Transparency Version 2.0</title>
            <author fullname="B. Laurie" initials="B." surname="Laurie"/>
            <author fullname="E. Messeri" initials="E." surname="Messeri"/>
            <author fullname="R. Stradling" initials="R." surname="Stradling"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>This document describes version 2.0 of the Certificate Transparency (CT) protocol for publicly logging the existence of Transport Layer Security (TLS) server certificates as they are issued or observed, in a manner that allows anyone to audit certification authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
              <t>This document obsoletes RFC 6962. It also specifies a new TLS extension that is used to send various CT log artifacts.</t>
              <t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9162"/>
          <seriesInfo name="DOI" value="10.17487/RFC9162"/>
        </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="FIPS180-4" target="https://doi.org/10.6028/NIST.FIPS.180-4">
          <front>
            <title>Secure Hash Standard (SHS)</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2015" month="August"/>
          </front>
          <seriesInfo name="FIPS PUB" value="180-4"/>
          <seriesInfo name="DOI" value="10.6028/NIST.FIPS.180-4"/>
        </reference>
        <reference anchor="FIPS186-5" target="https://doi.org/10.6028/NIST.FIPS.186-5">
          <front>
            <title>Digital Signature Standard (DSS)</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2023" month="February"/>
          </front>
          <seriesInfo name="FIPS PUB" value="186-5"/>
          <seriesInfo name="DOI" value="10.6028/NIST.FIPS.186-5"/>
        </reference>
        <reference anchor="FIPS204" target="https://doi.org/10.6028/NIST.FIPS.204">
          <front>
            <title>Module-Lattice-Based Digital Signature Standard</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="FIPS PUB" value="204"/>
          <seriesInfo name="DOI" value="10.6028/NIST.FIPS.204"/>
        </reference>
        <reference anchor="SEC1" target="https://www.secg.org/sec1-v2.pdf">
          <front>
            <title>SEC 1: Elliptic Curve Cryptography, Version 2.0</title>
            <author>
              <organization>Standards for Efficient Cryptography Group</organization>
            </author>
            <date year="2009" month="May"/>
          </front>
        </reference>
        <reference anchor="ISO4217" target="https://www.iso.org/iso-4217-currency-codes.html">
          <front>
            <title>Codes for the representation of currencies</title>
            <author>
              <organization>International Organization for Standardization</organization>
            </author>
            <date year="2015" month="August"/>
          </front>
          <seriesInfo name="ISO" value="4217:2015"/>
        </reference>
        <reference anchor="JSON-RPC" target="https://www.jsonrpc.org/specification">
          <front>
            <title>JSON-RPC 2.0 Specification</title>
            <author>
              <organization>JSON-RPC Working Group</organization>
            </author>
            <date year="2013" month="January"/>
          </front>
        </reference>
        <reference anchor="MCP" target="https://modelcontextprotocol.io/specification/2025-11-25">
          <front>
            <title>Model Context Protocol Specification, Version 2025-11-25</title>
            <author>
              <organization>Model Context Protocol</organization>
            </author>
            <date year="2025" month="November" day="25"/>
          </front>
        </reference>
        <reference anchor="SSE" target="https://html.spec.whatwg.org/multipage/server-sent-events.html">
          <front>
            <title>HTML Living Standard, Section 9.2: Server-sent events</title>
            <author>
              <organization>WHATWG</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC3552">
          <front>
            <title>Guidelines for Writing RFC Text on Security Considerations</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="B. Korver" initials="B." surname="Korver"/>
            <date month="July" year="2003"/>
            <abstract>
              <t>All RFCs are required to have a Security Considerations section. Historically, such sections have been relatively weak. This document provides guidelines to RFC authors on how to write a good Security Considerations section. 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="72"/>
          <seriesInfo name="RFC" value="3552"/>
          <seriesInfo name="DOI" value="10.17487/RFC3552"/>
        </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="RFC8693">
          <front>
            <title>OAuth 2.0 Token Exchange</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
            <author fullname="B. Campbell" initials="B." role="editor" surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <date month="January" year="2020"/>
            <abstract>
              <t>This specification defines a protocol for an HTTP- and JSON-based Security Token Service (STS) by defining how to request and obtain security tokens from OAuth 2.0 authorization servers, including security tokens employing impersonation and delegation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8693"/>
          <seriesInfo name="DOI" value="10.17487/RFC8693"/>
        </reference>
        <reference anchor="RFC8792">
          <front>
            <title>Handling Long Lines in Content of Internet-Drafts and RFCs</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="E. Auerswald" initials="E." surname="Auerswald"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>This document defines two strategies for handling long lines in width-bounded text content. One strategy, called the "single backslash" strategy, is based on the historical use of a single backslash ('\') character to indicate where line-folding has occurred, with the continuation occurring with the first character that is not a space character (' ') on the next line. The second strategy, called the "double backslash" strategy, extends the first strategy by adding a second backslash character to identify where the continuation begins and is thereby able to handle cases not supported by the first strategy. Both strategies use a self-describing header enabling automated reconstitution of the original content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8792"/>
          <seriesInfo name="DOI" value="10.17487/RFC8792"/>
        </reference>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="RFC9396">
          <front>
            <title>OAuth 2.0 Rich Authorization Requests</title>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="J. Richer" initials="J." surname="Richer"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <date month="May" year="2023"/>
            <abstract>
              <t>This document specifies a new parameter authorization_details that is used to carry fine-grained authorization data in OAuth messages.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9396"/>
          <seriesInfo name="DOI" value="10.17487/RFC9396"/>
        </reference>
        <reference anchor="RFC9635">
          <front>
            <title>Grant Negotiation and Authorization Protocol (GNAP)</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="F. Imbault" initials="F." surname="Imbault"/>
            <date month="October" year="2024"/>
            <abstract>
              <t>The Grant Negotiation and Authorization Protocol (GNAP) defines a mechanism for delegating authorization to a piece of software and conveying the results and artifacts of that delegation to the software. This delegation can include access to a set of APIs as well as subject information passed directly to the software.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9635"/>
          <seriesInfo name="DOI" value="10.17487/RFC9635"/>
        </reference>
        <reference anchor="RFC9943">
          <front>
            <title>An Architecture for Trustworthy and Transparent Digital Supply Chains</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="A. Delignat-Lavaud" initials="A." surname="Delignat-Lavaud"/>
            <author fullname="C. Fournet" initials="C." surname="Fournet"/>
            <author fullname="Y. Deshpande" initials="Y." surname="Deshpande"/>
            <author fullname="S. Lasker" initials="S." surname="Lasker"/>
            <date month="June" year="2026"/>
            <abstract>
              <t>Traceability in supply chains is a growing security concern. While Verifiable Data Structures (VDSs) have addressed specific issues, such as equivocation over digital certificates, they lack a universal architecture for all supply chains. This document defines such an architecture for single-issuer signed statement transparency. It ensures extensibility and interoperability between different transparency services as well as compliance with various auditing procedures and regulatory requirements.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9943"/>
          <seriesInfo name="DOI" value="10.17487/RFC9943"/>
        </reference>
        <reference anchor="I-D.ietf-wimse-arch-08">
          <front>
            <title>Workload Identity in a Multi System Environment (WIMSE) Architecture</title>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>Palo Alto Networks</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of the Bundeswehr Munich</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   The increasing prevalence of cloud computing and micro service
   architectures has led to the rise of complex software functions being
   built and deployed as workloads, where a workload is defined as
   software executing for a specific purpose, potentially comprising one
   or more running instances.  This document discusses an architecture
   for designing and standardizing protocols and payloads for conveying
   workload identity and security context information.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-arch-08"/>
        </reference>
        <reference anchor="VC-DATA-MODEL-2.0" target="https://www.w3.org/TR/vc-data-model-2.0/">
          <front>
            <title>Verifiable Credentials Data Model v2.0</title>
            <author>
              <organization>World Wide Web Consortium</organization>
            </author>
            <date year="2025" month="May" day="15"/>
          </front>
        </reference>
        <reference anchor="OID4VCI" target="https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html">
          <front>
            <title>OpenID for Verifiable Credential Issuance 1.0</title>
            <author>
              <organization>OpenID Foundation</organization>
            </author>
            <date year="2025" month="September" day="16"/>
          </front>
        </reference>
        <reference anchor="OID4VP" target="https://openid.net/specs/openid-4-verifiable-presentations-1_0.html">
          <front>
            <title>OpenID for Verifiable Presentations 1.0</title>
            <author>
              <organization>OpenID Foundation</organization>
            </author>
            <date year="2025" month="July" day="09"/>
          </front>
        </reference>
        <reference anchor="A2A" target="https://a2a-protocol.org/latest/specification/">
          <front>
            <title>Agent2Agent (A2A) Protocol Specification</title>
            <author>
              <organization>Linux Foundation A2A Project</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="MACAROONS" target="https://www.ndss-symposium.org/ndss2014/programme/macaroons-cookies-contextual-caveats-decentralized-authorization-cloud/">
          <front>
            <title>Macaroons: Cookies with Contextual Caveats for Decentralized Authorization in the Cloud</title>
            <author initials="A." surname="Birgisson" fullname="Arnar Birgisson">
              <organization/>
            </author>
            <author initials="J. G." surname="Politz" fullname="Joe Gibbs Politz">
              <organization/>
            </author>
            <author initials="U." surname="Erlingsson" fullname="Ulfar Erlingsson">
              <organization/>
            </author>
            <author initials="A." surname="Taly" fullname="Ankur Taly">
              <organization/>
            </author>
            <author initials="M." surname="Vrable" fullname="Michael Vrable">
              <organization/>
            </author>
            <author initials="M." surname="Lentczner" fullname="Mark Lentczner">
              <organization/>
            </author>
            <date year="2014" month="February"/>
          </front>
          <seriesInfo name="Network and Distributed System Security Symposium" value="NDSS 2014"/>
        </reference>
        <reference anchor="BISCUIT" target="https://doc.biscuitsec.org/reference/specifications">
          <front>
            <title>Biscuit, a bearer token with offline attenuation and decentralized verification</title>
            <author>
              <organization>Eclipse Biscuit</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="UCAN" target="https://github.com/ucan-wg/spec">
          <front>
            <title>User Controlled Authorization Network (UCAN) Specification</title>
            <author>
              <organization>UCAN Working Group</organization>
            </author>
            <date/>
          </front>
        </reference>
      </references>
    </references>
    <section anchor="examples">
      <name>Examples</name>
      <t>The examples in this appendix are built from two cases of the Chio
binding vector corpus, <tt>capability/v1.json</tt> case
<tt>valid_delegated_capability</tt> and <tt>receipt/v1.json</tt> case <tt>allow_receipt</tt>,
so every key, hash, and signature in them is exact. Lines longer than 69
characters are folded as described in <xref target="RFC8792"/>, and each folded block
begins with the header line that document defines.</t>
      <section anchor="example-capability">
        <name>Capability Token</name>
        <t>The following case is <tt>capability/v1.json</tt> case
<tt>valid_delegated_capability</tt> from the Chio binding vector corpus. It is
a token with one delegation link and one tool grant, pretty-printed here
for reading. The corpus omits the <tt>schema</tt> member from its tokens.
Capability tokens are defined in <xref target="capabilities"/>.</t>
        <sourcecode type="json">
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "delegation_chain": [
    {
      "capability_id": "cap-bindings-valid",
      "delegatee": "91a28a0b74381593a4d9469579208926afc8ad82c8839b76\
          44359b9eba9a4b3a",
      "delegator": "66be7e332c7a453332bd9d0a7f7db055f5c5ef1a06ada66d\
          98b39fb6810c473a",
      "signature": "a4c297402d3bef255c8a9648215d9bb9c7fcbfb0a2e4009c\
          fc6202459c10b2e4066de4ef60d4118f612993b6ceb2197095483e94c8\
          a2ccc658ad7ef5b865be00",
      "timestamp": 1710000250
    }
  ],
  "expires_at": 1710000800,
  "id": "cap-bindings-valid",
  "issued_at": 1710000200,
  "issuer": "66be7e332c7a453332bd9d0a7f7db055f5c5ef1a06ada66d98b39fb\
      6810c473a",
  "scope": {
    "grants": [
      {
        "constraints": [
          {
            "type": "path_prefix",
            "value": "/workspace/"
          }
        ],
        "max_invocations": 3,
        "operations": [
          "invoke",
          "read_result"
        ],
        "server_id": "srv-files",
        "tool_name": "file_read"
      }
    ]
  },
  "signature": "a16f5a447da2a5dbd840e44c7c1a5093474e4a1b9826ae80ca85\
      f197b18e8ad05607745ac9e0ff063db7b49ff4da637b630cf10d55c1ef1e64\
      fb5c27d81ed505",
  "subject": "0b513ad9b4924015ca0902ed079044d3ac5dbec2306f06948c10da\
      8eb6e39f2d"
}
</sourcecode>
        <t keepWithNext="true">The signing input of the token is its canonical form without the
<tt>signature</tt> member and with the member <tt>"schema":"chio.capability.v1"</tt>
added, which sorts between <tt>issuer</tt> and <tt>scope</tt>. The
<tt>capability_body_canonical_json</tt> value of the case is the same text
without the <tt>schema</tt> member. The signing input is:</t>
        <sourcecode type="json">
=============== NOTE: '\' line wrapping per RFC 8792 ================

{"delegation_chain":[{"capability_id":"cap-bindings-valid",\
"delegatee":\
"91a28a0b74381593a4d9469579208926afc8ad82c8839b7644359b9eba9a4b3a",\
"delegator":\
"66be7e332c7a453332bd9d0a7f7db055f5c5ef1a06ada66d98b39fb6810c473a",\
"signature":"a4c297402d3bef255c8a9648215d9bb9c7fcbfb0a2e4009cfc62024\
59c10b2e4066de4ef60d4118f612993b6ceb2197095483e94c8a2ccc658ad7ef5b86\
5be00","timestamp":1710000250}],"expires_at":1710000800,"id":\
"cap-bindings-valid","issued_at":1710000200,"issuer":\
"66be7e332c7a453332bd9d0a7f7db055f5c5ef1a06ada66d98b39fb6810c473a",\
"schema":"chio.capability.v1","scope":{"grants":[{"constraints":\
[{"type":"path_prefix","value":"/workspace/"}],"max_invocations":3,\
"operations":["invoke","read_result"],"server_id":"srv-files",\
"tool_name":"file_read"}]},"subject":\
"0b513ad9b4924015ca0902ed079044d3ac5dbec2306f06948c10da8eb6e39f2d"}
</sourcecode>
        <t>The <tt>signature</tt> member is an Ed25519 signature over these octets that
verifies under the key in <tt>issuer</tt>.</t>
      </section>
      <section anchor="example-frame">
        <name>Tool Call Request Frame</name>
        <t keepWithNext="true">The following request is built from <tt>capability/v1.json</tt> case
<tt>valid_delegated_capability</tt> and <tt>receipt/v1.json</tt> case <tt>allow_receipt</tt>
of the Chio binding vector corpus. Its <tt>capability_token</tt> is the token
of <xref target="example-capability"/>, and its <tt>server_id</tt>, <tt>tool</tt>, and <tt>params</tt> are
the <tt>tool_server</tt>, <tt>tool_name</tt>, and <tt>action.parameters</tt> members of the
receipt of <xref target="example-receipt"/>. Its <tt>id</tt> is illustrative. The request is
not a case of the corpus, and its canonical form is:</t>
        <sourcecode type="json">
=============== NOTE: '\' line wrapping per RFC 8792 ================

{"capability_token":{"delegation_chain":[{"capability_id":\
"cap-bindings-valid","delegatee":\
"91a28a0b74381593a4d9469579208926afc8ad82c8839b7644359b9eba9a4b3a",\
"delegator":\
"66be7e332c7a453332bd9d0a7f7db055f5c5ef1a06ada66d98b39fb6810c473a",\
"signature":"a4c297402d3bef255c8a9648215d9bb9c7fcbfb0a2e4009cfc62024\
59c10b2e4066de4ef60d4118f612993b6ceb2197095483e94c8a2ccc658ad7ef5b86\
5be00","timestamp":1710000250}],"expires_at":1710000800,"id":\
"cap-bindings-valid","issued_at":1710000200,"issuer":\
"66be7e332c7a453332bd9d0a7f7db055f5c5ef1a06ada66d98b39fb6810c473a",\
"scope":{"grants":[{"constraints":[{"type":"path_prefix","value":\
"/workspace/"}],"max_invocations":3,"operations":["invoke",\
"read_result"],"server_id":"srv-files","tool_name":"file_read"}]},\
"signature":"a16f5a447da2a5dbd840e44c7c1a5093474e4a1b9826ae80ca85f19\
7b18e8ad05607745ac9e0ff063db7b49ff4da637b630cf10d55c1ef1e64fb5c27d81\
ed505","subject":\
"0b513ad9b4924015ca0902ed079044d3ac5dbec2306f06948c10da8eb6e39f2d"},\
"id":"req-001","params":{"mode":"read","path":\
"/workspace/docs/roadmap.md"},"server_id":"srv-files","tool":\
"file_read","type":"tool_call_request"}
</sourcecode>
        <t keepWithNext="true">In the native transport (<xref target="native-transport"/>), a message is sent as a
frame: a four-octet length in big-endian order, followed by the
canonical form as the payload. The payload here is 1111 octets long, so
the length prefix is:</t>
        <artwork><![CDATA[
00000457
]]></artwork>
        <t keepWithNext="true">The first 32 octets of the payload are the ASCII text
<tt>{"capability_token":{"delegation</tt>. In hex they are:</t>
        <artwork><![CDATA[
7b226361706162696c6974795f746f6b656e223a7b2264656c65676174696f6e
]]></artwork>
      </section>
      <section anchor="example-receipt">
        <name>Receipt</name>
        <t>The following case is <tt>receipt/v1.json</tt> case <tt>allow_receipt</tt> from the
Chio binding vector corpus. It records an allow decision for a call with
the server, tool, and parameters of <xref target="example-frame"/>, and it is
pretty-printed here for reading. Its <tt>capability_id</tt> is
<tt>cap-bindings-001</tt>. The capability and receipt cases of the corpus are
independent, so that value is not the <tt>id</tt> of the token in
<xref target="example-capability"/>. Receipts are defined in <xref target="receipts"/>.</t>
        <sourcecode type="json">
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "action": {
    "parameter_hash": "035350b0e6a021a4c924a149111944945e94d12f6d8a5\
        e24e4461e7009ebf929",
    "parameters": {
      "mode": "read",
      "path": "/workspace/docs/roadmap.md"
    }
  },
  "boundary_class": "prevent",
  "capability_id": "cap-bindings-001",
  "content_hash": "4062edaf750fb8074e7e83e0c9028c94e32468a8b6f161477\
      4328ef045150f93",
  "decision": {
    "verdict": "allow"
  },
  "evidence": [
    {
      "details": "path allowed",
      "guard_name": "ForbiddenPathGuard",
      "verdict": true
    },
    {
      "details": "no secrets detected",
      "guard_name": "SecretLeakGuard",
      "verdict": true
    }
  ],
  "id": "c9909f733d5fb367922293f0167d06db715393be114f212096cf2866f29\
      433ea",
  "kernel_key": "ea4a6c63e29c520abef5507b132ec5f9954776aebebe7b92421\
      eea691446d22c",
  "metadata": {
    "surface": "bindings-vectors",
    "version": 1
  },
  "policy_hash": "policy-bindings-v1",
  "receipt_kind": "mediated_decision",
  "redaction_mode": "none",
  "signature": "276a4c59dbc5e0c4fbd47beefa33515d207e8f516aca296afee2\
      cb95a443bb18d31031cae0b69943e7a930be03b2e0a60156e5a26e732e888e\
      32d4653d059f03",
  "timestamp": 1710000200,
  "tool_name": "file_read",
  "tool_origin": "caller_executed",
  "tool_server": "srv-files",
  "trust_level": "mediated"
}
</sourcecode>
        <t keepWithNext="true">The signing input of the receipt is the canonical form of a JSON object
with two members: <tt>body</tt>, which is the receipt without its <tt>id</tt> and
<tt>signature</tt> members, and <tt>id</tt>, which is the SHA-256 digest of the
canonical form of <tt>body</tt>, in lowercase hex. The
<tt>receipt_body_canonical_json</tt> value of the case is the canonical form of
the receipt without its <tt>signature</tt> member. The signing input is:</t>
        <sourcecode type="json">
=============== NOTE: '\' line wrapping per RFC 8792 ================

{"body":{"action":{"parameter_hash":\
"035350b0e6a021a4c924a149111944945e94d12f6d8a5e24e4461e7009ebf929",\
"parameters":{"mode":"read","path":"/workspace/docs/roadmap.md"}},\
"boundary_class":"prevent","capability_id":"cap-bindings-001",\
"content_hash":\
"4062edaf750fb8074e7e83e0c9028c94e32468a8b6f1614774328ef045150f93",\
"decision":{"verdict":"allow"},"evidence":[{"details":\
"path allowed","guard_name":"ForbiddenPathGuard","verdict":true},\
{"details":"no secrets detected","guard_name":"SecretLeakGuard",\
"verdict":true}],"kernel_key":\
"ea4a6c63e29c520abef5507b132ec5f9954776aebebe7b92421eea691446d22c",\
"metadata":{"surface":"bindings-vectors","version":1},"policy_hash":\
"policy-bindings-v1","receipt_kind":"mediated_decision",\
"redaction_mode":"none","timestamp":1710000200,"tool_name":\
"file_read","tool_origin":"caller_executed","tool_server":\
"srv-files","trust_level":"mediated"},"id":\
"c9909f733d5fb367922293f0167d06db715393be114f212096cf2866f29433ea"}
</sourcecode>
        <t>The <tt>signature</tt> member is an Ed25519 signature over these octets that
verifies under the key in <tt>kernel_key</tt>. The <tt>parameter_hash</tt> member of
<tt>action</tt> is the SHA-256 digest of the canonical form of its <tt>parameters</tt>
member, in the same encoding.</t>
      </section>
    </section>
    <section anchor="test-vectors">
      <name>Test Vectors</name>
      <t>The cases in this appendix come from the files <tt>canonical/v1.json</tt>,
<tt>hashing/v1.json</tt>, <tt>signing/v1.json</tt>, <tt>capability/v1.json</tt>, and
<tt>receipt/v1.json</tt> of the Chio binding vector corpus, and all keys in
them are test keys derived from seeds that the corpus publishes. Lines
longer than 69 characters are folded as described in <xref target="RFC8792"/>, and
each folded block begins with the header line that document defines.</t>
      <section anchor="vectors-canonical">
        <name>Canonical JSON</name>
        <t>Each case gives a JSON text and its canonical form, which <xref target="encoding"/>
defines.</t>
        <t keepWithNext="true">The following case is <tt>canonical/v1.json</tt> case <tt>object_key_sorting</tt> from
the Chio binding vector corpus. Members are sorted by key. The input is:</t>
        <sourcecode type="json">
{"z":1,"a":2,"m":3}
</sourcecode>
        <t keepWithNext="true">The canonical form is:</t>
        <sourcecode type="json">
{"a":2,"m":3,"z":1}
</sourcecode>
        <t keepWithNext="true">The following case is <tt>canonical/v1.json</tt> case <tt>utf16_key_ordering</tt> from
the Chio binding vector corpus. Keys are compared as UTF-16 code units,
so the key U+10000, which the input writes as a surrogate pair, sorts
before the key U+E000, which is the reverse of their order as UTF-8
octets. The input is:</t>
        <sourcecode type="json">
{"\ue000":1,"\ud800\udc00":2}
</sourcecode>
        <t keepWithNext="true">The canonical form holds characters outside ASCII, so it is shown as its
18 octets, in hex:</t>
        <artwork><![CDATA[
7b 22 f0 90 80 80 22 3a 32 2c 22 ee 80 80 22 3a 31 7d
]]></artwork>
        <t keepWithNext="true">The following case is <tt>canonical/v1.json</tt> case <tt>nested_structures</tt> from
the Chio binding vector corpus. Members are sorted at every level of
nesting, and the order of array elements is unchanged. The input is:</t>
        <sourcecode type="json">
=============== NOTE: '\' line wrapping per RFC 8792 ================

{"tool":"read","params":{"path":"/tmp/demo","flags":["read",\
"text"]},"enabled":true}
</sourcecode>
        <t keepWithNext="true">The canonical form is:</t>
        <sourcecode type="json">
=============== NOTE: '\' line wrapping per RFC 8792 ================

{"enabled":true,"params":{"flags":["read","text"],"path":\
"/tmp/demo"},"tool":"read"}
</sourcecode>
        <t keepWithNext="true">The following case is <tt>canonical/v1.json</tt> case <tt>number_formatting</tt> from
the Chio binding vector corpus. Numbers are written as ECMAScript writes
them: <tt>1.0</tt> becomes <tt>1</tt>, negative zero becomes <tt>0</tt>, and large and small
magnitudes use exponent forms such as <tt>1e+21</tt> and <tt>1e-7</tt>. The input is:</t>
        <sourcecode type="json">
{"whole":1.0,"small":1e-7,"big":1e21,"negative_zero":-0.0}
</sourcecode>
        <t keepWithNext="true">The canonical form is:</t>
        <sourcecode type="json">
{"big":1e+21,"negative_zero":0,"small":1e-7,"whole":1}
</sourcecode>
      </section>
      <section anchor="vectors-hashing">
        <name>SHA-256 Digests</name>
        <t>Each case gives the octets of a UTF-8 string and their SHA-256 digest
<xref target="FIPS180-4"/>, written as 64 lowercase hex digits.</t>
        <t keepWithNext="true">The following case is <tt>hashing/v1.json</tt> case <tt>abc_lowercase</tt> from the
Chio binding vector corpus. The input is the ASCII string <tt>abc</tt>, which
is three octets:</t>
        <artwork><![CDATA[
61 62 63
]]></artwork>
        <t keepWithNext="true">The digest is:</t>
        <artwork><![CDATA[
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
]]></artwork>
        <t keepWithNext="true">The following case is <tt>hashing/v1.json</tt> case <tt>unicode_utf8</tt> from the
Chio binding vector corpus. The input is the word <tt>chio</tt>, a space, and
the character U+1F510, which is 9 octets in UTF-8:</t>
        <artwork><![CDATA[
63 68 69 6f 20 f0 9f 94 90
]]></artwork>
        <t keepWithNext="true">The digest is:</t>
        <artwork><![CDATA[
5c57c7deea3998c13730797e592abe72cae55130e8da2923de6374b75b83101b
]]></artwork>
        <t keepWithNext="true">The following case is <tt>hashing/v1.json</tt> case <tt>json_canonical_form</tt> from
the Chio binding vector corpus. The input is a canonical JSON text:</t>
        <sourcecode type="json">
{"a":1,"b":[2,3]}
</sourcecode>
        <t keepWithNext="true">The digest is:</t>
        <artwork><![CDATA[
efbd0040190fb0871831e606c581f8a66db79d8e2bb836745a70051306956070
]]></artwork>
      </section>
      <section anchor="vectors-signing">
        <name>Ed25519 Signatures</name>
        <t>In each case the message is the canonical form of the JSON input, and
the signature is an Ed25519 signature <xref target="RFC8032"/> over the UTF-8 octets
of that message.</t>
        <t keepWithNext="true">The following case is <tt>signing/v1.json</tt> case
<tt>valid_canonical_json_message</tt> from the Chio binding vector corpus. The
input is:</t>
        <sourcecode type="json">
{"z":1,"a":2}
</sourcecode>
        <t keepWithNext="true">Its canonical form, which is the message, is:</t>
        <sourcecode type="json">
{"a":2,"z":1}
</sourcecode>
        <t keepWithNext="true">The Ed25519 public key is:</t>
        <artwork><![CDATA[
fd1724385aa0c75b64fb78cd602fa1d991fdebf76b13c58ed702eac835e9f618
]]></artwork>
        <t keepWithNext="true">The signature is:</t>
        <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

0b656434a9cf4f1d2f5cd0a2e008d69789251ecde8373781ee24d22f36abe53abf9f\
d51ee04df5c090143a5d49e14324a2d52f628472f02719bd405d2567590e
]]></artwork>
        <t>Verification is expected to succeed.</t>
        <t keepWithNext="true">The following case is <tt>signing/v1.json</tt> case
<tt>tampered_canonical_json_message</tt> from the Chio binding vector corpus.
It reuses the signature of case <tt>valid_canonical_json_message</tt> for a
message whose value of <tt>z</tt> differs. The input is:</t>
        <sourcecode type="json">
{"z":2,"a":2}
</sourcecode>
        <t keepWithNext="true">Its canonical form, which is the message, is:</t>
        <sourcecode type="json">
{"a":2,"z":2}
</sourcecode>
        <t keepWithNext="true">The Ed25519 public key is:</t>
        <artwork><![CDATA[
fd1724385aa0c75b64fb78cd602fa1d991fdebf76b13c58ed702eac835e9f618
]]></artwork>
        <t keepWithNext="true">The signature is:</t>
        <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

0b656434a9cf4f1d2f5cd0a2e008d69789251ecde8373781ee24d22f36abe53abf9f\
d51ee04df5c090143a5d49e14324a2d52f628472f02719bd405d2567590e
]]></artwork>
        <t>Verification is expected to fail.</t>
      </section>
      <section anchor="vectors-capability">
        <name>Capability Token Verification</name>
        <t>Each case gives the signing input of a token, the value of its
<tt>signature</tt> member, the Unix time at which the token is verified, and
the result that verification is expected to produce. The signing input
is the canonical form of the token without its <tt>signature</tt> member and
with the member <tt>"schema":"chio.capability.v1"</tt> added, as in
<xref target="example-capability"/>. The corpus omits the <tt>schema</tt> member from the
token itself, and its <tt>capability_body_canonical_json</tt> value is the
signing input without that member.</t>
        <t keepWithNext="true">The following case is <tt>capability/v1.json</tt> case
<tt>valid_delegated_capability</tt> from the Chio binding vector corpus. Its
signature verifies, its delegation link verifies, and the verification
time falls within its validity period. Its signing input is:</t>
        <sourcecode type="json">
=============== NOTE: '\' line wrapping per RFC 8792 ================

{"delegation_chain":[{"capability_id":"cap-bindings-valid",\
"delegatee":\
"91a28a0b74381593a4d9469579208926afc8ad82c8839b7644359b9eba9a4b3a",\
"delegator":\
"66be7e332c7a453332bd9d0a7f7db055f5c5ef1a06ada66d98b39fb6810c473a",\
"signature":"a4c297402d3bef255c8a9648215d9bb9c7fcbfb0a2e4009cfc62024\
59c10b2e4066de4ef60d4118f612993b6ceb2197095483e94c8a2ccc658ad7ef5b86\
5be00","timestamp":1710000250}],"expires_at":1710000800,"id":\
"cap-bindings-valid","issued_at":1710000200,"issuer":\
"66be7e332c7a453332bd9d0a7f7db055f5c5ef1a06ada66d98b39fb6810c473a",\
"schema":"chio.capability.v1","scope":{"grants":[{"constraints":\
[{"type":"path_prefix","value":"/workspace/"}],"max_invocations":3,\
"operations":["invoke","read_result"],"server_id":"srv-files",\
"tool_name":"file_read"}]},"subject":\
"0b513ad9b4924015ca0902ed079044d3ac5dbec2306f06948c10da8eb6e39f2d"}
</sourcecode>
        <t keepWithNext="true">The value of the <tt>signature</tt> member is:</t>
        <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

a16f5a447da2a5dbd840e44c7c1a5093474e4a1b9826ae80ca85f197b18e8ad05607\
745ac9e0ff063db7b49ff4da637b630cf10d55c1ef1e64fb5c27d81ed505
]]></artwork>
        <t keepWithNext="true">Verification at Unix time 1710000400 is expected to produce:</t>
        <sourcecode type="json">
{
  "delegation_chain_shape_valid": true,
  "signature_valid": true,
  "time_status": "valid",
  "time_valid": true
}
</sourcecode>
        <t keepWithNext="true">The following case is <tt>capability/v1.json</tt> case <tt>expired_capability</tt>
from the Chio binding vector corpus. Its signature verifies, and it
expired at 1710000100, before the verification time. Its signing input
is:</t>
        <sourcecode type="json">
=============== NOTE: '\' line wrapping per RFC 8792 ================

{"expires_at":1710000100,"id":"cap-bindings-expired","issued_at":\
1710000000,"issuer":\
"66be7e332c7a453332bd9d0a7f7db055f5c5ef1a06ada66d98b39fb6810c473a",\
"schema":"chio.capability.v1","scope":{"grants":[{"constraints":\
[{"type":"path_prefix","value":"/workspace/"}],"max_invocations":3,\
"operations":["invoke","read_result"],"server_id":"srv-files",\
"tool_name":"file_read"}]},"subject":\
"0b513ad9b4924015ca0902ed079044d3ac5dbec2306f06948c10da8eb6e39f2d"}
</sourcecode>
        <t keepWithNext="true">The value of the <tt>signature</tt> member is:</t>
        <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

d4f16e2dc56f829a047cf339e7139c0ceb859045f4854b746bdecf6901fb493a1088\
bab6456d2c39b38cc955f84041ebd22d8636bf4cfc45e838423b868de509
]]></artwork>
        <t keepWithNext="true">Verification at Unix time 1710000400 is expected to produce:</t>
        <sourcecode type="json">
{
  "delegation_chain_shape_valid": true,
  "signature_valid": true,
  "time_status": "expired",
  "time_valid": false
}
</sourcecode>
        <t keepWithNext="true">The following case is <tt>capability/v1.json</tt> case
<tt>broken_delegation_chain_signature</tt> from the Chio binding vector corpus.
Its signature verifies, and the signature of its delegation link does
not. Its signing input is:</t>
        <sourcecode type="json">
=============== NOTE: '\' line wrapping per RFC 8792 ================

{"delegation_chain":[{"capability_id":"cap-bindings-broken-chain",\
"delegatee":\
"91a28a0b74381593a4d9469579208926afc8ad82c8839b7644359b9eba9a4b3a",\
"delegator":\
"66be7e332c7a453332bd9d0a7f7db055f5c5ef1a06ada66d98b39fb6810c473a",\
"signature":"e5031fd5c95e1cb79201c9750831e6604ee65fa451202f0ef540e9e\
30f7bc8e73ca877424e7ca3121db39cbb57e97827878a8656b077a7c084f9bfeeb84\
66f0e","timestamp":1710000301}],"expires_at":1710000800,"id":\
"cap-bindings-broken-chain","issued_at":1710000200,"issuer":\
"66be7e332c7a453332bd9d0a7f7db055f5c5ef1a06ada66d98b39fb6810c473a",\
"schema":"chio.capability.v1","scope":{"grants":[{"constraints":\
[{"type":"path_prefix","value":"/workspace/"}],"max_invocations":3,\
"operations":["invoke","read_result"],"server_id":"srv-files",\
"tool_name":"file_read"}]},"subject":\
"0b513ad9b4924015ca0902ed079044d3ac5dbec2306f06948c10da8eb6e39f2d"}
</sourcecode>
        <t keepWithNext="true">The value of the <tt>signature</tt> member is:</t>
        <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

76466629cbe01ac3915bb67af0ff4fa591aec42d8a8f72e7c36731b7b1596cfb39e3\
a82dfc467dd2ed61c7ba7a5e728016d82b1702cbac5b8cc94719b99d0c08
]]></artwork>
        <t keepWithNext="true">Verification at Unix time 1710000400 is expected to produce:</t>
        <sourcecode type="json">
{
  "delegation_chain_shape_valid": false,
  "signature_valid": true,
  "time_status": "valid",
  "time_valid": true
}
</sourcecode>
      </section>
      <section anchor="vectors-receipt">
        <name>Receipt Verification</name>
        <t>Each case gives the signing input of a receipt, the value of its
<tt>signature</tt> member, and the result that verification is expected to
produce. The signing input is the canonical form of a JSON object with
two members: <tt>body</tt>, which is the receipt without its <tt>id</tt> and
<tt>signature</tt> members, and <tt>id</tt>, which is the SHA-256 digest of the
canonical form of <tt>body</tt>, in lowercase hex, as in <xref target="example-receipt"/>.
The <tt>receipt_body_canonical_json</tt> value of each case is the canonical
form of the receipt without its <tt>signature</tt> member.</t>
        <t keepWithNext="true">The following case is <tt>receipt/v1.json</tt> case <tt>allow_receipt</tt> from the
Chio binding vector corpus. It records an allow decision. Its signing
input is:</t>
        <sourcecode type="json">
=============== NOTE: '\' line wrapping per RFC 8792 ================

{"body":{"action":{"parameter_hash":\
"035350b0e6a021a4c924a149111944945e94d12f6d8a5e24e4461e7009ebf929",\
"parameters":{"mode":"read","path":"/workspace/docs/roadmap.md"}},\
"boundary_class":"prevent","capability_id":"cap-bindings-001",\
"content_hash":\
"4062edaf750fb8074e7e83e0c9028c94e32468a8b6f1614774328ef045150f93",\
"decision":{"verdict":"allow"},"evidence":[{"details":\
"path allowed","guard_name":"ForbiddenPathGuard","verdict":true},\
{"details":"no secrets detected","guard_name":"SecretLeakGuard",\
"verdict":true}],"kernel_key":\
"ea4a6c63e29c520abef5507b132ec5f9954776aebebe7b92421eea691446d22c",\
"metadata":{"surface":"bindings-vectors","version":1},"policy_hash":\
"policy-bindings-v1","receipt_kind":"mediated_decision",\
"redaction_mode":"none","timestamp":1710000200,"tool_name":\
"file_read","tool_origin":"caller_executed","tool_server":\
"srv-files","trust_level":"mediated"},"id":\
"c9909f733d5fb367922293f0167d06db715393be114f212096cf2866f29433ea"}
</sourcecode>
        <t keepWithNext="true">The value of the <tt>signature</tt> member is:</t>
        <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

276a4c59dbc5e0c4fbd47beefa33515d207e8f516aca296afee2cb95a443bb18d310\
31cae0b69943e7a930be03b2e0a60156e5a26e732e888e32d4653d059f03
]]></artwork>
        <t keepWithNext="true">With no trusted signers configured, verification is expected to produce:</t>
        <sourcecode type="json">
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "authorized": false,
  "boundary_class": "prevent",
  "decision": "allow",
  "ok": false,
  "parameter_hash_valid": true,
  "receipt_id_valid": true,
  "receipt_kind": "mediated_decision",
  "result": "Authorized",
  "signature_valid": true,
  "signer_key_hex": "ea4a6c63e29c520abef5507b132ec5f9954776aebebe7b9\
      2421eea691446d22c",
  "signer_trusted": false,
  "trust_level": "mediated"
}
</sourcecode>
        <t keepWithNext="true">The following case is <tt>receipt/v1.json</tt> case <tt>deny_receipt</tt> from the
Chio binding vector corpus. It records a deny decision by the guard
<tt>ForbiddenPathGuard</tt> for the path <tt>/etc/shadow</tt>. Its signing input is:</t>
        <sourcecode type="json">
=============== NOTE: '\' line wrapping per RFC 8792 ================

{"body":{"action":{"parameter_hash":\
"d6f55d803ff027795f4a4c43fd8f6d3119051f82b7e3e1a13b1713fd37ea7b09",\
"parameters":{"mode":"read","path":"/etc/shadow"}},"boundary_class":\
"prevent","capability_id":"cap-bindings-001","content_hash":\
"4062edaf750fb8074e7e83e0c9028c94e32468a8b6f1614774328ef045150f93",\
"decision":{"guard":"ForbiddenPathGuard","reason":\
"path is forbidden","verdict":"deny"},"evidence":[{"details":\
"path allowed","guard_name":"ForbiddenPathGuard","verdict":true},\
{"details":"no secrets detected","guard_name":"SecretLeakGuard",\
"verdict":true}],"kernel_key":\
"ea4a6c63e29c520abef5507b132ec5f9954776aebebe7b92421eea691446d22c",\
"metadata":{"surface":"bindings-vectors","version":1},"policy_hash":\
"policy-bindings-v1","receipt_kind":"mediated_decision",\
"redaction_mode":"none","timestamp":1710000200,"tool_name":\
"file_read","tool_origin":"caller_executed","tool_server":\
"srv-files","trust_level":"mediated"},"id":\
"56d5644db5c53d0bb837bf615a60e541724858757aee1b8259a25816b75bb682"}
</sourcecode>
        <t keepWithNext="true">The value of the <tt>signature</tt> member is:</t>
        <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

e3778cd741746bf1295ed45d5ffa4d311dd7076d4e8d7c009bdf3283e88e693cc9cd\
19bb07d2f65d8306e04d1c58bdcbc1753d79af4a7c2234758b5dbf8a1c06
]]></artwork>
        <t keepWithNext="true">With no trusted signers configured, verification is expected to produce:</t>
        <sourcecode type="json">
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "authorized": false,
  "boundary_class": "prevent",
  "decision": "deny",
  "ok": false,
  "parameter_hash_valid": true,
  "receipt_id_valid": true,
  "receipt_kind": "mediated_decision",
  "result": "Denied",
  "signature_valid": true,
  "signer_key_hex": "ea4a6c63e29c520abef5507b132ec5f9954776aebebe7b9\
      2421eea691446d22c",
  "signer_trusted": false,
  "trust_level": "mediated"
}
</sourcecode>
      </section>
    </section>
    <section anchor="related-work">
      <name>Relationship to Other Work</name>
      <t>This appendix compares Chio with adjacent work. A comparison states
where the problems overlap; it does not claim wire compatibility unless
it says so.</t>
      <section anchor="agent-communication-protocols">
        <name>Agent Communication Protocols</name>
        <t>The Model Context Protocol <xref target="MCP"/> defines how a client discovers and
calls the tools, resources, and prompts of a server. The Agent2Agent
protocol <xref target="A2A"/> defines how agents exchange tasks and messages. Chio
does not replace either. The MCP binding in <xref target="hosted-mcp"/> makes a Chio
kernel accessible as an MCP server. Applications using a compatible
admission profile obtain the kernel's authority, accounting, governance,
and evidence services through ordinary MCP tool calls. Chio sender
constraints and governed metadata require a client that supplies those
extensions.</t>
      </section>
      <section anchor="delegated-authorization">
        <name>Delegated Authorization</name>
        <t>OAuth 2.0 Token Exchange <xref target="RFC8693"/>, Rich Authorization Requests
<xref target="RFC9396"/>, and GNAP <xref target="RFC9635"/> address aspects of authorization. A Chio
capability token plays a related role. Token Exchange conveys delegated
authority, RAR describes
fine-grained requested authorization, and GNAP negotiates grants. Chio
uses signed delegation links and scope witnesses with verifier-owned
issuer and root inputs; its current authenticated attenuation profile
accepts one hop. Token signing still requires a trusted issuer. A kernel
checks that authority and records receipt-bearing outcomes. Chio defines its own capability and receipt
objects and does not claim GNAP compatibility.</t>
        <t>DPoP <xref target="RFC9449"/> binds an OAuth access token to a key held by the
client. The sender proof in <xref target="sender-constraint"/> has the same goal for
capability tokens. It uses a Chio-specific proof format and is not the
JWT-based proof defined by RFC 9449. The native v1 transport has no
sender-proof member; the hosted HTTP binding uses the Chio format as
specified in <xref target="hosted-admission"/>.</t>
      </section>
      <section anchor="capability-tokens">
        <name>Capability Tokens</name>
        <t>Macaroons <xref target="MACAROONS"/>, Biscuit <xref target="BISCUIT"/>, and UCAN <xref target="UCAN"/> are
bearer or key-bound capability tokens that support offline attenuation.
Chio shares their model of narrowing authority by adding restrictions.
Its authenticated attenuation profile binds a one-hop delegation to
scope hashes, with a trusted token issuer and verifier-owned root inputs.
Chio connects delegated authority to a stateful execution boundary:
resource reservations, approval consumption, dispatch commitment, output
release, and signed evidence belong to one recoverable operation.
<xref target="budgets"/> specifies the accounting profiles; <xref target="execution-lifecycle"/>
defines the lifecycle that a token format alone does not provide.</t>
      </section>
      <section anchor="workload-identity-and-attestation">
        <name>Workload Identity and Attestation</name>
        <t>The WIMSE architecture <xref target="I-D.ietf-wimse-arch-08"/> addresses identity for
workloads that call one another across systems, and RATS <xref target="RFC9334"/>
defines how a verifier appraises attestation evidence. A Chio subject is
a public key. A deployment can bind that key to a workload identity or
accept attestation evidence at issuance (<xref target="trust-control"/>), but
attestation does not by itself authorize a call (<xref target="security"/>).</t>
      </section>
      <section anchor="signed-evidence-and-transparency">
        <name>Signed Evidence and Transparency</name>
        <t>SCITT <xref target="RFC9943"/> defines signed statements and transparency services
that record them. Chio receipts and checkpoints address a related
problem: they let a party check what a kernel authorized and executed.
Chio is not a SCITT profile, and <xref target="checkpoints"/> states the limits of
the claims that checkpoints support.</t>
      </section>
      <section anchor="verifiable-credentials">
        <name>Verifiable Credentials</name>
        <t>W3C Verifiable Credentials <xref target="VC-DATA-MODEL-2.0"/>, OpenID for Verifiable
Credential Issuance <xref target="OID4VCI"/>, and OpenID for Verifiable Presentations
<xref target="OID4VP"/> carry portable claims about a subject. Chio's portable
identity credentials for agents, which the reference implementation
issues through a bounded OID4VCI-compatible profile and presents through
an OID4VP-style profile, are outside the scope of this document.</t>
      </section>
      <section anchor="candidate-companion-documents">
        <name>Candidate Companion Documents</name>
        <t>The reference implementation carries mechanisms that this document does
not specify. Each could be specified in its own document:</t>
        <ul spacing="normal">
          <li>
            <t>federation: standing relationships between operators, including peer
handshakes, key pinning, and cross-operator delegation;</t>
          </li>
          <li>
            <t>portable identity and reputation credentials for agents;</t>
          </li>
          <li>
            <t>settlement of obligations recorded in receipts, and payment channels;</t>
          </li>
          <li>
            <t>public anchoring of checkpoints;</t>
          </li>
          <li>
            <t>authenticated caller execution, provider evidence, and idempotent
recovery across external execution boundaries;</t>
          </li>
          <li>
            <t>manifests, process confinement, information-flow labels, and
declassification artifacts;</t>
          </li>
          <li>
            <t>credential-broker and key-lifecycle protocols, including witness
policies and key-rotation evidence;</t>
          </li>
          <li>
            <t>active-response artifact and authority-service bindings;</t>
          </li>
          <li>
            <t>selective disclosure of receipt fields.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="history" removeInRFC="true">
      <name>Document History</name>
      <dl>
        <dt>draft-whelan-chio-protocol-00:</dt>
        <dd>
          <t>Initial version.</t>
        </dd>
      </dl>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Chio builds on earlier work on capability-based authorization, in
particular macaroons, Biscuit, and UCAN, and on the IETF's work on
proof-of-possession tokens, workload identity, and transparency
services.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA7y963YbWXIu+H8/RY70Q5IbQJG6VYls9xmWpOqSXVWSJVX3
eJ11FpEEkmRaIIBGAqTYlPws8yzzZBPxxWXHToCS2p4zWnYXAeRlX2LHPb4Y
Dodp3a5nzUF15/15Uz0/bxfVm9VivZgsZgfVvzareTOjL9qLdt1eNl11ulhV
R2fNfN1OqtfLZlWv2/lZ9e66WzcX3Z1Un5ysmkt6WPGgO2lSr5uzxer6oOrW
0zRdTOb1Bb1zuqpP18Or82ZWz4cTumW41FuGe3up25xctF3XLubr6yVd/erl
+59Su1wdVOvVpls/3Nt7tvcw0dsepSk9/6B6uPfw6XB/b0jffmiurxar6UGq
qmFV84Dx1wdMKH9Js1j4LDrMAj+uFwu5alIv65N21q6v8XHazJozunoxl2es
1818kz+vmknTLuVVZ4tLftm0aj42k41f8uvzN6nerM8XKxnb6WY2k8V4vpjP
aXX/itWg36pqsTqr5+3f8fyD6sd68uGkvq5ezac0+1XbdLiouahb2qoJ7v4/
T+SiUbtIiT5f1Lxt/Ka3Pz3//sn+M/vz6dOH+uez7x/+oH8+evi9XfD46WP7
9of9h0/tz4dP7IIf9h7ZE354/Ngv+P6HJ/7nQ/vz2f7+nv+ZX/z4MR7206s3
7/Z/2Bs+PsB8jBzf0aqtmurnujuv3q3r+bReTav7735+9+AOrsuLyP+GvFgH
1W9Yq3pGi9TRgzbrplqc+u1dRf+t3jeT8/litji7xr1GOvtPhns/4Juu4cVt
56cLezoPsXrz+48HFQaq3754/Yq+2Bs93Xv4w3e/vXr3fsTXjfIl63p11qwP
qvP1etkdfPfddNGOaJjf3X6PrMXT4ZNyLV60Z+2aZvWuPZvXa16WvCIv3v3v
WpGHj/gkfX1FaLhfWxG75B9ZEbmHPzzc69HGr4vpZtYMf6Hz106a4Y91R+fs
9kX637Q8j7+FYGjsX14cu+Dbl0buePfy+X7vxLx8Xu0fVC9nM+JBxNmeb1aX
xNJX18v14mxVL8+vB9VfmhUz1OrhaO8Lq5Lnz/z+5elpO2mJWxbPqv68WmyW
xYrsPRvu7d7nq6urUddMzjAj+mN/ePlwtJye0sWv3r1+/HD/+3IqzxdTFTZr
kkqrZrlqOhoANos3iFjDqpnToLovzOLVfE0c2Db4dWCmeLJNUr/7ZmZAA6YR
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
aeP1BBkHSs8rtooesSRxjOqbkEwiDkQL7Dv/1xwiPv2JV77OSVVYVPudGRzn
OBKDdkLBOIrwI/a3F9vFNkgYRSxoz1lvY/RjVL3TTBc9mT7EWXuCdG8JhogV
TYrfkh03QsPqHJtEIQ0nWp9PizBXOzC7bW7umpcDyqPb2fhgZja/SByUl+ox
2srour8r8v+gMLvNTN3xL5unO/4FqymVduuWgfXlf5/kdla5jnk6x+aJ/Idu
v9+3jB58++23eR7MTP/622/92fII1YLSNM9vvz0Xfw7EL3/IeVuaKPX12/+b
g8+m/H/h9ttXVZf2q29Xr+d/bfA7nSelV+CLb0fyd/ae7H57JtrJ+Wb+obq/
Nxox5X3Tyt8+wj98y+3lkVG2r4P/ptvvi9nqOt8Dn/v/5sFHn4jUdIlLhIMe
mjna54jmHpEwvDLAOujpwUDJKiLboSebUzjhQUtJqtNiFMSiuajzWjX1hSa7
wauuGjLkvipmUkrmxVxBIp40JJVH1XNQwkl2llqiC0ftWgnFaJ1LkgTMtcoh
d48sUbLcqP5dr2uo+8rdxarn+q1mCqNGNIruIKX9YJW792e8xVnH4u9o19tR
dXajK2CE1n3XXNRLko1NjodfreRTBgcziR+KnB/6NAicjF8B8TuoLpi58IJr
5NU1WYR3VUMtYnYhc5mfQ7qniYvzGrUIEiEe4gG00c1selhtWwesq4j+gNHg
Hnkpy25R9jkJQ7OZVNGkJXhULIFnvIdYjecJWE3dItYycQaJAxbAnGEHBsak
X2YF2INJ2cxI6XExAItMbAfENBwmvpPC7cZhHDaqsztPjAh2bUniCZO2eyCy
kleeChrLkzIFSBNZ9HRZpZQHA2up0DB2g5gyiCF61UIAzXxxt9iaZW40P8eK
LSL8AEIj3SHn7ZkrbqgZwp7pKG9m7ZKf4ok3kmGq1m/WzX5xO/jm7q6BFc45
6Jpei1daRpoIUSR7TtszouWBAJsKqo2dxnwS7aq8M8EfmwltV0EqYliLEFwO
hRxHwG+Q1CdQInJ6fSG1htx9JpYpra45tQDBWXiVGcVNLaqE084RV61AXVv9
qULF6JHMtDtdcEanaurEZrAUSVymS/NKMi1xtH/WDMG/C8r3yXvOzY+lxT6I
bkS8SFU1G2L5vHripYiZS8WFlfULcf8omwJugR73FBc5WGbzxXzi9gM86ojw
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
xT5ieYWk7bO6UZaxjv5BQCIBFPrFkcIsBHvefMxoRBHFJ2dt/mPoP2Vi6G0g
RrcmhvsN/edKzgHiGJNwynpXWbGaxK0+VRy03j0/I1ZBKwfAkJPvrSMWjzhf
/Bp/7b6URKKmlXNnJ776rX2z+wY+ep3O7oX+nef3qxgZU0Qd5QY5SKIuKofA
oOTP/BIBLZFoZY7VkHEl+e6fvk4GUu3v178RbOuA0LbzrprLsXagP+F7y17c
jbZkkePiPi2ssYKbnTeCWR3jBCM8BN61c3SmboytR6UYIrtQmMQV3qfk7euE
X6EqYScaV399/n8BdzJ+WCI7GecsAZ2UPFHnkZsJjav7HMnIi/RAUkj8CiEM
AT8C+hNs1t2AhLdmfeT3oUeCEAlGInTEq19zP07o3ubOGtjPOOuj6s8FjSQB
1uHvPI+RmM205eLw+2q6SUnJ9nM5vNzOgP5S0H9RspWr9aeKicH9HLvrixP+
oF/1sAwV+t/6K50wBHun1rBIBrX45w03Oq5XLYfFkq2cVPgS6y+5UYt8fA6N
HYsd1CBRhzVw/+LYegWTCSj6HNuf5SWbufozpl5R2y6OzX8UjUDwzBSWo47w
PvZAS5fkujSDAsyBPYeIhI5lTZBy2nHRD0lUGokVCP3eg3kGVklazEXNVgbR
zxbz5cVhRiGAeRcXNcpEeXZypbWgSLKaQaWWlAXvEEBivES1DGMyYcLmWsZ/
z1y/fKiBiUlNS+i1ZckQolHt0tppTmz+AjJG+m9n7Q7KSaEc/aunqahsa5ug
iQ4hFz4X1UXMnSEzbIwlyn9T5TyNyeJcUC4llS9Zk3RRgTzPdrneinv9hzkP
eJai2IlztEHn1wvoNpDcQSgbR89STuOru3s1j42Uj6NwHWtDdfztxF6VIliE
CWmtx0HM6kWsXx+z5Y7P5q/Dh90yWZLWL9uOy6azbYU7/Ht/oH3zpQf2ubtI
9x5zf26bg1yEyqbqW5LDajZxQwUPb83Gx1FicXT7U+a7brMn2htG6fX2RVrm
bJYBgCeNrTow1mqxXPI55QpDDsCT5ignWxq0QwhKAZVaVUY0PSxdOehXTHVh
75CgrYC0NenbvdMaZwa+x1wgBw6ZryJtgukKrVUzWpkVWMn8gf1rf9O25O95
CYJV0lmZx8l1FlqC/4IIxxgofIFVqqNTYFCa+TVdwBhI3cJgkyAHaTljuqLg
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
cO75VQIAZ/nPARGMbRmfT5GzoCxBRxWb2yzmZ+aKWMDpvMRK6a4GMix5TNS8
UIfhqpfqyXyAkrVBiSattjOTXrSxr5axjV7kiZ1VYRgaf2K/pAI6ZbnLNqnn
Kgnc2i4H01YnN+YrCCrKKBcrovj+Nc5PbMsCs9i6FqZbpc3f+sOpvFRTo0Bs
f8vajUr5FnOn8HPmWofRSeY3xeeZo3uGl9IT/LV5SHMkO4pLrwjG4sH3ujzr
8CUvDgLPmg416zmzFghP8gW9xaqW3P6S75d3Ij8muCFj6UFeRxutzJVP9pYa
KhcOsodMD4qVo1WlySpJk317CKpla8Wq6O690FINvpsWwyHZ/ql6uaPjnysj
2pXJpae9V5mblJD4WZYqoLKponVnNxSYuUC72atkVDpT8M06vF88I5oi5dza
+nDsVhWca3gEj3WM9AXPCeIXAv0snSQMcCanGyH44873IlhhWUrM3TnEEzN8
+oc/D876nMR8WEGKim+Fn11bNNEqPPdXIAeo/yJJpJLoG9eQtNxUFAJQLtd6
hysS0CIHrmPcbYtbBe+xNBILpJiaj+e1MjzL42Af8dCD0wqKKFCXZWakVFJj
TInL/vHSE8HOhwnSqZrHNZottyKyijNrGWUdJpv27HydGs5J5DT44HLKKy3p
Uq4fF1lhTGyQ54pL1FMLgowNKYmX+4cmfcpnE29ftZeugaimsPPJKpOKp7o6
kHi6kPtlplqZ8CYxO863jHPy9DY5NNr8UFVn7LovTAi/qrdRZTZSsjxY1ohG
OQCLEDZkZ9o6Em7r7YZazdzJrkoOElj4jIU2Jbmjl8eAU1hqB0mB1DSTWzo5
ecF+s9JgjrQd6pGzdHoLIcDMKkJiYfXumt71sQrNfHoJoNHN7o6XnPvRC80x
OD7tBwmlXzgLEsnd9pXARLCXN18VOyjDqV3PP0h6o4NWExOgV0yq+3sPBol5
w6w5ni+m3COX1D36fv/BQDgAuBxnp8MHdf+hOo3Oa8GL4egq8677jx6MSFPK
45LSzdttMYkz5cRibcZYJwugq0ad0xROGE5oEO9GtWLDqgGtgXIK/S4JfAZP
HSYlu9SM6YYXjrRdsFSlEHdRfh7TGmJ7q1AD6VONiB9gt0gQybaDJi2WZQXS
igk/dZrZtmMfDnXMF/Bbon+w9QwPL5jMWoloSX5cf5P7r+4pyzm2tLGKDR5V
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
eR3RM3E2yV/1b/XPUsJnMOmeSjBShoS1xsJAVwywUHV1TZhS5oAndIRqa2np
3NGk8xUXXR0QBWTSckY3WjuRxeZeOzA29e+Mryvflnr7l6cvUSNA2OLyXn1z
niTi4TCGvLej0uq3T79/+vKpBJhVybH1Kc/dDw6XcszN46LiyBaATgLcLsVU
veaaKJKwzNOgv2UXBLaFqFVyKmBuuaQ4V1t+zG/1T7vlaHHZ435dhTGIauwv
nQ+zb9okapPRdC74c0CbCIPnWfaewvQjEvBRhLWKLT27sGwlAoO5sciMfWZf
Oyyd4zUiWCwDwdYfY/5RZ5JW5ERnGquTozULbBN//Ae8AHRoJKXsj5jSKad0
doKH9anhz3yfhiKnLzXUqvtAmICAQp0sdhxrBoY98nq0k8TZ9AWXy/TZfDjS
1OVmDq3iiR62xkLGpzf4XLF1pv9BwXvDZp+EY4f7QxFaWgdtOTEPZQnBDMGd
Ydj7Mp89+77pttOnGMpn36JOCnOkYFpCA5626+j2k6e/fb5+Plw8L0KC/8Tx
yCENOi1azYE1zdcfX6G9PeobqtijVgCn4vlWFMZLYlLFXQnGX4EOQMSUo9vM
5xvpGx1JPIkbzwNbWz4zI6bYpfePvzb/1U+SyTeFATDTPc9IkyQ7KygXdGcs
RwPw1uC1xECvHBTewsJqJCRDG5CSljjo25XF/snKapZi4yFZfAAzOU9ztb6W
bOfbAg+R+So0pWOqe7lrk4Zz/869o/pvVlOhUNIl7KS0wUeiEg4k+GTIyRSp
Vgz/lDjSUOZQC23y+goYY3KTNCNePiV3XZRwdI05lKnWni2SFpa2yNkmLWDJ
n8b7k+g8Tu3aWlGohfFVJJ92Nz2QPs/lUQbBI4Q+6nYCWr3JiU4efkhVC2gM
YkT3xUwQK/otQ7GS2rn7AJRkmqEo7YhOzFZFIYOSmFMYTwhASmod+D/x6n7L
0yQJN83MR5GCOX3u/aPcT/op8k0rSwmRz7uj+ojrCLACpveOH965cyTvlI/H
oW5+jq8m9776avLwzlfq4JGPu3fjVgrXwXrjzo+FImYc7NOX0lr1AK7SGU9s
fFaUmRM/at0c7XT4fIGUoFhJFjKacYZTOU344ASIHg06QqTvr8kib84bKQAS
gSuvymU7Hxzk8uRwL8gjaeb+nfupR19Ssc11gygi3BqwADPX8/LXuwgR43qH
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
ZmVISkdkoLN1iuAvXNLZ1fnus15AIuQxItFazbgQSZRQNk70s/Z1s7wg7po4
xWhvm/Op6vvENXAj4SkN9GhUaRiO/CQaUHPl7GP25Aj0AWSDl6d4MNCMz1Rb
Nw+Q/PfrxavXM+p9ktaeZCmWGTm11Cu0r73n+jvBOv2RJN7Sd56m47fr9j36
E80Ar/3GMsze7nJEzdtdTn2B4sqsxW0uC0Z1eNZrkRlm5f3baqSfsu8l9r9h
rvrbtAiRcW6umhgi1/ph5tvkpmo0JYHn2foMx6+l51m3RBAqzr1rThWwQ9h4
4SjN0Vyu2xwzRc1R+DMtuap5JerrVn1I/G5xCEN1DU/O18w+X4M1gfma+RMq
fMKovzY2PPDPIqmUOgiX72Vv23h+4XDkRS4t3zbXXWWuJSjB0X5BPtEkvtK6
9ajv0i1fnz204w7SW/3uyM+2DOI92TuqF/d5VaO79LP6JXSkJ6ojSbxrcyHm
77vPCu3pvVGVRI1KCQqSwAFOpuEzLnIjmSuAEq2SdPOO7Bnqq/hjsjrrQd2X
IyLTdZXRLhdE56oC3KUmV52nPb580nTmoaQSe1T/0KKOZ5BhMjEKUGM3CVX9
8AcRIAE1AzQ8UE9StC2upKT1MCPKCQhIHeTI+o8c439idIEKI8Vr2o0KWqnh
Qr1Znxuh1GNI/xKWoM1luH1M9ZiAHnEbx9DjmMXBWQxZNHapwFBm6oqXOvTB
yGTHYRtLUoVUpNUFErX7dZNNDPocRfowbDmKoT6y3KNaOx3IXNPWouIPdcVB
1mSPkGkm0CIMFX748cBbJ/7rJE0ENAFYT/bNPXCKTNAQE59JKQzxKlQg1WUr
LpxFd+nMkxhawRGgEirkS+tzhFtOIE3775WvqcBCavqtkhgG9WBFdpPGqK1C
MZDm8hWIpu6yB0rs7J1ziN36k8bk/u3W+5lRSHda0UPy0IyeB6kDtHF5ulwg
GWkIr0jv5tToiVqSuAMomtl8ZT4JOWbmNeSvZlTe//XXiv0xPVMm5komdD7A
q1DcFgdwzcBpxG/N5cL1gzv3HMy2ey3uVmWnSprbkywintmkv/vM5l9i1Si9
SxLrj7FW9o8w32a04pCXvtgQCqaUOBNYRgQwNB95nz70SPOI0FbOARoyM1g4
VmIFQiJRzLm8x061gHvlKjvr9EUocBOW6Vc+MZ+sKCq0xnOBgTwXCLE9CuML
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

-->

</rfc>
