<?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.35 (Ruby 3.4.5) -->


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

]>

<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-miller-ztip-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="ZTIP">Zero-Trust Intent Protocol (ZTIP)</title>

    <author initials="J." surname="Miller" fullname="Jake Miller">
      <organization></organization>
      <address>
        <email>jake@zivis.ai</email>
      </address>
    </author>

    <date year="2026" month="April" day="27"/>

    <area>Security</area>
    <workgroup></workgroup>
    <keyword>delegation</keyword> <keyword>intent binding</keyword> <keyword>prompt injection</keyword> <keyword>confused deputy</keyword>

    <abstract>


<?line 61?>

<t>The Zero-Trust Intent Protocol (ZTIP) defines three primitives for verifiable delegation, intent binding, and behavioral attestation in multi-agent systems:</t>

<t><list style="numbers" type="1">
  <t><strong>Delegation Chain Attestation</strong> — a nested-JWS structure carrying signed delegation from a root principal (a human user, an orchestrator, or a trusted root) through intermediary agents to a downstream agent or tool, with cryptographic enforcement of scope monotonicity.</t>
  <t><strong>Intent-Scoped Authorization</strong> — extends any signed authorization token (OAuth 2.0 access tokens, GNAP grants, ZTNP Permits, or vendor-defined tokens) with a hash of the originator's signed intent, so that an agent operating under that token cannot use it for actions inconsistent with the original authorization. This addresses the prompt-injection-induced confused-deputy attack.</t>
  <t><strong>Behavioral Claim Extensions</strong> — a claim shape conveying behavioral safety properties (prompt-injection-tested, tool-call-audit-logged, output-validated, human-in-loop policy, etc.) that can be carried in any signed credential about an agent.</t>
</list></t>

<t>ZTIP is composable. It can be deployed standalone, composed with the Zero-Trust Negotiation Protocol (ZTNP) Core <xref target="I-D.miller-ztnp"/> for posture-aware deployments, composed with OAuth 2.0 / JWT for token-bound deployments, composed with GNAP <xref target="RFC9635"/>, or composed with bespoke authorization systems. Section 6 specifies concrete composition profiles.</t>

<t>This draft is an individual submission. The appropriate IETF venue for progressing this work is an open question; the author welcomes community guidance.</t>



    </abstract>



  </front>

  <middle>


<?line 75?>

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

<t>In multi-principal delegation chains, an action is rarely the work of a single principal. A human user instructs an orchestrator; the orchestrator delegates a subtask to a sub-agent; the sub-agent invokes a tool. This chain of delegation introduces three classes of security problem that existing protocols do not address:</t>

<t><list style="numbers" type="1">
  <t><strong>Delegation integrity.</strong> When a downstream tool receives a call, can it verify that the call chain leading to it was authorized end-to-end? Per-hop authorization tokens (OAuth 2.0 access tokens, JWTs, ZTNP Permits) only show that the immediately upstream party was trusted by the receiver — not that the entire chain back to the originating principal was authorized.</t>
  <t><strong>Intent binding.</strong> An authorization token issued for "summarize email" can be used for any action within the token's stated scope. If a sub-agent is prompt-injected mid-task into "send all email to attacker.example", the token's signature is still valid; only the intent has been substituted. This is a confused-deputy attack mediated by language-model context manipulation.</t>
  <t><strong>Behavioral transparency.</strong> A receiver applying policy to a language-model-driven agent needs more than identity and scope. Has the agent been tested against prompt injection? Are its tool calls audited? What is its human-in-loop policy? These are behavioral posture properties that don't fit the generic claim schemas of identity and authorization protocols.</t>
</list></t>

<t>ZTIP addresses these three problems with three primitives, specified in Sections 3, 4, and 5. Each primitive is independently useful; deployments <bcp14>MAY</bcp14> adopt one without the others.</t>

<t>ZTIP does not require any specific authorization or identity protocol. It defines its primitives in the abstract and provides composition profiles (Section 6) for the most common authorization systems: OAuth 2.0 / JWT, GNAP, ZTNP, and vendor-defined tokens. This pattern follows DPoP <xref target="RFC9449"/>, which is technically standalone but most often composed with OAuth 2.0.</t>

<section anchor="goals"><name>Goals</name>

<t>ZTIP is designed to:</t>

<t><list style="numbers" type="1">
  <t>Provide cryptographic evidence of delegation authority from a root principal to a downstream agent, with verifiable scope monotonicity at each layer.</t>
  <t>Bind authorization to specific user intent, preventing prompt-injection-induced authorization expansion.</t>
  <t>Convey behavioral posture claims that inform policy decisions about which capabilities an agent may access.</t>
  <t>Compose with multiple authorization systems without requiring any specific one.</t>
</list></t>

</section>
<section anchor="non-goals"><name>Non-Goals</name>

<t>ZTIP does not define:</t>

<t><list style="symbols">
  <t>Identity or authentication.</t>
  <t>The runtime envelope for inter-agent communication.</t>
  <t>The tool capability protocol.</t>
  <t>Posture assessment or framework semantics (see ZTNP <xref target="I-D.miller-ztnp"/>).</t>
  <t>A new authorization-token format. ZTIP extends existing authorization tokens; it does not define a new one.</t>
  <t>A specific Key Source mechanism. ZTIP is agnostic between JWKS endpoints, X.509 chains, ZTNP's IKS, and DID resolution.</t>
</list></t>

</section>
<section anchor="relationship-to-existing-token-chaining-mechanisms"><name>Relationship to Existing Token Chaining Mechanisms</name>

<t>Reviewers familiar with nested JWTs, OAuth 2.0 Token Exchange <xref target="RFC8693"/>, or GNAP continuation <xref target="RFC9635"/> may reasonably ask why ZTIP defines new primitives rather than reusing those mechanisms. The structures look superficially similar: a chain of signed credentials, each issued in response to a prior one. ZTIP's primitives differ on three properties that none of those mechanisms provide.</t>

<t><list style="numbers" type="1">
  <t><strong>Monotonic scope enforcement at every receiver.</strong> Token Exchange permits a client to request a downstream token whose scope is determined by the AS's policy; the issued token's scope is not constrained by protocol to be a subset of the inbound token's scope. There is no protocol-level guarantee that "this downstream token grants only what the upstream token already granted." ZTIP's Section 3.4 makes scope reduction a normative property of the chain itself, verifiable at any receiver without recourse to the AS.</t>
  <t><strong>End-to-end chain auditability.</strong> Nested JWTs and chained Token Exchange responses do not preserve the identity and signature of every intermediary. A receiver of a token-exchanged JWT typically sees only the AS's signature; the chain of clients that requested and re-requested the token is opaque to the resource server. ZTIP's nested-JWS structure preserves each delegator's signature, so the receiver can verify "who authorized whom" for every step of the chain.</t>
  <t><strong>Originator intent binding.</strong> No existing token-chaining mechanism binds an issued token to a structured originator intent. A token-exchanged token is bound to its scope; ZTIP additionally binds it to the specific intent (<spanx style="verb">intent_hash</spanx>) the originator signed. This is what makes Section 4 a defense against prompt-injection-induced confused-deputy attacks: an injected instruction can request operations within the token's scope, but those operations will not match the bound intent.</t>
</list></t>

<t>In short: existing token-chaining mechanisms answer "may this client present this token?" ZTIP additionally answers "did the original principal authorize this entire chain to perform this specific operation?" Deployments needing only the former should continue to use existing mechanisms; ZTIP is for deployments that need both.</t>

</section>
<section anchor="document-structure"><name>Document Structure</name>

<t>Sections 2 and 3 define terminology and the Delegation Chain Attestation primitive. Section 4 defines Intent-Scoped Authorization. Section 5 defines Behavioral Claim Extensions. Section 6 defines composition profiles for OAuth 2.0, ZTNP, GNAP, and custom authorization systems. Sections 7 and 8 contain Security and Privacy Considerations. Section 9 contains IANA Considerations. Appendix A is a worked example using the ZTNP composition profile. Appendix B defines the conformance profile.</t>

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

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

<?line -18?>

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

<texttable>
      <ttcol align='left'>Term</ttcol>
      <ttcol align='left'>Definition</ttcol>
      <c>Originator</c>
      <c>The root principal of a Delegation Chain — a user, an orchestrator, or a trusted root system that initiated an action.</c>
      <c>Signed Intent</c>
      <c>A JWS produced by an Originator describing the originally authorized action and its scope.</c>
      <c>Delegation Chain</c>
      <c>A nested-JWS structure rooted at a Signed Intent, with each delegating principal adding a signature layer that names the next party.</c>
      <c>Scope Reduction</c>
      <c>The principle that each layer of a Delegation Chain may grant a subset, not a superset, of its parent's scope (Section 3.4).</c>
      <c>Authorization Token</c>
      <c>A signed authorization credential carrying scope and expiration information about a delegated capability. Examples: OAuth 2.0 access tokens, GNAP grants, ZTNP Permits.</c>
      <c>Intent-Scoped Authorization Token</c>
      <c>An Authorization Token additionally extended with the four ZTIP fields defined in Section 4: <spanx style="verb">intent_hash</spanx>, <spanx style="verb">intent_scope</spanx>, <spanx style="verb">chain_root_iss</spanx>, <spanx style="verb">chain_root_jti</spanx>.</c>
      <c>Key Source</c>
      <c>A mechanism by which a verifier obtains the public key of a signing principal — a JWKS endpoint, an X.509 chain, an Issuer Key Set (when composed with ZTNP), or a DID resolution. ZTIP is agnostic to the specific Key Source mechanism.</c>
      <c>Behavioral Claims</c>
      <c>A claim shape (Section 5) carrying behavioral safety properties of an agent. May appear in any signed credential about an agent.</c>
</texttable>

</section>
<section anchor="delegation-chain-attestation"><name>Delegation Chain Attestation</name>

<t>A Delegation Chain is a nested-JWS structure in which each delegating principal adds a signature layer. The root of the chain is a Signed Intent produced by the Originator. Each downstream layer wraps the previous chain and is signed by the principal delegating to the next.</t>

<t>ZTIP does not specify how each principal's public key is discovered. Implementations resolve keys via a Key Source appropriate to their deployment. Section 6 defines specific composition profiles and their Key Source mechanisms.</t>

<section anchor="chain-structure"><name>Chain Structure</name>

<t>Three-hop example (user → orchestrator → sub-agent → tool):</t>

