Network Working Group I. Schrock
Internet-Draft EMILIA Protocol, Inc.
Intended status: Informational 25 September 2026
Expires: 29 March 2027
The Action Evidence Boundary for Consequential Agent Effects
draft-schrock-action-evidence-boundary-07
Abstract
Consequential agent actions can cross identity, transport,
authorization, policy, and execution systems. Each system can
produce a valid artifact while the executor still lacks a safe rule
for joining the artifacts to the exact effect, consuming one-time
authority, and handling an uncertain outcome. This document defines
the Action Evidence Boundary (AEB), an executor-side processing model
for that lifecycle.
AEB requires native artifact verification, exact-action binding, a
relying-party authorization decision, durable atomic consumption or
reservation, provider entry, closed effect outcomes, and
authenticated reconciliation. One grant of native authority is
identified by a relying-party-pinned authority namespace, which
defaults to its issuer, and its native authorization identifier, so
rewrapping or relabelling the grant cannot make it spendable twice.
A durable same-action fence refuses a new attempt for an action whose
earlier attempt is still in flight or uncertain, whatever evidence
path admits it and even when fresh authority is presented. An
attempt that stopped before provider entry is released only with
proof that it never entered. AEB also specifies what a gateway
attests, and what the boundary verifies, when a native authorization
result is handed to a separate effect boundary. Canonical Action
Identifier (CAID) matching is used when independently encoded native
representations must be joined. Authorization Evidence Chain (AEC)
evaluation is used when local policy requires multiple evidence legs.
A native authorization decision accepted and enforced by the effect-
owning policy enforcement point (PEP) does not require a second
policy decision point (PDP). AEB defines no receipt or token format,
no policy language, no universal evidence taxonomy, and no new
registry. Native workload credentials, OAuth artifacts, AuthZEN
decisions, Agent Payments Protocol (AP2) mandates, message
signatures, permits, authorization receipts, and status mechanisms
retain their own semantics and, where the native protocol defines
one, their own verifiers.
Schrock Expires 29 March 2027 [Page 1]
Internet-Draft Action Evidence Boundary September 2026
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 29 March 2027.
Copyright Notice
Copyright (c) 2026 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components
extracted from this document must include Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Scope and Non-Goals . . . . . . . . . . . . . . . . . . . 5
2. Conventions and Terminology . . . . . . . . . . . . . . . . . 6
3. Non-Collapsing Decision and Lifecycle Vocabulary . . . . . . 8
4. Relying-Party Inputs and Pins . . . . . . . . . . . . . . . . 9
5. Required Processing Model . . . . . . . . . . . . . . . . . . 11
5.1. Construct the Observed Material Action . . . . . . . . . 11
5.2. Verify Each Native Artifact . . . . . . . . . . . . . . . 12
5.3. Establish Exact-Action Correspondence . . . . . . . . . . 13
5.4. Evaluate Required Field-Origin Assertions . . . . . . . . 14
5.5. Evaluate Additional Evidence Requirements When
Required . . . . . . . . . . . . . . . . . . . . . . . . 15
5.6. Pinned Boundary Requirement and Evaluation Record . . . . 15
5.7. Make the Local Authorization Decision . . . . . . . . . . 17
5.8. Accept a Native Authorization Handoff . . . . . . . . . . 17
Schrock Expires 29 March 2027 [Page 2]
Internet-Draft Action Evidence Boundary September 2026
5.9. Derive the Native Replay Identity . . . . . . . . . . . . 19
5.10. Hold the Same-Action In-Flight Fence . . . . . . . . . . 20
5.11. Atomically Consume or Reserve Before Invocation . . . . . 24
5.12. Enter the Provider with the Frozen Effect . . . . . . . . 25
5.13. Classify the Effect Outcome . . . . . . . . . . . . . . . 27
5.14. Perform Authenticated Reconciliation . . . . . . . . . . 28
6. Declaration and Challenge Semantics . . . . . . . . . . . . . 30
7. Native Evidence and Transport Boundaries . . . . . . . . . . 30
7.1. WIMSE and HTTP Message Signatures . . . . . . . . . . . . 30
7.2. AuthZEN and COAZ . . . . . . . . . . . . . . . . . . . . 31
7.3. Attested Per-Action Tokens and Permit Records . . . . . . 32
8. Native Compilation Contract . . . . . . . . . . . . . . . . . 33
8.1. Pinned Inputs . . . . . . . . . . . . . . . . . . . . . . 34
8.2. Deterministic Operations . . . . . . . . . . . . . . . . 35
8.3. Closed Compile Result . . . . . . . . . . . . . . . . . . 35
8.4. Semantic-Loss Report . . . . . . . . . . . . . . . . . . 36
8.5. Stable Native Replay Unit . . . . . . . . . . . . . . . . 37
8.6. Path and Provider Ownership . . . . . . . . . . . . . . . 37
8.7. Compilation Conformance . . . . . . . . . . . . . . . . . 38
9. Conformance and Deployment Claims . . . . . . . . . . . . . . 39
10. Security Considerations . . . . . . . . . . . . . . . . . . . 40
11. Privacy Considerations . . . . . . . . . . . . . . . . . . . 44
12. Relationship to EMILIA and Adjacent Work . . . . . . . . . . 45
13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 46
14. Changes since -06 . . . . . . . . . . . . . . . . . . . . . . 46
15. Implementation Status . . . . . . . . . . . . . . . . . . . . 48
16. References . . . . . . . . . . . . . . . . . . . . . . . . . 51
16.1. Normative References . . . . . . . . . . . . . . . . . . 52
16.2. Informative References . . . . . . . . . . . . . . . . . 52
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 55
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 55
1. Introduction
A remote executor can receive several independently useful inputs: a
workload credential and protected request, a delegation or
capability, a pre-execution permit, a human-authorization artifact,
and a policy decision. None of those inputs alone answers every
question the consequence-owning system has to answer before changing
its system of record.
Schrock Expires 29 March 2027 [Page 3]
Internet-Draft Action Evidence Boundary September 2026
The missing contract is at the effect boundary after authorization.
The executor must determine what exact material action it is about to
perform; verify each native artifact; preserve the authorization
result produced by the selected native path; correlate independently
encoded representations without guessing when such a join is
required; derive a native replay identity; refuse a second attempt
for an action that is already in flight; consume or reserve any one-
time or bounded authority; enter the provider once; and preserve
uncertainty when the effect cannot be observed conclusively.
This document defines that contract. Its required order is:
native verification, or verification of a
native authorization handoff
|
v
exact-action correspondence
(native binding, or CAID for a cross-format join)
|
v
additional evidence SATISFIED when required
(AEC for a multi-leg requirement)
|
v
native PEP or local AUTHORIZED
|
v
native replay identity
(authority namespace, authorization identifier)
|
v
same-action fence check and atomic CONSUMED / RESERVED
|
v
durable DISPATCH_PENDING at provider entry
|
v
INVOKED
|
+-> EXECUTED (action key stays closed)
+-> FAILED (action key released)
+-> INDETERMINATE (action key held)
|
v
authenticated reconciliation
(a pre-entry stop is released only by authorized
recovery with proof that it never entered)
Schrock Expires 29 March 2027 [Page 4]
Internet-Draft Action Evidence Boundary September 2026
The Canonical Action Identifier (CAID) [CAID] and Authorization
Evidence Chain (AEC) [AEC] stages are conditional. A native
authorization path can bind one operation directly and satisfy the
relying party without a cross-format join or a multi-leg requirement.
A signature is not authority. Native verification is not action
correlation. Action correlation is not evidence satisfaction.
Evidence satisfaction is not authorization. Authorization is not
provider entry or execution. An invocation error is not proof that
no effect occurred.
Two separate controls stop a duplicate effect. The native replay
identity stops one grant of authority from being spent twice. The
same-action fence stops two grants from being spent on one action
while the outcome of the first attempt is unknown. The second
control matters whenever a native decision service can issue a fresh
permit for each evaluation of an identical request, or new evidence
can be assembled for an identical action, so it applies on every
evidence path.
1.1. Scope and Non-Goals
AEB specifies processing requirements for a boundary that controls a
consequential effect. It can be implemented at a protocol gateway,
service mesh component, application middleware, execution adapter, or
system-of-record write path, provided the deployment states which
effect paths the boundary actually mediates.
AEB does not define:
* a new authorization receipt, access token, attestation token,
permit, credential, or execution-evidence format, or an encoding
for the native authorization handoff of Section 5.8;
* a native signature, credential, revocation, status, or
transparency verification algorithm;
* a policy language, universal authorization decision, or universal
human-approval inference;
* a second policy decision point, a replacement for an existing
protocol-to-authorization mapping, or a requirement that an
authorization result be re-decided under AEB;
* general semantic equivalence between actions;
* provider truth, physical truth, legality, safety, wisdom, or
complete mediation merely because an AEB implementation is
present; or
Schrock Expires 29 March 2027 [Page 5]
Internet-Draft Action Evidence Boundary September 2026
* a registry for evidence types, states, action mappings, or
verifier names.
2. Conventions and Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
BCP 14 is indexed by the RFC Editor at [BCP14].
Effect boundary: The last control point that can withhold the
protected mutation before it is submitted to the effecting system.
Relying party: The party that selects trust inputs, action
definitions, mapping profiles, evidence requirements, freshness
rules, and local authorization policy, and that relies on the
resulting decision.
Policy decision point (PDP): A component that evaluates an
authorization request and returns a decision, for example an
AuthZEN PDP [AUTHZEN-API].
Policy enforcement point (PEP): A component that requests or
receives an authorization decision and enforces it on the
operation it controls.
Effect-owning PEP: The PEP whose enforcement gates the protected
effect path. It is either the effect boundary itself or a
component, such as a protocol gateway, whose acceptance of a
native authorization result reaches the effect boundary only
through a native authorization handoff.
Native artifact: An evidence, credential, permit, token, receipt,
status, or message-protection object defined outside AEB and
verified under its own specification.
Native authorization result: A permit or refusal produced under the
selected authorization protocol and enforced by its PEP. The
native protocol remains authoritative for the mapping, decision,
and enforcement semantics it defines.
Native operation profile: The relying-party-pinned profile of one
Schrock Expires 29 March 2027 [Page 6]
Internet-Draft Action Evidence Boundary September 2026
native authorization path. It defines the exact operation
representation, the material-field inventory, the action-digest
construction, any instance field, the effecting target identity,
and the native authorization identifier used for replay identity.
Native authorization handoff: An integrity-protected statement, made
by a relying-party-pinned gateway or PEP, that it accepted one
native permit for one exact action, delivered to an effect
boundary that did not itself evaluate the native artifact.
Field-origin assertion: A native artifact in which an issuer asserts
how exact fields of an action representation were sourced or
transformed, and optionally the point-in-time snapshot on which
that assertion rests. Verification establishes the issuer's
signed assertion under pinned trust inputs; it does not
independently establish where the bytes truly originated.
Observed action: The immutable material action constructed by the
effect boundary from executor-controlled parsing and system-of-
record facts.
Material field: A field whose change can alter the protected
consequence, as declared by the material-field inventory of the
relying-party-pinned native operation profile and, when a cross-
format join is selected, by the selected CAID action-type
definition. When both apply, a field that either declares
material is material. Operation identifiers, idempotency keys,
and wrapper, session, trace, challenge, and caller retry
identifiers are not material fields.
Instance field: A material field that a native operation profile
declares so that intentionally repeated actions with otherwise
identical material fields remain distinct, for example a payment
instance identifier.
Action digest: The digest of the frozen observed action under the
pinned native operation profile. It covers every material field,
including any instance field, and no other field.
Action instance: The material action identified by one action
digest. Attempts with the same action digest are attempts on the
same action instance.
Effecting target identity: The identity of the system that the
boundary invokes for the protected effect, as defined by the
native operation profile or, when the profile does not define it,
the provider, provider account, tenant, and environment that the
boundary invokes.
Schrock Expires 29 March 2027 [Page 7]
Internet-Draft Action Evidence Boundary September 2026
Authority namespace: A relying-party-pinned identifier for the scope
within which an issuer's native authorization identifiers denote
distinct grants. By default it is the verified issuer value.
Changing it changes the native replay identity of every grant
accepted under it.
Native replay identity: The identity of one grant of native
authority, derived under Section 5.9 from the authority namespace
and the native authorization identifier. This document also calls
it the native replay unit.
Action key: The tuple of relying party, effecting target identity,
and action digest that the same-action fence of Section 5.10
protects.
Pre-entry stop: An attempt that stopped before its durable record
reached DISPATCH_PENDING, or before any attempt record was
written, so that no dispatch to the effecting system could have
begun.
Invocation: The first dispatch of the frozen authorized action to a
component that can cause the protected effect.
Authoritative reconciliation: An authenticated, audience-bound
observation from the effecting provider or system of record that
is matched to the original action and operation identifier.
3. Non-Collapsing Decision and Lifecycle Vocabulary
AEB uses the following decisions with the meanings established by the
EMILIA architecture and its component drafts:
VERIFIED: One native artifact passed its native verifier under
relying-party-selected trust inputs.
MATCH: Independently verified artifacts denote the same material
action directly or under exact relying-party-pinned CAID mapping
profiles. This state is needed when the boundary joins
independently encoded representations; it is not an extra
requirement for a single native representation whose exact-action
binding is preserved through provider entry.
SATISFIED: Verified and matched evidence fills every slot in the
relying party's AEC requirement. This state applies when local
policy selects a multi-leg AEC requirement.
AUTHORIZED: The effect-owning PEP accepts a native authorization
Schrock Expires 29 March 2027 [Page 8]
Internet-Draft Action Evidence Boundary September 2026
result, or the consequence-owning relying party's local policy
permits, this exact action at this time. When the effect-owning
PEP is not the effect boundary, the boundary learns of that
acceptance only through a verified native authorization handoff.
AEB records this result; it does not require a second PDP.
EXECUTED: The executor records, or an accepted native artifact
attests, that the exact effect occurred. This meaning remains
bounded by the native source and its trust assumptions.
AEB also names operational lifecycle states:
CONSUMED: A one-time authorization, challenge, operation key, or
equivalent native replay identity has been durably made
unavailable for another invocation.
RESERVED: Bounded state, such as a capability budget, has been
durably fenced for the exact operation before invocation.
DISPATCH_PENDING: A durable intent record binds the frozen action,
operation identifier, provider environment, and reservation before
any effecting dispatch can occur. Recovery treats a stranded
intent as uncertain, not as unused authority.
INVOKED: The protected effect was dispatched using the frozen
authorized action and operation identifier.
FAILED: Authoritative executor or reconciliation evidence
establishes that the invoked operation did not cause the protected
effect. A local exception or timeout alone is not sufficient.
INDETERMINATE: Invocation began, but available authoritative
evidence does not establish whether the protected effect occurred.
CONSUMED, RESERVED, DISPATCH_PENDING, INVOKED, FAILED, and
INDETERMINATE are lifecycle terms, not new evidence types or IANA
registry values. A deployment MAY use different local labels if
their semantics are at least as strict. For example, an
implementation that labels the interval between DISPATCH_PENDING and
a recorded outcome as INVOKING applies the INVOKED rules to it.
4. Relying-Party Inputs and Pins
The requester, presenter, agent, and mutable intermediary context are
untrusted inputs. They MAY propose an action and present native
artifacts. They MUST NOT select or weaken the controls used to
accept that request.
Schrock Expires 29 March 2027 [Page 9]
Internet-Draft Action Evidence Boundary September 2026
Before evaluating an action, the relying party MUST configure or pin,
as applicable:
* the supported native artifact revisions, verifier adapters,
algorithms, trust anchors, issuers, audiences, and status sources;
* for each native authorization path, the native operation profile,
including its operation representation, material-field inventory,
action-digest construction, any instance field, and effecting
target identity;
* for each accepted native authorization source, the issuer, its
authority namespace, and the native authorization identifier the
source supplies;
* when a native authorization handoff is accepted, each gateway
identity and verification key, the source labels and issuers
accepted from that gateway, the handoff encoding and signature
profile, the maximum handoff age, and the status source for
handoff revocation;
* when field-origin evidence is required, the accepted assertion
profile and digest, trusted issuers and keys, allowed origin
classes and transformations for each exact field, snapshot policy,
maximum snapshot age, and unavailable-state behavior;
* when independently encoded representations require a cross-format
join, the CAID suite, action-type definition source, exact source
descriptors, and mapping-profile digests;
* when local policy requires multiple evidence legs, the AEC
requirement and the admissible native evidence roles for each
slot;
* local policy identifiers, policy epochs, tenant and organization
boundaries, and any separation-of-duty rule;
* the trusted clock, maximum ages, validity windows, allowed skew,
and revocation or status freshness requirements;
* the durable replay, consumption, reservation, operation-key, and
same-action fence namespaces; and
* the protected executor, provider environment, reconciliation
endpoint, and authenticated provider or system-of-record
identities.
Schrock Expires 29 March 2027 [Page 10]
Internet-Draft Action Evidence Boundary September 2026
One issuer MUST have exactly one authority namespace in a pin set,
whether its pins differ in native system or profile label or in
gateway. Pins whose issuer values are identical, or are equal after
normalization, MUST all resolve to the same authority namespace:
either every such pin omits a declaration and carries one identical
issuer value, or every such pin declares the same authority
namespace. A pin set MUST be refused when it is configured if it
declares two different authority namespaces for one issuer value,
mixes declared and default namespaces for one issuer value, or
contains issuer values that differ but are equal after normalization
without one shared declared namespace. For an issuer value that is a
URI, normalization at least lowercases the scheme. For a URL with a
host, it also lowercases the host, removes a trailing dot from the
host, removes a port that is the default for the scheme, and removes
trailing slashes from the path, and it reads an http or https URL
written without the "//" that introduces the authority, such as
"https:a.example", as the same URL written with it. Normalization
cannot detect every alias; two issuer values that denote one
authority but do not normalize equal need an explicitly shared
authority namespace.
Changing the authority namespace of an accepted source, or the issuer
value of a pin that uses the default namespace, changes the native
replay identity of every grant accepted under it, so a grant already
consumed or in flight under the old value could be admitted again.
Before such a change, the relying party MUST resolve every attempt in
flight under the old value and MUST ensure that no grant consumed
under it can still be presented, for example by waiting until those
grants expire or by revoking them.
A label, key, profile identifier, requirement, status assertion, or
policy identifier carried only in presenter-controlled data MUST NOT
become its own trust anchor. Missing, conflicting, unsupported, or
ambiguous required configuration MUST fail closed.
5. Required Processing Model
5.1. Construct the Observed Material Action
The effect boundary MUST construct an immutable observed action from
effect-relevant facts it controls. Depending on the application,
those facts can include the protocol operation, tool or method,
target resource, tenant, account, amount, currency, destination,
environment, input digest, and any instance field declared by the
native operation profile.
Schrock Expires 29 March 2027 [Page 11]
Internet-Draft Action Evidence Boundary September 2026
The boundary MUST resolve the relying-party-pinned native operation
profile used for authorization and include every field in that
profile's material-field inventory. When a cross-format join is
required, it MUST also resolve a relying-party-pinned CAID action-
type definition and include every field that definition declares
material. It MUST NOT copy a requester-supplied action digest, CAID,
amount, destination, or resource reference without deriving or
checking the corresponding fact at the protected boundary. If the
boundary cannot determine all material fields required by the
selected native or cross-format profile, it MUST refuse before
invocation.
The boundary MUST bind the operation identifier to the attempt, not
to the action. The operation identifier, a provider idempotency key,
and wrapper, session, trace, challenge, and caller retry identifiers
MUST NOT be inputs to the action digest. Two attempts whose material
fields are equal therefore have the same action digest, unless the
native operation profile declares an instance field and the attempts
carry different values for it.
The observed action MUST be frozen for the remainder of the
lifecycle. A later adapter MUST NOT reconstruct a different action
from mutable request state after authorization.
When emitting or comparing a CAID, the boundary MUST validate the
constructed action against the complete pinned action-type
definition. A source representation is construction-compatible only
when a pinned mapping can derive every material target field without
guessing. Construction compatibility is distinct from content
equivalence: compatible inputs can still map to different actions,
while a missing, ambiguous, or unverified material field yields
INDETERMINATE. A boundary that does not perform a cross-format join
still MUST preserve the native protocol's exact-operation binding
through provider entry.
5.2. Verify Each Native Artifact
Each required native artifact MUST be verified independently under
its own specification and relying-party-selected trust inputs before
CAID mapping or AEC evaluation. The AEB implementation MUST use the
integrity-protected payload returned by the native verifier, or a
projection for which the adapter establishes integrity coverage of
every projected field.
A successful signature check is only one possible step of native
verification. Schema, algorithm, issuer, audience, key status,
validity, proof-of-possession, freshness, replay, and native policy
checks remain those of the selected native profile. A verifier
Schrock Expires 29 March 2027 [Page 12]
Internet-Draft Action Evidence Boundary September 2026
exception, unavailable required status source, unsupported critical
field, or ambiguous result MUST become a bounded refusal, never an
allow path.
When the effect boundary is not the effect-owning PEP, the boundary
does not receive or re-verify the native artifact. The input it
verifies is the native authorization handoff, under Section 5.8, and
the trust basis for the native decision is then the pinned gateway
rather than the native issuer. A native permit forwarded without
integrity protection that the boundary can verify under relying-party
pins MUST NOT be accepted as a native authorization result.
The output of this stage is VERIFIED for each accepted artifact. An
artifact that has not reached VERIFIED MUST NOT participate in a
selected action mapping or fill a selected AEC requirement slot.
5.3. Establish Exact-Action Correspondence
The boundary MUST establish that the exact operation authorized by
the selected native path is the operation that will enter the
provider. When both are expressed in one native representation, the
boundary MAY use the exact native identifier, digest, or protected
operation fields defined by that protocol.
A native authorization result covers only the inputs that its native
decision evaluated. When the native path projects the operation into
a decision request, as a COAZ mapping [AUTHZEN-COAZ] does, the
boundary MUST establish that every material field of the observed
action is either projected by the pinned mapping and covered by the
native PEP's check that the evaluated operation is unchanged when the
permit is applied, or enforced by a separate relying-party-pinned
check at the effect-owning PEP or at the boundary. A material field
that meets neither condition makes exact-action correspondence
INDETERMINATE, and the boundary MUST refuse before consumption,
reservation, or provider entry. The binding of the full executor
action comes from the effect-owning PEP's own enforcement or from a
native authorization handoff over the full action digest, never from
the permit alone.
When the boundary joins independently encoded representations, it
MUST recompute the CAID of the observed action under the selected
suite and definition source. It MUST compare every action-bound
required artifact to that observed action using direct CAID equality
or the Action-Mapping Profile defined by [CAID].
Cross-format mapping MUST occur only after native verification and
MUST use the exact source media type, schema version, target action
type, definition source, and mapping-profile digest pinned by the
Schrock Expires 29 March 2027 [Page 13]
Internet-Draft Action Evidence Boundary September 2026
relying party. Every target material field MUST be covered.
Missing, lossy, unknown, unpinned, conflicting, or ambiguous mappings
yield INDETERMINATE under CAID and MUST fail a required MATCH. AEB
MUST NOT guess equivalence from names, natural-language descriptions,
trace identifiers, or presenter assertions.
CAID is conditional machinery for a cross-format join, not a second
authorization protocol. MATCH is content correlation only. It does
not validate a native artifact and does not authorize execution.
5.4. Evaluate Required Field-Origin Assertions
A relying party MAY require a natively verified field-origin
assertion for selected fields before admission. This document
defines the processing contract for that input, not a field-origin
wire format, origin taxonomy, scanner, or transformation language.
The boundary MUST verify the assertion under the relying party's
pinned native verifier, issuer and key, assertion profile and digest,
action binding, field selectors, accepted origin classes, accepted
transformation definitions, snapshot policy, freshness bound, and
status inputs. The verifier output MUST bind each asserted field to
the exact observed action or to a lossless, pinned mapping to that
action. A profile identifier or origin label carried only by the
presenter MUST NOT select its own verifier or trust root.
A verified assertion establishes that the pinned issuer made the
signed claim. It does not independently prove source truth, semantic
correctness, absence of prompt injection, authorization, settlement,
or the truth of a later physical effect. If policy requires an
origin constraint for a material field, a missing assertion, unknown
or disallowed origin, unpinned transformation, stale or unreliable
required snapshot, action mismatch, or unavailable required status
MUST withhold admission. The boundary MUST preserve the distinction
between assertion verification and acceptance under local policy.
A field-origin policy SHOULD be discriminating rather than a blanket
prohibition on untrusted content. For example, it can refuse an
untrusted message that selects a payee or destination while accepting
the same origin class for a bounded non-authoritative memo field.
The accepted and refused field classes are relying-party policy, not
universal AEB semantics.
EP-FIELD-ORIGIN-v0.1 and its finance-operations Gap 6 runner are an
informative reference implementation profile [EP-FIELD-ORIGIN]. They
do not become a mandatory AEB format and their same-team results are
not independent implementation evidence.
Schrock Expires 29 March 2027 [Page 14]
Internet-Draft Action Evidence Boundary September 2026
5.5. Evaluate Additional Evidence Requirements When Required
AEB does not require an AEC evaluation when one native authorization
result, enforced by the effect-owning PEP, satisfies the relying
party's complete requirement. When local policy requires multiple
evidence legs, the boundary MUST submit only natively verified,
action-matched evidence to an AEC verifier configured with the
relying party's requirement. The requirement used for the decision
MUST come from relying-party configuration, not from a presenter-
controlled AEC member.
Every required evidence role MUST be filled by an artifact whose
native verifier and adapter are accepted for that role. A workload
identity MUST NOT silently fill a policy-permit or human-
authorization slot. A machine-policy decision MUST NOT silently fill
a named-human slot. A generic operator signature MUST NOT be
interpreted as evidence that a human operated a system or performed a
named approval ceremony.
When AEC is selected, only a successful evaluation under these inputs
reaches SATISFIED. UNSATISFIED, malformed, unsupported, or ambiguous
results MUST withhold invocation. AEB MUST NOT insert an AEC leg
merely to re-decide or relabel one native PDP result.
A qualification statement can fill an evaluation-evidence role only
when its native verifier establishes the measured candidate,
evaluation campaign, assignment, policy, freshness, and status. A
qualification result MUST NOT fill an authorization role and MUST NOT
by itself cause SATISFIED, AUTHORIZED, reservation, or invocation.
5.6. Pinned Boundary Requirement and Evaluation Record
The consequence-owning relying party MUST pin every adapter revision,
trust root, mapping profile, evidence requirement, and boundary
constraint used for a decision. The presenter MUST NOT select or
weaken those inputs. EP-AEB-REQUIREMENT-v1 is an optional closed
object for a deployment that selects AEC and multiple evidence roles.
It is not required for a single native authorization path. Its
members are:
@version: The string EP-AEB-REQUIREMENT-v1.
all_of: An array of distinct evidence-role names. Every listed role
MUST be filled by a satisfied leg.
any_of: OPTIONAL. An array of non-empty groups, each an array of
distinct evidence-role names. Each group MUST have at least one
of its roles filled by a satisfied leg.
Schrock Expires 29 March 2027 [Page 15]
Internet-Draft Action Evidence Boundary September 2026
terms: A non-empty array of boundary constraints, defined below.
The object MUST name at least one evidence role through a non-empty
all_of, a non-empty any_of, or a distinct-human-quorum term. An
implementation MUST reject any other member. For example:
{
"@version": "EP-AEB-REQUIREMENT-v1",
"all_of": ["human-authorization", "policy-permit"],
"terms": [
{ "type": "distinct-human-quorum",
"role": "human-authorization", "threshold": 2 },
{ "type": "initiator-exclusion",
"roles": ["human-authorization"] },
{ "type": "executor-exclusion",
"roles": ["human-authorization"] },
{ "type": "one-time-consumption" }
]
}
An implementation of this optional object MUST reject unknown terms.
It MUST require exactly one one-time-consumption term. A distinct-
human-quorum term names one role and a threshold of at least 2,
appears at most once for a role, and counts only distinct natural-
person subject identifiers exposed by eligible native verifiers for
that role. initiator-exclusion and executor-exclusion each appear at
most once and compare those verified subjects with the boundary-owned
initiator and executor identifiers. An evidence-binding term names a
source_role, a different target_role, and require_same_subject with
the value true; it is met only when a satisfied source-role leg
carries a native binding to the evidence digest of a satisfied
target-role leg and both legs expose the same verified subject.
Different encodings of one key or subject MUST NOT count as different
humans.
Execution-time evaluation MUST resolve current status through
relying-party-configured status sources. Presenter-supplied current
status is untrusted. Revoked, expired, stale, unavailable,
ambiguous, or unauthenticated required status MUST withhold
authorization. Historical re-performance MUST be labeled historical
and MUST NOT be used as a current execution decision.
The evaluator SHOULD emit a signed, re-derivable record binding the
observed action and, when selected, its CAID; operation and
consumption identifiers, initiator and executor, adapter and mapping
revisions, complete requirement and configuration digests, native
artifact digests, current-status snapshots, per-leg VERIFIED and
MATCH results, AEC SATISFIED, boundary constraints, and the separate
Schrock Expires 29 March 2027 [Page 16]
Internet-Draft Action Evidence Boundary September 2026
AUTHORIZED or REFUSED verdict, as applicable. A record that omits a
conditional CAID or AEC stage MUST identify the native exact-
operation binding and the reason the extra stage was not selected.
The record is evidence of the evaluator's decision; it does not
itself perform or authorize an effect.
5.7. Make the Local Authorization Decision
The effect-owning PEP MUST establish AUTHORIZED before consumption,
reservation, or provider entry. It can do so by accepting and
enforcing the selected native authorization result, or by making a
separate local decision. AEB does not require a second PDP. If the
native path is AuthZEN, the AuthZEN PDP decision and the PEP's
enforcement of that decision remain authoritative under the selected
AuthZEN and COAZ profile. When the effect-owning PEP is not the
effect boundary, AUTHORIZED reaches the boundary only as a verified
native authorization handoff (Section 5.8).
The PEP MUST apply the exact operation, audience, tenant,
organization, policy epoch, freshness, current credential and
authority status, separation-of-duty rules, local risk controls, and
bounded capability state required by that selected path. Additional
local checks, at the PEP or at the boundary, MAY narrow a native
permit. They MUST NOT widen it, reinterpret a refusal as a permit,
or claim that AEB issued the native decision.
Credential revocation and per-action authorization evidence answer
different questions. A current non-revocation or status result can
establish that a credential remains acceptable under local policy; it
does not prove that the credential holder authorized this action. A
per-action authorization artifact does not prove that every
credential in its trust path remains current. When policy requires
both, the boundary MUST verify both without substituting one for the
other.
The boundary reaches AUTHORIZED only if the effect-owning PEP accepts
the exact action at the decision time. When AEC is selected,
SATISFIED alone MUST NOT trigger reservation or invocation.
5.8. Accept a Native Authorization Handoff
A deployment can place the effect-owning PEP in a protocol gateway,
such as a Model Context Protocol (MCP) gateway that calls an AuthZEN
PDP, while the effect boundary runs in a separate component that
holds the provider credential. A native authorization handoff
carries the gateway's acceptance of one native permit to that
boundary. This section specifies the contents and verification of a
handoff. It does not define an encoding: a deployment MUST pin the
Schrock Expires 29 March 2027 [Page 17]
Internet-Draft Action Evidence Boundary September 2026
encoding, canonicalization, signature algorithm, and signing input it
accepts. [EP-NATIVE-HANDOFF] describes one reference encoding.
A handoff MUST be integrity-protected by the gateway under a key that
the relying party pins for that gateway, and MUST bind at least:
* the gateway identity and the identifier of its signing key;
* the native decision, which MUST be a permit;
* the native source: the native system and profile labels, the
issuer, and the native authorization identifier;
* the action digest of the full executor action under the pinned
native operation profile, including any instance field;
* the relying party, audience, and executor;
* the effecting target identity;
* the issuance time and validity window; and
* a revocation or status identifier.
The native authorization identifier MUST be the identifier that the
native system assigned to the grant when one exists. When the native
protocol defines none, as with a stateless decision interface, the
gateway MUST assign one identifier to each native decision it accepts
and MUST NOT reuse it for a different decision. Section 5.10
explains why such identifiers alone do not prevent a second entry for
the same action.
The gateway MUST NOT sign a handoff for an action digest unless its
enforcement covered every material field of that action, either
through the native mapping and its operation-binding check or through
a local check that the gateway performs itself. A gateway that holds
a permit covering only a projection of the action MUST NOT attest the
full action digest on the strength of that permit alone.
The boundary MUST complete the following checks before it selects a
status source, performs a lookup, or writes durable state on the
handoff's behalf, and MUST refuse when any check fails:
* the integrity protection verifies under a relying-party-pinned key
for the named gateway;
* the combination of gateway, source labels, and issuer is accepted
by a relying-party pin;
Schrock Expires 29 March 2027 [Page 18]
Internet-Draft Action Evidence Boundary September 2026
* the action digest that the boundary recomputes from its own
observed action equals the attested digest;
* the relying party, audience, executor, and effecting target
identity equal the pinned values; and
* the validity window and maximum age hold against the trusted clock
and pinned skew.
The boundary MUST then obtain current status for the revocation
identifier from a relying-party-configured status source, bound to
the gateway and the native source, and MUST refuse when that status
is revoked, stale, unavailable, or unauthenticated. It MUST derive
the native replay identity itself, under Section 5.9. A replay value
carried in the handoff is a gateway assertion; the boundary MAY check
it under the encoding's own rules, but MUST NOT use it in place of
that derivation.
Immediately before provider entry, the boundary MUST repeat the time
and status checks. If they fail, it MUST close the attempt as not
entered without dispatching it. Each attempt MUST record the
identity and digest of the pin set under which its handoff was
accepted, so that reconciliation after a key or pin rotation
evaluates the attempt under the pins that admitted it.
A verified handoff establishes that the pinned gateway attested the
stated native permit and bindings. It does not re-verify the native
artifact, does not show that a native PDP evaluated any input that
its mapping did not project, and moves the trust basis for the native
decision from the native issuer to the gateway. The relying party
MUST treat compromise of a gateway key as compromise of every native
source it accepts from that gateway.
5.9. Derive the Native Replay Identity
Before consuming or reserving authority, the boundary MUST derive the
native replay identity of every authorization-bearing native result.
The native replay identity is the native replay unit of Section 8.5;
the two terms name one value.
Schrock Expires 29 March 2027 [Page 19]
Internet-Draft Action Evidence Boundary September 2026
The derivation inputs MUST be exactly the authority namespace of the
accepted source and the native authorization identifier, combined
under a relying-party-pinned, domain-separated derivation. By
default the authority namespace is the verified issuer value. When
the pin declares an authority namespace, the issuer value is not an
input, so pins that name one issuer in different spellings and
declare the same namespace yield one native replay identity.
Section 4 limits which pin sets are acceptable. A durable store MAY
further scope the resulting value by relying party.
The derivation MUST NOT take as input the AEB operation identifier, a
provider idempotency key, a native system or profile label or other
wire label, the issuer value when the pin declares an authority
namespace, a wrapper, handoff, or envelope digest, a consumption
nonce, a caller-selected retry identifier, or a session, task, trace,
or challenge identifier. A wire label can select a pin; the pin, not
the label, supplies the authority namespace. The same native
authority presented in a new wrapper, handoff, task, session, trace,
challenge, source label, or caller retry MUST yield the same native
replay identity, so relabelling one grant cannot make it spendable
twice.
If the selected native profile cannot provide a stable native
authorization identifier, the boundary MUST refuse provider entry.
Native replay identity stops one grant from being spent twice. It
does not stop two grants from being spent on one action. When a
native path can issue a new identifier for each evaluation of an
identical request, the same-action fence of Section 5.10 is the
control that prevents a second provider entry.
5.10. Hold the Same-Action In-Flight Fence
The action key of an attempt is the tuple of the relying party, the
effecting target identity, and the action digest. It does not
include the operation identifier, the native authorization
identifier, the native replay identity, or any wrapper or handoff
digest.
Schrock Expires 29 March 2027 [Page 20]
Internet-Draft Action Evidence Boundary September 2026
The boundary compares action digests and effecting target identities
exactly. It is not required to recognize two spellings of one
material value as one value, such as "500" and "500.00", "USD" and
"usd", a value with and without trailing white space, or two Unicode
normalization forms of one string. The native operation profile MUST
therefore define the canonical form of each material field, and the
party that constructs the action MUST apply that form before the
action digest is computed. Every boundary instance that can reach
one effecting target MUST be configured with the same effecting
target identity, because two configured spellings of one provider
account would give one action two action keys.
An attempt occupies its action key from the transition that makes it
CONSUMED or RESERVED, through DISPATCH_PENDING and INVOKED, and while
it is INDETERMINATE. An attempt that reaches EXECUTED keeps the
action key closed for that action instance.
For every attempt, whatever evidence path admits it, the boundary
MUST refuse a new attempt whose action key is occupied or closed.
The evidence path can be a native authorization result, a native
authorization handoff, a cross-format CAID join, or an AEC
composition. The refusal MUST occur before provider entry, and the
refused attempt MUST NOT consume its authority. For an attempt
admitted through a native authorization result, including one
received as a native authorization handoff, the boundary MUST report
the reason as native_action_in_flight while the action key is
occupied, and MAY report native_action_already_executed once EXECUTED
has closed it. On other evidence paths it MUST report a reason that
identifies an occupied or closed action key. This holds even when
the new attempt carries a fresh native permit, a different native
authorization identifier, a new handoff, new evidence, or a new
operation identifier.
The fence MUST be recorded in the same durable state domain as
consumption and reservation. Occupying the action key MUST be an
atomic write that detects conflicts, so that concurrent attempts
cannot both occupy it, and it is part of the transition in
Section 5.11. Process memory is not sufficient: the fence MUST
survive restart and MUST be shared by every boundary instance that
can reach the effecting target.
The fence releases only when:
1. authenticated evidence establishes that the attempt reached
FAILED;
2. authenticated reconciliation resolves an INDETERMINATE attempt to
FAILED;
Schrock Expires 29 March 2027 [Page 21]
Internet-Draft Action Evidence Boundary September 2026
3. the boundary itself stopped the attempt before provider entry,
because a write of the transition in Section 5.11 failed or
conflicted or because a check made before entry failed, and it
confirmed through an authenticated durable read that the attempt
was never dispatched (its record never reached DISPATCH_PENDING,
or the boundary closed it as not entered under Section 5.8
through an atomic transition that no dispatch of the attempt can
follow and that recorded the not-entered marker defined below)
and that each write it made for the attempt was released; or
4. authorized pre-entry recovery, specified below, proves that the
attempt was a pre-entry stop.
Reconciliation to EXECUTED keeps the action key closed. A timeout,
local exception, elapsed time, caller retry, fresh native authority,
new handoff, or unauthenticated report MUST NOT release the fence.
After a release, a new attempt for the same action instance still
requires native authority whose native replay identity has not been
consumed, a new operation identifier, and the complete lifecycle.
Every transition that closes an attempt as not entered, whether the
boundary makes it for its own pre-entry stop or pre-entry recovery
makes it, MUST record an explicit not-entered marker bound to that
attempt in the same atomic write. Only that marker, or an
authenticated durable read showing that the record is still in a
state before DISPATCH_PENDING, shows that an attempt did not enter
the provider. The absence of evidence is never such proof. A record
that is closed or released but carries neither the not-entered marker
nor terminal provider evidence, including a record read from a store
that does not return the evidence stored with it, MUST be treated as
INDETERMINATE: the boundary MUST NOT treat it as a pre-entry stop and
MUST NOT release anything on its basis.
An attempt can stop before provider entry without meeting item 3.
The boundary can crash while the attempt is CONSUMED or RESERVED,
lose the acknowledgement of the write that enters DISPATCH_PENDING,
or fail to confirm a release after a pre-entry refusal. Such an
attempt keeps the action key occupied and its reservations held. The
boundary MUST provide a pre-entry recovery operation for it. A
boundary that crashes after occupying the action key but before
recording the attempt leaves records that no attempt record accounts
for. They cannot be shown not entered, as the next paragraph
explains, so they stay held; a boundary SHOULD record the attempt
before it occupies the action key, so that this case cannot arise.
Pre-entry recovery is distinct from the reconciliation of
Section 5.14: one invocation either releases the attempt as not
entered or leaves every record held, and it MUST NOT continue into
reconciliation to EXECUTED or FAILED. The operation MUST require
Schrock Expires 29 March 2027 [Page 22]
Internet-Draft Action Evidence Boundary September 2026
recovery authorization from the relying party that is bound to
exactly one attempt, as Section 5.14 specifies, including that
attempt's operation identifier and action key.
The operation MAY release the action key and the attempt's
reservations only when an authenticated durable read shows that the
attempt record never reached DISPATCH_PENDING, that the boundary
closed it as not entered through an atomic transition that no
dispatch of the attempt can follow and that recorded the not-entered
marker, and, where the effecting system offers an authenticated
lookup by operation or idempotency key, that lookup reports that the
operation was not received. The absence of an attempt record is not
such proof, because a live attempt may not yet have written it; a
record held without an attempt record therefore stays held. When the
record is still in a state from which the original attempt could
proceed to dispatch, the recovery operation MUST first close it as
not entered through such an atomic transition, so that the original
attempt cannot dispatch after the release.
That transition is the linearization point between recovery and the
original attempt. Recovery MAY treat the attempt as not entered only
if its own transition succeeded, as shown by an authenticated durable
read where the store provides one and otherwise by the affirmative
result that Section 5.11 defines. Once that transition has
succeeded, the original attempt's own transition toward
DISPATCH_PENDING MUST fail, and the original attempt MUST NOT
dispatch. It MUST NOT use the records it writes afterwards, and it
releases them only after it confirms that the attempt was closed as
not entered; until then they stay held. If recovery's transition
fails because the record has reached DISPATCH_PENDING or a later
state, recovery MUST treat the attempt as INDETERMINATE and MUST
release nothing. A lookup result obtained for that recovery
describes a moment before dispatch, so it MUST NOT be used as
evidence of the attempt's outcome: an attempt that reached
DISPATCH_PENDING is resolved only by reconciliation under
Section 5.14, with evidence obtained after dispatch could have begun.
Without the proof described above, the action key and the
reservations MUST stay held and the attempt MUST be treated as
INDETERMINATE. Recovery MUST release the attempt's records only
after its not-entered transition has succeeded and been confirmed, as
Section 5.11 requires for every release. Recovery MUST NOT release,
close, or commit a record held by a different attempt, and a pre-
entry stop MUST NOT be reconciled to EXECUTED or FAILED.
Without an instance field, identical material actions are one action
instance, and a further identical action after EXECUTED is refused.
A native operation profile that must admit intentionally repeated
Schrock Expires 29 March 2027 [Page 23]
Internet-Draft Action Evidence Boundary September 2026
identical actions MAY declare an instance field. The instance field
MUST be a material field, so it is part of the action digest and is
covered by the native authorization or by the handoff's action
digest. Its value SHOULD be fixed by the party that authorizes the
action rather than chosen by the party that retries it (see
Section 10).
5.11. Atomically Consume or Reserve Before Invocation
After AUTHORIZED and native replay identity derivation, and before
provider entry, the boundary MUST perform the durable state
transition required by the native evidence and local policy. This
can include consuming a one-time authorization, challenge nonce, or
operation key; reserving a bounded capability or budget; and fencing
the operation to one owner across replicas.
Each write in the transition MUST be atomic within the relying
party's durable state domain. Before provider entry, the boundary
MUST check and occupy the same-action fence of Section 5.10, consume
or reserve every one-time native replay identity, and record the
operation. It MAY do so in one atomic step or in several atomic
writes. With several writes, provider entry MUST wait until every
write has succeeded. If any write conflicts or fails, the boundary
MUST refuse without provider entry and MUST NOT consume the native
authority of the refused attempt. It MUST confirm the release of
each write it made through an authenticated durable read, and
otherwise MUST leave that write held. A refusal whose writes are not
all confirmed released MUST NOT be reported as a final refusal; the
boundary reports the result as INDETERMINATE until the release is
confirmed. The boundary MUST release or close only records that it
wrote for the current attempt and MUST be able to prove that
ownership, for example through an ownership token created for the
attempt. A record that carries the same operation identifier, native
replay identity, or action key but was written by another attempt
MUST NOT be released or closed on this attempt's behalf; operation
identifiers can be chosen by the caller, so an identifier match alone
does not prove ownership. A record that successive attempts can
hold, such as a reservation keyed by an evaluation, a wrapper, or a
native replay identity rather than by the attempt, MUST be released,
closed, or committed on an attempt's behalf only when the boundary
can prove that the attempt is that record's current owner, for
example through a durable record keyed by the attempt that marks it
as the owner, or because the attempt itself created the record and
has not handed it back. The operation record MUST bind the native
replay identity and the action key to the executor-owned observed
action and operation identifier, never a presenter-selected decoy.
Independently of that composite operation record, the store MUST
enforce uniqueness or conflict detection for every native replay
Schrock Expires 29 March 2027 [Page 24]
Internet-Draft Action Evidence Boundary September 2026
identity that the selected profile marks as one-time and for every
occupied or closed action key. Changing an operation identifier MUST
NOT make the same one-time native authority reservable again, and
presenting fresh native authority MUST NOT make an occupied or closed
action key reservable again.
If the store is unavailable, non-atomic, or stale, or reports an
ambiguous result, the boundary MUST refuse before invocation. An
atomic transition or conditional write succeeds only when the store
returns the affirmative result that its interface defines for
success. Any other answer, including an error, a timeout, a refusal,
or a value that is merely not a refusal, is a failure whose effect on
stored state is unknown. When the outcome of a write is unknown, the
boundary MUST NOT invoke, and MUST resolve the stored state through
an authenticated durable read before it releases or reuses any key
the write may have recorded. It MUST NOT release a record that it
cannot prove it wrote; such a record stays held until that read or
the recovery of Section 5.10 resolves it.
When an attempt record exists, the boundary MUST release, close, or
commit the attempt's occupation of the action key and its other
reservations only after the attempt record's transition to a terminal
state, or to not entered, has succeeded and been confirmed, through
an authenticated durable read where the store provides one and
otherwise by the affirmative result of the transition. It MUST NOT
release them before that transition or regardless of its result. If
the transition fails or cannot be confirmed, those records MUST stay
held.
AEB does not claim atomicity between a local store and an unrelated
remote provider. It requires the local consume or reserve transition
to occur first so that any uncertainty after dispatch cannot make the
same authority, or the same action, available for an uncontrolled
second effect.
5.12. Enter the Provider with the Frozen Effect
An authorized MCP tool call, API request, or other protocol operation
is not automatically proof that an underlying provider effect was
authorized or occurred. When the authorized operation is itself the
protected provider mutation, the same frozen action can continue
through this lifecycle. When an MCP server, API service, or
intermediary makes a distinct downstream provider request, the
boundary MUST bind that provider request to the authorized operation
under the selected native profile or a pinned cross-format mapping.
It MUST NOT infer that binding from a session, trace, tool name, or
natural-language description.
Schrock Expires 29 March 2027 [Page 25]
Internet-Draft Action Evidence Boundary September 2026
Before any call, message, or byte can reach an effecting component,
the boundary MUST durably enter DISPATCH_PENDING for the frozen
observed action that reached AUTHORIZED and CONSUMED or RESERVED.
The record MUST bind the action digest, action key, operation
identifier, native replay identity, provider environment, audience,
reservation or consumption record, and adapter. Failure or ambiguity
while writing this record MUST withhold dispatch. When the result of
that write is not affirmative, the boundary MUST NOT release any
record on that basis. It MUST read the attempt record: if the record
reached DISPATCH_PENDING for this attempt, the boundary either
dispatches as the proven owner of that record or treats the attempt
as INDETERMINATE; if the record is still in its earlier state, the
boundary MUST close it as not entered through the atomic transition
of Section 5.10 before it releases anything. If the record cannot be
read, the boundary MAY attempt that not-entered transition directly
and release only on its affirmative result; otherwise every record
stays held and the attempt is treated as INDETERMINATE.
A boundary that has sent a write that could record an attempt as not
entered, including a write whose result it did not receive, MUST NOT
dispatch that attempt afterwards, whatever a later read of the record
shows. Such a write can still take effect after that read, and the
record would then show an attempt that entered as not entered, so
that pre-entry recovery would release its authority. A boundary that
cannot read the record after a non-affirmative result of the write
that enters DISPATCH_PENDING therefore either sends no not-entered
transition, keeps every record held, and dispatches only if a later
authenticated read shows DISPATCH_PENDING for the attempt, or
attempts the not-entered transition and then never dispatches the
attempt. An attempt left in DISPATCH_PENDING without a dispatch is
INDETERMINATE even though nothing was dispatched: it is closed only
by reconciliation with terminal evidence under Section 5.13 that
forecloses any execution, now or later, under the attempt's provider
idempotency key, for example an authenticated cancellation of that
key by the effecting system, and whether presented evidence
establishes that is the verifier's decision. Without such evidence
its records stay held. A point-in-time absence of the operation,
even when authenticated, does not foreclose execution: a live
dispatcher can still deliver its call afterwards.
The boundary MUST invoke only from that durable state. Where the
provider supports an idempotency key, the boundary MUST send one
derived from the native replay identity; the derivation MAY also bind
the effecting target identity and action digest. It MUST NOT be
derived from the operation identifier, a wrapper or handoff digest,
or a source label. After dispatch begins, the boundary MUST durably
record INVOKED or a terminal outcome before reporting success to the
requester.
Schrock Expires 29 March 2027 [Page 26]
Internet-Draft Action Evidence Boundary September 2026
The adapter MUST receive only the authority and evidence necessary
for the downstream interface. It MUST NOT accept mutable
intermediary or caller context that changes a material field after
the boundary's authorization decision.
5.13. Classify the Effect Outcome
After invocation begins, the boundary MUST classify the result as
EXECUTED, FAILED, or INDETERMINATE. On restart, a DISPATCH_PENDING
operation without an authoritative terminal record MUST be promoted
to INDETERMINATE before any retry or release, because the process
cannot establish that dispatch did not begin.
* EXECUTED requires an authoritative response or accepted native
execution evidence matched to the exact action, operation
identifier, provider environment, and audience.
* FAILED requires authoritative evidence that the invoked operation
did not cause the protected effect. A local parse error,
exception, timeout, connection loss, process crash, or missing
response is not by itself such evidence.
* INDETERMINATE is REQUIRED whenever invocation may have reached the
effecting system but the available authoritative evidence does not
establish EXECUTED or FAILED.
A terminal outcome that commits or releases records of an attempt
that reached DISPATCH_PENDING, whether the dispatch returns it or
reconciliation presents it, MUST be accepted only after a relying-
party-configured verifier authenticates the provider evidence and
binds it to that attempt, including its operation identifier, native
replay identity, and provider idempotency key. The boundary MUST
tell the verifier the purpose of each check, a terminal outcome or a
pre-entry lookup, and MUST count a verifier result only when it
affirms the purpose it evaluated and the attempt it evaluated it for;
a result that merely does not refuse is not an affirmation. A lookup
reporting that the operation was not received is evidence only for
the pre-entry recovery of Section 5.10. It MUST NOT be accepted as
FAILED for an attempt that reached DISPATCH_PENDING, because a
dispatch in flight can still arrive after the lookup; such an attempt
needs terminal evidence, for example an authenticated cancellation of
its idempotency key by the effecting system. A boundary that has no
such verifier MUST NOT move an attempt that reached DISPATCH_PENDING
to EXECUTED or FAILED, and the attempt stays INDETERMINATE.
This applies to every boundary, whatever evidence path admitted the
attempt, including a boundary that admits attempts through a CAID
join or an AEC composition, and it applies to the result that the
Schrock Expires 29 March 2027 [Page 27]
Internet-Draft Action Evidence Boundary September 2026
dispatch itself returns. A provider adapter's classification of that
result is not verification: a timeout or an error that an adapter
reports as FAILED MUST NOT release the action key unless the verifier
affirms it as a terminal outcome for the attempt.
Evidence presented to reconciliation or to pre-entry recovery MUST
carry a kind in the boundary's own input that states whether it is a
terminal outcome or a pre-entry lookup. Reconciliation MUST refuse
evidence of the pre-entry lookup kind, and pre-entry recovery MUST
refuse evidence of the terminal outcome kind, before either passes
the evidence to the verifier. The party that presents evidence MUST
present it under the kind that it is, and a verifier MUST refuse a
lookup reporting that the operation was not received when it is asked
to verify a terminal outcome. The boundary cannot check either
obligation (see Section 10).
For EXECUTED, the boundary MUST commit any reserved spend, preserve
the terminal evidence, and keep the action key closed. For FAILED,
it MUST preserve the failure evidence and follow the native
reservation policy; the same-action fence then releases under
Section 5.10. For INDETERMINATE, it MUST preserve or consume the
reservation, keep the native replay identity consumed and the action
key occupied, refuse reuse of the operation identifier, and prohibit
a blind replay.
5.14. Perform Authenticated Reconciliation
An INDETERMINATE operation, including one recovered from a stranded
DISPATCH_PENDING record, MUST remain closed until reconciliation
authenticates the provider or system of record and matches the result
to the original action, operation identifier, provider environment,
audience, target resource, and every application-specific material
field.
Reconciliation MAY move INDETERMINATE to EXECUTED when authoritative
evidence establishes that the exact effect occurred. It MAY move
INDETERMINATE to FAILED when authoritative evidence establishes that
it did not occur. That evidence is verified for the attempt and for
the purpose of a terminal outcome as Section 5.13 requires; a pre-
entry lookup is not such evidence. Missing, stale, conflicting,
unauthenticated, or action-mismatched observations MUST leave the
operation INDETERMINATE.
A reconciliation result MUST be bound to the attempt it resolves,
including that attempt's operation identifier and native replay
identity. It MUST NOT commit, close, or release a different attempt
that holds the same action key. A pre-entry stop MUST NOT be
reconciled to EXECUTED or FAILED; Section 5.10 defines its recovery.
Schrock Expires 29 March 2027 [Page 28]
Internet-Draft Action Evidence Boundary September 2026
Recovery authorization MUST be bound to exactly one attempt,
identified by an attempt identifier that no other attempt uses. It
MUST NOT be bound only to an operation identifier, an operation key,
an action key, an evaluation, or another value that several attempts
can share, because such a credential would authorize claims across
attempts. The attempt identity MUST be unique across every boundary
that shares the durable state domain, and it MUST be scoped to the
boundary. It MUST include an identifier of the boundary that differs
between boundaries sharing that domain and is the same for every
instance of one boundary, and, where boundaries of different kinds
share one store, it MUST also include a component that distinguishes
them. Both MUST enter the derivation of every record keyed by the
attempt, including the records that a claim may cover, and the scope
against which the authorization is checked, so that two boundaries,
of the same kind or of different kinds, cannot name each other's
records even when they assign the same attempt identifier. The
boundary identifier MUST NOT enter the action key, which every
boundary that can reach one effecting target shares. A boundary or
store MUST refuse a recovery claim that does not name the attempt it
is made for, before it evaluates the authorization. Before a
boundary or store claims, releases, closes, or commits a record under
recovery authorization, it MUST verify that the record is one of the
records derived from the attempt the authorization names, and MUST
refuse any other record. One recovery authorization bound to the
attempt MUST suffice for the boundary to claim and close every record
that the attempt holds, including its occupation of the action key,
so that reconciliation or recovery of one attempt completes in one
operation. A boundary MUST NOT require a separately bound credential
for a record that it derives from the attempt's own records.
Reconciliation MUST record the attempt's terminal state, and confirm
it, before it releases, closes, or commits any of the attempt's
reservations or its occupation of the action key (Section 5.11). An
attempt record that is still in DISPATCH_PENDING or a later non-
terminal state MUST first be moved to INDETERMINATE through an atomic
transition, so that the original attempt can no longer record its own
outcome concurrently.
Reconciliation MUST NOT resurrect the original authorization or
silently release its native replay identity. Reconciliation to
FAILED releases the same-action fence; reconciliation to EXECUTED
keeps it closed. If policy permits a later attempt after an
authoritative FAILED result, that attempt MUST carry native authority
whose native replay identity has not been consumed, use a new
operation identifier, and complete the lifecycle required by local
policy. An implementation MUST NOT invoke again merely because a
timeout elapsed, because the caller retried, or because fresh native
authority was presented for the same action instance.
Schrock Expires 29 March 2027 [Page 29]
Internet-Draft Action Evidence Boundary September 2026
6. Declaration and Challenge Semantics
A deployment MAY publish a static declaration describing protected
actions, material fields, evidence requirements, challenge methods,
and effect-boundary placement. Such a declaration is discovery
metadata. It MUST NOT override the relying party's live, local
enforcement configuration. An unsupported declaration version MUST
be ignored as discovery input; it cannot weaken or replace live
enforcement. An action that the live boundary configuration cannot
classify or process under a supported version MUST fail closed.
When required evidence is absent or unacceptable, a boundary MAY use
its application protocol to return a dynamic challenge. A challenge
MUST identify the boundary-computed action, the missing evidence
roles, the policy context, an intended audience, a short expiry, and
a single-use unpredictable nonce or equivalent replay unit. The
nonce MUST NOT be consumed merely because untrusted bytes parse. It
MUST be consumed atomically only after the selected native verifier
establishes the integrity and challenge binding of an in-window
presentation, and before that presentation can reach SATISFIED or
authorize an effect. A presentation that is malformed,
unauthenticated, expired, or not bound to the challenge MUST be
refused without burning the nonce. A natively verified, challenge-
bound presentation consumes the nonce whether or not the remaining
evidence satisfies the requirement. Follow-up challenges MUST remain
bound to the original boundary-computed action and MUST NOT derive
that action from presenter input.
A declaration or challenge authorizes nothing, reserves nothing, and
promises no execution. A satisfied challenge still proceeds through
native verification, exact-action correspondence, AUTHORIZED, native
replay identity, the same-action fence, and atomic consumption or
reservation. MATCH and SATISFIED also apply when the relying party
selects CAID and AEC. This document intentionally defines no new
manifest object, challenge object, well-known URI, HTTP status code,
or media type.
7. Native Evidence and Transport Boundaries
7.1. WIMSE and HTTP Message Signatures
Workload Identity in Multi-System Environments (WIMSE) workload
credentials and the WIMSE HTTP Message Signatures profile
[WIMSE-HTTP] can provide end-to-end workload authentication and
message integrity for the request components covered by the validated
signature, including a body protected by a validated content digest.
HTTP Message Signatures [RFC9421] provide the underlying component-
signing mechanism.
Schrock Expires 29 March 2027 [Page 30]
Internet-Draft Action Evidence Boundary September 2026
AEB consumes those results; it does not redefine them. A validated
WIMSE request can establish which workload possessed the protected
key and that covered message components were not modified
undetectably. It does not by itself establish CAID MATCH, AEC
SATISFIED, named-human authorization, local AUTHORIZED, one-time
consumption, or execution.
The WIMSE AI Identity Management System (AIMS) document [WIMSE-AIMS]
describes how existing standards, including the WIMSE architecture
and the OAuth 2.0 family of specifications, can be applied to AI
agent authentication and authorization. The individual draft-munoz-
wimse-authorization-evidence submission [MUNOZ-WIMSE-EVIDENCE]
describes an adjacent signed-evidence composition. AEB begins after
the selected native identity and authorization path has produced the
inputs enforced at the effect boundary. It does not replace their
issuance, verification, mapping, or authorization semantics.
PEDIGREE [PEDIGREE] describes native identity and delegation-chain
evidence. The AEB result records whether the relying party's stated
delegation requirement was satisfied by the mapped evidence. It does
not reinterpret, re-derive, or override the delegation protocol's
native decision. In particular, a PEDIGREE completion block is post-
effect evidence and MUST NOT fill a pre-action authorization role.
Headers, routing metadata, forwarded identity, trace context, or
other values that an intermediary can add, remove, or mutate outside
the validated end-to-end integrity coverage MUST NOT be load-bearing
authorization evidence. They MAY be used for routing or diagnostics.
If such a value affects the protected consequence, the boundary MUST
derive it independently or require it to be covered by accepted
native integrity and the observed action's material binding.
7.2. AuthZEN and COAZ
The AuthZEN Authorization API [AUTHZEN-API] defines the PDP request
and decision interface. COAZ [AUTHZEN-COAZ] defines how an incoming
protocol operation is projected into the AuthZEN subject, action,
resource, and context (SARC) model. COAZ-MCP [AUTHZEN-COAZ-MCP]
applies that mapping to MCP operations. Those specifications remain
authoritative for operation-to-SARC mapping, PDP evaluation, and PEP
enforcement.
An AuthZEN decision applies to the request that the selected mapping
constructs. COAZ-MCP notes, under "Authorization Granularity and
Omitted Inputs", that two messages differing only in an input the
mapping does not project can receive the same decision, and it
forbids a PEP from representing a permit as evidence that the PDP
evaluated an omitted input. Its PEP behavior also requires the PEP
Schrock Expires 29 March 2027 [Page 31]
Internet-Draft Action Evidence Boundary September 2026
to check, before applying a permit, that the method, selected
mapping, and input-variable values are unchanged from the evaluated
message. A permit therefore covers only the inputs that the pinned
mapping projects.
The effect-owning PEP can record AUTHORIZED for the full executor
action only when every material field of that action is either
projected by the pinned COAZ mapping and covered by that operation-
binding check, or enforced by a separate relying-party-pinned check
(Section 5.3). Otherwise exact-action correspondence is
INDETERMINATE and the boundary MUST refuse. When the effect boundary
is not that PEP, the binding of the full executor action comes from
the PEP's native authorization handoff over the full action digest
(Section 5.8), not from the permit alone.
An AuthZEN decision consists of a boolean decision and an optional
context object. The Authorization API allows, but does not require,
a PDP to sign its response, and it defines no decision identifier and
no one-time-use property; its optional request identifier is
generated by the PEP. A new evaluation of an identical request can
therefore produce a new permit. On an AuthZEN path, the native
authorization identifier is the one the accepting PEP or gateway
assigns, and the same-action fence of Section 5.10 is what prevents a
second provider entry for an action whose first attempt is
INDETERMINATE.
AEB does not replace COAZ mapping with CAID and does not require a
second PDP. CAID is needed only if the boundary must compare the
authorized operation with an independently encoded provider action.
AEC is needed only if local policy adds multiple evidence roles
beyond the native decision.
7.3. Attested Per-Action Tokens and Permit Records
OAuth access tokens, Rich Authorization Requests, Transaction Tokens,
and related artifacts remain native OAuth inputs. OAuth
authorization servers retain their OAuth roles; a Transaction Token
Service retains Transaction Token issuance; and each accepting
workload or resource retains its native authorization and enforcement
decision. Their token, proof-of-possession, audience, and
transaction semantics are not redefined by AEB. AEB applies only the
downstream custody and provider-effect lifecycle selected by the
effect-owning relying party.
Schrock Expires 29 March 2027 [Page 32]
Internet-Draft Action Evidence Boundary September 2026
AP2 mandates [AP2] likewise retain AP2's native verification,
checkout, transaction-linkage, issuer, holder, and payment semantics.
An AEB implementation can consume an AP2 result and control one
covered provider entry without converting the mandate into an AEB
token or claiming AP2 interoperability.
Attested per-action tokens, including artifacts described by a
deployment as OASNT-like, remain native evidence formats. AEB does
not assign that descriptive label a token type, claim set, registry
entry, or trust meaning. The selected native verifier determines
what the token proves and exposes its integrity-protected action
commitment, issuer, audience, validity, freshness, status, and
bounded result to the AEB adapter.
Supply Chain Integrity, Transparency, and Trust (SCITT) Permit
records defined by [MUNOZ-PERMIT] likewise remain native pre-
execution decision evidence. AEB does not reserialize a Permit or
convert it into an AEB receipt. It verifies the selected Permit
revision through its native adapter. When the Permit's protected
action commitment binds the exact executor operation, that native
binding establishes exact-action correspondence. When the Permit and
the executor action are independently encoded, the boundary maps the
Permit's protected material action through a pinned CAID profile.
The Permit fills an evidence role only when the relying party selects
an AEC requirement that admits it for that role.
A native format's valid signature proves only the statement and
signer semantics that format defines. It does not, without an
additional accepted profile and evidence, prove that a natural person
operated the workload, understood the action, held authority, or
performed a particular approval ceremony.
8. Native Compilation Contract
An AEB adapter compiles the result of a native verifier into the
inputs needed by the AEB processing model. The native artifact,
verifier, trust model, and result remain authoritative for their own
semantics. Compilation MUST NOT convert a native result into an AEB
credential or permit, and an AEB result MUST NOT overwrite a native
result.
The compilation target is the ordered AEB decision and lifecycle
vocabulary: native verification, exact-action correspondence,
authorization, native replay identity, the same-action fence, atomic
reservation or consumption, provider entry, outcome classification,
and authenticated reconciliation. CAID matching and AEC satisfaction
are included only when the relying party selects the corresponding
cross-format or multi-leg stage. A successful compile establishes
Schrock Expires 29 March 2027 [Page 33]
Internet-Draft Action Evidence Boundary September 2026
only that the native result can be evaluated at those interfaces. It
does not establish that the action is authorized, executed, safe,
lawful, or true.
8.1. Pinned Inputs
Before compilation, the relying party MUST pin:
* the native protocol, document revision, media type, schema
version, and verifier revision;
* the adapter identifier, adapter revision, verifier implementation
identifier, and implementation digest;
* the native trust anchors, issuer and audience policy, clock,
freshness rules, and required status sources;
* the native operation profile, including its material-field
inventory, any instance field, and effecting target identity;
* when a cross-format join is selected, the exact source descriptor,
target CAID action type, mapping profile identifier, mapping
revision, and mapping digest;
* when AEC is selected, the accepted evidence role or roles;
* the authority namespace, the native replay identity derivation of
Section 5.9, and the replay scope; and
* every native field whose omission or change can affect the
protected consequence, evidence role, freshness, replay unit, or
local policy.
Presented data MAY select among already pinned native variants only
where the native protocol defines that selection and the relying
party enables it. Presented data MUST NOT add or change a trust
root, verifier, mapping, evidence role, material-field rule,
authority namespace, or replay scope.
A verifier implementation identifier and digest are relying-party-
selected configuration metadata. They do not prove that a measured
runtime loaded or executed those bytes. A compile result MUST keep
runtime measurement unestablished unless a separate accepted native
attestation proves it.
Schrock Expires 29 March 2027 [Page 34]
Internet-Draft Action Evidence Boundary September 2026
8.2. Deterministic Operations
An adapter exposes verifyNative, which verifies the artifact under
the pinned native rules and returns the integrity-protected native
result and exact operation binding. When the boundary performs a
cross-format join, the adapter also exposes the logically separate
mapAction operation, which maps only a VERIFIED native result to the
relying party's expected action under the pinned mapping profile.
Each selected operation MUST be deterministic for the supplied bytes
and pins. It MUST NOT perform a network request, consult ambient
credentials or trust stores, read mutable global state, or accept a
caller-supplied verification verdict. Required current status and
time MUST be explicit relying-party inputs.
The boundary MUST supply detached, recursively immutable copies of
the native artifact, expected action, trust inputs, status inputs,
adapter configuration, and mapping profile. An adapter MUST NOT
change a pinned input between native verification and action mapping.
8.3. Closed Compile Result
For each native artifact, the compiler MUST return a closed result
that contains:
* the native protocol, exact revision, artifact digest, and native
verification result;
* the adapter identifier, revision, and configuration digest, plus
the pinned verifier implementation identifier, revision, and
digest;
* when selected, the mapping profile identifier, revision, and
digest, plus mapper and resolver identifiers and the resolver
implementation digest;
* the source schema or media type and target action type;
* the exact relying-party-supplied expected material action value,
digest, and input provenance;
* the CAID and normalized-action digest when a cross-format join is
selected, or the exact native operation binding otherwise;
* when AEC is selected, the accepted evidence role and subject, plus
the status input and derived freshness result under pinned adapter
rules;
Schrock Expires 29 March 2027 [Page 35]
Internet-Draft Action Evidence Boundary September 2026
* the native replay identity, its authority namespace, and the
replay scope;
* whether verifier runtime measurement is established;
* the semantic-loss report defined below; and
* every compiler state that remains unsupported or indeterminate.
The compile result is typed verifier output. It is not a bearer
token, permit, receipt, or proof of execution. A deployment MAY
serialize it for diagnostics or evidence transport, but that
serialization MUST NOT become reusable authority.
A native profile MAY expose actor, acting-for principal, target,
declared purpose, audience, constraints, validity, or native
nonclaims only when its native verifier and pinned mapping establish
those values. The generic compiler MUST NOT infer them from a
subject identifier, policy decision, action label, natural-language
field, or trace metadata merely to fill a common shape.
A caller-supplied local-policy decision MAY be reported as an
explicit input, but it MUST NOT establish local authorization.
Authorization, reservation or consumption, provider entry, outcome,
and reconciliation remain unestablished until the component that owns
each transition evaluates and records it.
8.4. Semantic-Loss Report
The adapter MUST enumerate every field exposed by the native verifier
that the selected mapping does not carry into the target action or
accepted evidence role. Each omission MUST be classified as
material, non-material, or unknown under relying-party-pinned rules,
with a stable field path and declared basis. When no cross-format
join is selected, the same classification applies to the native
projection: every material field of the observed action that the
native decision request does not project, and that no relying-party-
pinned local check enforces, is an omitted material field.
An omitted material or unknown field makes exact-action matching
INDETERMINATE. That leg MUST NOT report equivalence, MATCH,
SATISFIED, or AUTHORIZED. Renaming, moving, defaulting, unit-
converting, rounding, truncating, or combining a material field is a
transformation and requires a pinned deterministic rule. Natural-
language similarity, an agent assertion, or a shared trace identifier
is not such a rule.
Schrock Expires 29 March 2027 [Page 36]
Internet-Draft Action Evidence Boundary September 2026
The compiler MAY retain a native mapper's raw relation, CAID, and
normalized-action digest for diagnostics, but MUST label them as raw
native output. They MUST NOT appear as the compiler-effective
relation after material or unknown loss. The effective CAID and
normalized- action digest are absent in that case.
If two compiled legs produce one CAID but different normalized-
action digests, the boundary MUST refuse the join. CAID remains a
typed content identifier. It is not an authorization claim or a
general declaration that two source formats have identical semantics.
8.5. Stable Native Replay Unit
Every accepted authorization-bearing native result MUST expose a
native replay unit. The native replay unit is the native replay
identity of Section 5.9 and MUST be derived as specified there, from
the authority namespace and the native authorization identifier only.
It MUST NOT include an AEB wrapper digest, AEB operation identifier,
consumption nonce, caller retry identifier, native system or profile
label, or other value whose change would make the same native
authority spendable again.
The evaluator MUST probe the adapter with a second deterministic
wrapper reference. Where the relying party accepts one issuer under
more than one source label within one authority namespace, the
evaluator MUST also probe the adapter with the same native authority
under a second accepted label, and, where pins declare a shared
authority namespace for two spellings of one issuer, under the second
spelling. If the replay unit changes while the verified native
authority does not, the result is INDETERMINATE. If two distinct
verified native artifacts from one adapter collapse onto one replay
unit without the native profile defining that equivalence, the result
is INDETERMINATE. A replay-unit value does not prove that
reservation or consumption occurred.
8.6. Path and Provider Ownership
A deployment MUST state whether the AEB boundary controls the
credential or other capability that reaches the effecting provider,
which provider-entry paths it mediates, and every direct,
administrator, break-glass, alternate-protocol, queued, or system-of-
record path that bypasses it. An observe-only adapter or an adapter
placed beside a write path MUST NOT be described as consequence
admission or complete mediation.
The compile result MAY record provider-attempt and reconciliation
bindings only after the corresponding AEB transitions occur. A
policy allow, access token, message signature, transparency receipt,
Schrock Expires 29 March 2027 [Page 37]
Internet-Draft Action Evidence Boundary September 2026
action record, audit record, or native permit MUST NOT be relabeled
as proof that provider entry, commitment, or an external effect
occurred.
8.7. Compilation Conformance
A native compilation profile MUST publish exact source locks, at
least one positive vector containing the original native bytes, and a
condition-removed control for every negative vector. Reports MUST
keep native verification, mapping, AEC, local policy, reservation,
provider outcome, and reconciliation results separate.
The profile MUST include hostile vectors for material-field omission
and substitution, mapping-pin change, stale or unavailable status,
wrapper replay, alternate-path bypass, refusal-time consumption,
concurrent admission, timeout after provider entry, blind retry,
reconciliation binding mismatch, fresh native authority for the same
action instance while an earlier attempt is INDETERMINATE, the same
native authority under a second accepted source label, a pin set
whose differently spelled issuer values normalize equal without a
shared authority namespace, a pre-entry stop with and without proof
that it never entered the provider, a pre-entry recovery that loses
its not-entered transition to an original attempt that reaches
DISPATCH_PENDING first, a lost acknowledgement of the write that
enters DISPATCH_PENDING, a store answer that is neither the
affirmative result nor a refusal, a failed reservation write while
another attempt holds a record with the same operation identifier,
recovery of one attempt while a later attempt holds a record that
both can hold in turn, a recovery authorization for one attempt
presented for another attempt's record, one issuer value pinned under
two different declared authority namespaces, and a native decision
request that omits a material field. A profile that accepts native
authorization handoffs MUST also include a handoff whose attested
action digest differs from the observed action. The profile MUST
state every native semantic that could not be compiled without
invention.
A profile that claims a direct native authorization path MUST show
the exact native operation binding, the native replay identity, and
the same-action fence without inserting a second PDP. A profile that
joins a separately encoded provider action MUST exercise the selected
CAID mapping, including a material-field substitution. A profile
that adds multiple evidence roles MUST exercise the selected AEC
requirement. Each report MUST say which conditional stages were used
and why.
Schrock Expires 29 March 2027 [Page 38]
Internet-Draft Action Evidence Boundary September 2026
A generic AEB compiler conformance claim requires at least two
materially unrelated native profiles to reach the same AEB lifecycle
without changing their native wire formats or result semantics. A
same-team runner is reference evidence, not an independent
implementation. Matching a finite vector set does not establish
complete mediation, production deployment, or provider truth.
9. Conformance and Deployment Claims
An implementation conforms to AEB only if every protected invocation
follows the ordered processing model in Section 5 and fails closed on
every missing or ambiguous required transition. A deployment MUST
state whether CAID or AEC is selected and MUST document:
* the protected action types and the effect paths actually mediated;
* the trusted configuration and durable-state boundaries;
* the native verifier revisions and relying-party pins;
* the native operation profile, material-field inventory, any
instance field, and effecting target identity for each protected
action type, and the method used to derive material action fields
at the boundary;
* the authority namespace pinned for each accepted native source;
* when native authorization handoffs are accepted, the pinned
gateways and the native sources accepted from each;
* the consumption, reservation, same-action fence, pre-entry
recovery, and cross-replica fencing mechanism, and how the
boundary proves ownership of the records it releases;
* the canonical form of each material field and the effecting target
identity configured on each boundary instance;
* the authoritative sources and matching rules used for
reconciliation; and
* all direct, break-glass, administrator, alternate-protocol, and
system-of-record paths that bypass the AEB implementation.
An implementation placed beside a write path is not complete
mediation. A deployment MUST NOT claim complete mediation unless the
protected system rejects all material alternate paths or subjects
them to an equivalent boundary. Observe-only operation MAY be useful
during deployment, but it MUST NOT be described as enforcement.
Schrock Expires 29 March 2027 [Page 39]
Internet-Draft Action Evidence Boundary September 2026
10. Security Considerations
*Cross-binding.* An attacker can splice a valid permit, approval,
credential, or receipt for action A into a request for action B.
Native verification before mapping, executor-owned action
construction, and exact correspondence between the authorized
operation and provider entry are required defenses. A cross-format
join also requires exact CAID matching. A multi-leg requirement also
requires a relying-party-pinned AEC evaluation. Omitting a stage
that the selected profile requires reopens the attack.
*Projection gaps.* A permit covers the decision request built by the
native mapping. If the mapping omits a field on which the
consequence depends, two different actions can receive the same
permit, and treating that permit as authorization of the full
executor action reopens cross-binding for the omitted field.
Section 5.3 therefore requires every material field to be projected
and operation-bound, or enforced by a separate pinned check.
*Fresh authority for an uncertain action.* A native decision
interface can return a new permit for each evaluation of an identical
request. If a provider call times out and the caller asks again, a
gateway can obtain a fresh permit and assign a fresh native
authorization identifier. Native replay identity cannot detect this,
because the authority really is new. Without the same-action fence,
the boundary would enter the provider a second time for an action
whose first effect may already have occurred. The fence of
Section 5.10 keeps that path closed until authenticated evidence
resolves the first attempt.
*Relabelled authority.* If a replay derivation covers a native system
or profile label, or a raw issuer spelling, a relying party that
accepts one issuer under two labels or two spellings lets one grant
be spent once per label or spelling. Deriving the native replay
identity from the authority namespace and native authorization
identifier, and refusing pin sets in which one issuer, however
spelled, does not map to exactly one namespace, removes that degree
of freedom. A pin set that declared two namespaces for one issuer
value would let one grant be spent once per namespace, so Section 4
refuses it. Normalization cannot detect every alias: two issuer
values that denote one authority but do not normalize equal need an
explicitly shared namespace, or one grant can be spent once per
value.
Schrock Expires 29 March 2027 [Page 40]
Internet-Draft Action Evidence Boundary September 2026
*Namespace rotation.* Changing an authority namespace, or the issuer
value of a pin that uses the default namespace, changes the native
replay identity of every grant accepted under it. A grant consumed,
or still in flight, under the old identity then looks unused.
Section 4 therefore requires in-flight attempts to be resolved and
consumed grants to be unpresentable before the change.
*Pre-entry stops.* A fence that only authenticated outcomes can
release turns every crash before provider entry into a permanent
refusal of that action. Section 5.10 therefore requires a recovery
operation, but releases only with proof that the attempt never
entered the provider. Releasing on a timeout or on local belief
would reopen the second entry that the fence prevents.
*Recovery racing a live attempt.* An attempt that looks stopped can
be slow rather than dead. If recovery observes a pre-entry record
and a provider lookup that finds nothing, the original attempt can
still enter DISPATCH_PENDING and dispatch a moment later. A recovery
that then used its lookup as evidence of FAILED would release the
action key while the first dispatch is in flight, and a fresh attempt
would enter the provider a second time. Section 5.10 therefore makes
recovery's own atomic not-entered transition the linearization point,
and a recovery that loses that transition releases nothing and never
reuses its lookup.
*Inferred non-entry.* A released record that lacks provider evidence
looks like an attempt that never entered the provider, but an attempt
that entered and failed looks the same when its store does not return
the evidence stored with it. A boundary that inferred non-entry from
that absence would release one-time authority for an attempt that did
enter, and the same authority would reach the provider again.
Section 5.10 therefore requires an explicit not-entered marker
written by the not-entered transition itself and treats its absence
as INDETERMINATE.
*Evidence-agnostic verification.* A verifier that accepts any well-
formed evidence, whatever it was asked, would accept a pre-entry "not
received" lookup as a terminal FAILED for an attempt whose dispatch
is still in flight, and the fence would release while the first
effect can still occur. Section 5.13 tells the verifier the purpose
of each check and counts only a result that affirms that purpose for
that attempt, and it requires presented evidence to carry its kind,
so that reconciliation refuses a lookup presented under its own kind
before any verifier runs. These measures do not make the verifier's
judgment checkable. A verifier can restate the purpose it was given,
or always affirm the terminal purpose, without evaluating the
evidence, and the party that presents evidence can present a lookup
under the terminal-outcome kind. The boundary cannot detect either,
Schrock Expires 29 March 2027 [Page 41]
Internet-Draft Action Evidence Boundary September 2026
and the two together still turn a "not received" lookup into a
terminal FAILED while a dispatch is in flight. That residual rests
on the verifier and on the party that presents the evidence, which is
why Section 5.13 states their obligations separately.
*Unverified adapter results.* A provider adapter can report a timeout
or a server error as FAILED although the effecting system committed
the operation. A boundary that released the action key on that
report would admit a fresh attempt for an action that executed.
Section 5.13 therefore requires the verifier on every boundary, for
the result that the dispatch returns as well as for reconciliation.
*Lost acknowledgements and non-affirmative answers.* A write can take
effect even though its acknowledgement is lost, and a store interface
can return a value that is neither success nor a clear refusal.
Treating either as a clean failure and releasing records would free
the action key of an attempt whose record says it may dispatch.
Section 5.11 and Section 5.12 therefore count only the affirmative
result as success and resolve every other answer through a durable
read before any release. A not-entered write whose acknowledgement
is lost is the sharpest case: a later read can still show
DISPATCH_PENDING while that write is pending, and a boundary that
dispatched on that read would leave a record that says "not entered"
for an attempt that entered, so recovery would release its one-time
authority and the action could reach the effecting system twice.
Section 5.12 therefore forbids dispatch after any not-entered write
has been sent.
*Record ownership.* Operation identifiers can be chosen by the
caller. An error path that releases a record by operation identifier
alone can delete a live record of another attempt that uses the same
identifier, reopening that attempt's authority and action key.
Section 5.11 therefore limits release to records whose ownership the
boundary can prove. The same holds for a record that successive
attempts can hold, such as a reservation keyed by an evaluation:
recovering one attempt must not commit or release that record while a
later attempt holds it. Releasing records before the attempt's
terminal or not-entered transition is confirmed has the same effect,
because the transition can still fail and leave a live attempt
without its records.
*Recovery credential scope.* A recovery credential bound to an
operation identifier or another value that several attempts share
authorizes claims on every attempt that shares it, including a live
one. Section 5.14 therefore binds recovery authorization to exactly
one attempt and requires every claimed record to be derived from that
attempt. Two further gaps have the same effect. A claim that names
no attempt cannot be checked against the records it covers, so it is
Schrock Expires 29 March 2027 [Page 42]
Internet-Draft Action Evidence Boundary September 2026
refused before the authorization is evaluated. Two boundaries that
share one store, whether of the same kind or of different kinds, can
assign the same attempt identifier, so the attempt identity includes
an identifier of the boundary and, across kinds, a component that
distinguishes them.
*Instance fields.* An instance field lets two intentionally identical
actions proceed. It also lets any party that can choose a new
instance value step around the same-action fence on a retry, because
the fence cannot tell a deliberate second instance from a retry that
carries a new instance value. Profiles should bind the instance
value inside the native authorization, set by the authorizing party,
so that a retrying caller cannot mint a new instance without new
authorization.
*Action-digest scope.* If an action digest covered a field that the
requester can vary without changing the consequence, such as a free-
text memo or a request timestamp, the requester could vary it to
obtain a new action key and step around the same-action fence. The
action digest therefore covers material fields only, and a profile
that must carry such a field to the provider either declares it
material or keeps it out of the action digest. Two spellings of one
material value have the same effect: without the canonical forms that
Section 5.10 requires, a retry that writes an amount, a currency
code, or a name differently obtains a new action key.
*Gateway trust.* A native authorization handoff moves trust from the
native issuer to the gateway. A compromised or misconfigured gateway
can attest permits that no PDP issued, or attest a full action digest
that its mapping never evaluated. Relying parties should pin the
narrowest set of gateways, source labels, and issuers, retain
historical pins across key rotation, and treat each accepted gateway
as part of the enforcement trusted computing base.
*Mutable context.* Intermediary-added headers and agent annotations
are convenient but are not trustworthy merely because they arrived on
an authenticated hop. Every load-bearing field needs accepted end-
to-end integrity coverage or independent derivation at the effect
boundary.
*Time of check and time of use.* The action passed to the executor
must be the frozen action that was verified, matched, satisfied,
authorized, and consumed or reserved. Mutable aliases, provider
defaults, exchange rates, destinations, branch heads, and policy
epochs can change a consequence after approval; profiles must bind or
revalidate them as material fields.
Schrock Expires 29 March 2027 [Page 43]
Internet-Draft Action Evidence Boundary September 2026
*Replay and distributed state.* Process-local caches are insufficient
where replicas can invoke the same effect. Replay, consumption,
reservation, same-action fence, and operation ownership state must be
durable, atomic, and shared across every boundary instance that can
reach the protected executor.
*Freshness and revocation.* Expiration, nonce checks, credential
status, authority status, and policy epoch are separate checks. A
fresh message does not make a revoked credential valid, and a current
credential does not make old per-action evidence fresh.
*Indeterminate effects.* Retrying after a timeout can duplicate a
payment, mutation, disclosure, or physical action. An invocation
that might have reached the provider consumes the operation's retry
right and holds its action key until authenticated reconciliation
resolves the exact outcome. Fresh authority does not reopen it.
Caller assurances and unauthenticated webhooks do not resolve it.
*Signature overclaiming.* A cryptographic signature can establish
control of a key and integrity of covered content under a selected
verification profile. It does not inherently identify a human, prove
human operation, prove comprehension, establish legal authority, or
prove execution.
*Boundary bypass.* A correct AEB implementation does not protect
direct database credentials, alternate APIs, shell access,
administrator consoles, side channels, or actuator paths that bypass
it. Deployment topology and credential placement are security
properties, not implementation details.
11. Privacy Considerations
Action objects and evidence can expose identities, destinations,
resources, policy choices, commercial relationships, and sensitive
operational timing. Deployments SHOULD minimize the evidence passed
to the executor and retained in portable records, use opaque high-
entropy references where appropriate, and avoid treating a plain
digest of low-entropy personal data as anonymization.
Same-action fence records retain action digests for as long as an
action key stays occupied or closed. A digest over low-entropy
material fields can reveal the action to anyone who can enumerate
candidate values; deployments SHOULD protect fence state accordingly.
Reconciliation queries can disclose that an operation is disputed or
uncertain. They SHOULD be authenticated, authorized, rate-limited,
and limited to the exact operation. AEB does not require public
disclosure of native evidence or local policy.
Schrock Expires 29 March 2027 [Page 44]
Internet-Draft Action Evidence Boundary September 2026
12. Relationship to EMILIA and Adjacent Work
CAID [CAID] owns typed material-action identity and exact, relying-
party-pinned cross-format mapping. AEB invokes CAID after native
verification only when independently encoded representations must be
joined. It does not extend CAID with trust semantics.
AEC [AEC] owns heterogeneous evidence composition and the SATISFIED
or UNSATISFIED result under a relying-party requirement. AEB invokes
AEC only when local policy requires multiple evidence legs, then
preserves the separate authorization and effect-lifecycle decisions.
The earlier Action Evidence Graph series [AEG] is replaced by AEC; an
implementation following an older citation MUST NOT treat the
superseded series as a second composition contract.
AIMS, OAuth, AuthZEN, COAZ, and AP2 own their respective identity,
delegation, authorization, protocol mapping, mandate, and native
enforcement semantics. AEB is a post-permit consequence-admission
lifecycle at a covered effect boundary. It does not create a
parallel identity system, authorization server, PDP, mandate, or
universal token. The native authorization handoff reports a
gateway's acceptance of a native permit; it is not a new permit and
grants nothing beyond the native decision it reports.
Authorization Receipts [RECEIPTS] define one native action-bound
organizational approval artifact and its receipt-specific consumption
semantics. AEB does not make that format mandatory and does not
generalize every native artifact into an EMILIA receipt.
Static declarations and dynamic evidence challenges remain distinct
protocol surfaces. A manifest can advertise discovery metadata,
while an Authorization Evidence Challenge can carry the live, action-
bound refusal and acquisition instructions. AEB owns the executor
lifecycle in which those inputs are evaluated; it does not absorb or
replace their wire formats.
Qualification, revocation, remedy, and action-to-outcome continuity
artifacts are optional native inputs or downstream records. They
retain their own semantics. AEB composes them only through pinned
verification, exact-action binding, local policy, durable custody,
and authenticated reconciliation.
A refusal MAY be represented by an action-bound signed refusal
statement. The refusal artifact records what the boundary refused
and why; it MUST NOT be interpreted as proof that every bypass path
was mediated, that delivery to a requester occurred, or that a later
action was refused.
Schrock Expires 29 March 2027 [Page 45]
Internet-Draft Action Evidence Boundary September 2026
13. IANA Considerations
This document has no IANA actions. In particular, it creates no
registry for native evidence types, lifecycle labels, refusal
reasons, verifier adapters, action mappings, handoff encodings, or
policy identifiers.
14. Changes since -06
* Added the same-action in-flight fence (Section 5.10) for every
attempt, whatever evidence path admits it. A new attempt whose
action key is held by a CONSUMED, RESERVED, DISPATCH_PENDING,
INVOKED, or INDETERMINATE attempt, or closed by an EXECUTED one,
is refused before provider entry, even when it carries fresh
authority and a new operation identifier; native authorization
paths report native_action_in_flight (or, once EXECUTED has closed
the key, optionally native_action_already_executed). The fence is
durable, is occupied by an atomic conflict-detecting write before
provider entry, and releases only on authenticated FAILED,
reconciliation to FAILED, a confirmed pre-entry release, or
authorized pre-entry recovery with proof that the attempt never
entered the provider. Pre-entry recovery is a separate operation
that never continues into reconciliation. Its own atomic not-
entered transition is the linearization point: a recovery that
loses that transition to the original attempt releases nothing,
treats the attempt as INDETERMINATE, and never uses its lookup
result as evidence of the outcome. Action digests and effecting
target identities are compared exactly, so profiles define
canonical forms for material fields. Instance fields let a
profile admit intentionally repeated actions.
* Required an explicit not-entered marker, written by the not-
entered transition itself, as the only proof besides a pre-
dispatch state that an attempt did not enter the provider. A
closed record without the marker or terminal provider evidence is
INDETERMINATE; the absence of evidence, or of an attempt record,
is never proof of non-entry. A boundary that has sent a write
that could record an attempt as not entered, even one whose result
it did not receive, never dispatches that attempt afterwards.
* Required every terminal outcome that commits or releases the
records of a dispatched attempt, on every boundary and including
the result that the dispatch itself returns, to be verified for
that attempt by a relying-party-configured verifier that is told
the purpose of the check and must affirm it. A "not received"
lookup is evidence only for pre-entry recovery, and a boundary
without such a verifier keeps a dispatched attempt INDETERMINATE.
Presented evidence carries its kind, and reconciliation and pre-
Schrock Expires 29 March 2027 [Page 46]
Internet-Draft Action Evidence Boundary September 2026
entry recovery each refuse the other kind before the verifier
runs; a verifier or presenter that mislabels evidence remains
outside what the boundary can detect.
* Required a boundary to release or close only records whose
ownership it can prove, and to release, close, or commit an
attempt's records only after the attempt's terminal or not-entered
transition is confirmed. Only the store's affirmative result
counts as success, and a lost acknowledgement of the write that
enters DISPATCH_PENDING is resolved through a durable read, never
by releasing. A record that successive attempts can hold is
closed only for its current owner. Recovery authorization is
bound to exactly one attempt, every claimed record must be derived
from that attempt, and one such authorization covers every record
of the attempt. A claim that names no attempt is refused before
its authorization is evaluated, and the attempt identity is scoped
to the boundary, so boundaries that share one store, of the same
kind or of different kinds, cannot name each other's records. A
refusal whose writes are not all confirmed released is reported as
INDETERMINATE.
* Defined the native replay identity once and made the stable replay
identity of -06 and the native replay unit of Section 8.5 the same
value. Its inputs are the relying-party-pinned authority
namespace, which defaults to the issuer, and the native
authorization identifier. Operation identifiers, wire labels such
as the native system and profile, and the issuer value when a
namespace is declared are excluded. One issuer, including every
issuer value equal to it after normalization, maps to exactly one
namespace in a pin set, and a namespace change requires in-flight
attempts and consumed grants to be drained first. Provider
idempotency keys derive from the native replay identity.
* Specified the native authorization handoff (Section 5.8): what a
gateway attests, what the boundary verifies and in which order,
how pins and status apply, and the shift of trust from the native
issuer to the gateway.
* Corrected the AuthZEN and COAZ text (Section 7.2). A permit
covers only the inputs that the pinned mapping projects. Binding
of the full executor action comes from the effect-owning PEP's
enforcement, or from a handoff over the full action digest, and
never from the permit alone. The semantic-loss report now covers
native projections.
Schrock Expires 29 March 2027 [Page 47]
Internet-Draft Action Evidence Boundary September 2026
* Defined material field without depending on CAID, through the
material-field inventory of the pinned native operation profile,
and added terminology for PEP, PDP, effect-owning PEP, native
operation profile, action digest, action instance, instance field,
effecting target identity, authority namespace, and action key.
* Bound each reconciliation result to the attempt it resolves.
* Made the SCITT Permit text in Section 7.3 consistent with
conditional CAID and AEC.
* Restored the definitions of the all_of and any_of members of EP-
AEB-REQUIREMENT-v1 and defined the evidence-binding term.
* Updated references to AEC -06, Authorization Receipts -13, and
WIMSE HTTP Signatures -07, pinned the COAZ and COAZ-MCP references
to an openid/authzen commit, expanded acronyms on first use, and
rewrote the implementation status to describe the direct native
path, both reference Gate boundaries, and the synthetic lifecycle
corpus.
Revision -06 positioned AEB after native identity and authorization
systems, made CAID conditional on a cross-format join and AEC
conditional on a multi-leg evidence requirement, stated that an
effect-owning PEP can accept a native authorization result without a
second PDP, distinguished an authorized MCP or API request from a
downstream provider effect, made the post-permit sequence explicit,
cited the WIMSE AIMS working-group document, and added informative
AuthZEN, COAZ, COAZ-MCP, and AP2 references.
15. Implementation Status
This section records the status of known implementations at the time
of writing, following [RFC7942]. It is to be removed before
publication as an RFC.
The Apache-2.0 reference implementation provides relying-party-pinned
adapter and mapping registries, multi-leg CAID joins, the boundary
terms defined above, current-status verification, signed
configuration-bound evaluation records, durable ownership-fenced one-
time consumption, execution reservation and reconciliation, and
signed refusal statements. It also exposes a closed native-compiler
report over the adapter contract, an AuthZEN-derived local PEP-
observation profile, a source-pinned OAuth Transaction Authorization
Challenge profile [OAUTH-TXN-CHALLENGE], a strict request-only
profile over WPT-02 [WIMSE-WPT] and Transaction Tokens -11
[OAUTH-TXN-TOKENS], and a WIMSE R10 compatibility matrix. The
AuthZEN-derived path verifies an EMILIA-signed local PEP observation,
Schrock Expires 29 March 2027 [Page 48]
Internet-Draft Action Evidence Boundary September 2026
not an artifact defined or signed by AuthZEN. It therefore does not
count toward the two-external-native-profile gate. OAuth transaction
challenge and WPT plus Transaction Tokens are the two direct
external-native candidates. Their mappings have not been reviewed by
the native protocol owners, the published profiles still need an
audited match against every required hostile vector and paired
control, and their OAuth adjacency requires an explicit protocol-
diversity judgment before the generic gate can close.
Direct native path. At the commit cited by [EP-NATIVE-HANDOFF], the
reference verifier package verifies a gateway-signed AEB-NATIVE-
AUTHORIZATION-HANDOFF-v1 statement under pinned gateway keys and
source pins, and derives the native replay identity itself from the
pinned authority namespace and the native authorization identifier,
as Section 5.8 and Section 5.9 require. For wire compatibility with
earlier releases, the signed handoff still carries a replay_unit
computed over the native system and profile labels, the issuer, and
the authorization identifier; the verifier checks it as part of the
encoding and never uses it as the replay identity. In addition to
the replay identity, the reference Gate fences a key over that
carried value computed for every source label and issuer value pinned
under the grant's authority namespace, not only for the presented
label, so authority consumed by an earlier release under one label
stays fenced under every label still pinned; that key is never the
only fence, and it covers only the labels pinned at the time. The
earlier release has no same-action fence, so the reference
documentation requires that it not serve a durable state domain
together with the current code. The verifier's pin-set check refuses
a pin set that does not map each issuer, including issuer values that
are equal after the normalization of Section 4, to exactly one
authority namespace, and the verifier derives no replay identity
under such a pin set.
At the same commit, both reference Gate boundaries, the native
consequence boundary and the composed CAID and AEC boundary,
implement the same-action fence of Section 5.10. They derive one
action key from the relying party identifier, the configured provider
coordinates, and the action digest, so they fence each other when
they share a store. Each writes the attempt record before any record
that occupies the action key, records an explicit not-entered marker
with every not-entered transition, never calls the provider after it
has sent a not-entered write and, when its start cannot be confirmed,
sends none and holds every record, treats a closed record that
carries neither that marker nor provider evidence as INDETERMINATE,
never counts a store answer other than the exact affirmative result
as success, and provides the pre-entry recovery of Section 5.10 as a
separate mode of its reconciliation operation. In that mode its own
not-entered transition of the attempt record is the linearization
Schrock Expires 29 March 2027 [Page 49]
Internet-Draft Action Evidence Boundary September 2026
point, a recovery that loses the transition returns INDETERMINATE
without releasing anything, and the attempt's records are released
only after the transition is confirmed. Recovery authorization is
scoped to one attempt, and a claimed record must be one derived from
that attempt. The composed boundary has no recovery for an
evaluation reservation that a run made before it wrote its attempt
record: such a reservation stays held, because nothing durable
distinguishes a crashed run from a live one that has not yet written
its record.
The two boundaries key their records differently. The native
boundary keys each of its three reservations, for the operation, the
native replay identity, and its occupation of the action key, by the
attempt. The composed boundary keys its occupation of the action key
by the attempt, but keys its evaluation reservation by the
evaluation, which successive attempts can present. It commits that
reservation for an attempt only on proof that the attempt still owns
it: a durable read showing the attempt's own occupation of the action
key still held, or, without such a read, the acknowledged close of
that occupation. Its pre-entry recovery releases only that
occupation, leaving the evaluation reservation to the run that made
it. Where its consumption store offers no durable state read, or its
attempt store offers none or does not declare that it stores and
returns the not-entered marker, the composed boundary confirms a
transition or release only by the store's exact affirmative result
rather than by the authenticated durable read that Section 5.11
requires. It then treats only its own not-entered transition
answered affirmatively as proof of a pre-entry stop, and because it
cannot tell a recovery's not-entered transition from its own lost
write, a run that loses that race keeps every record held and the
action key occupied. The reference PostgreSQL consumption store
exposes a durable state read and an authorized recovery claim that
both boundaries use after a restart. Before the authorizer runs, the
store refuses a claim that carries no recovery scope and a claim for
any record other than one the scope names for its attempt. The scope
names the boundary kind and a configured boundary identifier as well
as the attempt identifier, and every record keyed by the attempt
includes both, so two boundaries that share one store and one attempt
identifier, of the same kind or of different kinds, do not share
claims.
Evidence verification. Both boundaries require an operator-
configured verifier that receives the attempt, its provider
idempotency key, and the purpose of the check, and that affirms an
outcome only by restating all three; each refuses to be constructed
without one. Neither boundary accepts a terminal outcome for an
attempt that reached DISPATCH_PENDING without that affirmation,
including the result of its own provider call, so a provider
Schrock Expires 29 March 2027 [Page 50]
Internet-Draft Action Evidence Boundary September 2026
adapter's report of FAILED alone never releases the action key.
Evidence presented to reconciliation carries its kind in the
boundary's input, and each mode refuses the other kind before the
verifier runs. The reference code checks that a verifier's answer
restates the purpose, the attempt, and the idempotency key it was
given, but it cannot tell whether the verifier evaluated the evidence
or whether evidence was presented under the right kind: a lookup
presented as a terminal outcome to a verifier that restates whatever
it is asked is accepted as a terminal outcome. The reference code
does not itself authenticate an effecting system: the authenticated-
evidence requirements of Section 5.10, Section 5.13, and Section 5.14
are met only if the operator's verifier authenticates the provider
evidence it accepts. Neither boundary can tell whether an effecting
system offers a lookup: both accept an indeterminate provider answer
as the absence of one, so presenting the lookup result where a lookup
exists is the operator's responsibility.
The reference Gate implements no material-field inventory and no
canonical-form equivalence. It compares the caller-supplied action
digest and the configured provider coordinates exactly, so the
canonicalization that Section 5.10 requires is performed by the
caller or its profile. This code is same-team reference code, not an
independent implementation, and has no known production deployment.
Synthetic lifecycle corpus. A 26-case corpus [EP-LIFECYCLE-CORPUS]
runs four synthetic native-result profiles (AuthZEN with COAZ-MCP,
AP2, an OAuth Transaction Token, and a locally signed mandate)
through one post-authorization lifecycle model. Its runner
implements its own store and boundary model and does not execute the
reference verifier or Gate packages, so its results describe that
model rather than the shipped code. It includes cases with fresh
native authority for an action whose first attempt is INDETERMINATE
or has EXECUTED, and a case that relabels one grant under a second
source label.
The informative EP-FIELD-ORIGIN-v0.1 profile is evaluated before
admission in the reference Gate. Its Gap 6 implementation profile
has 14 deterministic cases, including disallowed field origins,
unknown origin, profile substitution, an unpinned transformation, and
the positive case in which untrusted content supplies only a bounded
memo field. Conformance vectors and adversarial tests cover selected
reference paths; the full conformance set above remains future
conformance work and is not established by this revision. These
same-team artifacts are not an independent implementation, are not an
adoption claim, and do not prove that a deployment mediates every
effect path.
16. References
Schrock Expires 29 March 2027 [Page 51]
Internet-Draft Action Evidence Boundary September 2026
16.1. Normative References
[AEC] Schrock, I., "Authorization Evidence Chains: Composing
Heterogeneous Agent-Action Evidence (EP-AEC)", Work in
Progress, Internet-Draft, draft-schrock-ep-authorization-
evidence-chain-06, 6 September 2026,
.
[BCP14] Internet Engineering Task Force, "Key Words for Use in
RFCs to Indicate Requirement Levels", BCP 14, 2017,
.
[CAID] Schrock, I., "The Canonical Action Identifier (CAID)",
Work in Progress, Internet-Draft, draft-schrock-canonical-
action-identifier-02, 6 August 2026,
.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, .
16.2. Informative References
[AEG] Schrock, I., "Action Evidence Graph for Consequential
Agent Actions", Work in Progress, Internet-Draft, draft-
schrock-ep-action-evidence-graph-00, July 2026,
.
[AP2] Google Agentic Commerce, "Agent Payments Protocol (AP2),
v0.2 CheckoutMandate and PaymentMandate", 2026,
.
[AUTHZEN-API]
Gazitt, O., Brossard, D., and A. Tulshibagwale,
"Authorization API 1.0", OpenID AuthZEN Final
Specification, 11 January 2026,
.
Schrock Expires 29 March 2027 [Page 52]
Internet-Draft Action Evidence Boundary September 2026
[AUTHZEN-COAZ]
Olivier, A. and A. Tulshibagwale, "COAZ: A Framework for
Mapping Information Models to AuthZEN Authorization
Requests - Draft 1", OpenID AuthZEN Working Group Draft 1,
13 February 2026, . Editor's copy in the
openid/authzen repository at commit
78a5165a0048895a345e4ac5b0f2b9c7904bb110, retrieved 24
September 2026. Work in progress; not a final
specification.
[AUTHZEN-COAZ-MCP]
Tulshibagwale, A. and A. Olivier, "COAZ-MCP: COAZ Binding
for the Model Context Protocol - Draft 1", OpenID AuthZEN
Working Group Draft 1, 13 February 2026,
. Editor's copy in the
openid/authzen repository at commit
78a5165a0048895a345e4ac5b0f2b9c7904bb110, retrieved 24
September 2026, which includes the operation-binding
change merged on 10 September 2026. Work in progress; not
a final specification.
[EP-FIELD-ORIGIN]
EMILIA Protocol, "EP-FIELD-ORIGIN-v0.1 Informative
Implementation Profile and Gap 6 Runner", 15 August 2026,
.
[EP-LIFECYCLE-CORPUS]
EMILIA Protocol, "Consequence-Admission Lifecycle
Composition Corpus v0.1", 25 September 2026,
. Repository commit
b1b268e7d0538a9e22e379ddb06f55149d352c3b. Synthetic same-
team corpus.
[EP-NATIVE-HANDOFF]
EMILIA Protocol, "AEB-NATIVE-AUTHORIZATION-HANDOFF-v1
Reference Encoding and Native Consequence Boundary", 25
September 2026, .
Schrock Expires 29 March 2027 [Page 53]
Internet-Draft Action Evidence Boundary September 2026
Repository commit
b1b268e7d0538a9e22e379ddb06f55149d352c3b. Same-team
reference code; informative only.
[MUNOZ-PERMIT]
Munoz, C., "A SCITT Profile for Pre-Execution AI Action
Authorization Records", Work in Progress, Internet-Draft,
draft-munoz-scitt-permit-profile-01, July 2026,
.
[MUNOZ-WIMSE-EVIDENCE]
Munoz, C., "Signed Authorization-Evidence Records for
WIMSE-Authorized AI Agent Actions", Work in Progress,
Internet-Draft, draft-munoz-wimse-authorization-evidence-
01, July 2026, .
[OAUTH-TXN-CHALLENGE]
Rosomakho, Y., Campbell, B., McGuinness, K., and P.
Kasselman, "OAuth Transaction Authorization Challenge",
Work in Progress, Internet-Draft, draft-rosomakho-oauth-
txn-challenge-00, 25 June 2026,
.
[OAUTH-TXN-TOKENS]
Tulshibagwale, A., Fletcher, G., and P. Kasselman,
"Transaction Tokens", Work in Progress, Internet-Draft,
draft-ietf-oauth-transaction-tokens-11, 30 July 2026,
.
[PEDIGREE] Rampalli, K., "PEDIGREE: Verifiable Delegation Identity
for Agentic AI Systems", Work in Progress, Internet-Draft,
draft-rampalli-pedigree-00, April 2026,
.
[RECEIPTS] Schrock, I., "Authorization Receipts for High-Risk Agent
Actions", Work in Progress, Internet-Draft, draft-schrock-
ep-authorization-receipts-13, 12 September 2026,
.
Schrock Expires 29 March 2027 [Page 54]
Internet-Draft Action Evidence Boundary September 2026
[RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running
Code: The Implementation Status Section", BCP 205,
RFC 7942, DOI 10.17487/RFC7942, July 2016,
.
[RFC9421] Backman, A., Ed., Richer, J., Ed., and M. Sporny, "HTTP
Message Signatures", RFC 9421, DOI 10.17487/RFC9421,
February 2024, .
[WIMSE-AIMS]
Kasselman, P., Lombardo, J., Rosomakho, Y., Campbell, B.,
Steele, N., and A. Parecki, "AI Identity Management
System", Work in Progress, Internet-Draft, draft-ietf-
wimse-aims-00, 15 September 2026,
.
[WIMSE-HTTP]
Salowey, J. A. and Y. Sheffer, "WIMSE Workload-to-Workload
Authentication with HTTP Signatures", Work in Progress,
Internet-Draft, draft-ietf-wimse-http-signature-07, 20
September 2026, .
[WIMSE-WPT]
Campbell, B. and A. Schwenkschuster, "WIMSE Workload Proof
Token", Work in Progress, Internet-Draft, draft-ietf-
wimse-wpt-02, 27 August 2026,
.
Acknowledgments
External review sharpened the boundaries between workload and message
integrity, per-action authorization evidence, credential status,
human operation, and executor-owned effect control. Those
distinctions are load-bearing in this document. Acknowledgment does
not imply endorsement.
Author's Address
Iman Schrock
EMILIA Protocol, Inc.
United States of America
Email: team@emiliaprotocol.ai
Schrock Expires 29 March 2027 [Page 55]