<figure><artwork><![CDATA[
Outermost (sub-agent A's JWS):
  payload: {
    "del_chain_ver": "0.1",
    "delegator": "agent:A",
    "delegatee": "tool:T",
    "scope_reduction": { "actions": ["read"], "data": ["internal"] },
    "iat": ..., "exp": ...,
    "inner": "<orchestrator O's compact JWS>"
  }

Middle (orchestrator O's JWS):
  payload: {
    "del_chain_ver": "0.1",
    "delegator": "principal:O",
    "delegatee": "agent:A",
    "scope_reduction": { ... },
    "iat": ..., "exp": ...,
    "inner": "<root Signed Intent compact JWS>"
  }

Root (Signed Intent):
  payload: {
    "del_chain_ver": "0.1",
    "intent_root": true,
    "originator": "user:alice",
    "intent_object": { ... structured intent (Section 3.2) ... },
    "intent_hash": "<base64url(SHA-256(JCS(intent_object) UTF-8 bytes))>",
    "authorized_chain": ["principal:O", "agent:A"],
    "scope": { ... },
    "iat": ..., "exp": ...
  }
]]></artwork></figure>

</section>
<section anchor="intent-object-schema-and-canonicalization"><name>Intent Object Schema and Canonicalization</name>

<t>The root layer's intent — what the originating principal is authorizing — <bcp14>MUST</bcp14> be expressed as a structured JSON object, not as free-form natural-language text. Three reasons:</t>

<t><list style="numbers" type="1">
  <t>Free-form text is not reproducibly hashable across implementers (whitespace, line endings, and encoding choices all introduce non-determinism).</t>
  <t>Free-form text is not machine-comparable to a downstream operation; verifiers need structured fields to evaluate <spanx style="verb">intent_scope</spanx> against a requested operation (Section 4).</t>
  <t>A structured intent forces the originator's user interface to disambiguate intent at the point of signing, rather than deferring interpretation to downstream agents — which is precisely the gap that creates confused-deputy attacks.</t>
</list></t>

<section anchor="intent-object-schema"><name>Intent Object Schema</name>

<t>The <spanx style="verb">intent_object</spanx> field on the root Signed Intent <bcp14>MUST</bcp14> be a JSON object containing at least:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Required</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">action</spanx></c>
      <c>string</c>
      <c>Yes</c>
      <c>A short verb describing the user's desired operation (e.g., <spanx style="verb">"summarize"</spanx>, <spanx style="verb">"search"</spanx>, <spanx style="verb">"compose"</spanx>).</c>
      <c><spanx style="verb">scope</spanx></c>
      <c>object</c>
      <c>Yes</c>
      <c>The scope within which the originator authorizes downstream agents to operate. <bcp14>MUST</bcp14> equal the root layer's <spanx style="verb">scope</spanx> field.</c>
      <c><spanx style="verb">target</spanx></c>
      <c>string</c>
      <c>No</c>
      <c>A human-readable description of what the action operates on.</c>
      <c><spanx style="verb">constraints</spanx></c>
      <c>object</c>
      <c>No</c>
      <c>Profile-defined additional constraints (e.g., <spanx style="verb">must_not</spanx>, time-window limits).</c>
</texttable>

<t>Profile documents <bcp14>MAY</bcp14> extend the schema with additional fields. Extension fields <bcp14>MUST NOT</bcp14> alter the meaning of the required fields above.</t>

</section>
<section anchor="canonicalization"><name>Canonicalization</name>

<t>The canonical form of an <spanx style="verb">intent_object</spanx> is its JSON Canonicalization Scheme serialization, per <xref target="RFC8785"/>. JCS provides:</t>

<t><list style="symbols">
  <t>Deterministic key ordering (lexicographic).</t>
  <t>Deterministic number representation (no trailing zeros, no scientific notation for non-special values).</t>
  <t>UTF-8 encoding of the resulting byte sequence.</t>
  <t>No insignificant whitespace.</t>
</list></t>

<t>Implementers <bcp14>MUST</bcp14> use a JCS implementation conformant with RFC 8785. Variant canonicalization schemes <bcp14>MUST NOT</bcp14> be used.</t>

</section>
<section anchor="intent-hash"><name>Intent Hash</name>

<t><spanx style="verb">intent_hash</spanx> is computed as:</t>

<figure><artwork><![CDATA[
intent_hash = base64url(SHA-256(JCS(intent_object) encoded as UTF-8 bytes))
]]></artwork></figure>

<t>base64url is the URL-safe base64 encoding without padding, per Section 5 of <xref target="RFC7515"/>.</t>

<t>Verifiers receiving a chain <bcp14>MUST</bcp14> recompute <spanx style="verb">intent_hash</spanx> from the root layer's <spanx style="verb">intent_object</spanx> and verify it matches both:</t>

<t><list style="numbers" type="1">
  <t>The <spanx style="verb">intent_hash</spanx> field within the same root layer (consistency check).</t>
  <t>The <spanx style="verb">intent_hash</spanx> field on any Intent-Scoped Authorization Token (Section 4) issued under this chain.</t>
</list></t>

<t>Mismatch causes rejection with <spanx style="verb">INTENT_SCOPE_MISMATCH</spanx>.</t>

</section>
<section anchor="inline-examples"><name>Inline Examples</name>

<t>Three intent objects illustrating common patterns. Each is shown as the input JSON, the JCS canonical bytes (where shown), and the resulting <spanx style="verb">intent_hash</spanx>. The hash values shown are computed against an RFC 8785 reference implementation; conforming implementations <bcp14>MUST</bcp14> produce these values for these inputs.</t>

<t><strong>Example 1: Read-only summarization.</strong></t>

<figure><sourcecode type="json"><![CDATA[
{
  "action": "summarize",
  "scope": {
    "actions": ["read"],
    "data": ["internal", "pii"],
    "tools": ["email.list", "email.read"]
  },
  "target": "unread emails from the last 24 hours",
  "constraints": {
    "must_not": ["email.send", "email.delete"]
  }
}
]]></sourcecode></figure>

<t>JCS canonical bytes (the actual canonical form, with no insignificant whitespace):</t>

<figure><artwork><![CDATA[
{"action":"summarize","constraints":{"must_not":["email.send","email.delete"]},"scope":{"actions":["read"],"data":["internal","pii"],"tools":["email.list","email.read"]},"target":"unread emails from the last 24 hours"}
]]></artwork></figure>

<t>JCS sorts object keys lexicographically (note <spanx style="verb">action</spanx> before <spanx style="verb">constraints</spanx> before <spanx style="verb">scope</spanx> before <spanx style="verb">target</spanx> at the top level, and <spanx style="verb">must_not</spanx> after <spanx style="verb">actions</spanx>/<spanx style="verb">data</spanx>/<spanx style="verb">tools</spanx> are reordered within the inner objects) but <strong>preserves the insertion order of array elements</strong> — <spanx style="verb">must_not</spanx> retains <spanx style="verb">email.send</spanx> before <spanx style="verb">email.delete</spanx> from the input. RFC 8785 specifies key sorting for objects, not for array elements.</t>

<t>Computed <spanx style="verb">intent_hash</spanx>: <spanx style="verb">Q9h_MJaQrDtKRb7MKfwg664jUWmVlErfdS8Qm1y6qNc</spanx>.</t>

<t><strong>Example 2: Knowledge-base search with redaction.</strong></t>

<figure><sourcecode type="json"><![CDATA[
{
  "action": "search",
  "scope": {
    "actions": ["read"],
    "data": ["internal"],
    "tools": ["kb.query"]
  },
  "target": "internal product specifications matching 'thermostat'",
  "constraints": {
    "redact": ["customer_pii", "pricing_internal"]
  }
}
]]></sourcecode></figure>

<t>Computed <spanx style="verb">intent_hash</spanx>: <spanx style="verb">vMdbs17cp0K0-TJKz8l5iTPMSgXLVN4Epyjq5yz7gYY</spanx>.</t>

<t><strong>Example 3: Financial transfer with strict allowlist.</strong></t>

<figure><sourcecode type="json"><![CDATA[
{
  "action": "transfer_funds",
  "scope": {
    "actions": ["write"],
    "tools": ["bank.transfer"],
    "rate_limit": { "max": 1, "window_seconds": 86400 }
  },
  "target": "vendor invoice payment",
  "constraints": {
    "amount_max_usd": 500,
    "destination_must_be_in": ["preapproved_vendors"]
  }
}
]]></sourcecode></figure>

<t>Computed <spanx style="verb">intent_hash</spanx>: <spanx style="verb">OW_76HLPAd8nVL7Z3e_jk1Q_8aQmFzn71hqrTMSfpeQ</spanx>.</t>

<t>The <spanx style="verb">constraints</spanx> field is profile-specific. Verifiers <bcp14>MUST</bcp14> ignore unrecognized constraint fields they do not understand, EXCEPT when local policy requires recognition of those fields — in which case the policy <bcp14>MUST</bcp14> reject Posture Assertions or Authorization Tokens whose intent contains uninterpretable constraints.</t>

</section>
</section>
<section anchor="verification-rules"><name>Verification Rules</name>

<t>A chain recipient <bcp14>MUST</bcp14>:</t>

<t><list style="numbers" type="1">
  <t>Unwrap each JWS layer and verify against the stated <spanx style="verb">delegator</spanx>'s public key, obtained from the deployment's Key Source.</t>
  <t>Verify the chain of <spanx style="verb">delegator</spanx>/<spanx style="verb">delegatee</spanx> references is unbroken. Each layer's <spanx style="verb">delegatee</spanx> <bcp14>MUST</bcp14> equal the next layer's <spanx style="verb">delegator</spanx> (or, for the layer immediately above the root, <bcp14>MUST</bcp14> appear in the root's <spanx style="verb">authorized_chain</spanx>).</t>
  <t><strong>Enforce scope monotonicity</strong> per Section 3.4. Attempts to expand scope <bcp14>MUST</bcp14> cause rejection with reason code <spanx style="verb">DEL_CHAIN_SCOPE_EXPANDED</spanx>.</t>
  <t>Verify the root is signed by an Originator the recipient trusts.</t>
  <t>Verify no layer is expired (<spanx style="verb">exp</spanx> in past, accounting for clock skew under 5 minutes).</t>
  <t><strong>Verify chain depth</strong> is within the configured maximum per Section 3.5.</t>
  <t>Recompute <spanx style="verb">intent_hash</spanx> from the root's <spanx style="verb">intent_object</spanx> per Section 3.2 and verify the recomputed value matches the root's claimed <spanx style="verb">intent_hash</spanx>.</t>
</list></t>

<t>Implementations supporting Delegation Chains <bcp14>MUST</bcp14> enforce scope monotonicity (rule 3), chain-depth limit (rule 6), and intent-hash consistency (rule 7). These are the load-bearing security properties of the chain.</t>

</section>
<section anchor="formal-definition-of-scope-monotonicity"><name>Formal Definition of Scope Monotonicity</name>

<t>Rule 3 in Section 3.3 requires "scope_reduction <bcp14>MUST</bcp14> be a subset of the parent's scope." This subsection formalizes "subset" for each scope field type so that conforming implementations agree on what monotonicity means.</t>

<t>A scope value at child layer C is <strong>monotone</strong> with respect to parent layer P when, for every field present in C, the relation in the table below holds:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>"C ⊆ P" relation</ttcol>
      <c><spanx style="verb">actions</spanx></c>
      <c>array of strings</c>
      <c>Every element of <spanx style="verb">C.actions</spanx> is an element of <spanx style="verb">P.actions</spanx>. <spanx style="verb">C.actions</spanx> <bcp14>MAY</bcp14> be empty.</c>
      <c><spanx style="verb">data</spanx></c>
      <c>array of strings</c>
      <c>Every element of <spanx style="verb">C.data</spanx> is an element of <spanx style="verb">P.data</spanx>. <spanx style="verb">C.data</spanx> <bcp14>MAY</bcp14> be empty.</c>
      <c><spanx style="verb">tools</spanx></c>
      <c>array of strings</c>
      <c>Every element of <spanx style="verb">C.tools</spanx> is an element of <spanx style="verb">P.tools</spanx>. <spanx style="verb">C.tools</spanx> <bcp14>MAY</bcp14> be empty.</c>
      <c><spanx style="verb">rate_limit.max</spanx></c>
      <c>integer</c>
      <c><spanx style="verb">C.max &lt;= P.max</spanx>.</c>
      <c><spanx style="verb">rate_limit</spanx> (combined)</c>
      <c>object</c>
      <c><spanx style="verb">C.max / C.window_seconds &lt;= P.max / P.window_seconds</spanx> (effective rate is no greater) AND <spanx style="verb">C.max &lt;= P.max</spanx> (burst capacity is no greater).</c>
      <c><spanx style="verb">ttl</spanx></c>
      <c>integer (seconds)</c>
      <c><spanx style="verb">C.ttl &lt;= P.ttl</spanx>.</c>
      <c><spanx style="verb">iat</spanx> (per-layer)</c>
      <c>integer (Unix seconds)</c>
      <c><spanx style="verb">C.iat &gt;= P.iat</spanx>.</c>
      <c><spanx style="verb">exp</spanx> (per-layer)</c>
      <c>integer (Unix seconds)</c>
      <c><spanx style="verb">C.exp &lt;= P.exp</spanx>.</c>
</texttable>

<t><strong>Field introduction.</strong> A child layer <bcp14>MUST NOT</bcp14> introduce a scope field that is not present in its parent. A field absent in P but present in C is a scope expansion and <bcp14>MUST</bcp14> cause rejection with <spanx style="verb">DEL_CHAIN_SCOPE_EXPANDED</spanx>.</t>

<t><strong>Profile-defined fields.</strong> When a profile defines additional scope fields, the profile document <bcp14>MUST</bcp14> specify the subset relation for those fields. Verifiers encountering profile-defined fields without a known subset relation <bcp14>MUST</bcp14> treat them as opaque: presence in C requires identical value in P (i.e., <spanx style="verb">C.field</spanx> deeply equals <spanx style="verb">P.field</spanx>) for monotonicity to hold.</t>

<t><strong>Empty vs. omitted in the child.</strong> An empty array (<spanx style="verb">[]</spanx>) in a child layer means "no operations of this type are authorized." An omitted field in a child layer is interpreted as inheriting the parent's value, NOT as removing the parent's constraint. A child layer that wishes to drop a dimension entirely <bcp14>MUST</bcp14> set it to an empty array.</t>

<t><strong>Diagnostic on rejection.</strong> When a chain is rejected for scope violation, the verifier <bcp14>SHOULD</bcp14> include in the <spanx style="verb">DEL_CHAIN_SCOPE_EXPANDED</spanx> reason the specific field path and the offending values. Example: <spanx style="verb">"field": "tools", "child_value": "email.send", "parent_authorizes": ["email.list", "email.read"]</spanx>.</t>

</section>
<section anchor="maximum-chain-depth"><name>Maximum Chain Depth</name>

<t>Implementations <bcp14>MUST</bcp14> enforce a maximum chain depth limit. The depth is the number of nested JWS layers, counting both the root Signed Intent and each delegation wrapper.</t>

<t><list style="symbols">
  <t><strong><bcp14>RECOMMENDED</bcp14> maximum: 8 layers.</strong> This is sufficient for the orchestration patterns observed at the time of this specification's publication; deployments needing more <bcp14>SHOULD</bcp14> document why.</t>
  <t>Deployments operating in environments with bounded delegation patterns <bcp14>MAY</bcp14> configure a lower limit (e.g., 3 for simple two-hop chains).</t>
  <t>Verifiers <bcp14>MUST</bcp14> reject chains exceeding the configured limit with reason code <spanx style="verb">DEL_CHAIN_DEPTH_EXCEEDED</spanx>.</t>
  <t>The depth check <bcp14>MUST</bcp14> be performed before recursive signature verification, to prevent stack-exhaustion or computational denial-of-service attacks via deeply nested chains.</t>
</list></t>

<t>The depth limit also bounds the legitimate value of the <spanx style="verb">max_tool_call_depth</spanx> Behavioral Claim (Section 5). An agent claiming <spanx style="verb">max_tool_call_depth: N</spanx> <bcp14>SHOULD NOT</bcp14> participate in chains where the verifier's configured depth limit is less than N.</t>

<t><strong>Cost-scaling note.</strong> Signature verification, JSON parsing, and JCS canonicalization each scale linearly with chain depth: an N-layer chain requires N signature verifications and N JSON-payload parses at the receiver. The depth limit therefore bounds two distinct concerns — stack-exhaustion (addressed by the pre-verification depth check above) and per-request CPU cost (which scales linearly up to the limit). Verifiers operating at high request rates <bcp14>SHOULD</bcp14> configure a depth limit at the lower end of the range their orchestration patterns permit, and <bcp14>SHOULD</bcp14> treat the configured limit as a CPU-budget parameter as well as a stack-safety parameter. Alternative chain encodings (flat hash-linked structures, batch-verifiable signatures) were considered but rejected for this base specification in favor of the broad implementer familiarity with nested JWS; profiles <bcp14>MAY</bcp14> define alternative encodings where the cost matters.</t>

</section>
<section anchor="carrying-the-chain-in-authorization-flows"><name>Carrying the Chain in Authorization Flows</name>

<t>The Delegation Chain is carried alongside an Authorization Token. The exact carriage mechanism depends on the composition profile (Section 6). When a recipient's policy requires a chain (e.g., a policy field <spanx style="verb">require_delegation_chain: true</spanx>), absence <bcp14>MUST</bcp14> cause <spanx style="verb">DEL_CHAIN_MISSING</spanx> denial.</t>

<t>Carriage <bcp14>MAY</bcp14> be either session-bound (the chain is supplied once at session establishment and reused for subsequent operations within the session) or per-call (each operation carries its own chain). Per-call carriage is appropriate for stateless gateways and edge-deployed verifiers that cannot maintain per-session state. Session-bound carriage is appropriate for long-lived sessions where re-supplying the chain on every request is wasteful. Implementations supporting both modes <bcp14>MUST</bcp14> advertise their preference in the relevant composition profile's discovery mechanism.</t>

</section>
<section anchor="chain-specific-reason-codes"><name>Chain-Specific Reason Codes</name>

<t>The following reason codes are registered in the IANA ZTIP Denial Reason Code Registry (Section 9):</t>

<texttable>
      <ttcol align='left'>Code</ttcol>
      <ttcol align='left'>Meaning</ttcol>
      <c><spanx style="verb">DEL_CHAIN_MISSING</spanx></c>
      <c>Policy requires a Delegation Chain but none was provided.</c>
      <c><spanx style="verb">DEL_CHAIN_BROKEN</spanx></c>
      <c>Chain of <spanx style="verb">delegator</spanx>/<spanx style="verb">delegatee</spanx> references has a gap.</c>
      <c><spanx style="verb">DEL_CHAIN_SCOPE_EXPANDED</spanx></c>
      <c>A child layer attempts to grant broader scope than its parent.</c>
      <c><spanx style="verb">DEL_CHAIN_EXPIRED</spanx></c>
      <c>One or more chain layers has expired.</c>
      <c><spanx style="verb">DEL_CHAIN_UNTRUSTED_ROOT</spanx></c>
      <c>The root Signed Intent is not signed by a trusted Originator.</c>
      <c><spanx style="verb">DEL_CHAIN_DEPTH_EXCEEDED</spanx></c>
      <c>The chain exceeds the verifier's configured maximum depth.</c>
</texttable>

</section>
</section>
<section anchor="intent-scoped-authorization"><name>Intent-Scoped Authorization</name>

<section anchor="motivation"><name>Motivation</name>

<t>An authorization token issued without reference to the original authorized intent can be used for any action within its stated scope, regardless of what the user actually asked. This is the mechanism by which prompt injection escalates to a confused-deputy attack: the injected instruction substitutes a new operational intent, but the token's scope is broad enough to authorize it.</t>

<t>Intent-Scoped Authorization Tokens bind the token to the root Signed Intent (Section 3). A resource receiving such a token can verify that the action being requested is consistent with the original intent, not just with the token's scope.</t>

</section>
<section anchor="field-extensions-to-authorization-tokens"><name>Field Extensions to Authorization Tokens</name>

<t>ZTIP defines four additional claims for any signed Authorization Token:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Required</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">intent_hash</spanx></c>
      <c>string</c>
      <c>Yes</c>
      <c><spanx style="verb">base64url(SHA-256(JCS(intent_object) UTF-8 bytes))</spanx> per Section 3.2 — <bcp14>MUST</bcp14> equal the root Signed Intent's <spanx style="verb">intent_hash</spanx>.</c>
      <c><spanx style="verb">intent_scope</spanx></c>
      <c>object</c>
      <c>Yes</c>
      <c>The authorized scope derived from the root Signed Intent.</c>
      <c><spanx style="verb">chain_root_iss</spanx></c>
      <c>string</c>
      <c>Yes</c>
      <c>Identifier of the root Signed Intent's Originator.</c>
      <c><spanx style="verb">chain_root_jti</spanx></c>
      <c>string</c>
      <c>Yes</c>
      <c><spanx style="verb">jti</spanx> of the root Signed Intent (for revocation/audit).</c>
</texttable>

<t>These fields are added to the Authorization Token's existing claim set. The exact placement depends on the composition profile (Section 6):</t>

<t><list style="symbols">
  <t><strong>OAuth 2.0 / JWT access token</strong>: top-level claims alongside <spanx style="verb">iss</spanx>, <spanx style="verb">sub</spanx>, <spanx style="verb">scope</spanx>, <spanx style="verb">exp</spanx>.</t>
  <t><strong>ZTNP Permit</strong>: top-level fields alongside <spanx style="verb">permit_id</spanx>, <spanx style="verb">constraints</spanx>.</t>
  <t><strong>GNAP grant</strong>: as an extension element of the grant response.</t>
</list></t>

<t>The token issuer (whoever issues the underlying authorization token) <bcp14>MUST</bcp14> verify that the action requested by the bearer is within <spanx style="verb">intent_scope</spanx> before the token is honored. If the bearer attempts to invoke a tool or access data outside <spanx style="verb">intent_scope</spanx>, the token issuer <bcp14>MUST</bcp14> deny the request even if the token's other scope fields would otherwise permit it.</t>

</section>
<section anchor="scope-consistency-check"><name>Scope Consistency Check</name>

<t>A token verifier enforcing an Intent-Scoped Authorization Token <bcp14>MUST</bcp14> evaluate the following before each gated operation:</t>

<t><list style="numbers" type="1">
  <t>Determine the operation's <spanx style="verb">(action, data_classes, tool)</spanx> signature from the request being gated.</t>
  <t>Verify that the operation falls within <spanx style="verb">intent_scope</spanx>, using the same subset relations as Section 3.4. Specifically: the operation's tool <bcp14>MUST</bcp14> be in <spanx style="verb">intent_scope.tools</spanx> (when <spanx style="verb">intent_scope.tools</spanx> is present); the operation's action <bcp14>MUST</bcp14> be in <spanx style="verb">intent_scope.actions</spanx>; each data class touched by the operation <bcp14>MUST</bcp14> be in <spanx style="verb">intent_scope.data</spanx>.</t>
  <t>If any check fails, return a denial with reason code <spanx style="verb">INTENT_SCOPE_MISMATCH</spanx>.</t>
</list></t>

<t>The verifier <bcp14>MUST</bcp14> additionally verify that the token's <spanx style="verb">intent_hash</spanx> matches the recomputed hash from the root Signed Intent's <spanx style="verb">intent_object</spanx> (per Section 3.2). A mismatch indicates either a substituted token or a tampered chain and <bcp14>MUST</bcp14> cause <spanx style="verb">INTENT_SCOPE_MISMATCH</spanx> rejection.</t>

</section>
<section anchor="operation-classification"><name>Operation Classification</name>

<t>The Scope Consistency Check above requires the verifier to determine an operation's <spanx style="verb">(action, data_classes, tool)</spanx> signature. ZTIP does not standardize how operations are classified into actions and data classes: a service mesh fronting a relational database has different action vocabularies (<spanx style="verb">SELECT</spanx>, <spanx style="verb">INSERT</spanx>) than an email gateway (<spanx style="verb">email.read</spanx>, <spanx style="verb">email.send</spanx>) or a financial system (<spanx style="verb">transfer</spanx>, <spanx style="verb">query_balance</spanx>). Operation classification is therefore deployment- and profile-defined, not protocol-defined.</t>

<t>This is a deliberate deferral, but it is also a security-relevant gap. Misclassification — labeling a write-causing tool call as <spanx style="verb">read</spanx>, mapping a data-exfiltrating tool to a benign-looking action, or having two parties disagree on what <spanx style="verb">email.send</spanx> means — silently bypasses intent-scope enforcement. The cryptographic guarantees of Sections 3 and 4 are then evaluating an operation signature that does not correspond to the operation actually performed.</t>

<t>Two requirements follow:</t>

<t><list style="numbers" type="1">
  <t><strong>Profiles <bcp14>SHOULD</bcp14> specify a strict operation taxonomy</strong> for their domain — the set of valid tool names, the action each tool implements, and the data classes each operation touches — so that classification is not left to ad-hoc deployment choice. The taxonomy <bcp14>SHOULD</bcp14> be authenticated (e.g., served from a tool-capability registry that the verifier trusts) so that a tool cannot self-classify into a more permissive category at request time.</t>
  <t><strong>Verifiers <bcp14>MUST</bcp14> treat operation classification as part of their security boundary.</strong> A tool whose runtime behavior does not match its declared classification is a security failure regardless of cryptographic verification. Deployments <bcp14>SHOULD</bcp14> audit tool implementations against their declared classifications, and <bcp14>SHOULD</bcp14> reject operations whose classification cannot be authenticated against a trusted source.</t>
</list></t>

<t>Cryptographic verification of the chain and the intent hash is necessary but not sufficient: the intent-binding guarantee depends on the verifier and the tool agreeing on what operation is being performed. Treat the operation taxonomy with the same rigor as the cryptography.</t>

</section>
</section>
<section anchor="behavioral-claim-extensions"><name>Behavioral Claim Extensions</name>

<t>For deployments where a verifier needs behavioral posture information about an agent, ZTIP defines a claim shape carrying behavioral safety properties. This claim shape can appear in any signed credential about an agent — typically a Posture Assertion when composed with ZTNP, a JWT claim about the bearer when composed with OAuth, or a vendor-defined credential.</t>

<t><strong>Behavioral claims are advisory and non-normative with respect to ZTIP's core security guarantees.</strong> The chain-integrity, scope-monotonicity, and intent-binding properties of Sections 3 and 4 do not depend on any behavioral claim. A verifier <bcp14>MAY</bcp14> ignore behavioral claims entirely without weakening any of those properties; a verifier that consults behavioral claims is making a <em>policy</em> decision about acceptable agent behavior, not relying on a security primitive. Behavioral claims are a transport for the sort of attestation that one party makes to another about how an agent is operated; their meaning is established by issuer reputation, the <spanx style="verb">evidence</spanx> sub-field below, and out-of-band agreement, not by the protocol. Deployments dismissing behavioral claims as "marketing, not protocol" can deploy ZTIP without them and still get the chain-integrity and intent-binding guarantees.</t>

<t>The claims appear under the namespace <spanx style="verb">ai_behavior</spanx> within the credential's claim payload.</t>

<section anchor="standard-ai-behavior-claims"><name>Standard AI Behavior Claims</name>

<t>The following claim names are defined by this specification:</t>

<texttable>
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">prompt_injection_tested</spanx></c>
      <c>boolean</c>
      <c>Tested against prompt-injection scenarios.</c>
      <c><spanx style="verb">tool_call_audit_logged</spanx></c>
      <c>boolean</c>
      <c>All tool invocations are logged to a tamper-evident audit trail.</c>
      <c><spanx style="verb">tool_misuse_score</spanx></c>
      <c>number</c>
      <c>0.0-1.0; lower = lower observed misuse risk. Calibration is profile-specific; ZTIP does not standardize a measurement methodology.</c>
      <c><spanx style="verb">output_validated</spanx></c>
      <c>boolean</c>
      <c>Agent output is validated before being acted upon.</c>
      <c><spanx style="verb">human_in_loop_policy</spanx></c>
      <c>string</c>
      <c>One of: <spanx style="verb">never</spanx>, <spanx style="verb">on_high_risk</spanx>, <spanx style="verb">on_data_egress</spanx>, <spanx style="verb">always</spanx>. Profiles <bcp14>MAY</bcp14> define additional values.</c>
      <c><spanx style="verb">max_tool_call_depth</spanx></c>
      <c>integer</c>
      <c>Maximum delegation-chain depth the agent will recurse into. <bcp14>SHOULD</bcp14> be ≤ the verifier's configured chain-depth limit (Section 3.5).</c>
      <c><spanx style="verb">data_exfil_controls</spanx></c>
      <c>boolean</c>
      <c>Agent has data-exfiltration controls.</c>
</texttable>

<t>A verifier's policy <bcp14>MAY</bcp14> reference <spanx style="verb">ai_behavior</spanx> claims as prerequisites for granting specific actions. For example: a policy may require <spanx style="verb">prompt_injection_tested: true</spanx> before granting <spanx style="verb">actions: ["email_send"]</spanx>.</t>

<section anchor="evidence-sub-field"><name>Evidence Sub-Field</name>

<t>Each behavioral claim <bcp14>MAY</bcp14> be accompanied by a sibling <spanx style="verb">evidence</spanx> object that records how the claim was substantiated. Verifiers concerned about the rigor of a behavioral claim <bcp14>SHOULD</bcp14> inspect its <spanx style="verb">evidence</spanx> object before relying on the claim.</t>

<t>The <spanx style="verb">evidence</spanx> object <bcp14>SHOULD</bcp14> contain:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">source</spanx></c>
      <c>string</c>
      <c>Identifier of the party that generated the evidence (e.g., URI of an evaluator, internal red-team identifier, vendor name).</c>
      <c><spanx style="verb">method</spanx></c>
      <c>string</c>
      <c>Methodology used to substantiate the claim (e.g., <spanx style="verb">red_team_test_suite_v3</spanx>, <spanx style="verb">automated_prompt_injection_corpus</spanx>, <spanx style="verb">manual_review_2026Q1</spanx>).</c>
      <c><spanx style="verb">date</spanx></c>
      <c>string</c>
      <c>ISO 8601 date when the evidence was generated.</c>
      <c><spanx style="verb">validity_days</spanx></c>
      <c>integer</c>
      <c><bcp14>OPTIONAL</bcp14>: how long the evidence is considered valid; verifiers <bcp14>MAY</bcp14> treat older evidence as expired.</c>
      <c><spanx style="verb">evidence_hash</spanx></c>
      <c>string</c>
      <c><bcp14>OPTIONAL</bcp14>: SHA-256 hash of an evidence artifact (test report, log file) the verifier can request out-of-band.</c>
</texttable>

<t>Example:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "ai_behavior": {
    "prompt_injection_tested": true,
    "evidence": {
      "prompt_injection_tested": {
        "source": "https://example-evaluators.org",
        "method": "owasp_llm_top10_2025_corpus_v2",
        "date": "2026-04-15",
        "validity_days": 90,
        "evidence_hash": "Q7nB...base64url..."
      }
    }
  }
}
]]></sourcecode></figure>

<t><spanx style="verb">evidence</spanx> entries are nested by claim name within an <spanx style="verb">evidence</spanx> object alongside the claims they substantiate (so a verifier can iterate <spanx style="verb">claim → evidence</spanx>).</t>

<t>The Issuer signing the credential is responsible for the truthfulness of evidence entries. Profiles <bcp14>MAY</bcp14> define additional required <spanx style="verb">evidence</spanx> fields for specific claims (e.g., requiring <spanx style="verb">evidence.method</spanx> for <spanx style="verb">tool_misuse_score</spanx>).</t>

</section>
<section anchor="baseline-corpora-for-tested-claims"><name>Baseline Corpora for "Tested" Claims</name>

<t>A boolean claim such as <spanx style="verb">prompt_injection_tested: true</spanx> is meaningful only with respect to a defined test corpus. Without a referenced corpus the claim collapses to vendor self-attestation and offers a verifier no basis for comparing two issuers' assertions. ZTIP does not standardize a single corpus — the field is moving rapidly and no single test set captures the full attack surface — but does specify how a corpus is referenced.</t>

<t>When <spanx style="verb">evidence.method</spanx> substantiates a <spanx style="verb">_tested</spanx> claim, the value <bcp14>SHOULD</bcp14> identify a publicly documented test corpus and version. Examples of such corpora include:</t>

<t><list style="symbols">
  <t>The OWASP Top 10 for Large Language Model Applications (commonly cited as "OWASP LLM Top 10"), with a year and version identifier (e.g., <spanx style="verb">owasp_llm_top10_2025_v1</spanx>).</t>
  <t>Vendor- or community-maintained prompt-injection test suites with public methodology (e.g., adversarial-prompt corpora published by recognized red teams).</t>
  <t>Internal corpora, where the methodology is documented and the corpus version is identified, accompanied by an <spanx style="verb">evidence_hash</spanx> over the corpus or its specification.</t>
</list></t>

<t>Verifiers <bcp14>SHOULD</bcp14> treat claims whose <spanx style="verb">evidence.method</spanx> does not identify a public corpus, an <spanx style="verb">evidence_hash</spanx> over an internal corpus, or a recognized methodology as no stronger than vendor self-attestation. Verifiers depending on a <spanx style="verb">_tested</spanx> claim for a policy decision <bcp14>SHOULD</bcp14> additionally require that the corpus referenced in <spanx style="verb">evidence.method</spanx> is one the verifier accepts; deployments differ in which corpora they consider authoritative, and ZTIP intentionally leaves that choice to the verifier rather than mandating one corpus globally.</t>

<t>This is consistent with the framing in Section 5: behavioral claims are advisory. Pointing at a corpus does not make the claim a security primitive — it makes it a policy input that a verifier can compare across issuers without deferring entirely to issuer reputation.</t>

</section>
</section>
<section anchor="vendor-defined-and-bespoke-claims"><name>Vendor-Defined and Bespoke Claims</name>

<t>Implementations <bcp14>MAY</bcp14> define additional behavioral claims for their domain. ZTIP does not maintain a central registry of behavioral claim names; instead, three naming conventions allow extension without coordination:</t>

<t><list style="symbols">
  <t><strong>URI-namespaced names</strong> (<bcp14>RECOMMENDED</bcp14> for cross-organization deployments): the claim name is a URI per <xref target="RFC3986"/> in a domain controlled by the publisher. Example: <spanx style="verb">https://acme.example/ztip/claims/red_team_score_v1</spanx>. Anyone reading the URI can identify the publisher and look up the claim's definition.</t>
  <t><strong>Vendor-prefixed names</strong> (<bcp14>RECOMMENDED</bcp14> for in-domain consortia): a registered organizational identifier as a prefix. Example: <spanx style="verb">acme:red_team_score_v1</spanx>.</t>
  <t><strong>Privately-agreed names</strong> (acceptable when both parties understand the meaning out-of-band): unprefixed identifiers used only within deployments where issuer and verifier have agreed semantics. Example: <spanx style="verb">internal_score</spanx>.</t>
</list></t>

<t>This pattern follows JWT private-claim conventions (<xref target="RFC7519"/> Section 4.3) and OAuth scope-string conventions. Verifiers <bcp14>MUST</bcp14> ignore unrecognized claims they do not understand. Verifiers that depend on a behavioral claim for a policy decision <bcp14>MUST</bcp14> fail closed if the claim is absent.</t>

</section>
<section anchor="interaction-with-standard-claims"><name>Interaction with Standard Claims</name>

<t>Vendor-defined claims <bcp14>MUST NOT</bcp14> redefine the meaning of any of the standard claims listed above. A vendor wishing to refine the semantics of, say, <spanx style="verb">tool_misuse_score</spanx> <bcp14>MUST</bcp14> publish a new vendor-namespaced claim (e.g., <spanx style="verb">acme:tool_misuse_score_v2</spanx>) rather than redefining the standard one.</t>

</section>
</section>
<section anchor="composition-profiles"><name>Composition Profiles</name>

<t>ZTIP is designed to compose with multiple authorization systems. This section specifies normative composition profiles. Deployments <bcp14>SHOULD</bcp14> use a published profile when one exists; vendors <bcp14>MAY</bcp14> define additional profiles for their authorization systems.</t>

<section anchor="composition-with-ztnp"><name>Composition with ZTNP</name>

<t>When composed with the Zero-Trust Negotiation Protocol <xref target="I-D.miller-ztnp"/>:</t>

<t><list style="symbols">
  <t>The Authorization Token is the ZTNP Permit (Section 8 of ZTNP).</t>
  <t>The Key Source is the Issuer Key Set (IKS, Section 6 of ZTNP) for each delegating principal.</t>
  <t>The Delegation Chain (defined in Section 3 of this document) is carried in the PROOF message of ZTNP's Negotiation phase (Section 7.3 of ZTNP), under the <spanx style="verb">delegation_chain</spanx> field.</t>
  <t>ZTIP fields (<spanx style="verb">intent_hash</spanx>, <spanx style="verb">intent_scope</spanx>, <spanx style="verb">chain_root_iss</spanx>, <spanx style="verb">chain_root_jti</spanx>) are top-level fields on the Permit.</t>
  <t>Behavioral Claims appear under the <spanx style="verb">ai_behavior</spanx> namespace in any credential about the Prover. Their canonical placement is on the Posture Assertion at <spanx style="verb">claims.posture.ai_behavior</spanx> (a profile-defined extension under ZTNP's <spanx style="verb">claims.posture</spanx> per Section 5.4 of ZTNP). Profiles <bcp14>MAY</bcp14> additionally place per-issuance Behavioral Claims on the Permit at <spanx style="verb">ai_behavior</spanx> (e.g., the MCP profile's <spanx style="verb">legacy_stdio_binding</spanx> flag), where they describe a property of how the Permit was issued rather than the long-lived posture of the Prover.</t>
</list></t>

<t>A worked example using this profile appears in Appendix A.</t>

</section>
<section anchor="composition-with-oauth-20-jwt"><name>Composition with OAuth 2.0 / JWT</name>

<t>When composed with OAuth 2.0 <xref target="RFC6749"/> access tokens in JWT format (<xref target="RFC7519"/>):</t>

<t><list style="symbols">
  <t>The Authorization Token is the JWT access token.</t>
  <t>The Key Source for chain-layer signature verification is each principal's published JWKS endpoint, located via OAuth Authorization Server Metadata or a similar discovery mechanism.</t>
  <t>ZTIP fields are top-level claims in the access token JWT, alongside <spanx style="verb">iss</spanx>, <spanx style="verb">sub</spanx>, <spanx style="verb">aud</spanx>, <spanx style="verb">exp</spanx>, <spanx style="verb">scope</spanx>.</t>
  <t>The Delegation Chain is carried in a separate HTTP header alongside the bearer token:</t>
</list></t>

<figure><artwork><![CDATA[
Authorization: Bearer <jwt_access_token>
ZTIP-Chain: <delegation_chain_compact_jws>
]]></artwork></figure>

<t><list style="symbols">
  <t>Behavioral Claims appear in the access token under a top-level <spanx style="verb">ai_behavior</spanx> claim (an object), alongside the Intent-Scoped fields.</t>
</list></t>

<t>The JWT access token, with ZTIP fields, looks like:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "iss": "https://auth.example",
  "sub": "agent:summarizer-3",
  "aud": "https://api.example",
  "exp": 1745504400,
  "iat": 1745500900,
  "scope": "email.read",
  "intent_hash": "Q9h_MJaQrDtKRb7MKfwg664jUWmVlErfdS8Qm1y6qNc",
  "intent_scope": { "actions": ["read"], "tools": ["email.read"] },
  "chain_root_iss": "user:alice",
  "chain_root_jti": "intent_01HVXYZ_SUMMARIZE_REQUEST",
  "ai_behavior": {
    "prompt_injection_tested": true,
    "human_in_loop_policy": "on_high_risk"
  }
}
]]></sourcecode></figure>

<t>This composition layers ZTIP cleanly above OAuth without modifying OAuth's core flows. The OAuth Authorization Server is responsible for issuing tokens that include the ZTIP fields; the resource server is responsible for performing the scope-consistency check (Section 4.2) on each request.</t>

</section>
<section anchor="composition-with-gnap"><name>Composition with GNAP</name>

<t>When composed with the Grant Negotiation and Authorization Protocol <xref target="RFC9635"/>, ZTIP uses GNAP's extension-parameter registries (Section 10 of <xref target="RFC9635"/>) rather than overloading existing fields.</t>

<t><strong>Delegation Chain in the grant request.</strong> The Delegation Chain is carried as a top-level extension parameter <spanx style="verb">ztip_delegation_chain</spanx> on the grant request body, in compact-JWS form. This parameter is intended for registration in the "GNAP Grant Request Parameters" registry (Section 10.3 of <xref target="RFC9635"/>).</t>

<figure><artwork><![CDATA[
POST /grant HTTP/1.1
Content-Type: application/json

{
  "access_token": { "access": [ ... ] },
  "client": { "key": { ... } },
  "ztip_delegation_chain": "<compact-JWS of outermost layer>"
}
]]></artwork></figure>

<t>The AS validates the chain (Section 3.3 of this document) before issuing access tokens. A failed validation <bcp14>MUST</bcp14> cause the grant request to be rejected with the appropriate ZTIP reason code reported in an extension field on the GNAP error response.</t>

<t><strong>ZTIP fields on the issued access token.</strong> When the AS issues an access token in response to a chain-bearing grant request, the token <bcp14>MUST</bcp14> carry the ZTIP fields <spanx style="verb">intent_hash</spanx>, <spanx style="verb">intent_scope</spanx>, <spanx style="verb">chain_root_iss</spanx>, and <spanx style="verb">chain_root_jti</spanx> (Section 4 of this document). Placement depends on the access-token format the AS issues:</t>

<t><list style="symbols">
  <t>If the AS issues a JWT access token, the ZTIP fields appear as top-level claims (per the OAuth 2.0 / JWT composition in Section 6.2 of this document).</t>
  <t>If the AS issues an opaque token, the ZTIP fields are returned alongside the token in the grant response under an extension parameter <spanx style="verb">ztip</spanx> (object), intended for registration in the "GNAP Grant Response Parameters" registry (Section 10.12 of <xref target="RFC9635"/>). The opaque token's introspection response <bcp14>MUST</bcp14> also include these fields when introspection is supported.</t>
</list></t>

<t><strong>Key Source for chain layer signatures.</strong> Each delegating principal in the chain has its own signing key. GNAP's grant-request flow exposes the <em>immediate</em> client's key via the <spanx style="verb">client.key</spanx> field; ZTIP requires keys for <em>every</em> principal in the chain. The composition resolves this by requiring that each chain layer's <spanx style="verb">delegator</spanx> identifier be a URI dereferenceable to a JWKS, or alternatively that the AS maintain an out-of-band trust store for known delegators. Profiles <bcp14>MAY</bcp14> further constrain this; this base spec leaves the choice to deployment.</t>

<t><strong>Continuation requests.</strong> GNAP supports continuation of a grant for token refresh and modification. When a continuation request modifies the authorized scope, the client <bcp14>MAY</bcp14> supply a new <spanx style="verb">ztip_delegation_chain</spanx> value (e.g., representing a further-narrowed delegation). The AS <bcp14>MUST</bcp14> validate that the new chain's scope is consistent with — and not broader than — the chain that originally established the grant.</t>

<t><strong>What this section does not specify.</strong> Wire-level normative details — exact field names accepted into the IANA GNAP registries, exact error-response shape, interaction-mode semantics when a chain is required for an interaction step — are deliberately left to a companion profile document. Implementers wanting an end-to-end conformant GNAP+ZTIP deployment <bcp14>SHOULD</bcp14> await or contribute to that companion document. The sketch above is sufficient for early experimentation and for soliciting feedback from the GNAP working group, but it is not a complete profile.</t>

</section>
<section anchor="custom-authorization-systems"><name>Custom Authorization Systems</name>

<t>Implementations <bcp14>MAY</bcp14> compose ZTIP with bespoke authorization systems. The composition document <bcp14>MUST</bcp14> specify:</t>

<t><list style="numbers" type="1">
  <t>The signed credential serving as the Authorization Token.</t>
  <t>A Key Source for each principal that may sign a delegation chain layer.</t>
  <t>A carriage mechanism for the chain alongside the credential.</t>
  <t>A reason-code mapping if the composition's transport differs from HTTP.</t>
  <t>The placement of ZTIP fields (<spanx style="verb">intent_hash</spanx>, etc.) within the Authorization Token.</t>
  <t>The placement of Behavioral Claims within any associated agent credential.</t>
</list></t>

<t>A composition profile <bcp14>SHOULD</bcp14> be published as a separate document when intended for cross-organization use.</t>

</section>
<section anchor="deployment-pattern-transparent-intermediate-signer"><name>Deployment Pattern: Transparent Intermediate Signer</name>

<t>This subsection describes a recurring deployment pattern that ZTIP supports without additional protocol machinery. It is informative; the underlying mechanics (Sections 3 and 4) are unchanged.</t>

<t>In some delegation chains, requiring per-action human approval is operationally prohibitive — a chat-driven session where the user types ten messages per minute cannot reasonably re-prompt for explicit approval on each turn. The practical pattern that emerges:</t>

<t><list style="numbers" type="1">
  <t><strong>Layer 0 (root):</strong> The user (Originator) signs a session-level intent at session establishment. The <spanx style="verb">intent_object</spanx> describes the broad scope the user is authorizing for the session ("answer questions and call tools related to my project X using only my internal documents"). This is one human-consented signing event.</t>
  <t><strong>Layer 1 (transparent intermediate):</strong> A trusted Planner or session controller — running under the user's identity but operating without per-turn user approval — signs delegation layers programmatically as the session proceeds. Each per-turn delegation reduces scope further (<spanx style="verb">scope_reduction</spanx>) based on the specific user request that turn. The Planner is <em>transparent</em> because it adds chain layers without re-prompting; it is <em>trusted</em> because it is structurally above the prompt-injection-exposed Worker and constrained by the root's scope.</t>
  <t><strong>Layer 2 (worker):</strong> A sub-agent (potentially exposed to prompt injection from tool outputs) operates under the per-turn delegation. Its scope is reduced from the Planner's scope, which is reduced from the root.</t>
</list></t>

<t>The transparent intermediate signer pattern works within ZTIP's existing primitives:</t>

<t><list style="symbols">
  <t>The chain has arbitrary depth (Section 3.5 caps at 8 by default).</t>
  <t>Every layer enforces scope monotonicity (Section 3.4).</t>
  <t>The root retains the user-consented <spanx style="verb">intent_object</spanx>; intermediate layers carry only <spanx style="verb">scope_reduction</spanx> (no new intent).</t>
  <t>Any operation reaching the final tool is constrained by the intersection of all layers' scopes.</t>
</list></t>

<t><strong>Security requirements for the intermediate signer:</strong></t>

<t><list style="symbols">
  <t>The intermediate's signing key <bcp14>MUST</bcp14> be under operational control of the same trust principal as the user's signing environment (the Planner is part of the user's session infrastructure, not a third-party service).</t>
  <t>The intermediate <bcp14>MUST</bcp14> enforce scope monotonicity at signing time; an intermediate that signs scopes broader than the root authorized is a security failure regardless of downstream verification.</t>
  <t>The intermediate <bcp14>SHOULD</bcp14> log per-turn signing decisions to a tamper-evident audit trail. The log <bcp14>SHOULD</bcp14> include the user's per-turn input that derived the <spanx style="verb">scope_reduction</spanx> (so a subsequent audit can reconstruct what was authorized for each turn).</t>
  <t>The intermediate <bcp14>SHOULD</bcp14> use a short-lived signing key bound to the session (e.g., generated at session establishment, deleted at session termination), to limit the blast radius if the key is exposed.</t>
</list></t>

<t><strong>When to use this pattern:</strong></t>

<t><list style="symbols">
  <t>Long-running interactive sessions where user re-approval per action is unworkable.</t>
  <t>Programmatic decomposition of a high-level user intent into low-level tool calls, where the decomposition is performed by trusted infrastructure, not by the prompt-injection-exposed Worker.</t>
  <t>Multi-turn chat UX where each turn produces a new sub-intent within the session-level intent.</t>
</list></t>

<t><strong>When NOT to use this pattern:</strong></t>

<t><list style="symbols">
  <t>High-stakes single-action authorizations (financial transfers, irreversible operations) where per-action explicit consent is the security boundary.</t>
  <t>Deployments where the intermediate signer is not under the user's trust principal (e.g., a third-party SaaS Planner).</t>
</list></t>

<t><strong>Trust-boundary implications.</strong> The transparent intermediate signer pattern shifts the human-consent boundary from per-action to per-session, with a trusted automated signing authority producing the per-turn delegation layers in between. This is a deliberate tradeoff for operational viability, and adopters <bcp14>SHOULD</bcp14> treat it as a meaningful change in their threat model rather than an implementation detail. A compromised intermediate cannot expand scope (Section 3.4 prevents that — every per-turn delegation is still strictly within the root intent's scope), but it can manipulate behavior within the authorized space: which tools to invoke, in what order, with what arguments, drawing on which session inputs. For most session-level scopes this residual surface is acceptable; for scopes broad enough that within-scope behavior can itself cause harm, it is not. Two consequences:</t>

<t><list style="numbers" type="1">
  <t>The intermediate signer is a high-value target equivalent in sensitivity to the Originator's signing surface for the duration of the session, and <bcp14>SHOULD</bcp14> receive equivalent operational hardening (HSM-backed keys, restricted access, monitored signing surfaces).</t>
  <t>The session-level <spanx style="verb">intent_object</spanx> <bcp14>SHOULD</bcp14> be no broader than the user would be willing to authorize unattended for the session's duration. If a session-level intent encompasses high-stakes actions, those actions belong in a separate, narrower intent signed at the moment they are needed (per the "When NOT to use this pattern" guidance above), not within the broad session intent.</t>
</list></t>

<t>Future profile documents <bcp14>MAY</bcp14> formalize specific implementations of this pattern (e.g., by specifying a distinct identifier prefix for transparent intermediates, audit-log requirements, key-lifetime bounds). This base specification deliberately leaves the implementation details to deployments and profile authors.</t>

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

<t>This section is <bcp14>REQUIRED</bcp14> by <xref target="RFC3552"/>. ZTIP introduces security properties beyond those provided by any single authorization system; this section enumerates the additional adversaries and mitigations specific to ZTIP. Composition-specific security considerations (e.g., the security considerations of OAuth 2.0 or ZTNP) continue to apply to deployments using those compositions.</t>

<section anchor="trust-anchor"><name>Trust Anchor</name>

<t>The security of ZTIP is strictly bounded by the trustworthiness of the Originator and the integrity of the Originator's signing environment. This is the protocol's trust anchor, analogous to the certificate-authority hierarchy in TLS or the issuer in OAuth: every guarantee ZTIP provides downstream is conditional on the Originator having signed something the Originator actually meant to sign.</t>

<t>A compromised or malicious Originator can produce a maximally-broad <spanx style="verb">intent_object</spanx> and a chain authorizing any downstream principal; verifiers cannot distinguish such an intent from a legitimate one within the chain itself. ZTIP's defenses (scope monotonicity, intent binding, chain auditability) protect against compromise <em>after</em> signing — they do not protect against compromise <em>at</em> signing time.</t>

<t>Mitigations for the trust-anchor surface are deliberately out-of-protocol and <bcp14>SHOULD</bcp14> include:</t>

<t><list style="symbols">
  <t>HSM-backed or hardware-bound storage of the Originator's signing key.</t>
  <t>Short Signed-Intent lifetimes (<spanx style="verb">exp</spanx> close to <spanx style="verb">iat</spanx>) so that a compromised intent has limited reach.</t>
  <t>Multi-factor or additional-channel approval at the signing surface for high-stakes intents (e.g., financial transfers, irreversible operations).</t>
  <t>Human review of <spanx style="verb">intent_object</spanx> contents at the signing UI before the signature is produced — i.e., the user signs what the user sees.</t>
  <t>Tamper-evident logging of every Originator signing event, so that compromise can be detected after-the-fact even if it cannot be prevented in real time.</t>
</list></t>

<t>Deployments evaluating ZTIP for a particular threat model <bcp14>SHOULD</bcp14> treat the Originator's signing environment with the same operational rigor they would apply to a CA's root key.</t>

</section>
<section anchor="additional-adversaries"><name>Additional Adversaries</name>

<texttable>
      <ttcol align='left'>Adversary</ttcol>
      <ttcol align='left'>Goal</ttcol>
      <c>ADV-PROMPT-INJECT</c>
      <c>Controls user-supplied content reaching an agent; wants to substitute the operational intent.</c>
      <c>ADV-CHAIN-FORGER</c>
      <c>Attempts to forge a Delegation Chain claiming authority from a root Originator the chain recipient trusts.</c>
      <c>ADV-SCOPE-EXPANDER</c>
      <c>Controls a sub-agent in the middle of a chain; attempts to grant downstream agents broader scope than the parent layer authorized.</c>
      <c>ADV-DEPTH-FLOODER</c>
      <c>Constructs deeply-nested chains to consume verifier resources (CPU, stack, signature-verification time) at the receiver.</c>
</texttable>

</section>
<section anchor="attack-surface-and-mitigations"><name>Attack Surface and Mitigations</name>

<texttable>
      <ttcol align='left'>Attack</ttcol>
      <ttcol align='left'>Mitigation</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>Prompt-injected confused deputy</c>
      <c>Intent-Scoped Authorization Tokens (Section 4) bind authorization to the original signed intent. The injected instruction substitutes a new intent that does not match <spanx style="verb">intent_hash</spanx>; gated operations fail with <spanx style="verb">INTENT_SCOPE_MISMATCH</spanx>.</c>
      <c>Section 4</c>
      <c>Chain forgery</c>
      <c>Each layer's signature is verified against the issuing principal's published key (Section 3.3 rule 1). An adversary cannot forge a layer without the corresponding private key.</c>
      <c>Section 3.3</c>
      <c>Scope expansion mid-chain</c>
      <c>Scope monotonicity enforcement (Section 3.3 rule 3 and Section 3.4) rejects any chain in which a child layer grants broader scope than its parent.</c>
      <c>Section 3.3, 3.4</c>
      <c>Chain replay</c>
      <c>Chain layers carry <spanx style="verb">iat</spanx>/<spanx style="verb">exp</spanx>; receivers <bcp14>MUST</bcp14> reject expired layers (Section 3.3 rule 5). The root Signed Intent's <spanx style="verb">jti</spanx> can be tracked to prevent intent replay across sessions.</c>
      <c>Section 3.3</c>
      <c>Originator key compromise</c>
      <c>Outside ZTIP's defense — same status as Issuer key compromise in any signing-based system. Mitigated by short Signed-Intent lifetimes and Originator-side HSM use.</c>
      <c>(Out of scope)</c>
      <c>Behavioral-claim misrepresentation</c>
      <c>Behavioral claims (Section 5) are signed by whatever credential issuer carries them. Verifiers <bcp14>MAY</bcp14> require specific issuers known to assess behavioral properties rigorously.</c>
      <c>Section 5</c>
      <c>Chain-depth flood / verifier resource exhaustion</c>
      <c>Maximum chain depth enforcement (Section 3.5). Depth <bcp14>MUST</bcp14> be checked before signature verification to prevent stack/CPU exhaustion.</c>
      <c>Section 3.5</c>
</texttable>

</section>
<section anchor="out-of-scope"><name>Out of Scope</name>

<t>ZTIP does not defend against:</t>

<t><list style="symbols">
  <t><strong>Compromise of the Originator before they sign the intent.</strong> The Originator's signing environment is the trust root; if it is compromised, the adversary can sign arbitrary intents that downstream verifiers will treat as legitimate. Mitigations are out-of-protocol (HSM, hardware-bound signing, multi-factor approval at signing time).</t>
  <t><strong>Side-channel observation of intent contents.</strong> The <spanx style="verb">intent_object</spanx> is visible to every verifier in the chain (each verifier needs to recompute the hash). Information that should not be visible in transit <bcp14>MUST</bcp14> be redacted from the canonical intent before signing — see Privacy Considerations (Section 8) for guidance.</t>
</list></t>

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

<t>This section is informed by <xref target="RFC6973"/>.</t>

<t><strong>Intent string sensitivity.</strong> The canonical-intent-string (the source of <spanx style="verb">intent_hash</spanx>) describes what a user asked the system to do. It <bcp14>MAY</bcp14> be sensitive (medical, legal, financial). Implementations <bcp14>MUST NOT</bcp14> log canonical-intent-strings without retention controls. The <spanx style="verb">intent_hash</spanx> is non-reversible and <bcp14>MAY</bcp14> be logged.</t>

<t><strong>Intent visibility is a structural tradeoff, not just a privacy concern.</strong> Verifiable intent binding requires every verifier in the chain to see the intent contents (or a hash thereof, with downstream lookup). For deployments where intent contents are themselves sensitive — financial transaction details, medical context, legal strategy, regulated business data — this visibility is a deployment-feasibility constraint, not a privacy nicety. Some enterprise deployments may reject intent-binding altogether on this ground; deployments evaluating ZTIP for adoption <bcp14>SHOULD</bcp14> plan their intent schema with this constraint in mind from the outset. The mitigations below shape what can be carried in <spanx style="verb">intent_object</spanx> without leaking; they do not remove the underlying tradeoff between verifiability and confidentiality.</t>

<t><strong>Intent contents are visible to all verifiers.</strong> Every verifier in the chain receives the root layer's <spanx style="verb">intent_object</spanx> (it must, in order to recompute the hash and evaluate <spanx style="verb">intent_scope</spanx>). The intent contents are therefore visible to every layer between Originator and final verifier. Originators <bcp14>MUST NOT</bcp14> include in <spanx style="verb">intent_object</spanx> any information that must remain confidential to a subset of verifiers. Three patterns help:</t>

<t><list style="symbols">
  <t><strong>Field redaction at signing time.</strong> The Originator's signing application removes sensitive details from <spanx style="verb">intent_object</spanx> before canonicalization, signing only what verifiers need to evaluate scope. The user-readable intent stays in the user's local logs, not in the signed chain.</t>
  <t><strong>Reference-by-hash.</strong> Sensitive payloads are hashed; the chain carries only the hash. Downstream agents look up the actual content via a separate authenticated channel.</t>
  <t><strong>Profile-specific encryption.</strong> Some profiles may layer envelope encryption over <spanx style="verb">intent_object</spanx> for verifiers who hold the appropriate key. This is out of scope for ZTIP base; profile documents <bcp14>MAY</bcp14> specify it.</t>
</list></t>

<t><strong>Delegation chain disclosure.</strong> A Delegation Chain reveals the orchestration topology (which orchestrator, which sub-agents, which tools). Where this is sensitive, deployments <bcp14>MAY</bcp14> truncate chains exposed to external receivers, retaining only the layers the receiver needs to verify.</t>

<t><strong>Behavioral-claim disclosure.</strong> Some behavioral claims (e.g., <spanx style="verb">human_in_loop_policy: never</spanx>) reveal architectural choices that adversaries could exploit. Issuers and Provers <bcp14>SHOULD</bcp14> coordinate on which behavioral claims are appropriate to expose at which trust boundaries.</t>

<t><strong>Originator linkability.</strong> A persistent Originator identifier (<spanx style="verb">user:alice</spanx>) creates linkability across all chains the Originator participates in. Deployments <bcp14>MAY</bcp14> use ephemeral Originator identifiers per-session where the deployment context permits.</t>

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

<t>This document requests the following IANA actions.</t>

<t>The ZTIP IANA footprint is intentionally minimal: a single new registry (Denial Reason Codes), a single HTTP field registration (<spanx style="verb">ZTIP-Chain</spanx>), and zero new registries for behavioral claim names. The single registry uses Specification Required allocation per <xref target="RFC8126"/> — anyone able to write a stable specification document can register a new reason code, with no IETF consensus action required per registration. Composition profile documents are expected to add reason codes for their domain; the Specification Required policy keeps that path open for vendor and consortium specifications without burdening either IANA or the IETF process.</t>

<section anchor="ztip-denial-reason-code-registry"><name>ZTIP Denial Reason Code Registry</name>

<t>This document requests creation of a registry titled "ZTIP Denial Reason Codes". It administers reason codes returned by ZTIP-aware verifiers when rejecting a request.</t>

<t>Allocation Policy: Specification Required (per <xref target="RFC8126"/>).</t>

<t>Initial Registrations:</t>

<texttable>
      <ttcol align='left'>Code</ttcol>
      <ttcol align='left'>Meaning</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">DEL_CHAIN_MISSING</spanx></c>
      <c>Policy requires a Delegation Chain but none was provided</c>
      <c>This document, Section 3</c>
      <c><spanx style="verb">DEL_CHAIN_BROKEN</spanx></c>
      <c>Chain of <spanx style="verb">delegator</spanx>/<spanx style="verb">delegatee</spanx> references has a gap</c>
      <c>This document, Section 3</c>
      <c><spanx style="verb">DEL_CHAIN_SCOPE_EXPANDED</spanx></c>
      <c>A child layer attempts to grant broader scope than its parent</c>
      <c>This document, Sections 3, 3.4</c>
      <c><spanx style="verb">DEL_CHAIN_EXPIRED</spanx></c>
      <c>One or more chain layers has expired</c>
      <c>This document, Section 3</c>
      <c><spanx style="verb">DEL_CHAIN_UNTRUSTED_ROOT</spanx></c>
      <c>The root Signed Intent is not signed by a trusted Originator</c>
      <c>This document, Section 3</c>
      <c><spanx style="verb">DEL_CHAIN_DEPTH_EXCEEDED</spanx></c>
      <c>The chain exceeds the verifier's configured maximum depth</c>
      <c>This document, Section 3.5</c>
      <c><spanx style="verb">INTENT_SCOPE_MISMATCH</spanx></c>
      <c>The requested operation is outside the scope authorized by the root Signed Intent</c>
      <c>This document, Section 4</c>
</texttable>

<t>Composition profiles <bcp14>MAY</bcp14> add codes via Specification Required.</t>

</section>
<section anchor="http-field-name-registration"><name>HTTP Field Name Registration</name>

<t>This document requests registration of the following HTTP field name in the "Hypertext Transfer Protocol (HTTP) Field Name Registry" (per <xref target="RFC9110"/> Section 16.3.1):</t>

<texttable>
      <ttcol align='left'>Field Name</ttcol>
      <ttcol align='left'>Status</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">ZTIP-Chain</spanx></c>
      <c>permanent</c>
      <c>This document, Section 6.2</c>
</texttable>

<t><strong>Specification:</strong> The <spanx style="verb">ZTIP-Chain</spanx> HTTP header field carries a Delegation Chain (Section 3) as a single compact-serialized JSON Web Signature <xref target="RFC7515"/> value. It is sent by clients alongside an <spanx style="verb">Authorization: Bearer</spanx> header in the OAuth 2.0 composition profile (Section 6.2). The field value is the outermost JWS of a Delegation Chain in compact serialization. The field <bcp14>MUST NOT</bcp14> appear more than once in a single request; a request bearing multiple <spanx style="verb">ZTIP-Chain</spanx> fields <bcp14>MUST</bcp14> be rejected with <spanx style="verb">DEL_CHAIN_BROKEN</spanx>.</t>

<t><strong>Comments:</strong> The author searched the IANA HTTP Field Name Registry as of the date of publication and found no existing field named <spanx style="verb">ZTIP-Chain</spanx>, no existing field beginning with <spanx style="verb">ZTIP-</spanx>, and no closely-related field name. The closest prefix-matching field is <spanx style="verb">Client-Cert-Chain</spanx>, which addresses TLS certificate-chain transport — a different domain from delegation-chain transport.</t>

</section>
<section anchor="note-on-behavioral-claim-names"><name>Note on Behavioral Claim Names</name>

<t>ZTIP does not request creation of an IANA registry for behavioral claim names. Section 5 specifies a standard set of claims (<spanx style="verb">prompt_injection_tested</spanx>, <spanx style="verb">tool_call_audit_logged</spanx>, etc.) and an extension mechanism using URI-namespaced names, vendor-prefixed names, and privately-agreed names. This intentional non-allocation mirrors the framework_id approach in ZTNP: the diversity of bespoke and enterprise behavioral claims makes a central registry impractical, and the namespacing conventions in Section 5 provide collision-free extension without IANA gatekeeping.</t>

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

<t>This section records known implementations per RFC 7942 and is to be removed before publication as an RFC.</t>

<t>A reference TypeScript implementation of Delegation Chain verification, Intent-Scoped Authorization enforcement, and Behavioral Claim parsing is in progress at:</t>

<figure><artwork><![CDATA[
https://github.com/agent-trust-protocols/agent-trust-protocols/tree/main/reference/typescript/ztip
]]></artwork></figure>

<t>Test vectors covering valid chains, broken chains, scope-expanded chains, depth-exceeded chains, expired chains, and intent-scope mismatches are at:</t>

<figure><artwork><![CDATA[
https://github.com/agent-trust-protocols/agent-trust-protocols/tree/main/test-vectors/ztip
]]></artwork></figure>

<t>A Python reference implementation is planned. Composition-profile reference implementations (OAuth, ZTNP) are planned as the protocols stabilize.</t>

</section>


  </middle>

  <back>


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

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



<reference anchor="RFC3986">
  <front>
    <title>Uniform Resource Identifier (URI): Generic Syntax</title>
    <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
    <author fullname="R. Fielding" initials="R." surname="Fielding"/>
    <author fullname="L. Masinter" initials="L." surname="Masinter"/>
    <date month="January" year="2005"/>
    <abstract>
      <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="66"/>
  <seriesInfo name="RFC" value="3986"/>
  <seriesInfo name="DOI" value="10.17487/RFC3986"/>
</reference>
<reference anchor="RFC7515">
  <front>
    <title>JSON Web Signature (JWS)</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 Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7515"/>
  <seriesInfo name="DOI" value="10.17487/RFC7515"/>
</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="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="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="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 title='Informative References' anchor="sec-informative-references">



<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="RFC6749">
  <front>
    <title>The OAuth 2.0 Authorization Framework</title>
    <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
    <date month="October" year="2012"/>
    <abstract>
      <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6749"/>
  <seriesInfo name="DOI" value="10.17487/RFC6749"/>
</reference>
<reference anchor="RFC6973">
  <front>
    <title>Privacy Considerations for Internet Protocols</title>
    <author fullname="A. Cooper" initials="A." surname="Cooper"/>
    <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
    <author fullname="B. Aboba" initials="B." surname="Aboba"/>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <author fullname="J. Morris" initials="J." surname="Morris"/>
    <author fullname="M. Hansen" initials="M." surname="Hansen"/>
    <author fullname="R. Smith" initials="R." surname="Smith"/>
    <date month="July" year="2013"/>
    <abstract>
      <t>This document offers guidance for developing privacy considerations for inclusion in protocol specifications. It aims to make designers, implementers, and users of Internet protocols aware of privacy-related design choices. It suggests that whether any individual RFC warrants a specific privacy considerations section will depend on the document's content.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6973"/>
  <seriesInfo name="DOI" value="10.17487/RFC6973"/>
</reference>
<reference anchor="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="RFC8693">
  <front>
    <title>OAuth 2.0 Token Exchange</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
    <author fullname="B. Campbell" initials="B." role="editor" surname="Campbell"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
    <date month="January" year="2020"/>
    <abstract>
      <t>This specification defines a protocol for an HTTP- and JSON-based Security Token Service (STS) by defining how to request and obtain security tokens from OAuth 2.0 authorization servers, including security tokens employing impersonation and delegation.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8693"/>
  <seriesInfo name="DOI" value="10.17487/RFC8693"/>
</reference>
<reference anchor="RFC9449">
  <front>
    <title>OAuth 2.0 Demonstrating Proof of Possession (DPoP)</title>
    <author fullname="D. Fett" initials="D." surname="Fett"/>
    <author fullname="B. Campbell" initials="B." surname="Campbell"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="D. Waite" initials="D." surname="Waite"/>
    <date month="September" year="2023"/>
    <abstract>
      <t>This document describes a mechanism for sender-constraining OAuth 2.0 tokens via a proof-of-possession mechanism on the application level. This mechanism allows for the detection of replay attacks with access and refresh tokens.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9449"/>
  <seriesInfo name="DOI" value="10.17487/RFC9449"/>
</reference>
<reference anchor="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="I-D.miller-ztnp" >
  <front>
    <title>Zero-Trust Negotiation Protocol (ZTNP) Core</title>
    <author initials="J." surname="Miller">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-miller-ztnp-00"/>
</reference>
<reference anchor="Macaroons2014" target="https://research.google/pubs/pub41892/">
  <front>
    <title>Macaroons: Cookies with Contextual Caveats for Decentralized Authorization in the Cloud</title>
    <author initials="A." surname="Birgisson">
      <organization></organization>
    </author>
    <author initials="J. G." surname="Politz">
      <organization></organization>
    </author>
    <author initials="Ú." surname="Erlingsson">
      <organization></organization>
    </author>
    <author initials="A." surname="Taly">
      <organization></organization>
    </author>
    <author initials="M." surname="Vrable">
      <organization></organization>
    </author>
    <author initials="M." surname="Lentczner">
      <organization></organization>
    </author>
    <date year="2014"/>
  </front>
  <seriesInfo name="NDSS Symposium" value="2014"/>
</reference>


    </references>

</references>


<?line 808?>

<section anchor="worked-example-three-hop-delegation-chain-ztnp-composition"><name>Worked Example: Three-Hop Delegation Chain (ZTNP Composition)</name>

<t>This appendix presents a complete example of a three-party delegation chain using the <strong>ZTNP composition profile</strong> (Section 6.1). It is informative; it does not introduce new normative requirements. Implementers <bcp14>SHOULD</bcp14> verify their implementation against this example.</t>

<section anchor="scenario"><name>Scenario</name>

<t>User Alice asks her orchestrator to "summarize my unread emails from the last 24 hours and produce a markdown digest." The orchestrator delegates the work to a specialized summarizer agent, which in turn calls the email-read tool. Three signing principals participate:</t>

<t><list style="symbols">
  <t><spanx style="verb">user:alice</spanx> — the Originator (root)</t>
  <t><spanx style="verb">principal:orchestrator-1</spanx> — the orchestrator</t>
  <t><spanx style="verb">agent:summarizer-3</spanx> — the summarizer agent</t>
</list></t>

<t>The downstream tool <spanx style="verb">tool:email.read</spanx> receives the call and verifies the entire chain before serving the request.</t>

</section>
<section anchor="a1-layer-0-signed-intent-root"><name>A.1 Layer 0: Signed Intent (Root)</name>

<t>Alice's signing application produces the following <spanx style="verb">intent_object</spanx>:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "action": "summarize",
  "scope": {
    "actions": ["read"],
    "data": ["internal", "pii"],
    "tools": ["email.list", "email.read"]
  },
  "target": "unread emails from the last 24 hours",
  "constraints": {
    "must_not": ["email.send", "email.delete"]
  }
}
]]></sourcecode></figure>

<t>After JCS canonicalization per Section 3.2, the canonical bytes are:</t>

<figure><artwork><![CDATA[
{"action":"summarize","constraints":{"must_not":["email.send","email.delete"]},"scope":{"actions":["read"],"data":["internal","pii"],"tools":["email.list","email.read"]},"target":"unread emails from the last 24 hours"}
]]></artwork></figure>

<t>The base64url-encoded SHA-256 of these UTF-8 bytes is the <spanx style="verb">intent_hash</spanx>. For this <spanx style="verb">intent_object</spanx> the value is:</t>

<figure><artwork><![CDATA[
intent_hash = Q9h_MJaQrDtKRb7MKfwg664jUWmVlErfdS8Qm1y6qNc
]]></artwork></figure>

<t>This is the same <spanx style="verb">intent_object</spanx> (and therefore the same hash) as Example 1 in Section 3.2.</t>

<t>The root layer's full payload (before JWS signing):</t>

<figure><sourcecode type="json"><![CDATA[
{
  "del_chain_ver": "0.1",
  "intent_root": true,
  "originator": "user:alice",
  "intent_object": { /* as shown above */ },
  "intent_hash": "Q9h_MJaQrDtKRb7MKfwg664jUWmVlErfdS8Qm1y6qNc",
  "authorized_chain": ["principal:orchestrator-1", "agent:summarizer-3"],
  "scope": { /* same value as intent_object.scope */ },
  "iat": 1745500800,
  "exp": 1745504400,
  "jti": "intent_01HVXYZ_SUMMARIZE_REQUEST"
}
]]></sourcecode></figure>

<t>This payload is signed with Alice's private key. The result is a compact JWS denoted <spanx style="verb">JWS_root</spanx>.</t>

</section>
<section anchor="a2-layer-1-orchestrators-delegation"><name>A.2 Layer 1: Orchestrator's Delegation</name>

<t>The orchestrator receives <spanx style="verb">JWS_root</spanx> and delegates to the summarizer agent:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "del_chain_ver": "0.1",
  "delegator": "principal:orchestrator-1",
  "delegatee": "agent:summarizer-3",
  "scope_reduction": {
    "actions": ["read"],
    "data": ["internal", "pii"],
    "tools": ["email.list", "email.read"]
  },
  "iat": 1745500850,
  "exp": 1745504400,
  "inner": "<JWS_root as compact JWS>"
}
]]></sourcecode></figure>

<t>The orchestrator does not narrow scope here. It signs with its own key, producing <spanx style="verb">JWS_orch</spanx>.</t>

</section>
<section anchor="a3-layer-2-summarizers-delegation"><name>A.3 Layer 2: Summarizer's Delegation</name>

<t>The summarizer narrows scope (no PII, only <spanx style="verb">email.read</spanx>):</t>

<figure><sourcecode type="json"><![CDATA[
{
  "del_chain_ver": "0.1",
  "delegator": "agent:summarizer-3",
  "delegatee": "tool:email.read",
  "scope_reduction": {
    "actions": ["read"],
    "data": ["internal"],
    "tools": ["email.read"]
  },
  "iat": 1745500900,
  "exp": 1745504400,
  "inner": "<JWS_orch as compact JWS>"
}
]]></sourcecode></figure>

<t>Both reductions (data: dropping <spanx style="verb">pii</spanx>; tools: dropping <spanx style="verb">email.list</spanx>) are valid per the Section 3.4 monotonicity table. The summarizer signs with its own key, producing <spanx style="verb">JWS_sum</spanx>. This is the outermost layer and is what travels in the PROOF message's <spanx style="verb">delegation_chain</spanx> field (per the ZTNP composition profile, Section 6.1).</t>

</section>
<section anchor="a4-verification-transcript-at-the-tool"><name>A.4 Verification Transcript at the Tool</name>

<t>The <spanx style="verb">email.read</spanx> tool verifies the chain:</t>

<t>Step 1: Unwrap <spanx style="verb">JWS_sum</spanx>. Verify against <spanx style="verb">agent:summarizer-3</spanx>'s public key (from the IKS, since this is a ZTNP composition).</t>

<t>Step 2: Check expiration: current time = 1745501000, <spanx style="verb">JWS_sum.exp</spanx> = 1745504400. Not expired.</t>

<t>Step 3: Recurse into <spanx style="verb">JWS_sum.inner</spanx>. Unwrap <spanx style="verb">JWS_orch</spanx>. Verify against <spanx style="verb">principal:orchestrator-1</spanx>'s public key.</t>

<t>Step 4: Recurse into <spanx style="verb">JWS_orch.inner</spanx>. Unwrap <spanx style="verb">JWS_root</spanx>. Verify against <spanx style="verb">user:alice</spanx>'s public key. <spanx style="verb">user:alice</spanx> is in the tool's trusted-originators set.</t>

<t>Step 5: Verify root structure: <spanx style="verb">intent_root: true</spanx>; originator matches trusted set.</t>

<t>Step 6: Verify chain integrity. <spanx style="verb">JWS_orch.delegator</spanx> is in <spanx style="verb">JWS_root.authorized_chain</spanx>; <spanx style="verb">JWS_orch.delegatee = JWS_sum.delegator</spanx>.</t>

<t>Step 7: Verify scope monotonicity (Section 3.4) — all subset checks pass.</t>

<t>Step 8: Verify chain depth: 3 layers, well within the default maximum of 8.</t>

<t>Step 9: Recompute <spanx style="verb">intent_hash</spanx> from <spanx style="verb">JWS_root.intent_object</spanx>; compare to <spanx style="verb">JWS_root.intent_hash</spanx>. Match.</t>

<t>All checks pass.</t>

</section>
<section anchor="a5-intent-scoped-permit-issued-alongside-the-chain"><name>A.5 Intent-Scoped Permit Issued Alongside the Chain</name>

<t>Under the ZTNP composition (Section 6.1), an Intent-Scoped Permit covering this scenario:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "iss": "https://gateway.example",
  "sub": "agent:summarizer-3",
  "iat": 1745500900,
  "exp": 1745504400,
  "permit_id": "permit_01HVXYZ_INTENT_TEST",
  "constraints": {
    "actions": ["read"],
    "data": ["internal"],
    "tools": ["email.read"]
  },
  "ch_binding": {
    "method": "tls-exporter",
    "label": "EXPORTER-ZTNP-permit-binding",
    "context_hash": "..."
  },
  "intent_hash": "Q9h_MJaQrDtKRb7MKfwg664jUWmVlErfdS8Qm1y6qNc",
  "intent_scope": {
    "actions": ["read"],
    "data": ["internal"],
    "tools": ["email.read"]
  },
  "chain_root_iss": "user:alice",
  "chain_root_jti": "intent_01HVXYZ_SUMMARIZE_REQUEST"
}
]]></sourcecode></figure>

<t>For a prompt-injected <spanx style="verb">email.send({to: "attacker@example", ...})</spanx> call, the <spanx style="verb">intent_scope.tools</spanx> does not include <spanx style="verb">email.send</spanx>. The verifier returns <spanx style="verb">INTENT_SCOPE_MISMATCH</spanx>. This is the prompt-injection-resistance guarantee.</t>

</section>
<section anchor="a6-failure-modes"><name>A.6 Failure Modes</name>

<t>Three modifications that would cause rejection:</t>

<t><list style="numbers" type="1">
  <t><spanx style="verb">JWS_sum.scope_reduction.tools</spanx> includes <spanx style="verb">email.send</spanx> → <spanx style="verb">DEL_CHAIN_SCOPE_EXPANDED</spanx>.</t>
  <t><spanx style="verb">JWS_orch</spanx>'s signer is unknown to the tool → signature verification fails at Step 3.</t>
  <t><spanx style="verb">JWS_root.intent_object</spanx> differs from what the orchestrator believed → recomputed <spanx style="verb">intent_hash</spanx> differs → <spanx style="verb">INTENT_SCOPE_MISMATCH</spanx>.</t>
  <t>The chain has more than 8 layers → <spanx style="verb">DEL_CHAIN_DEPTH_EXCEEDED</spanx>.</t>
</list></t>

<t>Machine-readable test vectors corresponding to this example are at <spanx style="verb">test-vectors/ztip/</spanx>.</t>

</section>
</section>
<section anchor="comparison-with-macaroons-and-related-capability-tokens"><name>Comparison with Macaroons and Related Capability Tokens</name>

<t>This appendix is informative. It compares ZTIP to macaroons <xref target="Macaroons2014"/> and the related capability-with-caveats tokens (biscuits, wafers) that have appeared since. ZTIP and macaroons share an append-only scope-reduction property and are sometimes considered for the same problems; the comparison clarifies where they overlap and where they diverge.</t>

<section anchor="at-a-glance"><name>At a Glance</name>

<texttable>
      <ttcol align='left'>Property</ttcol>
      <ttcol align='left'>Macaroons / Biscuits / Wafers</ttcol>
      <ttcol align='left'>ZTIP Delegation Chain</ttcol>
      <c>Authentication primitive</c>
      <c>HMAC keyed by issuer (third-party caveats use additional discharge tokens)</c>
      <c>Asymmetric digital signature per layer (any JWS signature alg)</c>
      <c>Identity of each delegator</c>
      <c>Not bound — any token holder can append a caveat</c>
      <c>Each layer's <spanx style="verb">delegator</spanx> and <spanx style="verb">delegatee</spanx> are signed identifiers</c>
      <c>Scope-reduction model</c>
      <c>Caveats: predicates ("user = alice", "expires &lt; T") evaluated at verification</c>
      <c>Structured scope fields with the formal subset relation in Section 3.4</c>
      <c>Originator intent binding</c>
      <c>None — the token represents capability, not intent</c>
      <c><spanx style="verb">intent_hash</spanx> binds the chain to a structured originator intent</c>
      <c>Verification depends on shared secret?</c>
      <c>Yes (or third-party discharge for cross-domain)</c>
      <c>No — verifier needs each delegator's public key, obtained via the deployment's Key Source</c>
      <c>Token format</c>
      <c>Self-contained capability token</c>
      <c>Layered JWS attached alongside an Authorization Token</c>
      <c>Composes with existing token formats?</c>
      <c>Generally replaces them</c>
      <c>Extends OAuth 2.0, GNAP, ZTNP, or vendor tokens</c>
</texttable>

</section>
<section anchor="when-macaroons-fit-better-than-ztip"><name>When Macaroons Fit Better Than ZTIP</name>

<t><list style="symbols">
  <t>Closed deployments where issuer and verifier share an HMAC key and no third party participates in delegation.</t>
  <t>Single-trust-domain capability stores where "anyone holding the token may further restrict it" is the desired semantics.</t>
  <t>Resource-constrained verifiers that cannot perform asymmetric signature verification.</t>
  <t>Use cases where the <em>who</em> of each delegation step is irrelevant — only the <em>what</em> (the resulting set of permitted operations) matters.</t>
</list></t>

</section>
<section anchor="when-ztip-fits-better-than-macaroons"><name>When ZTIP Fits Better Than Macaroons</name>

<t><list style="symbols">
  <t>Multi-principal delegation chains where each delegating principal (user, orchestrator, sub-agent) has its own identity that the verifier needs to verify and audit.</t>
  <t>Deployments where the originator's <em>intent</em> is a first-class security property — that is, where the verifier needs to reject operations consistent with the token's stated scope but inconsistent with what the user actually asked for. This is the prompt-injection / confused-deputy mitigation in Section 4.</t>
  <t>Deployments composing with existing PKI, JWT-based authorization, OAuth 2.0, or GNAP, where introducing a parallel HMAC trust system would be operationally undesirable.</t>
  <t>Audit and forensic environments where reconstructing "which entity authorized which step" must be possible from the chain itself.</t>
</list></t>

</section>
<section anchor="conceptual-lineage"><name>Conceptual Lineage</name>

<t>ZTIP's append-only scope reduction (Section 3.4) shares its philosophical lineage with macaroons. Both encode the principle that delegation may only narrow, never broaden, what was authorized. ZTIP's contribution is to (a) bind the chain's root to a <em>structured intent</em> the originator signed, (b) require each layer to be signed by an identified principal rather than anyone holding the token, and (c) compose with existing authorization-token formats rather than replacing them. The macaroons paper's caveat predicates also influenced ZTIP's design of the <spanx style="verb">constraints</spanx> field on <spanx style="verb">intent_object</spanx> (Section 3.2), which is profile-extensible to support arbitrary additional predicates beyond the structured scope dimensions.</t>

</section>
</section>
<section anchor="conformance-profile"><name>Conformance Profile</name>

<t>ZTIP's three primitives (Delegation Chain Attestation, Intent-Scoped Authorization, Behavioral Claim Extensions) are independently useful, and deployments <bcp14>MAY</bcp14> adopt one without the others (Section 1). The conformance profile defines two conformance levels accordingly.</t>

<t><strong>Full conformance.</strong> An implementation is fully conformant with ZTIP if it implements all three primitives:</t>

<t><list style="symbols">
  <t>Produces and validates Delegation Chain JWS structures per Section 3.</t>
  <t>Enforces scope monotonicity across delegation layers per Section 3.4.</t>
  <t>Enforces a configured maximum chain depth per Section 3.5.</t>
  <t>Issues and enforces Intent-Scoped Authorization Tokens per Section 4.</t>
  <t>Carries <spanx style="verb">ai_behavior</spanx> Behavioral Claims when applicable per Section 5.</t>
  <t>Implements at least one composition profile from Section 6.</t>
</list></t>

<t><strong>Partial conformance.</strong> An implementation supporting only a subset of the three primitives <bcp14>MAY</bcp14> claim partial conformance by listing the primitives it implements (e.g., "ZTIP partial: Delegation Chain Attestation only" or "ZTIP partial: Delegation Chain Attestation + Intent-Scoped Authorization, no Behavioral Claims"). Partial-conformant implementations of any one primitive <bcp14>MUST</bcp14> satisfy that primitive's normative requirements in full — partial conformance refers to which primitives are implemented, not to weakening the requirements within a chosen primitive.</t>

<t>All conforming implementations (full or partial) <bcp14>MUST</bcp14> declare which composition profiles they support.</t>

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

<t>The author thanks the early reviewers for feedback on multi-principal delegation. ZTIP's design draws on the confused-deputy literature and on emerging research into prompt-injection mitigations. The composition-profile pattern follows the precedent set by DPoP <xref target="RFC9449"/>.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA729yXIbWbYtOOdXePEORPABkChRHZXNY1BUhCJEiSFSERmZ
lkY4ACfpIQCOdHeQYoR0rUbXrN7w2RvVqAb1JVV/kl9Se+3mNO4OSrpNXbOb
IQKO46fZZ/d77cFgsFHn9SzbSzb/mpXF4LRcVXXyclFnizo5Lou6mBSzZOuv
py+Pe5sb6XhcZld4lv7e3JgWk0U6p99Oy/S8Hszz2SwrB7/V+XJw797GJK2z
i6K82UuqerqRL8u9pMbo9+/de3rv/kZaZulecpJNVmVe32xcF+X7i7JYLWn0
zY1qNZ7nVZUXi/pmSS94eXj6YuN9dkNPTfc2kmSQTLNZdpHW9AT/mcuMx/li
mi8u+KNlWcyXNX3zazZxz02Kxfmqyqb0++WKXlvV6WJ6ls6KBb3lJqs2lvle
8jdadT+pirIus/OK/nUzl39MivmcXlP9fWNKi9tL7t+7/2hwb3dw//HGRrqq
L4uSJ0f/n9B7q73k+2FyxLvCH8lmfZ++z8JPs3maz/aSX+nj//5bfpVXwzTf
2FgU5ZyWd5VhxLcvDh48ffJI//n44c5D/eeTnfv26ZPHT+zTpzs79/Y2NvLF
eXOQhw/v6z8fPd59av98+viBH9o+ffLoqX36dNc9+/TRA37Ly8HzoTvvxXKP
V9JBSa+JBOqczykip9fHveSgKLNN/mGVlXlWYb4yUMIUWC6yevAcpNWisAVT
GB70247/G7S3/SidpGVRLKr793Z243m6r/ZoLsV7mkJyndeX9Ae9/UO9SmfJ
QXqVpXWV0E4mz7MJHX6ZzvLfiID2+cX5b7K2fJHUl1lyMCtWU1lTnZYXGc38
sq6X1d7du2VWZWk5uRxeFMXFLLu7XI0r/M/uzpOn9++uX8v+MPkmLy/oNjAJ
x6v8dpgcF7O8/i3+5v/9P4fJYTmjm9D+FY13ms5u4g+PhslPZTqeZa2PX9GS
J78tlFaN7Hd215zb5uvnJyfJyc18WVT5ar5Ju4ynNzcGxGnwP0k6rmgPJ/XG
xilt2GeZDl3U83xBJ1NflllGlzqf56BoOZIrmsB5jokHDKHf4Ab9hO54Ms4u
06u8oONL0rrO6OLbwc1XszofpBf4SXVT1dm8otuzM0y2t5+7QZODy5Se3fc/
3d5O/vm//68kTWh2dTYdfP/zCXG6cjWpV2WWEGWVN/TypMovFsxv3EjnxJjo
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
zA8/4bNIxWAXjyQ+Pi7zq5RMkQNETaZG1X6GT+1ntAH7r/dbz+0vYdPnH4id
sC8ICjn8huJySkxHU628Y5XBEN8EwUWOkLBKDhPSnlXFlq1+oZFX6vKR8OV7
UrKRk0AX4OjdyelmX/6bvH7D/357+OO7l28Pn+PfJ9/tv3rl/rGhT5x89+bd
q+f+X/6XB2+Ojg5fP5cf06dJ9NHG5tH+L5tyLJtvjk9fvnm9/2pTvAmslCjV
wtMj6g+L0iVc/yTYqg0yqidlPhZF85uD4//n/9rZJXX5fyN9+f7ODpn0+seT
nce79Mc1GV7yNtVr8Cft2s1GSruZlhzEmbFFRVoCdNm0YofrIoE+RRu5/Tfs
zN/3kj+MJ8ud3T/pB1hw9KHtWfQh71n7k9aPZRM7Pup4jdvN6PPGTsfz3f8l
+tv2PfjwD3+egRMMdp78+U8bCFOcep6wsfGR/0w+ElcguhOy/LjxccD/p//R
P+jZQFZ/FEs39lywDtTiLxL6+9Igsl5fcxbktXhQXaBkiPklJ2KrqJf6I909
6DNLiUGwrk0/CKarxGVX0WQC5IXXWdQzDZpyYl9e11rTRzajOxQpLAFDwbiI
JqkOnFC9iv3wkGIwswOtk/04KgTSuXKFBdzGHBbQrWB1/K1Tx+VkdNyZWgbe
LbTmkCBtWfd3VklfgjFiOPLf8KzCVwh3dO1Mna3AQujJlOJMFNG/sWOdkfcg
vOpTFHhkHET2YZmXFv3R7CGckQRiXUhrGnhOhiRomPdGPsYvjefLCm4RdX49
i84vIm1EvChhsPeclHKR9+d5NptWibk3vSM52d1LIs2x7/7kjcHfrKycgdrO
SO1tfPJrnY9kHYHPBQcQKM036mtL1SoDZYxFzHESwGpMJi6LEw1DXixiepVr
HXlp+H4Hfhr++yW08lJmQrbuFjh1w9vK8W3lBQ1HTts/1NS1u91KWHxTAal4
D8IcBEe7D3ue+G5NR8BmWPg/OYJH0kubL0kZoIkRD75NB9vY2G9/z5pFJ8PJ
F3qQt3KWqs1Xhp6Dx8Z61WRdEV/Fg56xapgjcDkIk7ku06Vlk2S0mSsLGzNz
dZkvOl47RC7RWGN3rbCHHP5NgvhppnEWGQHOGU+6UDxyujNE4jC0XoIrQAtR
y4Xp7IqVpiq5ylNaeEBNYTKBTCYPtfMuHdYRZacyqxp4XnbSbCW6nZx3oNuf
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
d58CHez/A157eJU5JAEA

-->

</rfc>

