Network Working Group J. D. Hillier Internet-Draft Certisyn, Inc. Intended status: Standards Track 13 August 2026 Expires: 14 February 2027 Attestation Reconciliation Protocol draft-hillier-scitt-arp-03 Abstract This document specifies the Attestation Reconciliation Protocol (ARP), a deterministic, bilateral, minimum-disclosure mechanism for reconciling verification claims against a plurality of sovereign authoritative registers without raw register records leaving their data-residency jurisdiction. ARP extends the SCITT (Supply Chain Integrity, Transparency, and Trust) architecture to cross-sovereign claim reconciliation. A reconciliation server canonicalises a structured claim, binds the identity of the requesting principal -- including, where the requester is an autonomous agent, a friend-or- foe determination of that agent's verifiable principal binding -- projects the claim through register-specific controlled projection functions producing the nearest permitted ancestor predicate supported by each addressed register, transmits register-specific ciphertexts, receives partial attestations whose payload discloses, of the subject, only a verdict, an optional divergence axis, the applied profile parameters and a query binding digest, aggregates those attestations under a verdict arithmetic the deployment's policy resolves, committing each register's contribution to a Merkle tree, and seals the resulting reconciliation output against a policy- version hash. An append-only cross-jurisdictional settlement-layer ledger records digests and structural metadata, with no claim, register-record or principal content. The protocol supports retroactive re-evaluation of historical reconciliations under updated pattern libraries or policy versions without bilateral renegotiation, and a cryptographic-primitive-upgrade path including post-quantum primitives. This revision adds a normative binding to the SCITT Reference APIs, register data-format profiles for beneficial- ownership, corporate-registry, customs and consolidated-sanctions formats, and a source-data version binding that makes a change in a historical verdict attributable to a change in policy or to a change in the underlying published corpus. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Hillier Expires 14 February 2027 [Page 1] Internet-Draft ARP August 2026 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 14 February 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. Note to the RFC Editor . . . . . . . . . . . . . . . . . . . 4 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5 3. Conventions and Definitions . . . . . . . . . . . . . . . . . 6 4. Architecture . . . . . . . . . . . . . . . . . . . . . . . . 14 4.1. Canonical Claim Ingestion . . . . . . . . . . . . . . . . 16 4.2. Requester Identity Binding and Agent Friend-or-Foe Gate . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.3. Adversarial Pre-Transmission Test . . . . . . . . . . . . 18 4.4. Per-Register Projection Function . . . . . . . . . . . . 20 4.5. Register Data-Format Profiles . . . . . . . . . . . . . . 22 4.5.1. Beneficial ownership: BODS . . . . . . . . . . . . . 23 4.5.2. Corporate registries: vCard and the Organization Ontology . . . . . . . . . . . . . . . . . . . . . . 24 4.5.3. Customs and transport: UN/CEFACT and the WCO Data Model . . . . . . . . . . . . . . . . . . . . . . . . 25 4.5.4. Sanctions: consolidated list formats . . . . . . . . 26 4.6. Source-Data Version Binding . . . . . . . . . . . . . . . 27 4.7. Per-Register Encryption . . . . . . . . . . . . . . . . . 28 4.8. Partial Attestation Reception . . . . . . . . . . . . . . 29 4.9. Merkle Construction . . . . . . . . . . . . . . . . . . . 31 Hillier Expires 14 February 2027 [Page 2] Internet-Draft ARP August 2026 4.10. Aggregation . . . . . . . . . . . . . . . . . . . . . . . 32 4.11. Registers That Do Not Answer . . . . . . . . . . . . . . 32 4.12. Verdict Re-Typing . . . . . . . . . . . . . . . . . . . . 34 4.13. Verdict Arithmetic . . . . . . . . . . . . . . . . . . . 35 4.14. Reconciliation Output . . . . . . . . . . . . . . . . . . 37 4.15. Output Entitlement and Delivery . . . . . . . . . . . . . 41 4.15.1. Audience . . . . . . . . . . . . . . . . . . . . . . 42 4.15.2. Reliance Horizon . . . . . . . . . . . . . . . . . . 43 4.15.3. Delivery . . . . . . . . . . . . . . . . . . . . . . 44 4.16. Policy-Version-Hash Sealing . . . . . . . . . . . . . . . 45 4.17. Post-Seal Evaluation Records . . . . . . . . . . . . . . 47 4.18. Settlement-Layer Ledger . . . . . . . . . . . . . . . . . 49 4.18.1. Replication . . . . . . . . . . . . . . . . . . . . 58 4.19. Regulator Portal . . . . . . . . . . . . . . . . . . . . 59 4.19.1. Sovereign Re-Notification . . . . . . . . . . . . . 60 4.20. Audit Path . . . . . . . . . . . . . . . . . . . . . . . 61 4.21. Retroactive Evaluation . . . . . . . . . . . . . . . . . 62 4.21.1. Evaluation Sweep Statements . . . . . . . . . . . . 63 4.21.2. Revocation and the reliance window . . . . . . . . . 65 4.22. Cryptographic-Primitive-Upgrade Path . . . . . . . . . . 66 5. Agentic Principal Reconciliation . . . . . . . . . . . . . . 66 6. Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . 67 6.1. CBOR-COSE Encoding . . . . . . . . . . . . . . . . . . . 67 6.2. Reconciliation Request Binding . . . . . . . . . . . . . 68 6.3. HTTP Message Signature Binding . . . . . . . . . . . . . 69 6.4. Output and Ledger Read Binding . . . . . . . . . . . . . 69 6.4.1. Request signing profile . . . . . . . . . . . . . . . 69 6.4.2. Read operations . . . . . . . . . . . . . . . . . . . 71 6.4.3. Responses . . . . . . . . . . . . . . . . . . . . . . 73 6.4.4. Error semantics . . . . . . . . . . . . . . . . . . . 76 6.5. SCITT Reference API Binding . . . . . . . . . . . . . . . 78 6.5.1. Registration . . . . . . . . . . . . . . . . . . . . 78 6.5.2. Asynchronous registration . . . . . . . . . . . . . . 80 6.5.3. Sealing-key discovery . . . . . . . . . . . . . . . . 81 6.5.4. Receipt validation . . . . . . . . . . . . . . . . . 83 6.5.5. Policy-version determination . . . . . . . . . . . . 83 6.6. Verifiable Credentials Interop . . . . . . . . . . . . . 84 7. Security Considerations . . . . . . . . . . . . . . . . . . . 84 7.1. Service-Operator Containment . . . . . . . . . . . . . . 84 7.2. Budget Exhaustion as a Suppression Channel . . . . . . . 86 7.3. Pattern-Library Integrity . . . . . . . . . . . . . . . . 87 7.4. Agent Impersonation and Friend-or-Foe Integrity . . . . . 88 7.5. Bilateral-Register-Agreement Drift . . . . . . . . . . . 88 7.6. Replay Defence . . . . . . . . . . . . . . . . . . . . . 88 7.7. Post-Quantum Migration . . . . . . . . . . . . . . . . . 89 7.8. Side-Channel Considerations . . . . . . . . . . . . . . . 89 8. Privacy Considerations . . . . . . . . . . . . . . . . . . . 89 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 90 Hillier Expires 14 February 2027 [Page 3] Internet-Draft ARP August 2026 9.1. Well-Known URIs . . . . . . . . . . . . . . . . . . . . . 93 9.2. Media types . . . . . . . . . . . . . . . . . . . . . . . 94 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 96 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 97 11.1. Normative References . . . . . . . . . . . . . . . . . . 97 11.2. Informative References . . . . . . . . . . . . . . . . . 99 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 101 A.1. Example: Three-register Sanctions Reconciliation . . . . 101 A.2. Example: Retroactive Re-evaluation . . . . . . . . . . . 103 A.3. Example: Agentic Principal Reconciliation . . . . . . . . 105 A.4. Example: Divergent Agent-Action Reconciliation . . . . . 105 Appendix B. Composition with the SCITT Architecture . . . . . . 106 Appendix C. Composition with the RATS Architecture . . . . . . . 107 Appendix D. Composition with Agent-Action Accountability Capsules . . . . . . . . . . . . . . . . . . . . . . . . 107 D.1. The two digest constructions are distinct . . . . . . . . 109 D.1.1. What a content digest does and does not establish . . 111 Appendix E. Document History . . . . . . . . . . . . . . . . . . 113 E.1. Since draft-hillier-scitt-arp-02 . . . . . . . . . . . . 113 E.1.1. Five things the protocol assumed and never stated . . 117 E.1.2. Ways the protocol could be gamed, closed . . . . . . 120 E.2. Since draft-hillier-scitt-arp-01 . . . . . . . . . . . . 122 E.3. Since draft-hillier-scitt-arp-00 . . . . . . . . . . . . 126 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 127 1. Note to the RFC Editor RFC EDITOR: please remove this section before publication. This document is Standards Track and makes four normative references to Informational documents: RFC 6839, RFC 8785, RFC 9053 and RFC 9334. Each is a downref under [RFC8067]. RFC 6839, RFC 9053 and RFC 9334 are already recorded in the downref registry, so no Last Call action is required for them; RFC 8785 is not, and it is the one that needs the announcement below. That reference is deliberately normative: ARP's Canonical Claim is a digest over an RFC 8785 serialisation preceded by Unicode Normalization Form C, and the subject digest of Appendix D is a digest over an unmodified RFC 8785 serialisation. Neither can be computed without RFC 8785, and an implementation that substituted any other canonicalisation would compute a different value for the same claim. The reference is therefore load-bearing for interoperability and cannot be demoted to informative. This is called out here so that the downref can be noted in the IETF Last Call announcement, which Section 2 of [RFC8067] strongly recommends without requiring. Hillier Expires 14 February 2027 [Page 4] Internet-Draft ARP August 2026 This document also makes a normative reference to [I-D.ietf-scitt-scrapi], which at the time of writing has completed IETF process and is in the RFC Editor queue with no RFC number yet assigned. Section 6.5 imposes requirements expressed in terms of that document's endpoints, status codes and media types, and an implementation cannot satisfy them without it, so the reference cannot be informative. RFC EDITOR: this document should not be published before that draft, and the reference should be updated to the resulting RFC number. 2. Introduction Sovereign authoritative registers record facts that are treated as conclusive within their jurisdiction. Examples include beneficial- ownership registers (such as the United States FinCEN Beneficial Ownership Secure System, the United Kingdom People with Significant Control register, and the European Union beneficial-ownership registers under the Anti-Money-Laundering Directives), corporate registries, consolidated sanctions lists, export-control registers, foreign-ownership-and-control-or-influence registers, maritime vessel registrations, flag-state registers, aviation registrations, land- title registries, customs declarations, and multilateral biometric registers. Institutional decision-makers -- including export-control compliance officers, anti-money-laundering review functions, foreign-investment screening review functions, sanctions-screening operators, multilateral aid distribution authorities, and platform-owned verification infrastructure -- routinely require reliance on facts recorded across two or more sovereign registers simultaneously. Cross-sovereign reliance today faces four structural problems, which this protocol is designed to address in combination: 1. *Raw-record disclosure.* Existing approaches require the raw register record either to leave its data-residency jurisdiction or to be re-disclosed in plaintext to a relying party in another jurisdiction. Sovereign registers under data-protection regimes are jurisdictionally constrained against such re-disclosure. 2. *Non-reconcilable register outputs.* Each sovereign register exposes a different schema, a different signing chain, a different verdict semantic, and a different statutory access regime. A relying party that requires a deterministic combined verdict over n sovereign registers therefore faces n parallel verification problems. Hillier Expires 14 February 2027 [Page 5] Internet-Draft ARP August 2026 3. *Non-auditable settlement.* Cross-sovereign reliance, where it occurs at all, occurs without a settlement-layer audit trail consumable by sovereign regulators. 4. *Unverifiable requester identity in an agentic setting.* Cross- sovereign reliance is increasingly initiated not by an authenticated human operator but by an autonomous software agent acting on behalf of a principal. Where the agent's binding to a real, authenticated principal cannot be verified, the reconciliation is performed for an unknown or impersonated party, and the settlement record attributes reliance to no accountable principal. An agent whose principal binding cannot be verified is treated as hostile (zero-trust); the normative rules are in Section 3 and Section 7.4. This document specifies ARP, a protocol that addresses all four deficiencies in combination, and is layered atop the SCITT architecture [RFC9943] and the RATS architecture [RFC9334]. The fourth deficiency is not hypothetical. Where an autonomous agent can act, its containment assumptions may not hold at run time, and a binding between an agent's claimed authority and its actual conduct that is established only after the fact is not a control. The binding must be checkable at the moment of action. ARP is designed for that moment. Forensic reconstruction establishes what an agent did after a consequence has occurred; ARP reconciles an agent's claimed authority and principal binding against authoritative registers while the action can still be refused. A reconciliation that yields a non-decisive or divergent verdict is a control input available before the action commits, not an audit finding available after. This document treats real-time reconciliation of claimed- versus-actual conduct as a first-class property of accountable autonomous action. 3. Conventions and Definitions 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. The following terms are defined for use throughout this document: Sovereign Register: An authoritative data store maintained by or on Hillier Expires 14 February 2027 [Page 6] Internet-Draft ARP August 2026 behalf of a sovereign and treated as conclusive within that sovereign's jurisdiction for the predicates the register is empowered to record. Register Operator: The entity that operates the Sovereign Register and is contractually empowered to bind the register's attestations. Bilateral Register Agreement: A negotiated contractual instrument between the operator of the reconciliation server and a Register Operator, declaring the permitted-predicate set, supported cryptographic primitives, supported cryptographic-primitive- upgrade path, the transport, endpoint, framing and encryption construction of the bilateral channel of Section 4.4, the regulator-identity-provider trust anchor, notification endpoint and statutory-regulator-access scope of Section 4.19 together with the per-jurisdiction permitted-read-field and permitted-read- predicate sets it is computed from, the Subject Reference form and Freshness Window of Section 4.4, the register's data-format profile and its parameters under Section 4.5, the register's public key material, the response window after which a register is recorded unresponsive, the per-principal per-subject query budget and its interval and any per-subject ceiling under Section 7.1, the ledger-head notarisation interval and the Transparency Service of Section 4.18, the artefact retention period of Section 4.15.3, the read rate limit of Section 6.4.4, the notarisation polling bound of Section 6.5.2, the authority origin of the reconciliation server it authorises, at least one Audit Identity under Section 4.20, the Register Operator's own read key, whether the Per-Register Claim Projection must carry the Requester-Binding Class, the audit right over the query-budget counter of Section 7.2, the reserved proportion of any per-subject ceiling and its per-principal sub-budget, and OPTIONALLY an audience constraint under Section 4.15.1. Each Bilateral Register Agreement carries an Agreement Hash: the SHA-256 digest over the deterministically encoded CBOR array of the declared items above, in the order above, each absent optional item encoded as CBOR null. The reconciliation server and the Register Operator compute it independently and MUST obtain the same value, which "its canonicalised content" -- the wording of earlier revisions -- does not make possible. Policy-Epoch Store: The persisted, versioned record of a deployment's verification-policy state, from which the Policy- Version Hash of Section 4.16 is reconstructible and from which the reconciliation server resolves, per predicate and named regime set, the Verdict Arithmetic and its parameters and the reliance interval. It holds the Deployment Blinding Value and the Hillier Expires 14 February 2027 [Page 7] Internet-Draft ARP August 2026 Requester-Binding of each reconciliation. It is internal to the reconciliation server; this document constrains what it must be able to answer and not how it is built. Requesting Principal: The accountable party on whose behalf a reconciliation is performed. A Requesting Principal is either an authenticated human or institutional operator, or an autonomous agent carrying a Verified Principal Credential that binds it to such an operator. Requesting Agent: An autonomous software agent that initiates a reconciliation. A Requesting Agent is FRIENDLY when it carries a verifiable identity -- a request signed under HTTP Message Signatures [RFC9421] per Web Bot Auth [I-D.meunier-webbotauth-httpsig-protocol], a genuinely verified declared bot, or a Verified Principal Credential -- and ENEMY when its principal binding is absent or unverifiable. Anything unverifiable is treated as ENEMY. Verified Principal Credential: A cryptographic credential asserting that a named, authenticated principal stands behind a request, verifiable without contacting the credential issuer in the reconciliation hot path. A Verified Principal Credential MAY be carried in any COSE-enveloped structure binding the claim, its evidentiary provenance, and the principal's credential, or in any equivalent verifiable-credential form [W3C-VC-DM-2.0]. Agent Friend-or-Foe (IFF) Determination: The deterministic classification of a Requesting Agent as FRIENDLY or ENEMY, computed from the presence and cryptographic validity of a verifiable agent identity and, where required by policy, a Verified Principal Credential. The determination is recorded in the Requester-Binding field and committed to the Policy-Version Hash. Canonical Claim: A deterministic structured representation of a verification claim, comprising at least a subject identifier, a predicate, an attested value, an applicable-regimes set, and an evidentiary provenance manifest. Canonicalisation is performed in the following order, which is normative because the operations do not commute: 1. Unicode Normalization Form C [UAX15] is applied to every string value and to every object member name. 2. Object member names are sorted by UTF-16 code unit, as specified in Section 3.2.3 of [RFC8785]. Hillier Expires 14 February 2027 [Page 8] Internet-Draft ARP August 2026 3. Declared array order is preserved. 4. Numbers are rendered as specified in Section 3.2.2.3 of [RFC8785]. 5. A member whose value is absent is omitted, rather than serialised with a null placeholder. Steps 1 and 2 are order-dependent and observably so: for an object carrying the member names "A" followed by COMBINING RING ABOVE (U+0041 U+030A) and "B", normalising before sorting and sorting before normalising yield different serialisations and therefore different Claim Hashes. This specification requires normalisation first. The member-sort code unit is normative. An implementation that sorts by Unicode code point rather than by UTF-16 code unit produces a different Claim Hash for any object carrying a member name outside the Basic Multilingual Plane. The two orderings are not interchangeable, and this specification pins the UTF-16 reading, which is the one Section 3.2.3 of [RFC8785] specifies. This construction is NOT the construction defined in Appendix D for subject_digest. The two MUST NOT be substituted for one another; see Appendix D.1. Predicate Taxonomy: A controlled hierarchical classification of predicates that may be the subject of reconciliation, enabling taxonomic prefix match in projection. The taxonomy includes an agent: branch whose predicates reconcile the verifiability of an agent's binding to a principal (for example agent:principal- binding-verifiable and agent:credential-attested). Per-Register Claim Projection: The narrowest structured query sufficient to elicit the required Partial Attestation under a register's Bilateral Register Agreement, computed by the controlled projection function as the nearest ancestor of the Canonical Claim Predicate that is a member of the register's permitted-predicate set. Where the taxonomy admits more than one such ancestor, the projection MUST fail rather than choose. Partial Attestation: A cryptographically signed output produced by a Hillier Expires 14 February 2027 [Page 9] Internet-Draft ARP August 2026 Sovereign Register in response to a Per-Register Claim Projection. The Partial Attestation payload SHALL disclose, of the subject, only a Reconciliation-Verdict field, an OPTIONAL Divergence-Axis field, the applied parameters of Section 4.5 and the Query Binding, which is a digest; it SHALL NOT disclose any register record. Fields denoting state rather than the subject -- the Freshness Timestamp, and the Source-Data Version Identifier of Section 4.6 -- are enumerated in Section 4.8. Applicable-Regimes Set: The set of regulatory regimes a Canonical Claim names as applicable. It is a claim field chosen by the requester and states which law the requester asserts governs the question. It does not carry the Verdict Arithmetic, its parameters or the reliance interval; those are resolved by the reconciliation server from the policy-epoch store of Section 4.16, keyed on the predicate and the named regimes, and are committed to the Policy-Version Hash. A requester names the regime; the deployment's policy determines how evidence under it combines and how long a verdict may be relied upon. Combined Verdict: The single verdict value produced by aggregating the Reconciliation-Verdict fields of the Per-Register Result Set of Section 4.14 under the Verdict Arithmetic resolved under Section 4.13. Its values are match, no-match, partial-match and indeterminate. The decisive values are match and no-match. Reconciliation Hash: The SHA-256 digest over the deterministically encoded CBOR serialisation of a Reconciliation Output excluding its Sealing Signature and Sealing-Key Identifier, as specified in Section 4.14. Divergence Axis: A controlled descriptor identifying a structural qualification on a verdict. Most identify the reason for a non- match; those recorded by the reconciliation server may qualify a verdict of any value. The controlled set is the registry of Section 9, which at the time of writing comprises identity- mismatch, jurisdictional-scope-mismatch, temporal-mismatch, ownership-threshold-mismatch, sanctions-list-match, register- record-absent, claim-predicate-unsupported, claim-projection- narrowed-beyond-attestation-scope, agent-principal-unverifiable, agent-credential-absent, agent-impersonation-suspected, agent- action-scope-divergence (the authorised scope attested for an agent action and the actual conduct attested for it do not reconcile), source-version-skew, register-threshold-divergence (two registers answered the same predicate under different declared interest thresholds, per Section 4.5.1), declared-not- determined (the register could answer only over a declared fact where the claim ranged over a determined one, per Section 4.5.3), Hillier Expires 14 February 2027 [Page 10] Internet-Draft ARP August 2026 and freshness-stale. Divergence Axes recorded by the reconciliation server rather than by a register, which the registry marks as such and which initially are freshness-stale, source-version-skew, register-threshold-divergence, declared-not- determined and agent-action-scope-divergence, are carried in the Reconciliation Output, not in the register's signed Partial- Attestation payload. Source-Data Version Identifier: An identifier denoting the state of a published corpus, external to both the Bilateral Register Agreement and the Policy Version, against which a register evaluated a Projected Predicate. A consolidated sanctions list is the characteristic case. Its purpose is attribution: without it, a change in a historical Combined Verdict cannot be attributed to a change in policy state rather than to a change in the underlying corpus. Requirements are in Section 4.6. Post-Seal Evaluation Qualifier: A controlled descriptor identifying a condition arising after a Reconciliation Output has been sealed, carried in a Post-Seal Evaluation Record per Section 4.17 rather than in the Output. The values are those of the registry in Section 9, at the time of writing notarisation-incomplete and attribution-indeterminate. A Post-Seal Evaluation Qualifier is not a Divergence Axis: a Divergence Axis qualifies a verdict, and a Post-Seal Evaluation Qualifier qualifies an operation on an Output whose verdict is already fixed. Threshold-Sensitive Predicate: A Predicate whose truth depends on an interest threshold, so that two registers evaluating it under different declared thresholds are not answering the same question. A profile registered under Section 4.5 MUST state which of its predicates are threshold-sensitive. Source Class: A partition of the Addressed-Registers Identifier Set resolved for the named regimes under Section 4.13, over which source-class-quorum is evaluated. Sovereign Re-Notification: A signed notification emitted through the Regulator Portal to each regulator whose statutory scope covers a reconciliation whose historical Combined Verdict has materially changed. The supersession that occasions it is separately recorded as a continuation-supersession entry on the Settlement- Layer Ledger under Section 4.18, so that a relying party that acted on the superseded Output can discover the change. Reconciliation Nonce: A value of at least 128 bits drawn from a Hillier Expires 14 February 2027 [Page 11] Internet-Draft ARP August 2026 cryptographically secure random source, unique to one Per-Register Claim Projection and therefore to one register within one reconciliation. It is never reused. Two registers addressed in the same reconciliation receive different nonces, so their Query Bindings differ even where the Projected Predicate and Subject Reference are identical, and an attestation elicited from one register cannot be presented as an answer from another. Source-Version Skew: The condition, recorded as source-version-skew, in which two Partial Attestations answer the same Projected Predicate against different states of the same published corpus. Both are within their freshness windows; the skew is in the corpus, not in the attestations. It is not a disagreement, and an implementation MUST NOT treat it as one. Attribution Indeterminate: The Post-Seal Evaluation Qualifier, recorded as attribution-indeterminate, in which a Retroactive Evaluation cannot determine whether a material change in a historical Combined Verdict arose from a change in policy state or from a change in Source-Data Version. It is a statement about the evaluation, not about any register's answer. Reconciliation Output: A data structure aggregating Partial Attestations from a single reconciliation event, sealed against a Policy-Version Hash. Verdict Arithmetic: The operator governing how per-register verdicts combine into the Combined Verdict, specified in Section 4.13. The controlled set comprises conjunction, disjunction, threshold-count and source-class-quorum. Hash-Linkage Aggregation: An aggregation of Partial Attestations in which the per-register attestations are canonical-hashed, ordered, committed to a Merkle tree, and emitted with a Merkle root and a per-register verdict band. The Merkle commitment and its inclusion proofs MAY be encoded as COSE Receipts [RFC9942]. Policy-Version Hash: A cryptographic commitment to the canonical verification-policy state in force at the moment of reconciliation, including reconciliation rules, threshold parameters, pattern-library version, applicable-regimes precedence, verdict-arithmetic selection with every parameter it takes, the reliance interval, the Agent-IFF policy in force, the Requester-Binding, and the Bilateral-Register-Agreement Hashes of the addressed registers. Settlement-Layer Ledger: An append-only cross-jurisdictional log Hillier Expires 14 February 2027 [Page 12] Internet-Draft ARP August 2026 retaining hashes of reconciliations and no Canonical-Claim, register-record or principal content. It carries entries of two kinds, discriminated by an entry type: a reconciliation entry, which records a sealed Reconciliation Output, and a Continuation entry, which records a notarisation outcome, a Post-Seal Evaluation Record or a supersession arising after that Output was sealed. Every entry carries a sequence number, the entry type, the claim hash, the reconciliation hash, an entry timestamp, a prior-entry hash, a self-entry hash and an entry signature; the fields each kind carries in addition are enumerated in Section 4.18. A Continuation entry may also carry a transparency- service identifier, an entry identifier, an HTTP status code, a post-seal evaluation record hash, a material-change indicator, a superseding reconciliation hash and a superseding entry sequence number. Not every field is a digest -- the sequence numbers, the timestamps, the entry type, the descriptors and the indicators are not -- but no field carries Canonical-Claim, register-record or principal content, and no field is a retrieval address. Audience Set: The set of Audience Members of a Reconciliation Output, sealed with it under Section 4.15. Each Audience Member is an accountable-principal identifier together with a verification method that can be presented after the reconciliation. The Requesting Principal is a member wherever it can be identified. Entitlement to read about a reconciliation follows membership, not possession of the artefact. Reliance Horizon: The time after which an Audience Member MUST NOT treat a Combined Verdict as current without reading the Continuation entries for its Reconciliation Hash. It is the Reconciliation Timestamp advanced by the reliance interval that deployment policy declares for the predicate and the named regimes, resolved as Section 4.13 resolves the Verdict Arithmetic. It bounds reliance and does not affect the validity of the Sealing Signature. Ledger Head Statement: A signed statement of the current head of the Settlement-Layer Ledger, published at a well-known URI and notarised at a declared interval, comprising the head's Entry Sequence Number, its Self-Entry Hash, its Entry Timestamp, the time the Statement was produced, and a pointer to the most recent completed head notarisation. Defined in Section 4.18. Evaluation Sweep Statement: A signed record that a retroactive evaluation was performed, comprising the trigger, the policy state applied, the ledger head at the start and end of the sweep, the counts examined and materially changed, a Merkle root over the Claim Hashes examined, a timestamp, a pointer to the notarisation Hillier Expires 14 February 2027 [Page 13] Internet-Draft ARP August 2026 of the previous Statement. Defined in Section 4.21.1. Its purpose is to make an evaluation that never ran a signed omission rather than a silence. Non-Answer Statement: A statement signed by a register recording that it declined to answer, over the Reconciliation Identifier, the Projected Predicate, the Subject Reference, the Reconciliation Nonce and the reason. Required wherever a Non-Answer Reason is register-attested, per Section 4.11. 4. Architecture ARP comprises seventeen subsystems arranged as a deterministic pipeline: 1. Canonical Claim Ingestion 2. Requester Identity Binding and Agent Friend-or-Foe Gate 3. Adversarial Pre-Transmission Test 4. Per-Register Projection Function, under the profile of Section 4.5 declared in the Bilateral Register Agreement 5. Per-Register Encryption 6. Partial-Attestation Reception, including Source-Data Version Binding 7. Non-Answer Resolution 8. Verdict Re-Typing 9. Aggregation under the Verdict Arithmetic, per Section 4.10 10. Policy-Version-Hash Sealing 11. Settlement-Layer Ledger Write 12. Notarisation under Section 6.5, where performed 13. Regulator Portal 14. Retroactive Evaluation 15. Output Delivery under Section 4.15.3 16. Post-Seal Evaluation Recording Hillier Expires 14 February 2027 [Page 14] Internet-Draft ARP August 2026 17. Cryptographic-Primitive-Upgrade Path Given an identical Canonical Claim, an identical Requester-Binding, an identical Audience Set, an identical Addressed-Registers Identifier Set, identical Bilateral-Register-Agreement Hashes for the addressed registers, an identical Pattern-Library Version Identifier, and an identical Policy-Version Identifier, the system MUST produce Reconciliation Outputs identical in every field save those enumerated below as outside this requirement, and identical Claim Hash and Policy-Version Hash values in the corresponding Settlement-Layer Ledger entries. The Reconciliation Hash is deliberately not among those values. It is a content commitment over one sealed Output, taken over a preimage that includes that Output's Reconciliation Timestamp, and it is not reproducible across runs; the Reconciliation Identifier of Section 4.14 is the reproducible index, and it is the Claim Hash and Policy-Version Hash that make it so. Requiring an identical Reconciliation Hash would require an identical timestamp, which no implementation can deliver. The per-event fields of a Ledger entry -- Entry Sequence Number, Entry Timestamp, Prior-Entry Hash, Self-Entry Hash and Entry Signature -- are position-dependent by construction and are outside this requirement; the Entry Signature is further outside it because a signature scheme is not required to be deterministic. Within the Reconciliation Output itself the Reconciliation Timestamp, the Reliance Horizon computed from it, the Sealing Signature and any Override Record are outside it: the first is per-event, the second need not be deterministic, and an Override Record records an operator's discretionary act rather than a function of the enumerated inputs. The register-produced signatures the Output carries -- the Partial Attestation inside each Query Binding Record, and each Non- Answer Statement -- are outside it on the same ground as the Sealing Signature: they are signatures, and a signature scheme need not be deterministic. So is the Sealing-Key Identifier, which is rotation state and not an enumerated input. So are attestation-stale and register-unresponsive, and the Divergence-Axis and verdict consequences that follow from either: both are functions of wall- clock timing and network conditions rather than of the enumerated inputs, which is the same ground on which the Freshness Timestamps themselves are outside it. A reconciliation driven to a query- budget-exhausted or subject-ceiling-exhausted Non-Answer Reason under Section 4.11 is also outside it, because the budget is accumulated state and not an enumerated input. The residual risk that carve-out creates, and why this document does not close it, is set out in Section 7.2. The Freshness Timestamps of the constituent Partial Attestations, and any Source-Data Version Identifiers they carry per Hillier Expires 14 February 2027 [Page 15] Internet-Draft ARP August 2026 Section 4.6, are likewise outside it: both denote state external to the enumerated inputs. Two reconciliations agreeing on every enumerated input but differing in Source-Data Version are not required to agree field for field, and an implementation MUST NOT treat such a difference as a determinism failure. 4.1. Canonical Claim Ingestion A Canonical Claim comprises: * Subject Identifier * Predicate (drawn from the controlled Predicate Taxonomy) * Attested Value (in the canonical type for the Predicate) * Applicable-Regimes Set * Evidentiary Provenance Manifest * Claim Timestamp ([RFC3339] UTC) * Claim Hash: the SHA-256 digest over the deterministically encoded CBOR array ["arp-claim-v1", Deployment Blinding Value, canonical serialisation], where the canonical serialisation is the [RFC8785] form of the preceding fields as Section 3 constructs it, carried as a CBOR byte string. Framing the blinding value as an array element rather than concatenating it is what stops two deployments differing on order, separator or length prefix while claiming the same construction identifier Two claims whose canonical field values are identical MUST produce the same canonical form, and the same Claim Hash within one deployment. Across deployments the Claim Hash differs by the Deployment Blinding Value while the canonical form does not. Declared array order is significant; claims differing only in declared array order are distinct claims. The Claim Hash is the index on the Settlement-Layer Ledger and the key for retroactive re- evaluation. The Evidentiary Provenance Manifest MAY be carried in any COSE- enveloped evidence structure; the container form is an interop convenience and does not alter the Claim Hash, which is computed as Canonical Claim Ingestion constructs it and over nothing else. Hillier Expires 14 February 2027 [Page 16] Internet-Draft ARP August 2026 4.2. Requester Identity Binding and Agent Friend-or-Foe Gate Before the Adversarial Pre-Transmission Test, the reconciliation server MUST establish the identity of the Requesting Principal and record it in a Requester-Binding field. The Requester-Binding comprises a requester-binding class, the identifier of the accountable principal where known, and a reference to the verification method used. The class is one of: * human-operator, where an authenticated human or institutional operator is the accountable principal. * agent-verified, where an agent's signing key verified AND the principal it asserts was corroborated by a reconciliation under Section 5 or by a Verified Principal Credential whose status was checked. * agent-key-verified, where an agent's signing key verified but the principal it asserts was not corroborated. * agent-unverified, where the request was signed under a bare key that resolves to no signature-agent card, carries no Verified Principal Credential, and asserts no principal. The key gives continuity of identity between requests and nothing else, which is why it is a class and not a refusal; a request that carries no verifying signature at all is not admitted, by Section 6.4.1. agent-key-verified exists because possession of a key and binding to a principal are different facts and earlier revisions recorded them as one. An agent that signs correctly under a Web Bot Auth key has demonstrated that it is the same agent as last time; it has not demonstrated that any accountable party stands behind it. Recording that state as agent-verified overclaims to every downstream reader, and recording it as agent-unverified discards a real and useful fact. A relying party that requires an attributable principal should treat agent-key-verified as it treats agent-unverified; one that requires only continuity of identity may treat it as it treats agent-verified. This document states no requirement on a relying party's own risk policy; what it requires is that the two states be recorded distinctly so that the policy can be applied. The Agent-IFF policy states which reconciliations may be decisive at each class. Where the requester is an autonomous agent, the server MUST perform an Agent Friend-or-Foe (IFF) Determination. An agent is classified FRIENDLY only where at least one verifiable identity is present and cryptographically valid: a request signed under HTTP Message Signatures [RFC9421] with a key resolvable through a Web Bot Auth signature-agent card [I-D.meunier-webbotauth-registry], advertised Hillier Expires 14 February 2027 [Page 17] Internet-Draft ARP August 2026 via the Signature-Agent header [I-D.meunier-webbotauth-httpsig-protocol] and resolved through the HTTP Message Signatures directory it names [I-D.meunier-webbotauth-httpsig-directory], a genuinely verified declared bot, or a Verified Principal Credential. An agent presenting no such identity, or an identity that fails verification, MUST be classified ENEMY. The Agent-IFF policy in force declares, per predicate class, whether an ENEMY requester is refused outright, permitted only for non- decisive advisory reconciliation, or permitted with the requester- binding class recorded as agent-unverified, and whether an agent whose key verified but whose principal was not corroborated -- class agent-key-verified -- may reach a decisive verdict. The server MUST NOT silently upgrade an ENEMY requester to FRIENDLY. The Requester- Binding and the Agent-IFF policy identifier are committed to the Policy-Version Hash so that the settlement record is attributable to a determined requester class. 4.3. Adversarial Pre-Transmission Test Before any Per-Register Claim Projection is produced, the Adversarial Pre-Transmission Test Subsystem applies the current Pattern Library to the Canonical Claim. The Pattern Library enumerates structural evasion patterns against the projection and aggregation mechanisms of this protocol, including projection-narrowing-evasion, predicate- substitution-evasion, attested-value-bracketing-evasion, addressed- register-cherry-picking, agreement-staleness-injection, pattern- library-version-pinning, and agent-principal-spoofing (an unverifiable agent asserting a principal binding it does not hold). The Subsystem emits either a Pass result or a Remediation Advisory. A Remediation Advisory comprises: * a Refusal Ground, one of pattern-matched, regime-not-admitted, audience-member-not-enrolled or agent-iff-refused * the identifiers of the Pattern Library patterns that matched, and the narrowing or substitution each concerns, present exactly where the Ground is pattern-matched * the regime, the Audience Member Identifier or the Agent-IFF ground the other three Grounds concern respectively, present under the corresponding Ground It is encoded as a CBOR array in that field order under the media type registered in Section 9, absent fields as CBOR null, and is returned to the requester as Section 6.2 provides. No projection is Hillier Expires 14 February 2027 [Page 18] Internet-Draft ARP August 2026 transmitted and no Reconciliation Output is produced. The Advisory is the only artefact a refused requester receives, so it carries the ground rather than leaving the requester to infer it. The Per-Register Encryption Subsystem MUST architecturally withhold external transmission until a Pass result has been emitted or until an authorised operator has explicitly overridden the outcome. An override MUST be recorded in the Reconciliation Output as an Override Record and is thereby covered by the Sealing Signature. An override that left no artefact would be indistinguishable from a Pass to every external party, which would make the only manual bypass of the protocol's own adversarial gate invisible to the regulators that gate exists to serve. An Override Record comprises: * the identifiers of the Pattern Library patterns that matched * the Pattern-Library Version Identifier under which they matched * the Override Ground, drawn from the registry of Section 9 * the identifier of the authorising operator * an Override Timestamp ([RFC3339] UTC) * a signature by the authorising operator, a COSE_Sign1 whose payload is the CBOR array of the fields above in the order listed with the signature position encoded as CBOR null, encoded under Section 4.2.1 of [RFC8949], and carrying as its key identifier the JWK thumbprint, computed as in [RFC7638], of a key published in the reconciliation server's Operator Key Set at /.well-known/arp- operator-keys on its authority origin. That key set is published and validated as the sealing key set of Section 6.5.3 is, save that the Authorised-Origin Document MUST name a key identifier for the operator key set distinct from the one anchoring the sealing key set. Sealing keys and operator keys are separate sets because they are held by different parties for different purposes: a server able to sign an override with its sealing key could manufacture an operator's authorisation, and a server holding the only key that anchors its own operator key set could do the same one level up The signature is by the operator and not by the server. A record the server signs attests only that the server says an operator authorised the bypass; a record the operator signs is a statement the operator made and cannot later disown, which is what a manual override of an adversarial gate has to be for the regulator reading it. The Hillier Expires 14 February 2027 [Page 19] Internet-Draft ARP August 2026 Override Ground is drawn from a registry so that grounds are enumerable and comparable across deployments rather than free text that no reviewer can aggregate. The reconciliation entry that records an overridden reconciliation carries an Override Indicator, so that a regulator reading the Ledger under Section 4.19 can see that a bypass occurred without holding the Output. Having seen it, the regulator reads the Output itself under Section 4.20 or through the entitlement its statutory scope gives it, and reads the Record. An Override Record visible only to the Audience Set the operator chose to serve would be invisible to the party the mechanism exists for, which is the failure this paragraph and the Indicator together close. The Record names an operator in the clear, in an artefact whose Policy-Version Hash is blinded under Section 4.16 precisely to keep principal identities out of reach. That is not a contradiction: blinding protects the Ledger, which is published, and the Reconciliation Output is confidential to its Audience Set under Section 4.15. An override is a discretionary act by a named human against a named pattern, and the parties entitled to the Output are the parties entitled to know who performed it. Nothing about the override reaches the Ledger except through the Reconciliation Hash, which is a digest. 4.4. Per-Register Projection Function For each addressed register, the controlled projection function MUST inspect the Canonical Claim against the permitted-predicate set declared in the Bilateral Register Agreement. Where the Canonical Claim's Predicate is directly a member of the permitted-predicate set, the Projected Predicate equals the Canonical Claim Predicate. Where it is not, the projection function resolves the Predicate through taxonomic prefix match: walking the Predicate Taxonomy upward from the Canonical Claim Predicate until reaching a Predicate that is a member of the permitted-predicate set. Where the walk reaches more than one such Predicate at the same taxonomic distance, the projection MUST fail with projection-ambiguous rather than choose between them. Where the walk reaches the taxonomy root without finding one, the projection MUST fail with projection-unsupported. The narrowing operation MUST be recorded in the Narrowed-From field of the Per-Register Claim Projection. A Per-Register Claim Projection comprises: * Reconciliation Identifier Hillier Expires 14 February 2027 [Page 20] Internet-Draft ARP August 2026 * Register Identifier * Projected Predicate * Subject Reference, in the form the addressed register's Bilateral Register Agreement declares * Attested Value, where the Projected Predicate takes one * Narrowed-From, absent where the Projected Predicate equals the Canonical Claim Predicate * Bilateral-Register-Agreement Hash * Policy-Version Hash * Freshness Window, as declared in the Bilateral Register Agreement * Reconciliation Nonce * Profile Parameter Set, being the values the Bilateral Register Agreement declared under Section 4.5 that the register is to apply * OPTIONAL Requester-Binding Class, present exactly where the Bilateral Register Agreement requires it under Section 7.1, disclosing the class and not the principal A Per-Register Claim Projection is encoded as a CBOR array in the field order above, an absent OPTIONAL or conditionally absent field encoded as CBOR null so that position is preserved. This is the only structure a sovereign register receives, and it is enumerated here so that its contents are determinate and its digest constructions reproducible. The wire binding over which it is transmitted is not specified by this document. This document specifies what the channel must achieve -- the structure it carries, the confidentiality and authenticated- additional-data properties of Section 4.7, and the Query Binding the register signs over -- and leaves the transport, the endpoint, the framing and the concrete encryption construction to be declared in each Bilateral Register Agreement. That is a deliberate scoping decision and it is a real limitation, stated here rather than left to be discovered: two reconciliation servers addressing the same register do so over channels the register defined, so ARP is interoperable in its artefacts and not yet in that leg's transport. Specifying it -- an endpoint, a media type, and a COSE_Encrypt construction pinning the AEAD and the ordering of its Hillier Expires 14 February 2027 [Page 21] Internet-Draft ARP August 2026 authenticated additional data -- is the principal item of work this revision leaves for the next. The register does not receive the Canonical Claim, the Addressed-Registers Identifier Set, or any other register's projection. The register echoes the Policy-Version Hash in its Partial Attestation; it does not compute it, and it is not required to be able to. The reconciliation server MUST send the same Policy-Version Hash to every addressed register in one reconciliation, and MUST verify on reception that each Partial Attestation echoes it. A mismatch MUST be treated as a refusal by that register and recorded under Section 4.11. Without this the per-register signatures over the Policy-Version Hash -- the only independent corroboration of it -- would be discarded at aggregation, and a server could address different registers under different policy versions undetectably. 4.5. Register Data-Format Profiles A Bilateral Register Agreement MUST declare the data format in which the addressed register expresses the facts the permitted-predicate set ranges over. The projection function of Section 4.4 operates on predicates, not on records; a format profile is what lets an implementer determine which predicates a given register can actually answer, and what a narrowing means against that register's own structure. A profile is a property of a data format, not of a register. It states, for the format it covers, how a permitted predicate is expressed and what the Predicate Taxonomy's parent relation corresponds to in that format. Parameters that vary between registers using the same format -- interest thresholds, maximum chain depths, the set of named lists and the identifiers a register uses for their states -- are not properties of the profile and MUST be declared in the Bilateral Register Agreement. A profile MUST enumerate the parameters a Bilateral Register Agreement declaring it is required to supply, and MUST state which of its predicates are threshold-sensitive per Section 3, on which the third re-typing ground of Section 4.12 turns. Without that split a single registered identifier would carry facts that differ between registers, and two registers using the same format under different thresholds could not both declare it. A profile MUST NOT introduce a means of transporting register records; profiles constrain predicate expression only. Hillier Expires 14 February 2027 [Page 22] Internet-Draft ARP August 2026 The vocabulary documents a profile names are informative to this document and normative to an implementation of that profile: an implementation cannot evaluate a projection expressed in a vocabulary without it. A profile MUST pin the dated version of each vocabulary it names. This document defines four profiles, with the identifiers registered in Section 9: * arp-profile-bods (Section 4.5.1) * arp-profile-corporate-org (Section 4.5.2) * arp-profile-customs-wco (Section 4.5.3) * arp-profile-sanctions-consolidated (Section 4.5.4) Identifiers beginning x- are reserved for bilateral use and MUST NOT be registered. A Bilateral Register Agreement MAY declare one. Each of the four profiles below states the dated vocabulary it uses where it names one, the parent relation for each branch of its predicate space over which narrowing is defined, the parameters a Bilateral Register Agreement declaring it must supply, and which of its predicates are threshold-sensitive within the meaning of Section 4.12. 4.5.1. Beneficial ownership: BODS For registers expressing beneficial ownership as [BODS] records, the permitted-predicate set is expressed over relationship records -- termed ownership-or-control statements before BODS 0.4 -- reachable from a declared subject entity. This profile is written against BODS 0.4. Taxonomic narrowing corresponds to reducing the depth of the ownership chain a predicate ranges over. A relying party's question is characteristically about ultimate beneficial ownership -- the transitive closure -- while a register may be able to answer only a bounded-depth predicate over direct or once-removed interests. The parent of a predicate at depth n is the corresponding predicate at depth n-1. The direct-interest predicate is the root of this profile's branch of the Predicate Taxonomy, and the walk of Section 4.4 fails as projection-unsupported on reaching it, as it does at the taxonomy root. Hillier Expires 14 February 2027 [Page 23] Internet-Draft ARP August 2026 A Bilateral Register Agreement declaring arp-profile-bods MUST supply the maximum chain depth over which the register's permitted predicates are evaluated. Where the Canonical Claim ranges over the transitive closure and the register's declared maximum depth is finite, the projection is a narrowing and MUST be recorded in Narrowed-From. An implementation MUST NOT treat a bounded-depth no- match as a transitive-closure no-match. The rule is stated in Section 4.12 and applies to that register's contribution, not to the Combined Verdict: a no-match returned at bounded depth against a closure claim is re-typed to indeterminate before aggregation, and the Verdict Arithmetic then proceeds unchanged. A match found at any depth does establish the existential closure predicate and is not re- typed. The depth at which the register answered is reported in the Applied- Parameter Set of its Partial Attestation and MUST be carried into the Projection Record of Section 4.14. A register MAY answer at a shallower depth than the declared maximum; the declared maximum is therefore not a substitute for the applied value, and re-typing under Section 4.12 turns on the applied value. Interest thresholds -- the percentage at which an interest becomes reportable -- vary by jurisdiction and are properties of the register, not of the claim or of the format. A Bilateral Register Agreement declaring arp-profile-bods MUST supply the threshold its permitted predicates assume. Two registers answering the same predicate under different thresholds are not answering the same question. The reconciliation server MUST add register-threshold- divergence to the Server-Recorded Divergence-Axis Set wherever the Reconciliation Output combines registers whose declared thresholds differ, irrespective of the verdicts they returned. In this profile the ownership and control predicates are threshold- sensitive; the identity and existence predicates are not. 4.5.2. Corporate registries: vCard and the Organization Ontology A profile in this class MUST declare [W3C-ORG] for any branch of its predicate space over which taxonomic narrowing is defined. [RFC6350] expresses organisational hierarchy only within one organisation's own ORG structured value and defines no property relating one organisation to another, so a vCard-only profile has no term capable of satisfying the parent-relation requirement of Section 4.5 and MUST NOT declare a narrowing branch. vCard remains available for the identifying and contact predicates, over which no narrowing is defined. Hillier Expires 14 February 2027 [Page 24] Internet-Draft ARP August 2026 For registers expressing legal-entity and organisational structure, a profile MAY declare [RFC6350] vCard properties or [W3C-ORG] classes and properties as the vocabulary in which permitted predicates are expressed. A profile MUST declare exactly one parent relation for each branch of its predicate space, and MUST partition that space so the branches do not overlap. Declaring two relations applicable to one predicate would make the taxonomic walk of Section 4.4 reach two predicates at equal distance, which that section requires to fail as projection- ambiguous. Where [W3C-ORG] is used, org:subOrganizationOf is the parent relation for the organisational-structure branch, and org:hasSite for the branch of predicates ranging over establishment or place of business. Neither vocabulary asserts the legal effect of a recorded fact. [W3C-ORG] does carry a notion of legal recognition -- org:FormalOrganization denotes an organisation recognised in legal jurisdictions, and org:identifier a company registration number -- but recognition is not determination. A predicate expressed in these terms is a predicate about a register's recorded representation of an entity, not about the entity's status in law, and a profile MUST NOT be read as asserting the latter. The vocabulary is pinned to [W3C-ORG] as at its 2014 Recommendation and to [RFC6350]. A Bilateral Register Agreement declaring this profile supplies the register's jurisdiction identifier and the identifier scheme of its org:identifier values. No predicate in this profile is threshold-sensitive: corporate registries record recognition rather than a quantified interest. 4.5.3. Customs and transport: UN/CEFACT and the WCO Data Model For customs declarations and transport registers, a profile MAY declare [UNCEFACT] core components or [WCO-DM] classes as the vocabulary for permitted predicates. Both express declaration-side and authority-side facts, and telling them apart is the purpose of this profile rather than a property of the vocabularies. The WCO Data Model's Declaration Response and its Licence, Permit, Certificate and Other packages record authority determinations, as does UN/CEFACT's eCERT for sanitary and phytosanitary certification; the goods and cargo declaration classes in both record what was declared to an authority. Hillier Expires 14 February 2027 [Page 25] Internet-Draft ARP August 2026 A Bilateral Register Agreement declaring arp-profile-customs-wco MUST supply, for each permitted predicate, whether it ranges over a declared fact or over a determined one. Where a relying party's Canonical Claim ranges over a determined fact and the register can answer only over a declared one, that is a narrowing and MUST be recorded in Narrowed-From. The reconciliation server MUST derive the Divergence Axis declared-not-determined from the Narrowed-From field and add it to the Server-Recorded Divergence-Axis Set of Section 4.14 whenever the narrowing occurred, whether or not it changed the Combined Verdict; the corresponding contribution is re-typed under Section 4.12. The register cannot record it: the register never sees the Canonical Claim, and the Combined Verdict does not exist until every Partial Attestation has been received. The vocabulary is pinned to Version 4 of the [WCO-DM] and to the UN/ CEFACT Core Component Library release the Bilateral Register Agreement names, which it MUST name. The Agreement also supplies the declaration types the register answers over. No predicate in this profile is threshold-sensitive. 4.5.4. Sanctions: consolidated list formats For registers expressing designation status by reference to a consolidated list -- [OFAC-SDN], [EU-CFSP] or equivalent -- the permitted-predicate set is expressed over designation of a subject entity on a named list. Consolidated lists are republished on no fixed schedule -- OFAC states there is no predetermined timetable, and the EU list is updated as amending regulations are adopted -- and are distributed either as full republications or as delta updates against a prior state. That the cadence is event-driven strengthens the requirement below rather than weakening it: a relying party cannot infer list state from the clock. A designation verdict is meaningful only relative to the list state that produced it, and this has a consequence the rest of this document depends on: without it, a change in a historical Combined Verdict cannot be attributed to a policy change rather than to a list change. Accordingly the requirements of Section 4.6 apply. A Bilateral Register Agreement declaring arp-profile-sanctions- consolidated MUST supply the set of lists the register consults and, for each, the identifier by which the register expresses that list's state. Where the register publishes both a full list and deltas, the identifier MUST denote the resulting state and not the delta applied to reach it. Hillier Expires 14 February 2027 [Page 26] Internet-Draft ARP August 2026 A profile in this class names no single vocabulary, consolidated sanctions lists having no common schema. It instead pins, per register, the list identifier and the publisher's state-identifier form that Section 4.6 requires, both supplied by the Bilateral Register Agreement, together with the matching predicate set the register answers over. No predicate in this profile is threshold- sensitive: a designation is a listed-or-not fact. 4.6. Source-Data Version Binding Where a register's answer depends on a source data state that changes independently of the Bilateral Register Agreement and of the Policy Version -- a consolidated sanctions list being the characteristic case -- the Partial Attestation MUST carry a Source-Data Version Identifier Set: one identifier for each source consulted in evaluating the Projected Predicate. Each identifier is a tuple of the list name as declared in the Bilateral Register Agreement and the state identifier the LIST PUBLISHER assigns to that state -- a published version token, or a digest of the published corpus where the publisher assigns none -- rather than any value of the register's own devising. A register-chosen opaque string would be an arbitrary- bandwidth channel from register to relying party, carried under signature into a sealed and ledgered artefact, and the rule that differing identifiers MUST NOT be read as disagreement would normalise it. The reconciliation server MUST reject an identifier that is not drawn from the publisher's own state sequence, under Section 4.11 with the reason attestation-unverifiable. The tuple form is what keeps identifiers issued by one register over different lists from colliding, so that a register consulting several lists can denote the state of each. The Source-Data Version Identifier Set MUST be carried in the arp- source-data-version COSE header parameter of the Partial Attestation's protected header, and is thereby covered by the Partial-Attestation signature. It MUST be carried into the Per- Register Result Set of Section 4.14 for each addressed register that supplied one, and is thereby covered by the Sealing Signature. A register MUST evaluate every Projected Predicate over a given list against the state the corresponding member of its declared Source- Data Version Identifier Set denotes, and MUST use the same identifier for every Partial Attestation it issues over that list until it adopts a new state. Without this the identifier would vary per subject and become a disclosure channel. Given that requirement this does not weaken minimum disclosure: a list-state identifier is a property of a published corpus rather than a register record, it discloses which published state was consulted Hillier Expires 14 February 2027 [Page 27] Internet-Draft ARP August 2026 and nothing about the subject entity, and it is identical across every Partial Attestation the register issues over that list regardless of verdict. Retroactive Evaluation depends on this. On re-evaluation under an updated Pattern Library or Policy Version, an implementation MUST distinguish a material change in a historical Combined Verdict arising from the change in policy state from one arising from a change in Source-Data Version. Both MUST trigger Sovereign Re- Notification where material, and the notification MUST state which of the two occurred. Where an implementation cannot distinguish them, it MUST emit a Post-Seal Evaluation Record carrying attribution- indeterminate per Section 4.17 rather than attribute the change to policy. An implementation MUST NOT infer that two Partial Attestations whose Source-Data Version Identifier Sets differ for a list they have in common disagree. They may be answers to the same predicate against different states of the same corpus. The reconciliation server MUST record this as source-version-skew, which is distinct from freshness- stale: a skewed attestation is within its freshness window and is retained and combined, whereas a stale one falls outside that window and is rejected under Section 7.6. 4.7. Per-Register Encryption These are requirements on whatever bilateral channel Section 4.4 leaves each Bilateral Register Agreement to declare; they are properties the channel MUST provide and not a wire construction this document pins. Each Per-Register Claim Projection MUST be encrypted under the addressed register's public key material declared in the Bilateral Register Agreement. The Reconciliation Nonce MUST be transmitted in the clear alongside the ciphertext, and the encryption operation MUST bind the Bilateral-Register-Agreement Hash and that nonce into the ciphertext as authenticated additional data, such that a register attempting to decrypt under a stale Bilateral-Register-Agreement Hash, or with a nonce other than the one the ciphertext was sealed against, fails at the authenticated-additional-data verification step. The register MUST verify that the nonce so bound equals the Reconciliation Nonce field of the decrypted projection. The nonce travels in the clear because authenticated additional data is an input to the decryption operation and cannot be recovered from the plaintext that operation produces. It discloses nothing: it is a random value carrying no information about the subject or the claim. Hillier Expires 14 February 2027 [Page 28] Internet-Draft ARP August 2026 These two are the only values so bound. Authenticated additional data detects a mismatch only against an expectation the receiver independently holds. A register independently holds its own agreement, and it is handed the nonce. It does not hold the Pattern- Library Version Identifier: the Pattern Library is the reconciliation server's internal adversarial-test corpus and is not published to registers, so binding it would either fail universally or be supplied alongside the ciphertext by the same party that chose it, detecting nothing. A register MUST NOT issue more than one Partial Attestation for a given Reconciliation Nonce, and MUST reject a projection whose nonce it has already answered. Without this a captured ciphertext could be replayed indefinitely, each replay yielding a freshly timestamped signed attestation and defeating the freshness window of Section 7.6. 4.8. Partial Attestation Reception A Partial Attestation comprises: * Register Identifier * Reconciliation-Verdict Field (match, no-match, partial-match, or indeterminate) * OPTIONAL Divergence-Axis Field * Bilateral-Register-Agreement Hash * Policy-Version Hash * OPTIONAL Source-Data Version Identifier Set, present where required by Section 4.6 and carried in the arp-source-data-version COSE header parameter of Section 9 * OPTIONAL Applied-Parameter Set, being the profile parameters the register actually applied in evaluating the Projected Predicate, present wherever the Profile Parameter Set of the Per-Register Claim Projection was non-empty Hillier Expires 14 February 2027 [Page 29] Internet-Draft ARP August 2026 * Query Binding, the SHA-256 digest over the deterministically encoded CBOR array ["arp-query-binding-v1", Reconciliation Identifier, Projected Predicate, Subject Reference, Reconciliation Nonce], those four values taken from the Per-Register Claim Projection it answers. The construction is a five-element array whose first element is a fixed domain-separation string, rather than a byte concatenation, so that two implementations cannot differ on framing and the digest cannot collide with any other construction in this document * Freshness Timestamp * Cryptographic Signature, a COSE_Sign1 by the register whose payload is the CBOR array of the fields above in the order listed, with an absent OPTIONAL or conditionally absent field encoded as CBOR null so that position is preserved, encoded under Section 4.2.1 of [RFC8949]. The register's signing key is published in its key set under Section 6.5.3, so that a relying party or auditor holding the attestation can resolve the key and verify the signature without the reconciliation server's assurance The Query Binding is what makes an attestation an answer to a question rather than a free-standing assertion. Without it the signed payload says only that a register returned a verdict under some agreement and policy version at some time, and says nothing about what it was asked. Two consequences follow, and both are severe: an attestation harvested for one subject could be placed into the Per-Register Result Set of a reconciliation about another subject and would verify against every other check; and a register could answer the same question differently to two requesters and deny having done so, because its signature would not identify the question. The arp-policy-version-hash and arp-bilateral-agreement-hash in a Partial Attestation's protected header MUST equal the corresponding payload fields, and an implementation MUST reject an attestation where they differ: a value carried twice with no equality rule is a value an implementation may read either way. The reconciliation server MUST recompute the Query Binding from the projection it transmitted and MUST reject an attestation whose Query Binding does not match, under Section 4.11 with the reason attestation-unverifiable. The Query Binding Record of Section 4.14 carries the three projection values and the register's signed attestation into the Output, so that a relying party or auditor can recompute the binding and verify the register's signature independently. A check performed only by the Hillier Expires 14 February 2027 [Page 30] Internet-Draft ARP August 2026 reconciliation server would rest on the honesty of the party the rest of this document declines to trust. The Reconciliation Nonce is unique per Per-Register Claim Projection per Section 3 and MUST NOT be reused, so that an attestation is admissible only into the reconciliation, and against the register, that elicited it. The Partial Attestation payload SHALL NOT contain any register-record field, any pre-image of the register record, or any field beyond those enumerated. Restricting the Partial-Attestation payload to the enumerated fields, of which the verdict, the divergence axis, the applied parameters and the Query Binding -- a digest over the Subject Reference -- vary with the subject, is the mechanism by which ARP limits raw-record disclosure. Residual inference channels are discussed in Section 7.8. 4.9. Merkle Construction Two structures in this document commit to a set of digests through a Merkle tree: the Merkle Root of Hash-Linkage Aggregation, and the Examined-Set Root of Section 4.21.1. Both use this construction, so that an inclusion proof produced by one implementation verifies under another. Leaves are the digests to be committed, sorted in bytewise lexicographic order and deduplicated. Deduplication is why an Examined-Set Root commits to distinct Claim Hashes and the count beside it counts Reconciliation Outputs: two Outputs over one claim share a Claim Hash, so the leaf count and the examined count need not be equal and neither is derivable from the other. A leaf node is SHA-256(0x00 || leaf). An internal node is SHA-256(0x01 || left || right). Where a level has an odd number of nodes, the last is carried up to the next level unchanged rather than duplicated. A tree over one leaf has that leaf's leaf-node hash as its root; a tree over no leaves has thirty-two zero octets as its root. An inclusion proof is a CBOR array of the leaf, its zero-based index, the leaf count, and the array of sibling hashes from the leaf's level upward. Domain separation between leaf and internal nodes is what stops a proof of an internal node being presented as a proof of a leaf. Three properties of that array are stated here because each is a place two implementations otherwise diverge while both believing they conform. The array carries one entry for each level at which the node being proved has a sibling, and no entry for a level at which it was carried up unchanged, so its length is not in general the base- two logarithm of the leaf count and a verifier MUST NOT derive the expected length that way. No direction bit is carried: at each level Hillier Expires 14 February 2027 [Page 31] Internet-Draft ARP August 2026 the verifier derives whether the sibling is the left or the right operand from the index and the leaf count, halving the index and the level width as it ascends, which is well defined because the shape of the tree is fixed by the leaf count alone. And the empty tree's root of thirty-two zero octets admits no inclusion proof; a verifier MUST reject any proof presented against it rather than treat a root it can reproduce as a root that commits to something. 4.10. Aggregation The aggregation subsystem operates in Hash-Linkage Aggregation. Each Partial Attestation is canonical-hashed and committed to a Merkle tree as Section 4.9 defines it,, and emitted with a Merkle root and the Merkle Root carried in the Reconciliation Output. Its per- register inclusion proofs MAY be encoded as COSE Receipts [RFC9942], enabling any SCITT-aware verifier to check inclusion without a bespoke proof format. Each leaf commits one register's attestation individually, so an inclusion proof discloses no other register's payload. 4.11. Registers That Do Not Answer A register may fail to produce a usable Partial Attestation. Every such state has a defined outcome, because dropping the register silently would produce exactly the addressed-register-cherry-picking pattern the Adversarial Pre-Transmission Test exists to detect. The Per-Register Result Set MUST carry an entry for every addressed register. Where no usable attestation was received, the entry carries no Attested Verdict and carries instead, in its own field, a Non-Answer Reason drawn from: * projection-ambiguous and projection-unsupported, where the projection itself failed and no projection was transmitted * agreement-drift-suspended, where reconciliation against that register was suspended for Bilateral-Register-Agreement drift * attestation-stale, where the Freshness Timestamp fell outside the declared window and the attestation was rejected * attestation-unverifiable, where the signature did not verify or the echoed Policy-Version Hash did not match the one sent * register-unresponsive, where no attestation was received within the window declared in the Bilateral Register Agreement Hillier Expires 14 February 2027 [Page 32] Internet-Draft ARP August 2026 * register-refused, where the register declined to answer, whether under its own statutory access regime or under the Agent-IFF policy * query-budget-exhausted, where the reconciliation would exceed the per-principal per-subject query budget declared under Section 7.1 * subject-ceiling-exhausted, where the reconciliation would exceed a per-subject ceiling declared under Section 7.1 * audience-constraint-exceeded, where the requested Audience Set exceeds the audience constraint that register declares under Section 4.15.1 * non-answer-unattested, where the register asserted a register- attested reason without a verifying Non-Answer Statement Each Non-Answer Reason is either register-attested or server- observed, and the registry of Section 9 MUST record which for every registration. register-refused is register-attested. attestation- stale and attestation-unverifiable are server-observed but arise from an attestation the server holds. The remainder are server-observed with no register artefact behind them. Where a Non-Answer Reason is register-attested, the Per-Register Result Set entry MUST carry a Non-Answer Statement in the field Section 4.14 defines for it. The Statement is a COSE_Sign1 by that register, under the primitive its Bilateral Register Agreement declares and under a key resolvable as in Section 6.5.3, whose payload is the CBOR array ["arp-non-answer-v1", Reconciliation Identifier, Projected Predicate, Subject Reference, Reconciliation Nonce, Non-Answer Reason] encoded under Section 4.2.1 of [RFC8949]. The Reconciliation Identifier is inside the payload for the reason the Query Binding of Section 4.8 carries it: without it a refusal elicited in one reconciliation is admissible as a refusal in another over the same subject and predicate. Where a register-attested reason is recorded without a Statement, or with one that does not verify, the reason MUST be replaced by non- answer-unattested. That is a distinct reason and not attestation- unverifiable, which denotes a Partial Attestation the server holds and could not verify; collapsing the two would put the missing- refusal case back into a server-observed bucket and undo the distinction this rule exists to draw. Hillier Expires 14 February 2027 [Page 33] Internet-Draft ARP August 2026 Without that rule a register-refused is an unattested assertion by the party that transmitted the projection, and a server can suppress a match by claiming the register declined. The server can still downgrade a reconciliation to indeterminate by asserting a server- observed reason -- register-unresponsive is indistinguishable from a network failure by construction, and this document does not pretend otherwise -- but it cannot dress suppression as an act of the register. Suppressing a sanctions hit is the harm this domain cares about, and the difference between "the register would not say" and "I did not ask" is the difference the record must preserve. A Non-Answer Reason is not a verdict, occupies its own field of the Per-Register Result Set per Section 4.14, and MUST NOT be combined by the Verdict Arithmetic. Its effect is given in Section 4.13: a reconciliation with any non-answering register cannot reach a decisive Combined Verdict. Where the reason is attestation-stale, freshness-stale MUST also be added to the Server-Recorded Divergence-Axis Set against that Register Identifier. A reconciliation server MUST reject a Partial Attestation that attests a Divergence Axis the registry of Section 9 records as server-recorded, with the reason attestation-unverifiable. A register cannot attest a relation between itself and another register, which is what those axes are. 4.12. Verdict Re-Typing A register answers the Projected Predicate it was sent, which may be a narrowing of the Canonical Claim Predicate. Where the narrowing means the register's answer does not bear on the claim as asked, the reconciliation server MUST re-type that register's Reconciliation- Verdict Field before aggregation, and MUST record the attested value, the re-typed value and the ground on which it re-typed in the Per- Register Result Set, so that an auditor can reproduce the decision without the server's assurance. Re-typing is confined to these cases: * Any contribution other than match, attested against a bounded- depth predicate where the Canonical Claim ranged over a transitive closure, is re-typed to indeterminate. A bounded-depth answer that is not a match is evidence about the bounded depth only, and that is as true of partial-match and indeterminate as of no-match. A match is not re-typed: an interest found at any depth establishes the existential closure predicate. Hillier Expires 14 February 2027 [Page 34] Internet-Draft ARP August 2026 * A match or no-match attested over a declared fact, where the Canonical Claim ranged over a determined fact, is re-typed to partial-match under an operator that admits that value and to indeterminate under one that does not, per Section 4.13. * A contribution from a register whose declared interest threshold differs from that of any other addressed register, where the Canonical Claim's predicate is threshold-sensitive, is re-typed to partial-match under an operator that admits that value and to indeterminate under one that does not. Two registers answering under different thresholds are not answering the same question, and annotating that on the Reconciliation Output while allowing a decisive Combined Verdict to be built from it would state a conclusion the inputs do not support. Threshold-sensitivity is a property of a Register Data-Format Profile, which declares which of its predicates are threshold- sensitive, and the test above names the Canonical Claim Predicate, which is not expressed in any profile. The test is therefore evaluated as follows, and is defined over a register set whose members declare different profiles. The Canonical Claim Predicate is threshold-sensitive where the Per-Register Claim Projection transmitted to ANY addressed register was a predicate that register's declared profile marks threshold-sensitive. Taking the disjunction rather than requiring agreement is deliberate: a mixed-profile register set in which one profile marks the predicate threshold-sensitive and another is silent is precisely the set in which the thresholds may differ unnoticed, and requiring every profile to mark it would disable the test in the case it exists for. Re-typing operates on a register's contribution. It does not override the Verdict Arithmetic resolved under Section 4.13, which is applied afterwards to the re-typed set and is otherwise unaffected. An implementation MUST NOT re-type on any ground not enumerated here. 4.13. Verdict Arithmetic The Verdict Arithmetic combines the Reconciliation-Verdict Fields of the Per-Register Result Set, after any re-typing under Section 4.12, into the Combined Verdict. The requester names the applicable regimes in its Canonical Claim; it does not choose the operator. The operator and every parameter it takes are resolved by the reconciliation server from the policy-epoch store of Section 4.16, keyed on the predicate and the named regimes, and are committed to the Policy-Version Hash. They are carried into the Reconciliation Output so that a relying party can reproduce the combination. Hillier Expires 14 February 2027 [Page 35] Internet-Draft ARP August 2026 A requester able to choose both the operator and its threshold could choose the verdict: disjunction over five registers and threshold- count with a threshold of five differ only in which answer they return over the same contributions, and selecting between them after seeing which registers were addressed is verdict shopping that no downstream check would detect. Naming a regime is a claim about which law applies, which the requester is competent to make and accountable for; selecting an operator is a determination about how evidence combines, which the deployment's policy makes. Naming regimes is not thereby unconstrained. The reconciliation server MUST verify that every regime the Applicable-Regimes Set names is one the policy-epoch store admits for that predicate, and MUST refuse a claim naming a regime that is not, returning a Remediation Advisory identifying it. Without that check a requester enumerates admissible regime sets, reads out of the Outputs it receives which operator, threshold and reliance interval each resolves to, and selects the combination that returns the answer it wants -- taking the longest reliance interval with it. That is verdict shopping at one remove. There is nothing to probe for: Section 6.4.1 requires the server to publish the resolved operator, its parameters and the reliance interval per predicate and regime set, so the mapping is available without probing and the admitted-regime check is what constrains the choice. Two rules apply to every operator and take precedence over the operator's own table: * Where any addressed register has no decisive contribution because it did not answer, was refused or was rejected under Section 4.11, the Combined Verdict MUST be indeterminate. An operator MUST NOT reach a decisive verdict over an incomplete register set, which would be indistinguishable from addressed-register-cherry-picking. * Where any contribution is indeterminate, the Combined Verdict MUST be indeterminate wherever the operator's table would otherwise yield no-match. An indeterminate contribution is an absence of evidence and a decisive negative may not be built on one, so the rule states the substitute result rather than only a prohibition; a prohibition without a substitute would leave the verdict undefined in exactly the cases it governs. Operators are drawn from the registry of Section 9. Subject to those rules, the initial four are: conjunction: match where every contribution is match. no-match where Hillier Expires 14 February 2027 [Page 36] Internet-Draft ARP August 2026 any contribution is no-match. partial-match where every contribution is match or partial-match and at least one is partial-match. indeterminate otherwise. disjunction: match where any contribution is match. no-match where every contribution is no-match. partial-match where at least one is partial-match and none is match. indeterminate otherwise. threshold-count: match where the count of match contributions meets or exceeds the threshold resolved for the named regimes. no-match where the count of match contributions cannot reach the threshold and no contribution is indeterminate. indeterminate otherwise, which includes every case in which an indeterminate contribution is present and the threshold is not met. partial-match contributions do not count toward the threshold. source-class-quorum: threshold-count evaluated per source class, over the partition and the per-class threshold resolved for the named regimes, then combined across classes by conjunction. Every operator admits partial-match except threshold-count and source-class-quorum, which do not. Where Section 4.12 would re-type a contribution to partial-match under an operator that does not admit it, the contribution is re-typed to indeterminate instead. 4.14. Reconciliation Output A Reconciliation Output comprises: * Reconciliation Identifier * Claim Hash * Reconciliation Timestamp * Reliance Horizon of Section 4.15 * Audience Set of Section 4.15 * Combined Verdict * Verdict Arithmetic as resolved under Section 4.13, together with every parameter that operator takes -- the threshold for threshold-count, and both the source-class partition and the per- class threshold for source-class-quorum Hillier Expires 14 February 2027 [Page 37] Internet-Draft ARP August 2026 * Addressed-Registers Identifier Set, each member an authority origin, sorted in bytewise lexicographic order of its UTF-8 encoding * Bilateral-Register-Agreement Hash Set, sorted in bytewise lexicographic order of the digests themselves, in the order of the Addressed-Registers Identifier Set having no meaning once a register may be absent from a set * Policy-Version Hash * Pattern-Library Version Identifier * Requester-Binding Class * Per-Register Result Set, one entry per addressed register, ordered by Register Identifier in bytewise lexicographic order of its UTF-8 encoding * Aggregation-Method Descriptor, drawn from the registry of Section 9 * Merkle Root, constructed as in Section 4.9 * Server-Recorded Divergence-Axis Set, possibly empty * OPTIONAL Override Record, present exactly where an Adversarial Pre-Transmission Test failure was overridden * Sealing-Key Identifier * Sealing Signature, a COSE_Sign1 by the reconciliation-server sealing key whose payload is the CBOR array of this Output with the Sealing Signature position alone encoded as CBOR null, so that it covers every other field including the Sealing-Key Identifier The Reconciliation Identifier is the Claim Hash concatenated with the Policy-Version Hash. It is therefore reproducible from enumerated inputs and satisfies the determinism requirement of Section 4 without a separate construction rule. The Claim Hash binds the Output to the question it answers. Without it a relying party receives a Combined Verdict with nothing to attribute it to, and the Retroactive Evaluation Subsystem has no key to select on. Hillier Expires 14 February 2027 [Page 38] Internet-Draft ARP August 2026 The Verdict Arithmetic and its parameters are carried because a relying party cannot otherwise reproduce the combination from the Per-Register Result Set, and because Section 4.12 turns on which values the operator admits. The Applicable-Regimes Set is a Canonical Claim field and is not itself carried in the Output, so naming the operator without its parameters would leave threshold- count and source-class-quorum irreproducible. source-class-quorum is threshold-count evaluated per class and therefore takes a threshold as well as a partition; carrying the partition alone would leave it as irreproducible as carrying neither, which an earlier revision did. Each entry of the Per-Register Result Set comprises: * Register Identifier * Answer State, either answered or not-answered * Attested Verdict, present exactly where the Answer State is answered * Non-Answer Reason of Section 4.11, present exactly where the Answer State is not-answered * Effective Verdict, present exactly where the Answer State is answered, being the Attested Verdict or its re-typing under Section 4.12 * Re-Typing Ground, drawn from the registry of Section 9, present exactly where the Attested and Effective Verdicts differ * Policy-Version Hash as echoed by that register, present exactly where the Answer State is answered * OPTIONAL Divergence-Axis Field, as attested by that register * OPTIONAL Source-Data Version Identifier Set, as attested by that register * Projection Record, comprising the Narrowed-From field of the Per- Register Claim Projection where a projection was transmitted, and the Applied-Parameter Set the register reported where the Answer State is answered; required wherever a projection was transmitted and either the projection narrowed or the Profile Parameter Set was non-empty Hillier Expires 14 February 2027 [Page 39] Internet-Draft ARP August 2026 * Query Binding Record, present exactly where the Answer State is answered, comprising the Projected Predicate, the Subject Reference and the Reconciliation Nonce the server transmitted, and the register's signed Partial Attestation * Non-Answer Statement, present exactly where the Answer State is not-answered and the Non-Answer Reason is register-attested under Section 4.11, comprising the Projected Predicate, the Subject Reference and the Reconciliation Nonce the server transmitted, and the register's signature over them together with the reason and the Reconciliation Identifier, as Section 4.11 constructs it. The three projection values are carried here as well as in the Query Binding Record because the two are never both present and a verifier of either needs the preimage in the artefact it holds. Each member of the Server-Recorded Divergence-Axis Set is a two- element array of a Divergence Axis and the Register Identifier it concerns, the second element being CBOR null where the axis concerns the reconciliation as a whole. Members are sorted in bytewise lexicographic order of that encoding. A uniform two-element member with an explicit null, rather than a member that is sometimes a pair and sometimes a scalar, is what makes the Set's contribution to the Reconciliation Hash determinate. Of the axes recorded by the server, freshness-stale and declared-not-determined are per-register and MUST carry a Register Identifier. source-version-skew is a relation between two or more registers, and one member MUST be added for each register involved, so that the set is a determinate function of the inputs rather than a choice between them; register-threshold- divergence concerns the reconciliation and MUST NOT. Recording a bare axis over five addressed registers would state that something was stale without stating what, which is not reproducible. The Set is a set rather than a single value: a reconciliation may be qualified on more than one axis, and an encoding admitting only one would force an implementation to choose between them silently. A Reconciliation Output is encoded as a CBOR array in the field order of this section, an absent OPTIONAL or conditionally absent field encoded as CBOR null so that position is preserved and the array's length is fixed. The Per-Register Result Set is an array of arrays, each in the field order enumerated above, under the same rule. The order is normative because the Reconciliation Hash is taken over it, and because a CBOR map would be re-sorted into bytewise lexicographic key order under Section 4.2.1 of [RFC8949], which would override it. The Reconciliation Hash is the SHA-256 digest over that same CBOR array with the Sealing-Key Identifier and Sealing Signature positions encoded as CBOR null. The array's length is unchanged: "excluding" Hillier Expires 14 February 2027 [Page 40] Internet-Draft ARP August 2026 means null-substitution at fixed positions and MUST NOT be implemented as truncation, because a shorter array carries a different CBOR array header and therefore a different digest, and two implementations reading "excluding" the two ways would never agree on a ledger index. It is the value recorded in the Settlement-Layer Ledger, the value a Post-Seal Evaluation Record references, and the retrieval key of Section 6.4. Every timestamp this document places inside a digest preimage or a signature payload MUST be expressed in the form YYYY-MM-DDTHH:MM:SSZ: [RFC3339] with the Z designator rather than a numeric offset, and with no fractional seconds. [RFC3339] admits several renderings of one instant, and a preimage that admits several renderings admits several digests. CBOR rather than [RFC8785]: the mandatory-to-implement encoding for a Reconciliation Output is CBOR, and several of its fields are byte strings, for which JSON has no type. Digesting a JSON rendering of it would require a CBOR-to-JSON mapping this document does not define, and two implementations would produce different ledger indices. The Canonical Claim is serialised under [RFC8785] and that serialisation is carried as one element of the CBOR array the Claim Hash is taken over; the Reconciliation Output is CBOR throughout. A Reconciliation Output is immutable once sealed. Conditions arising after sealing are recorded under Section 4.17 and MUST NOT be represented as fields of the Reconciliation Output. 4.15. Output Entitlement and Delivery The Reconciliation Output is the confidential artefact of this protocol and the Settlement-Layer Ledger is its public one. An Output carries subject references, register-signed Partial Attestations and principal identifiers; a Ledger entry carries digests, register origins and structural metadata, and no claim, register-record or principal content. Every rule in this document about who may see what rests on that division, and they are not interchangeable. A party admitted to a Ledger read learns nothing of the subject or the answer. A party holding an Output already holds the content of one reconciliation, and admitting it to reads about that same reconciliation discloses nothing it does not have. Earlier revisions had no answer to who may hold an Output. It was a bearer artefact: possession was the whole of the entitlement, it never expired, and every read predicate this document attempted was expressed in terms of a Requester-Binding that the reader could not present and the Ledger could not evaluate. This section supplies the missing term. Hillier Expires 14 February 2027 [Page 41] Internet-Draft ARP August 2026 4.15.1. Audience A Reconciliation Output carries an Audience Set of zero or more Audience Members, encoded as a CBOR array which is empty only in the case described below. Each Audience Member comprises: * an Audience Member Identifier: a URI, in the same identifier space a Requester-Binding uses for an accountable principal * a Verification Method Reference: the JWK thumbprint, computed as in [RFC7638], of the public key under which that member signs a read request under Section 6.4. It MUST be a durable key and MUST NOT be a session credential or a one-time request signature, because the member has to present it long after the reconciliation is over Audience Members are sorted in bytewise lexicographic order of the deterministic CBOR encoding of the Audience Member Identifier, and each member is encoded as a two-element array in the field order above. Ordering is stated because the Audience Set is inside the Reconciliation Hash preimage, and an unordered set would give one Output as many hashes as it has permutations. The server MUST NOT require proof of possession from a named member at reconciliation time -- the member is typically not present -- and naming one is therefore an assertion by the Requesting Principal, not a fact about the member. Two consequences follow and are stated so that neither surprises. Naming a party places a row in that party's GET /arp/outputs enumeration and in the server's access log that the party did not ask for, so a deployment SHOULD constrain who may be named through the audience constraint below and through the enrolment requirement of Section 6.2. And a member that loses or rotates the key its thumbprint names loses entitlement to every Output that names it, permanently, because the Audience Set cannot be amended after sealing; a member that expects to rely on Outputs over time SHOULD be named by a thumbprint of a key held for that purpose. The Requesting Principal is an Audience Member of every Output performed on its behalf where it can be identified: by its accountable-principal identifier where the Requester-Binding carries one, and otherwise as below. Where it does not -- classes agent- unverified and agent-key-verified -- the Set carries a member whose Identifier is the URI form of the verified signing key's thumbprint. Every requester signs, by Section 6.4.1, so there is always a key to name and an Audience Set is never empty. Hillier Expires 14 February 2027 [Page 42] Internet-Draft ARP August 2026 Further members are named in the reconciliation request, are enumerated inputs for the purposes of Section 4, and are sealed with the rest of the Output. The Audience Set MUST NOT be enlarged after sealing; naming a further member requires a new reconciliation, which is a new question and gets a new answer. A Bilateral Register Agreement MAY declare an audience constraint: a maximum cardinality, a permitted class of member, or both. Where the Audience Set exceeds the constraint an addressed register declares, the reconciliation server MUST NOT transmit a projection to that register and MUST record audience-constraint-exceeded as its Non- Answer Reason. It MUST NOT refuse the reconciliation, and MUST NOT quietly drop the register: the first leaves no artefact stating why, and the second is the addressed-register-cherry-picking Section 4.11 exists to prevent. The reconciliation is sealed and, by Section 4.13, cannot reach a decisive Combined Verdict. The requester is not a party to any Bilateral Register Agreement and cannot read the constraint, so it learns the cap from the reason recorded against that register rather than by inspection. A register that attests about a subject is entitled to bound how widely that attestation travels, and a constraint enforced after transmission would be enforced too late. The constraint is enforced by the reconciliation server on the register's behalf and the register cannot verify that enforcement from any artefact this document defines; a register that requires assurance of it should negotiate an audit right in its agreement. A party MUST NOT be treated as entitled to a Reconciliation Output by possession alone. A relying party that has been handed an Output and is not an Audience Member of it MAY verify its Sealing Signature and read its Combined Verdict -- nothing prevents this, and the signature is what makes the Output worth handing on -- but it obtains no read under Section 6.4, learns nothing of supersession or post-seal evaluation, and MUST NOT treat the verdict as current. Reliance without entitlement is reliance on a snapshot of unknown age. 4.15.2. Reliance Horizon A Reconciliation Output carries a Reliance Horizon: a time in the form of Section 4.14, being the Reconciliation Timestamp advanced by the reliance interval the reconciliation server resolves from the policy-epoch store of Section 4.16, keyed on the predicate and the regimes the claim names, exactly as it resolves the Verdict Arithmetic under Section 4.13. A requester able to set its own reliance interval could set its own staleness window, which is the same defect as choosing its own Verdict Arithmetic. After that time an Audience Member MUST NOT treat the Combined Verdict as current Hillier Expires 14 February 2027 [Page 43] Internet-Draft ARP August 2026 without having read the Continuation entries for its Reconciliation Hash under Section 6.4 and found no supersession. The Horizon does not invalidate the Output and does not weaken the Sealing Signature: what was sealed remains true of the moment it was sealed. It bounds reliance, not validity. A sanctions no-match is a statement about consolidated lists as they stood, and those lists change on a daily cadence (Section 4.5.4); an artefact that asserted such a verdict indefinitely and carried no marker of its own staleness would be relied upon indefinitely, which is the failure Section 4.21 exists to prevent and could not, having no way to reach the party that had relied. The Reliance Horizon is derived from the Reconciliation Timestamp and is therefore outside the reproducibility requirement of Section 4 on the same ground. 4.15.3. Delivery The reconciliation server MUST return the sealed Reconciliation Output to the Requesting Principal in the response to the request that commissioned it, in the form Section 6.2 states. Where the Adversarial Pre-Transmission Test emitted a Remediation Advisory, the server returns that Advisory and no Output. Section 6.2 enumerates the responses to a commissioning request. A refusal under Section 7.1 or an audience constraint under Section 4.15.1 is not among them: those refuse a register and not the reconciliation, so an Output is produced and delivered, carrying the reason against the register it concerns. That the server returns the Output is stated because nothing in earlier revisions did. The document specified in detail what an Output contains, how it is sealed, digested, ledgered and notarised, and never that any party receives one. Every discovery path in this document begins with a party holding a Reconciliation Hash, and it holds one because of this paragraph. An Audience Member other than the Requesting Principal is not delivered to. It retrieves under Section 6.4: the server has no channel to a party it has never spoken to, and pushing a confidential artefact to an address named by somebody else is not a mechanism this protocol should define. The Reconciliation Hash is the retrieval key and is not reproducible across runs (Section 4), so a party that has discarded it cannot recompute it, and the Reconciliation Identifier is no help because the Claim Hash within it is blinded under Section 4.16 and cannot be computed outside the deployment. The server MUST therefore also Hillier Expires 14 February 2027 [Page 44] Internet-Draft ARP August 2026 answer the enumeration of Section 6.4, returning to an authenticated principal the Reconciliation Hashes of the Outputs whose Audience Set names it. Without it, an Audience Member that has lost a 32-byte value has lost every entitlement this section grants it, permanently and silently. The server MUST retain each sealed Output, and MUST answer reads of it and of its Continuation entries, for the retention period, which is the LONGEST period any Bilateral Register Agreement addressed by that reconciliation declares, and in no case ending before the Reliance Horizon advanced by one further reliance interval. Where two agreements declare different periods the longest governs. That direction is specific to a retention period, which is a floor: the shortest declaration would let one register's agreement extinguish another's. Wherever else this document takes a value from a plural set of agreements, the direction is the one that makes the obligation stricter, and it is stated at each site. For every interval that bounds a deadline -- the ledger-head notarisation interval of Section 4.18, and the Evaluation Sweep and supersession deadlines measured against it -- the SHORTEST declaration governs. Taking the longest there would let one permissive agreement postpone every deadline for every other register, which inverts the obligation instead of strengthening it. For the read rate limit of Section 6.4.4, the most permissive declaration governs, a rate limit being a ceiling on the server's refusals rather than on its duties. The extra interval matters. Section 4.15.2 requires an Audience Member to read before relying past the Horizon, and entitlement is evaluated against the Audience Set of the retained Output; a retention floor that ended exactly at the Horizon would permit the server to discard the basis of that evaluation at the moment the obligation begins, and the member would receive the 404 of Section 6.4.4 -- indistinguishable, by design, from never having been entitled. 4.16. Policy-Version-Hash Sealing The Policy-Version Hash MUST commit to: 1. Reconciliation rules 2. Threshold parameters 3. Pattern-Library Version Identifier 4. Applicable-Regimes precedence Hillier Expires 14 February 2027 [Page 45] Internet-Draft ARP August 2026 5. Verdict-Arithmetic selection, together with every parameter that operator takes 6. The reliance interval from which the Reliance Horizon of Section 4.15.2 is computed 7. Agent-IFF policy identifier and the Requester-Binding 8. Bilateral-Register-Agreement Hashes of the addressed registers The Policy-Version Hash is the SHA-256 digest over the deterministically encoded CBOR array ["arp-policy-version-v1", Deployment Blinding Value, reconciliation rules identifier, threshold parameters, Pattern-Library Version Identifier, applicable-regimes precedence, [Verdict Arithmetic, its parameters], reliance interval, Agent-IFF policy identifier, Requester-Binding, Bilateral-Register-Agreement Hash Set] in that order, the Hash Set sorted in bytewise lexicographic order of the digests and every other composite element a CBOR array in the order this section states it. It MUST be reconstructible under audit from that array, held in the policy-epoch store. A value every addressed register echoes and every auditor recomputes cannot be left to "a canonical policy state", which earlier revisions were content with and which is not a preimage. The Claim Hash and the Policy-Version Hash MUST each be computed over a preimage that includes the Deployment Blinding Value: a secret of at least 128 bits drawn once from a cryptographically secure random source, persisted in the policy-epoch store, constant for the life of the deployment, and disclosed outside the policy-epoch store only as Section 4.20 provides. Section 4.20 discharges an auditor's need as far as it can without disclosing the constant that blinds every digest in the deployment, and states what that leaves unverified. It is constant rather than per-claim, and that is what makes it compatible with the rest of this document. The Claim Hash remains a deterministic function of the canonical claim fields within a deployment, so it remains usable as the Settlement-Layer Ledger index and as the retroactive-evaluation key, and the reproducibility requirement of Section 4 continues to hold: the same deployment given the same enumerated inputs produces the same digests. What changes is that the preimage is no longer guessable from outside the deployment. A per-claim random value would defeat all three properties. Hillier Expires 14 February 2027 [Page 46] Internet-Draft ARP August 2026 Both digests are otherwise taken over low-entropy preimages: a subject identifier is typically a company number of ten or so digits, a predicate is drawn from a published taxonomy, and the accountable principal, agent-IFF policy identifier and verdict arithmetic are each drawn from small enumerable sets within one deployment. Both digests then appear where adversaries can reach them -- the Policy- Version Hash in the protected header of every notarised Signed Statement and in every reconciliation entry of the Ledger, the Claim Hash in the Output and in every Ledger entry of either kind. Without blinding, anyone holding either can recover by exhaustive search the subject that was investigated and the principal that commissioned the reconciliation, which is the disclosure this protocol exists to prevent. Blinding does not weaken reconstructibility under audit, since the Blinding Value is persisted with the state it blinds. A register receives the same Policy-Version Hash as every other addressed register, by Section 4.4. The Blinding Value prevents two colluding registers from recovering the Addressed-Registers Identifier Set from it by search; that they can observe they were addressed together is inherent and is discussed in Section 7.8. 4.17. Post-Seal Evaluation Records Two conditions arise after a Reconciliation Output has been sealed and therefore cannot be fields of it, and are not Divergence Axes: a Divergence Axis qualifies a verdict, and these qualify an operation performed on an Output that is already immutable. * notarisation-incomplete, where notarisation under Section 6.5 neither completed nor was refused within the polling bound. * attribution-indeterminate, where a Retroactive Evaluation could not determine whether a material change arose from a change in policy state or from a change in Source-Data Version. Each is recorded in a Post-Seal Evaluation Record comprising: * the Reconciliation Hash of the Output it concerns * the Post-Seal Evaluation Qualifier, drawn from the registry of Section 9 * the Policy-Version Hash and Pattern-Library Version Identifier in force at the time of the evaluation, which may differ from those the Output was sealed under * a Post-Seal Evaluation Timestamp, in the form of Section 4.14 Hillier Expires 14 February 2027 [Page 47] Internet-Draft ARP August 2026 * an Attribution Account, present exactly where the Qualifier is attribution-indeterminate: a text string stating which of the two candidate causes were examined and why neither could be excluded. A bare qualifier would be a discretionary escape signed by the party that benefits from it * a Sealing-Key Identifier * a signature by the reconciliation-server sealing key, a COSE_Sign1 whose payload is the CBOR array of this record with the signature position encoded as CBOR null A Post-Seal Evaluation Record is encoded as a CBOR array in the field order above, an absent conditionally-absent field encoded as CBOR null so that position is preserved. The Post-Seal Evaluation Record Hash of Section 4.18 is the SHA-256 digest over that array in its entirety, signature included, so that the digest is over the artefact as served under Section 6.4. A Post-Seal Evaluation Record MUST be retained by the reconciliation server for the period of Section 4.15.3, and a Continuation entry of type continuation-post-seal-record MUST be appended to the Settlement-Layer Ledger carrying the record's hash. The hash is not written into the entry that recorded the reconciliation: that entry is already signed and the Ledger exposes no UPDATE. An Audience Member of the Output discovers the record by reading the Continuation entries for its Reconciliation Hash under Section 6.4 and retrieves it by its hash under the same binding. The record travels as the result element of the signed read response of Section 6.4.3; the media type registered for the record labels it wherever it is carried outside that envelope, and the Post-Seal Evaluation Record Hash is taken over the record itself and not over the response that carried it. A record emitted but not appended would be undiscoverable, which would make the attribution safety valve of Section 4.6 unreachable in exactly the case it exists for. A Post-Seal Evaluation Record MUST NOT alter the Reconciliation Output it references, and a relying party MUST NOT treat the existence of one as invalidating that Output. A Reconciliation Output whose notarisation is incomplete remains valid under its Sealing Signature. Where a Sovereign Re-Notification is emitted under Section 4.21 for a material change, the notification MUST state whether the change arose from policy state or from Source-Data Version, and where it cannot, a Post-Seal Evaluation Record carrying attribution-indeterminate MUST be emitted and referenced by the notification. Hillier Expires 14 February 2027 [Page 48] Internet-Draft ARP August 2026 4.18. Settlement-Layer Ledger The Ledger carries two kinds of entry. A reconciliation entry records a sealed Reconciliation Output. A Continuation entry records a fact that arose after that Output was sealed and therefore could not be a field of it. Every entry carries an Entry Type drawn from the registry of Section 9, and the Entry Type determines which further fields the entry carries. An entry whose Entry Type is not reconciliation is a Continuation entry. Without a discriminator a verifier reading an entry cannot tell which field list to apply, and an entry legitimately lacking a field would be indistinguishable from one that is malformed. Every entry, of either kind, comprises these fields and in this order: * Entry Sequence Number, a strictly increasing integer with no gaps: the first entry of a chain is 1 and each subsequent entry is its predecessor's plus one. Contiguity is required because the consistency read of Section 6.4.2 cannot otherwise distinguish a sequence number the operator never allocated from one it is refusing to answer for, the two being the same 404 by Section 6.4.4 * Entry Type, from the ARP Ledger Entry Types registry of Section 9 * Claim Hash, the index of Section 4 * Reconciliation Hash of the Reconciliation Output the entry concerns * Entry Timestamp ([RFC3339] UTC), the time at which the entry was appended * Prior-Entry Hash, being the SHA-256 digest over the deterministically encoded CBOR serialisation of the immediately preceding entry in its entirety, including that entry's Entry Signature; in the first entry of a chain, which has no preceding entry, thirty-two zero octets followed by the type-specific fields enumerated below, followed by: * Self-Entry Hash, being the SHA-256 digest over the CBOR array of this same entry with the Self-Entry Hash and Entry Signature positions encoded as CBOR null, so that the array's length is the length fixed by the Entry Type and is the same array a verifier already holds Hillier Expires 14 February 2027 [Page 49] Internet-Draft ARP August 2026 * Entry Signature, a COSE_Sign1 by the reconciliation-server sealing key whose payload is the CBOR array of this same entry with the Entry Signature position alone encoded as CBOR null -- so it covers every other field including the Self-Entry Hash -- and whose protected header carries the Sealing-Key Identifier that resolves it An entry is encoded as a CBOR array in the field order of this section, an absent field -- whether marked OPTIONAL or conditionally absent under a stated condition -- encoded as CBOR null, so that position is preserved and the array's length is fixed by the Entry Type. Absence MUST be encoded and MUST NOT be expressed by a shorter array: two encodings of one entry would otherwise yield two Self- Entry Hashes, which the head comparison of this section treats as a fork. The order is normative because the Self-Entry Hash is taken over it; an encoding as a CBOR map would be re-sorted by key under the Core Deterministic Encoding Requirements of Section 4.2.1 of [RFC8949] and would override it. A field whose value is itself a choice -- the second field of a continuation-notarisation entry -- is encoded as a two-element array of a discriminant and a value, the discriminant being the CBOR text string entry-id or refused. The Self-Entry Hash is enumerated after the type-specific fields so that it covers them. Placing it before them would leave a Continuation entry's payload outside it. The Prior-Entry Hash is taken over the whole preceding entry rather than over that entry's Self-Entry Hash, so that Entry Signatures are inside the chain. Were the chain to link Self-Entry Hash to Self-Entry Hash, no signature would be covered by anything, and an operator could re-sign or strip every historical Entry Signature -- resolving each to a revoked or unresolvable key -- while every hash in the chain, and every head already published and notarised, continued to verify. The one field this document relies on to make a second chain attributable would have been the one field outside the structure that detects tampering. The trailing entry's own signature is covered as soon as the next entry is appended, and until then it is covered by nothing; the published head commits to the head entry's Self-Entry Hash, which by construction excludes that entry's own signature. An entry is signed exactly once. A second signature over the same fields is a different entry, MUST NOT be appended at the same Entry Sequence Number, and MUST NOT replace the first. Signature schemes are not required to be deterministic, so two signings of one entry would otherwise yield two byte-different entries, two divergent but individually valid chains, and two heads at one sequence number -- which Section 4.18 treats as a fork. An operator would then have a blameless explanation for one. Hillier Expires 14 February 2027 [Page 50] Internet-Draft ARP August 2026 The Entry Timestamp is distinct from the Reconciliation Timestamp. A Continuation entry may be appended weeks after the reconciliation it concerns, and an entry carrying only a Reconciliation Timestamp would state that the notarisation, the post-seal evaluation or the supersession occurred at the moment of the reconciliation, which is false in every case the mechanism exists for. An entry whose Entry Type is reconciliation additionally comprises: * Policy-Version Hash * Addressed-Registers Identifier Set, each member an authority origin, sorted in bytewise lexicographic order of its UTF-8 encoding * Aggregation-Method Descriptor * Merkle Root * Requester-Binding-Class Descriptor, one of the four classes enumerated in the Requester Identity Binding and Agent Friend-or- Foe Gate section * Reconciliation Timestamp, as sealed in the Reconciliation Output * OPTIONAL Source-Reconciliation-Output Identifier, being the Reconciliation Hash of the Output this reconciliation supersedes, present exactly where it supersedes one * Override Indicator, true exactly where the Reconciliation Output carries an Override Record under the Adversarial Pre-Transmission Test An entry whose Entry Type is continuation-notarisation additionally comprises: * Transparency Service Identifier, being the authority origin of that service * exactly one of the EntryID that service returned, or the HTTP status code by which that service terminally refused registration Only the status code is recorded, never a response body. A body is authored by the Transparency Service, is unbounded, and routinely echoes submitted content; writing one into an append-only log with no DELETE would put text this document does not control inside a record that forbids claim and principal content in the clear. Hillier Expires 14 February 2027 [Page 51] Internet-Draft ARP August 2026 A continuation-notarisation entry MUST be appended where notarisation completes, and where the Transparency Service returns a status the implementation resolves as a terminal refusal under Section 6.5.2. Where a status cannot be so resolved -- the 404 of Section 6.5.2 carries two meanings and a service is not obliged to distinguish them -- it is not a terminal refusal, and the reconciliation is treated as one whose polling bound was exhausted. In that case no continuation- notarisation entry is appended and the outcome is recorded under Section 4.17 as notarisation-incomplete. Requiring an entry only on failure would leave the successful case -- the case the join exists for -- unrecorded. Where an implementation subsequently learns the EntryID of a registration it had recorded as incomplete, it MUST append the continuation-notarisation entry then. This document defines no means by which it would learn that: [I-D.ietf-scitt-scrapi] retrieves by EntryID and the EntryID is precisely what was not received, polling is bounded, and no callback is specified. A notarisation-incomplete record will therefore usually stand permanently, and it is evidence that registration did not complete within the polling bound and not that it failed. That is open. An entry whose Entry Type is continuation-post-seal-record additionally comprises: * Post-Seal Evaluation Record Hash An entry whose Entry Type is continuation-supersession additionally comprises: * Material-Change Indicator, stating whether the Combined Verdict changed materially within the meaning of Section 4.21 * Superseding-Reconciliation Hash, being the Reconciliation Hash of the Reconciliation Output that supersedes the one this entry concerns, present exactly where a superseding Output was produced and absent where the supersession is the revocation of a Verified Principal Credential under Section 4.21, which supersedes an Output without producing another * Superseding-Entry Sequence Number, being the Entry Sequence Number of the reconciliation entry that records the superseding Output, present under the same condition No Continuation entry carries a retrieval URI. Every artefact a Continuation entry points at is retrieved under Section 6.4, by hash for a Post-Seal Evaluation Record and by Reconciliation Hash for a superseding Output, from the same authority origin that served the Hillier Expires 14 February 2027 [Page 52] Internet-Draft ARP August 2026 entry. Carrying a URI instead would oblige every reader to dereference an operator-chosen address before it could check anything -- a forced fetch, a de-blinding oracle correlating a reader's network identity with one Reconciliation Hash, and a covert channel that no constraint on the URI's content can close, since host selection and path structure carry the signal without stating anything. It would also put a non-digest field in a Ledger whose whole disclosure argument is that it holds digests. A Reconciliation Output produced by Retroactive Evaluation to supersede an earlier Output MUST carry the Audience Set and the Requester-Binding Class of the Output it supersedes. Without that rule the party entitled to learn that its verdict had changed would be entitled to the entry saying so and not to the Output that says what it changed to, and the traversal would end one step short. Such an Output has no commissioning request and is not delivered under Section 4.15.3; it is retrieved. Where the superseding reconciliation addresses a register whose audience constraint the inherited Audience Set exceeds -- which can happen, since the superseding reconciliation may address registers the superseded one did not -- that register is recorded audience- constraint-exceeded under Section 4.11 like any other. The Audience Set is not truncated to fit: truncating it would strand the party the supersession exists to notify, and the constraint is satisfied by not obtaining that register's answer rather than by silencing the reader. A party retrieving a Post-Seal Evaluation Record MUST verify that the retrieved bytes digest to the Post-Seal Evaluation Record Hash carried in the entry, and MUST discard them otherwise. That hash is constructed as Section 4.17 defines it. Without the check the hash is decorative and an operator can serve a different record to each audience, reopening at the record the equivocation the Ledger closes at the entry. Hillier Expires 14 February 2027 [Page 53] Internet-Draft ARP August 2026 A Continuation entry carries no Policy-Version Hash, no Addressed- Registers Identifier Set, no Aggregation-Method Descriptor, no Merkle Root and no Requester-Binding-Class Descriptor. Those describe the reconciliation, which the reconciliation entry already records and the Reconciliation Hash already binds; carrying them a second time would create a second place for them to disagree. A Continuation entry MUST carry the same Claim Hash and Reconciliation Hash as the reconciliation entry it continues, and the storage interface layer MUST reject a Continuation entry whose Reconciliation Hash matches no earlier reconciliation entry, returning a rejection the appending subsystem can distinguish from a transport failure. Because Entry Sequence Numbers are allocated in one sequence and secondary stores replicate rather than originate, every store holds the reconciliation entry against which the check is made. Prior-Entry and Self-Entry Hashes establish that no entry has been removed from a chain; they do not establish that only one chain exists. Signing each entry makes a second chain attributable rather than merely possible. A Reconciliation Output is sealed before it is notarised and so cannot itself carry the EntryID, and the Ledger exposes no UPDATE, so the join cannot be made by amending the original entry. It is made by appending. Without it a successful notarisation would be unlinkable to the reconciliation from every side, since retrieval is by EntryID and [I-D.ietf-scitt-scrapi] offers no query surface. A continuation-supersession entry MUST be appended against the superseded Output on every supersession, whether or not the change is material. Where the supersession produced a superseding Output, the superseding reconciliation entry MUST also carry the Source- Reconciliation-Output Identifier naming what it replaced, and the two records are inverse pointers over one relation. Where it did not -- the revocation of a Verified Principal Credential -- there is no superseding entry and no second record, and the Continuation entry stands alone. The Material-Change Indicator distinguishes a material supersession from an immaterial one in either case. Section 4.21 imposes the further obligation of a Sovereign Re-Notification where the change is material; it does not condition the ledger record, which is written either way, since a party relying on a superseded Output needs to know it was superseded before it can be told the change was immaterial. Where both records exist they are inverse pointers over one relation and neither substitutes for the other. A party holding the superseded Output cannot follow a pointer that exists only on an entry it has not been returned, and a regulator whose scope under Section 4.19 covers the superseded reconciliation is not thereby Hillier Expires 14 February 2027 [Page 54] Internet-Draft ARP August 2026 returned the superseding one, whose addressed registers and therefore whose agreements may differ. The constraint is on what a reader is returned, not on what a store holds. The Ledger MUST NOT store Canonical-Claim content, register records, Partial-Attestation payloads, or any principal identifier in the clear; the requester's accountable principal is committed only through the Policy-Version Hash. The append-only constraint MUST be enforced at the storage interface layer. The Ledger interface MUST expose APPEND and READ operations only, with no UPDATE and no DELETE operation exposed or implemented. Retroactive Evaluation and the derivation-chain invariant check are subsystems of the reconciliation server and read the Ledger without scope restriction. Every read by a party outside the reconciliation server is served under Section 6.4, which states the operations, the entitlement each requires, the response form, and the error semantics. Three entitlements reach the Ledger: a regulator's, governed by Section 4.19; an Audience Member's under Section 4.15; and an Audit Identity's under Section 4.20. A Register Operator holds the narrower entitlement of the consistency check below. An Audience Member is entitled to the Continuation entries carrying the Reconciliation Hash of an Output that names it, and to the reconciliation entry carrying that same Reconciliation Hash. It is entitled to no other entry. This is the predicate earlier revisions could not express. It is evaluable, because the Audience Set is a sealed field of the Output and the server retains the Output under Section 4.15.3; the Ledger is not asked to evaluate it, and could not, since it stores no principal identifier in the clear. It admits the right party, because entitlement follows the Output rather than the request, so a member the Requesting Principal named at reconciliation time is admitted and a party that merely came into possession of the artefact is not. And it survives the events that broke its predecessors: an Audience Member's verification method is required by Section 4.15.1 to be presentable after the fact, and revocation of the Requesting Principal's Verified Principal Credential does not remove the other members of the Audience Set, so the supersession entry recording that revocation has a reader. Where an Output's Audience Set is reduced to members that can no longer authenticate -- a single-member Set whose sole member's credential has been revoked -- its Continuation entries are reachable only through the Regulator Portal. The reconciliation MUST still have been performed with a Requester-Binding class recorded under Section 7.4, so the condition is visible to the regulator that scope serves. Hillier Expires 14 February 2027 [Page 55] Internet-Draft ARP August 2026 An Audience Member's read discloses only facts about a reconciliation whose full content it already holds: that a supersession or a post- seal evaluation exists, what it points to, and the ledger position of each. The one exception is worth naming, because it is not obvious: a Post-Seal Evaluation Record carries the Policy-Version Hash and Pattern-Library Version Identifier in force at the time of the evaluation rather than at sealing, and those are values the member did not previously hold and, being stable within a deployment, are durable correlators. That is a deliberate disclosure to a party already entitled to the reconciliation they qualify, and it is bounded by Section 4.15.1's rule that a register may cap how wide an Audience Set addressing it may be. Where the Ledger is replicated per Section 4.18.1, each secondary store MUST be able to demonstrate that its chain and every other secondary store's chain share a common prefix. A common-prefix demonstration between stores under one operator is that operator attesting to itself. The reconciliation server MUST therefore publish a signed Ledger Head Statement at /.well-known/arp- ledger-head on its authority origin. It is republished once per notarisation interval and not on every append: the resource is unauthenticated and carries a contiguous sequence number, so a continuously updated head would hand any observer the deployment's exact entry count, its write rate and the timing and size of every retroactive supersession burst -- the aggregate disclosure Section 6.4.4 rate-limits the authenticated surface to prevent. A Statement comprises: * the Entry Sequence Number of the current head * the Self-Entry Hash of that entry * the Entry Timestamp of that entry * a Statement Timestamp, being the time the Statement was produced, in the form of Section 4.14. Without it two Statements published across a quiet period differ only in their notarisation pointer and neither is dateable, so the interval a register negotiated is unverifiable from the artefact * a two-element array of the Transparency Service Identifier and the EntryID of the most recent completed notarisation of a Ledger Head Statement, encoded as CBOR null until the first such notarisation completes * a signature by the reconciliation-server sealing key over the foregoing, carrying the Sealing-Key Identifier that resolves it Hillier Expires 14 February 2027 [Page 56] Internet-Draft ARP August 2026 A Ledger Head Statement is encoded as a COSE_Sign1 over the deterministically encoded CBOR array of the first five items above, in that order, under the media type registered in Section 9, with the fifth item encoded as CBOR null until the first notarisation completes. The server MUST notarise the Ledger Head Statement current at each interval into a SCITT Transparency Service. The interval is the shortest declared by any Bilateral Register Agreement, per the direction rule of Section 4.15.3. The Transparency Service MUST be one every Bilateral Register Agreement the deployment holds declares, and MUST NOT be operated by or under the control of the reconciliation server or any party controlling it. A notary the operator owns is the operator attesting to itself, which is the condition this mechanism exists to escape; the same requirement governs the notarisation of Evaluation Sweep Statements under Section 4.21.1. It is not registered under the binding of Section 6.5, which is scoped to sealed Reconciliation Outputs and whose protected header requires a Policy-Version Hash and a Bilateral-Register-Agreement Hash that a head statement does not have; it is registered as a Signed Statement under its own media type. Statements published between intervals are not notarised. Entry Sequence Numbers are allocated in a single sequence for the logical Ledger. A secondary store under Section 4.18.1 replicates that sequence and MUST NOT allocate independently, or two conforming stores would present the same sequence number over different entries and be indistinguishable from a fork. The Entry Sequence Number is what makes two heads comparable. A bare hash cannot distinguish a fork from ordinary progress: two parties who have each seen a different head learn only that the values differ, which is the expected case whenever they observed at different times. Two Head Statements bearing the same Entry Sequence Number and different Self-Entry Hashes are therefore a fork on their face, and both are signed, so both are attributable. Two Head Statements bearing different sequence numbers are reconciled by the consistency read of Section 6.4.2. A party entitled to that read -- a Register Operator or a regulator -- presents the lower of the two sequence numbers and receives the Self-Entry Hash of the entry at that position in a signed response bound to the request it answers. The two views agree only where that value equals the one the lower Head Statement carried, and where they disagree the party holds two signed statements by one key that cannot both be true of one chain. That is why the response is signed and bound to its request: an unsigned answer would let an operator serve each questioner from that questioner's own branch and leave the questioner with nothing it could show a third party. Hillier Expires 14 February 2027 [Page 57] Internet-Draft ARP August 2026 The rate limit of Section 6.4.4 is load-bearing on that operation and not merely hygiene. The consistency read ranges over every sequence number up to the head; swept without limit it yields the deployment's exact entry count by binary search, its write rate by polling, and the timing and size of a retroactive supersession burst by watching for a step change -- none of which any single answer discloses. A party that holds two irreconcilable signed statements MUST cease to rely on any Reconciliation Output sealed by that server after the lower of the two sequence numbers, MUST report the pair to every regulator whose Bilateral Register Agreements it can identify from the Outputs it holds, and MUST NOT treat the server's subsequent statements as evidence of anything until the discrepancy is resolved. A Register Operator that holds such a pair MUST additionally refuse further Per-Register Claim Projections from that server, on which the server records agreement-drift-suspended against that register under Section 4.11 as it would for any other suspension. Detection without a required response leaves the mechanism ending in a held contradiction and no consequence. Two limits remain and are stated rather than claimed away. An operator that publishes to two audiences at disjoint sequence numbers never emits a colliding pair, so detection by collision is opportunistic even though reconciliation by consistency read is not. And a party holding neither a Reconciliation Output nor a Bilateral Register Agreement has no register set against which to anchor the signing key under Section 6.5.3: it can check that a Head Statement is signed and not that the signer was entitled to publish it. Both bear on a party outside the entitled set; a Register Operator, which is the party with standing to care whether its attestations sit on one chain, has the agreement that anchors the key and the entitlement that completes the check. 4.18.1. Replication The Ledger MAY be distributed across a plurality of per-jurisdiction secondary stores under synchronous replication, each operated under the data-residency constraints of its host jurisdiction. The append- only derivation-chain invariant -- that every entry's Prior-Entry Hash equals the digest, taken as in Section 4.18, over the immediately preceding entry in its entirety -- MUST be preserved across all secondary stores. A secondary store replicates the single sequence of Section 4.18 and originates no entry of its own. Hillier Expires 14 February 2027 [Page 58] Internet-Draft ARP August 2026 4.19. Regulator Portal The Regulator Portal Subsystem authenticates a sovereign regulator's jurisdictional credentials against a regulator-identity-provider trust anchor that MUST be declared in every Bilateral Register Agreement addressed by the reconciliation being read. It restricts returned fields to those within the regulator's statutory scope as declared in the statutory-regulator-access scope of those agreements. Each Bilateral Register Agreement declares, per regulator jurisdiction, a permitted-read-field set: the names of the Reconciliation Output and Ledger entry fields a regulator of that jurisdiction may be returned, and the predicates over which it may be returned them. The scope restriction is the INTERSECTION of the per- agreement permitted-read-field sets scoped to the regulator's jurisdiction, taken only over reconciliations whose Canonical Claim Predicate is in the intersection of the corresponding permitted-read- predicate sets, and further intersected with the regulator's requested field set. Fields and predicates are different domains and are intersected separately; intersecting one with the other would yield the empty set, which earlier text did. Each access MUST be recorded in an append-only subpoena-grade audit trail. The Portal is a subsystem of the reconciliation server and reads the Ledger without scope restriction. The scope governs what it RETURNS, not what it may read. Stating it the other way round would make the Portal unable to compute the authority under which it answers, since that computation requires reading the entry first. Where the entry read is a Continuation entry, the Portal computes the trust anchor and the scope from the agreements addressed by the reconciliation entry carrying the same Reconciliation Hash. A Continuation entry names no registers of its own, and an intersection taken over an empty set of agreements would either deny every regulator or restrict none, which are the two failures the rest of this section exists to avoid. Hillier Expires 14 February 2027 [Page 59] Internet-Draft ARP August 2026 The fields a Continuation entry carries are structural: an entry type, a sequence number, a timestamp, chain hashes, and a pointer to an artefact. None is a register record, a claim value or a verdict. A regulator in scope for a reconciliation entry is therefore in scope for every field of every Continuation entry carrying that entry's Reconciliation Hash, without any agreement having to enumerate those fields. The alternative -- intersecting a set of field names no agreement mentions -- yields the empty set, and would make a Sovereign Re-Notification arrive at a regulator that is then returned nothing when it follows the pointer. Agreements negotiated before this revision name none of these fields, and Section 4.21 forbids retroactive evaluation from requiring any agreement to be renegotiated. Both intersections are load-bearing. Taking the union across agreements would let one register operator's permissive agreement widen what a regulator may read about a reconciliation that also addressed a restrictive register, inverting the data-residency property this protocol exists to preserve; and requiring the trust anchor in only one agreement would let a single register operator unilaterally introduce a regulator identity that authenticates against multi-register events. Intersecting with the requester's own requested set is not itself a restriction, since the requester chooses it. 4.19.1. Sovereign Re-Notification A Sovereign Re-Notification is a COSE_Sign1 by the reconciliation- server sealing key, under the media type registered in Section 9, whose payload is the CBOR array of: * the Claim Hash and the Reconciliation Hash of the superseded Output * the Entry Sequence Number of the continuation-supersession entry recording the supersession * the Material-Change Indicator * the verdict values before and after * the Attribution, one of policy-state, source-data-version or attribution-indeterminate, and where it is the last, the Post-Seal Evaluation Record Hash of the record Section 4.17 requires * a Notification Timestamp, in the form of Section 4.14 Hillier Expires 14 February 2027 [Page 60] Internet-Draft ARP August 2026 encoded as a CBOR array in that order, an absent conditionally-absent element as CBOR null so that the array's length is fixed, the first element a two-element array of the two hashes and the fourth a two- element array of the verdict before and after; and signed under the Sealing-Key Identifier its protected header carries. The signature is not a payload element. The server MUST deliver it to the notification endpoint each affected regulator's Bilateral Register Agreements declare, MUST retry until acknowledged or until the retention period of Section 4.15.3 elapses, and MUST make every Re-Notification retrievable by a regulator under Section 6.4.2. A regulator that is unreachable when a verdict changes is exactly the case the mechanism exists for, so delivery cannot be a single attempt, and an obligation with no artefact and no endpoint -- which is what earlier revisions specified -- is an obligation no party can discharge or audit. 4.20. Audit Path Several requirements in this document are justified by what an auditor can reproduce: the re-typing decision of Section 4.12 "without the server's assurance", the Query Binding of Section 4.8, the Policy-Version Hash "under audit" of Section 4.16, and the Deployment Blinding Value of Section 4.16. No earlier revision defined that path, so every one of those justifications rested on a party the document did not admit. Each Bilateral Register Agreement MUST declare at least one Audit Identity: an identifier and a key thumbprint, in the form Section 4.15.1 uses for an Audience Member. A party authenticating as an Audit Identity under Section 6.4.1 is entitled to: * every operation of Section 6.4.2, unredacted, over any reconciliation addressing the register whose agreement declares that identity * the Reconciliation Outputs of those reconciliations, irrespective of their Audience Sets, by GET /arp/outputs/{reconciliation-hash} * for a named reconciliation, every element of the Policy-Version Hash preimage of Section 4.16 EXCEPT the Deployment Blinding Value, together with a Reconstruction Proof: a keyed digest, computed as HMAC-SHA-256 under the Deployment Blinding Value over the disclosed elements, which the auditor recomputes only if it is also given the Value, and otherwise compares against the Reconstruction Proof the server returns beside the Output under GET /arp/outputs/{reconciliation-hash} to a requester authenticated as an Audit Identity Hillier Expires 14 February 2027 [Page 61] Internet-Draft ARP August 2026 An Audit Identity is NOT given the Deployment Blinding Value, and is not given the preimage in full, because the preimage contains it. The Value is one deployment-wide constant and its holder can invert every Claim Hash and Policy-Version Hash on the published Ledger by the exhaustive search Section 4.16 describes, including those of reconciliations the auditor's own register had no part in; every agreement declares an Audit Identity, so disclosing the Value to one would disclose the deployment to all of them. What the auditor can therefore establish is that the disclosed policy elements are the ones the server used, and not that the resulting hash is correct: the last step needs the Value. A deployment that requires the stronger property MUST appoint an Audit Identity jointly with every register whose agreement it holds, and MAY disclose the Value to that joint identity alone. This document states the limit rather than resolving it, because a construction that let one register's appointee verify a deployment-wide digest without holding the deployment-wide secret is a different mechanism than the one specified here. An Audit Identity is declared in an agreement rather than named by a requester, because the party being audited must not choose its auditor after the facts are known, and because the register whose records are at issue is the party with standing to insist on one. Its entitlement is scoped to reconciliations addressing that register: an auditor appointed under one agreement reads nothing about a reconciliation that agreement had no part in. Every access under an Audit Identity MUST be recorded in the append- only audit trail of Section 4.19. An unaudited audit right is a standing unaccountable read of every Output a deployment holds. 4.21. Retroactive Evaluation Upon publication of an updated Pattern Library, an updated Policy Version, or a new Source-Data Version for any list a register consulted under Section 4.6, the Retroactive Evaluation Subsystem MUST execute a deterministic re-application of the updated state to the retained metadata of historical Reconciliation Outputs -- the Per-Register Result Set, the resolved arithmetic and its parameters, and the Source-Data Version Identifiers, being the inputs from which a Combined Verdict is recomputed. Under a Pattern-Library or Policy- Version trigger the set to be examined is those Outputs sealed against a superseded Policy-Version Hash. Under a Source-Data Version trigger the policy state is unchanged and that set would be empty; the set is instead those Outputs whose Per-Register Result Set carries a Source-Data Version Identifier from the list that was republished. Under a credential-revocation trigger it is those whose Hillier Expires 14 February 2027 [Page 62] Internet-Draft ARP August 2026 Requester-Binding rested on the revoked credential. Where permissible under the applicable Bilateral Register Agreements, partial attestations MAY be re-invoked. The retroactive evaluation MUST be executable without re-negotiation of any Bilateral Register Agreement. A material change in a historical Combined Verdict -- defined as any change of verdict value into, out of, or between the decisive values, the decisive values being match and no-match -- MUST trigger a Sovereign Re-Notification through the Regulator Portal, and MUST additionally be recorded as a Continuation entry of type continuation-supersession against the superseded Output, under the field rules of Section 4.18, so that a party which acted on the superseded Output can discover that it was superseded. Notifying only the regulator would leave the party that acted on a verdict the last to learn it had changed. A transition from no-match to match is material: it is the case the protocol's motivating domain cares most about, and a definition that excluded transitions within the decisive class would omit it. Revocation of a Verified Principal Credential relied upon in a historical reconciliation is itself a material change: the Retroactive Evaluation Subsystem MUST re-derive the affected Requester-Binding class and, where a decisive reconciliation was performed for what is now an unverifiable requester, emit a Sovereign Re-Notification. 4.21.1. Evaluation Sweep Statements Every trigger of retroactive evaluation is observed by the reconciliation server, every decision to run is taken by it, and until this revision nothing recorded that a sweep had run. "We evaluated and found no change" and "we never evaluated" were the same observation from every position outside the server, which made the central obligation of this section unfalsifiable. The Retroactive Evaluation Subsystem MUST emit exactly one Evaluation Sweep Statement for each trigger, within the ledger-head notarisation interval of Section 4.18 measured from the trigger event. One Statement per trigger, on a deadline tied to an event outside the server, is what makes a missing Statement provable; "one per sweep" would let an operator batch a quarter's triggers into a single Statement and remain conformant while evaluating nothing in time. A Statement comprises: * the trigger, drawn from the registry of Section 9 and initially one of pattern-library, policy-version, source-data-version or credential-revocation, and the identifier of the artefact that triggered it Hillier Expires 14 February 2027 [Page 63] Internet-Draft ARP August 2026 * the Policy-Version Hash and Pattern-Library Version Identifier applied * the Entry Sequence Number of the Ledger head when the sweep began and when it completed * the count of Reconciliation Outputs examined, and the count found materially changed * the Examined-Set Root: the root of a Merkle tree, constructed as Section 4.9 defines it, over the Claim Hashes of the Reconciliation Outputs examined, sorted in bytewise lexicographic order, so that a party entitled to one of those reconciliations can be shown an inclusion proof and the counts are not bare assertions * an Evaluation Sweep Timestamp, in the form of Section 4.14 * the Transparency Service Identifier and EntryID of the notarisation of the previous Evaluation Sweep Statement, encoded as CBOR null in the first Statement of a series * a Sealing-Key Identifier * a signature by the reconciliation-server sealing key, a COSE_Sign1 whose payload is the CBOR array of the fields above in the order listed, with the signature position encoded as CBOR null, an absent field likewise, encoded under Section 4.2.1 of [RFC8949]. The first, second, third, fourth and seventh items are each a two- element array, so that a field carrying two values occupies one position Statements are retrievable under Section 6.4.2 and MUST each be notarised into the Transparency Service of Section 4.18 under their own media type, within the same interval that bounds their emission. The previous- notarisation pointer above makes the published series a chain, so that a withdrawn Statement is detectable rather than merely absent; [I-D.ietf-scitt-scrapi] retrieves by EntryID and offers no query surface, so a party not told an EntryID could not find that notarisation by search. A Statement is retained for the retention period of Section 4.15.3. On request under Section 6.4.2, a server MUST return an inclusion proof of a given Claim Hash in the Examined-Set Root of a given Statement, to a party entitled to a reconciliation carrying that Claim Hash. Hillier Expires 14 February 2027 [Page 64] Internet-Draft ARP August 2026 A Statement does not prove a sweep was performed honestly, and this document does not claim it does. What it changes is that a sweep not performed is now a statement the operator has to make, sign and date, rather than a silence. A Source-Data Version publication is a public event with a public timestamp; an operator with no Statement within the deadline has not evaluated in time, which is checkable. The other three triggers are not public events, so the Policy Parameters Document of Section 6.4.1 carries the identifier and effective time of every Pattern-Library and Policy-Version transition the server applies, which makes those two triggers observable. A credential- revocation trigger is observable to the credential's issuer and to the affected principal and to nobody else, and this document does not make it more so. The falsifiability argument therefore holds for three triggers in four, which is stated rather than rounded up. An operator that signs a Statement it did not earn is making a false attributable claim, which is a different thing from an invisible omission, and the Examined-Set Root means an Audience Member can require it to prove that its own reconciliation was in the set it claims to have examined. Where a Sovereign Re-Notification cannot state whether a material change arose from policy state or from Source-Data Version, the attribution-indeterminate Post-Seal Evaluation Record it references MUST state which of the two candidate causes were examined and why neither could be excluded. A bare qualifier is a discretionary escape signed by the party that benefits from it. 4.21.2. Revocation and the reliance window Revocation of a Verified Principal Credential cannot be detected at the moment of reliance by a party that is not checking, and this protocol does not put a revocation check in the hot path of every relying party. What it does instead is bound the window. An Audience Member MUST read the Continuation entries for a Reconciliation Hash under Section 6.4 before relying on that Output past its Reliance Horizon (Section 4.15.2), and the supersession that records a revocation is among the entries that read returns. Reliance inside the horizon on a credential revoked during it is possible and is not prevented; reliance years later on an Output whose principal was disowned the following week is prevented, which is the case that matters and the case earlier revisions left open. The horizon is declared per predicate, so a deployment needing a shorter window for a sanctions predicate than for a corporate- registry one sets one. Hillier Expires 14 February 2027 [Page 65] Internet-Draft ARP August 2026 4.22. Cryptographic-Primitive-Upgrade Path Each Bilateral Register Agreement MUST declare a Cryptographic- Primitive-Upgrade Path comprising an ordered equivalence list for each of three primitive classes: claim-encryption, partial- attestation-signature, and sealing-signature. The equivalence list MUST include at least one post-quantum primitive for each class, drawn from a set including ML-KEM [FIPS203] for key encapsulation and ML-DSA [FIPS204] for signature operations. A primitive rotation MAY be executed simultaneously across the three layers without bilateral renegotiation. The Settlement-Layer Ledger remains continuous across the rotation because Ledger entries commit to hashes of canonicalised content rather than to cryptographic identities. The Entry Signature and the Sealing-Key Identifier it carries are the exception, and a verifier MUST resolve the Sealing- Key Identifier carried by each entry rather than assume one key across the chain. An entry signed under a superseded primitive remains verifiable under the key that identifier resolves. The chain is unbroken across a rotation, but not because it is independent of the primitive: the Prior-Entry Hash of Section 4.18 is taken over the whole preceding entry including its Entry Signature, so it depends on that signature's bytes and on the algorithm identifier in its protected header. It is unbroken because those bytes are fixed at the moment the entry is appended and are never rewritten. A verifier recomputing a Prior-Entry Hash across a rotation boundary MUST therefore be able to re-serialise a signature made under a primitive it does not itself implement, which is a weaker requirement than verifying it. 5. Agentic Principal Reconciliation The Agent Friend-or-Foe Determination described in the Requester Identity Binding and Agent Friend-or-Foe Gate above establishes whether the requester of a reconciliation is friendly. ARP additionally supports reconciling an agent's principal binding as the subject of a reconciliation in its own right, so that the question "does a real, authenticated principal stand behind this agent?" can itself be answered against authoritative identity registers rather than asserted. A reconciliation over the agent: predicate branch takes as its Subject Identifier the agent's declared identity (for example its signature-agent-card key thumbprint or a directory identifier) and as its Attested Value the principal binding the agent asserts. Addressed registers for this predicate class are identity and credential registers -- for example an organisational directory, a credential-issuer status list, or a national identity register -- Hillier Expires 14 February 2027 [Page 66] Internet-Draft ARP August 2026 each under its own Bilateral Register Agreement. The Combined Verdict answers whether the asserted principal binding is corroborated: * match: the agent's asserted principal binding is corroborated by the addressed registers; the agent is FRIENDLY with an attributable principal. * no-match with divergence axis agent-impersonation-suspected: the asserted binding is contradicted; the agent is asserting a principal it is not bound to. * no-match with divergence axis agent-credential-absent or agent- principal-unverifiable: no corroborating record exists; the binding cannot be established and the agent MUST be treated as ENEMY. This composition allows a relying party to gate an action not merely on the presence of an agent signature but on register-corroborated proof that an accountable principal stands behind it, narrowing the impersonation surface at the reconciliation layer. The result is a Reconciliation Output like any other: sealed against a Policy-Version Hash, written to the Settlement-Layer Ledger without claim or register content, and re-evaluable if the underlying credential is later revoked. 6. Encoding 6.1. CBOR-COSE Encoding The mandatory-to-implement encoding for ARP messages on the wire is CBOR with COSE [RFC9052] [RFC9053] envelopes. COSE_Sign1 is used for both Partial Attestations and the Sealing Signature. The protected header of a Partial Attestation and of a sealed Reconciliation Output MUST include the Bilateral-Register-Agreement Hash and Policy-Version Hash as COSE header parameters; the other COSE_Sign1 structures this document defines carry the headers their own sections state registered per Section 9. arp-bilateral-agreement-hash always carries an array, sorted in lexicographic byte order: a Partial Attestation's array has exactly one member, and a Sealing Signature's has one per addressed register. A single encoding for both avoids a decoder having to infer the type from context. Pending registration, implementations MAY use labels from the private-use range of the COSE Header Parameters registry; such use is not interoperable. Hillier Expires 14 February 2027 [Page 67] Internet-Draft ARP August 2026 6.2. Reconciliation Request Binding A reconciliation is commissioned by POST /arp/reconciliations on the reconciliation server's authority origin, with a request body carrying the Canonical Claim, the Audience Set the requester asks for, and, where the requester is an agent, its asserted principal. The body is CBOR under the media type registered in Section 9 for a reconciliation request, save for the Canonical Claim, which is carried as a CBOR byte string holding the [RFC8785] serialisation of the claim exactly as the Claim Hash is taken over it. Carrying the claim as native CBOR would need the CBOR-to-JSON mapping Section 4.14 declines to define, and two servers receiving identical bytes would compute different Claim Hashes. The request MUST be signed under the profile of Section 6.4.1, with tag set to arp-reconcile. An Audience Member other than the Requesting Principal MUST have been enrolled at the reconciliation server before it may be named: an enrolment binds an accountable-principal identifier to a Verification Method Reference, is performed by the party being enrolled, and is out of scope for this document. A server MUST refuse to name an unenrolled member. Without enrolment a requester could name any identifier it liked, and the named party -- a competitor, a journalist, a foreign ministry -- would be handed a sealed, register- attested record that a named subject had been investigated under a named predicate, without its consent and without any register's. Naming is an assertion by the requester; enrolment is what makes it an assertion about a party that has agreed to receive. The response is one of four things, the fourth being the 401 of Section 6.4.1 where the request's own signature was not accepted. A 200 whose body is the signed read response of Section 6.4.3, whose result element is the sealed Reconciliation Output and whose As-Of pair gives the Ledger head at the moment of delivery. That is the delivery Section 4.15.3 requires, and it is what carries the Reconciliation Hash: the requester computes it over the Output it has just been handed, and the signed response fixes the head against which every later read of that Output is compared. A 422 carrying a Remediation Advisory, where the Adversarial Pre-Transmission Test did not emit a Pass and no override was authorised, or where a named regime is not one the policy-epoch store admits for the predicate, or where a named Audience Member is not enrolled. Or a 403 carrying a Remediation Advisory whose sole content is the Agent-IFF ground, where the Agent-IFF policy of the Requester Identity Binding and Agent Friend-or-Foe Gate section refuses the requester outright for the predicate class. Both refusals are signed as Section 6.4.3 requires of a 4xx, so a refused requester holds evidence of what it asked and what it was told. Hillier Expires 14 February 2027 [Page 68] Internet-Draft ARP August 2026 A refusal under Section 7.1 or an audience constraint under Section 4.15.1 is not a fourth case: those refuse a register, and the reconciliation is sealed and delivered with the reason recorded against that register. 6.3. HTTP Message Signature Binding Where a reconciliation is requested over HTTP by an autonomous agent, the request MUST be signed under HTTP Message Signatures [RFC9421], with the signature-agent key resolvable through a Web Bot Auth signature-agent card [I-D.meunier-webbotauth-registry], advertised via the Signature-Agent header [I-D.meunier-webbotauth-httpsig-protocol] and resolved through the HTTP Message Signatures directory it names [I-D.meunier-webbotauth-httpsig-directory]. The reconciliation server derives the Agent Friend-or-Foe Determination from verification of that signature and, where required by the Agent-IFF policy, a Verified Principal Credential carried in the request body. 6.4. Output and Ledger Read Binding This section is the wire binding for every read this document requires of a party outside the reconciliation server. Earlier revisions stated what a read returns and never how one is requested, which left every discovery path ending at a value its holder could not present to anything. Requests are HTTP over TLS to the reconciliation server's authority origin, the same origin whose Sealing-Key Identifier resolves under Section 6.5.3. Every hash appearing in a path segment is base64url- encoded without padding; every authority origin appearing in one is percent-encoded as Section 2.1 of [RFC3986] provides; and every timestamp in a path or query parameter is in the form Section 4.14 pins. The @target-uri is inside the request-binding digest of Section 6.4.3, so an encoding two implementations could choose differently would make their bindings differ over the same read. A non-Requesting Audience Member is not told that origin by this protocol; it learns it from the party that named it, and this document defines no directory by which a principal discovers the servers at which Outputs naming it may exist. 6.4.1. Request signing profile [RFC9421] requires an application that uses it to state a profile. This is that profile. It governs every request to an operation of Section 6.4.2 and the commissioning request of Section 6.2. * Every request MUST carry exactly one signature, labelled arp. Hillier Expires 14 February 2027 [Page 69] Internet-Draft ARP August 2026 * The covered components MUST be @method, @target-uri, and, where the request carries a body, content-digest as [RFC9530] defines it, together with the signature parameters created, expires, nonce, keyid, alg and tag. A request covering fewer MUST be refused. tag is arp-read for an operation of Section 6.4.2 and arp-reconcile for the commissioning request of Section 6.2; those are the only two values, and a server MUST reject a request whose tag does not match the endpoint it was sent to. * Covering content-digest is what binds the body. The commissioning request carries the Canonical Claim, the requested Audience Set and any asserted principal in its body; a signature that covered only the target would leave an intermediary free to substitute the subject or add Audience Members and have the result sealed, ledgered and notarised as the signed requester's. * The nonce MUST be at least 128 bits drawn from a cryptographically secure random source, base64url-encoded. * expires MUST be no more than 300 seconds after created. A server MUST reject a request whose created is more than 300 seconds in the past or more than 60 seconds in the future, and MUST reject a repeated nonce from the same keyid within that window. Without this a captured read request replays indefinitely, which Section 7.6 closes only for requests that initiate a reconciliation. * The permitted signature algorithms are those the deployment declares for the partial-attestation-signature class in its Cryptographic-Primitive-Upgrade Path, so that read authentication rotates with everything else. * keyid MUST be the JWK thumbprint of the requester's public key, computed as in [RFC7638]. For an Audience Member it MUST equal the Verification Method Reference the Output names. For a regulator, a Register Operator or an Audit Identity it MUST be a key the corresponding Bilateral Register Agreement declares. For a requester commissioning a reconciliation it is the key that becomes that requester's Verification Method Reference in the resulting Audience Set. Key material is retrieved as that agreement provides, or, for an agent, through the Web Bot Auth directory of Section 6.3. * The reconciliation server MUST publish a Policy Parameters Document at /.well-known/arp-policy-parameters on its authority origin: a COSE_Sign1 by its sealing key, under the media type registered in Section 9, whose payload is the three-element CBOR array of: the array of permitted signature algorithm identifiers; Hillier Expires 14 February 2027 [Page 70] Internet-Draft ARP August 2026 the array of per-predicate entries, each a four-element array of the predicate, the admitted regime set sorted in bytewise lexicographic order, the two-element array of the resolved Verdict Arithmetic and its parameters, and the reliance interval, the entries themselves sorted by predicate; and the array of two- element arrays of the identifier and effective time of every Pattern-Library and Policy-Version transition the server has applied, sorted by effective time, which Section 4.21.1 relies on. A requester is party to no Bilateral Register Agreement and could not otherwise determine how to sign, and publishing the resolved parameters removes the regime-shopping probe of Section 4.13 by making its result available without probing. * A request that is unsigned, that fails signature verification, that is outside the freshness window, or that replays a nonce MUST be refused with 401. A 401 is the one response of this section that is not signed under Section 6.4.3: its payload would have to bind a request carrying no nonce and no key identifier, and there is no requester key to bind it to. A 401 therefore carries no body, and a requester receiving one has learned only that its own signature was not accepted. 6.4.2. Read operations Nine operations are defined, and no read of an Output or of the Settlement-Layer Ledger by a party outside the reconciliation server is defined anywhere else in this document. An Audit Identity under Section 4.20 is entitled to every one of them, unredacted, over reconciliations addressing the register whose agreement declares it; the Entitlement clauses below state the other parties and do not repeat that. The Ledger Head Statement of Section 4.18 is not a read of the Ledger: it is a published statement about the Ledger, served without authentication at a well-known URI, and is deliberately outside this section so that a party holding no entitlement at all can still observe a head. * GET /arp/outputs/{reconciliation-hash} returns the sealed Reconciliation Output. Entitlement: an Audience Member of that Output; an Audit Identity under Section 4.20 for a reconciliation addressing its register; and a regulator in scope for that reconciliation under Section 4.19, whose response is field- restricted by that section. * GET /arp/reconciliations/{reconciliation- identifier}/registers/{register-identifier} returns the Per- Register Result Set entry concerning that register alone, keyed on the Reconciliation Identifier the register received in its Per- Register Claim Projection, since a register never holds a Hillier Expires 14 February 2027 [Page 71] Internet-Draft ARP August 2026 Reconciliation Hash. Entitlement: the Register Operator of that register. It is what lets a register see what was recorded of its own answer. Without it a server could discard a register's signed match and record register-unresponsive, and the only party holding the contradicting artefact would have no operation with which to produce it. * GET /arp/outputs returns, for the Outputs whose Audience Set names the authenticated principal, the Reconciliation Hash, the Reliance Horizon and the Entry Sequence Number of the reconciliation entry that records each. It is ordered by that Entry Sequence Number descending, which is a total order and needs no tie-break. A since parameter carrying an [RFC3339] UTC time is REQUIRED; a server MUST return at most 100 entries and MUST carry a next parameter value in the response where more exist, which the requester supplies on the following request. Entitlement: any authenticated principal, as to its own membership only; and an Audit Identity, as to the Outputs of reconciliations addressing the register whose agreement declares it, without which an auditor entitled to Outputs by hash would hold no operation that yields the hashes. * GET /arp/continuations/{reconciliation-hash} returns the Continuation entries of Section 4.18 carrying that Reconciliation Hash, in Entry Sequence Number order, and no reconciliation entry. Entitlement: an Audience Member of the Output that Reconciliation Hash identifies, or a regulator in scope for that reconciliation under Section 4.19. * GET /arp/entries/{entry-sequence-number} returns one Ledger entry. Entitlement: a regulator, subject to Section 4.19; an Audience Member, for an entry carrying a Reconciliation Hash it is entitled to; and a Register Operator or regulator requesting the Self-Entry Hash alone, for the consistency check of Section 4.18, by the fields=self-entry-hash query parameter. * GET /arp/post-seal-records/{post-seal-evaluation-record-hash} returns the Post-Seal Evaluation Record of Section 4.17. Entitlement: as for the Continuation entry that carries the hash. * GET /arp/sweeps/{examined-set-root}/inclusion/{claim-hash} returns an inclusion proof of that Claim Hash under that Examined-Set Root. Entitlement: a party entitled to a reconciliation carrying that Claim Hash. The Statement is keyed on its Examined-Set Root rather than on its timestamp, which is pinned to whole seconds and would collide where two triggers fall in one second. Hillier Expires 14 February 2027 [Page 72] Internet-Draft ARP August 2026 * GET /arp/re-notifications returns the Sovereign Re-Notifications of Section 4.19.1 whose Notification Timestamp falls in the interval named by REQUIRED since and until parameters, at most 100 per response under the same next rule. Entitlement: a regulator, as to notifications addressed to it. * GET /arp/sweeps returns the Evaluation Sweep Statements of Section 4.21.1 whose Evaluation Sweep Timestamp falls in the interval named by REQUIRED since and until parameters, at most 100 per response under the same next rule. Entitlement: a Register Operator, a regulator or an Audience Member. Its counts are deployment-wide aggregates and disclosing them to a party named in one Audience Set is a real cost, recorded in Section 8; the Statement is a signature over a fixed array and cannot be served with fields removed without destroying the signature that makes it worth serving. The enumeration is what makes the Entry Sequence Number of a party's own reconciliation entry reachable. Without it an Audience Member entitled to that entry under Section 4.18 would have no operation that maps its Reconciliation Hash to a sequence number, and its only route to an entitlement this document grants would be the sweep of GET /arp/entries/{n} that the rate limit below exists to prevent. 6.4.3. Responses Every response to an operation of Section 6.4.2 or to the commissioning request of Section 6.2, including every 4xx other than the 401 of Section 6.4.1, MUST be a COSE_Sign1 by the reconciliation- server sealing key, under the media type registered in Section 9, whose payload is the CBOR array ["arp-read-v1", request-binding, status, response-time, as-of-sequence-number, as-of-self-entry-hash, result] where: * request-binding is the SHA-256 digest over the CBOR array of the request's @method, its @target-uri normalised as in Section 6.2.2 and 6.2.3 of [RFC3986], the request's nonce, and its keyid. Digesting a normalised binding rather than echoing the target as sent leaves nothing to disagree about and binds the response to one requester and one request. * status is the HTTP status code. * response-time is the time the response was produced, in the timestamp form of Section 4.14. Hillier Expires 14 February 2027 [Page 73] Internet-Draft ARP August 2026 * as-of-sequence-number and as-of-self-entry-hash MUST be those of the Ledger head at the moment the read was served, and MUST NOT be those of any earlier entry. A response naming a head lower than the most recently published Ledger Head Statement is non- conforming, and a reader MUST reject one: a server free to answer against a head it chooses could suppress a supersession indefinitely by answering truthfully about a stale head, and its answer would never contradict anything. * result is the operation's result, an empty array where the operation is set-valued and nothing matched. On a 404 it is an empty array. On the 422 or 403 of Section 6.2 it is the Remediation Advisory, which is the artefact a refused requester needs; on a 429 it is an empty array. * For a response to the commissioning request, as-of-sequence-number and as-of-self-entry-hash are those of the Ledger head at the moment the response was produced, and the request-binding digest is taken over a five-element array, the request's content-digest appended after its keyid. Signing errors as well as successes is the load-bearing part. A server that signed only its successes could suppress any continuation channel by answering 404 or 429 forever, and the party it was suppressing would hold an unsigned status line: no proof that it asked, no proof of what it was told, and no way to distinguish suppression from a hash that names nothing. Binding the response to the requester's nonce and key, and stamping it with a time, is what stops a server serving one party's response to another or replaying a year-old empty result; without those the same bytes verify forever and against everybody. A reader MUST check that the request-binding matches the request it sent, that the response-time is within a declared freshness tolerance, and that the as-of-sequence-number is at least that of the most recent Ledger Head Statement it has seen. A deployment MUST declare that tolerance in its Bilateral Register Agreements and it MUST NOT exceed the ledger-head notarisation interval of Section 4.18: a tolerance left to each reader is not a property two implementations can be tested against, and one longer than the notarisation interval would admit a response naming a head the reader could already know to be superseded. Without those checks a server may serve a cached response for a repeated request tuple indefinitely, and the properties below do not hold. Hillier Expires 14 February 2027 [Page 74] Internet-Draft ARP August 2026 An empty result is therefore an assertion and not an absence: a signed statement that as of a named head, at a named time, in answer to this requester's request, there was nothing. A continuation- supersession entry later found at or below that head contradicts it, in one operator's own signature. That contradiction is conditional on the reader and the later observer having been served one chain, and the condition is load- bearing. Section 4.18 states that detection of a fork is opportunistic: an operator publishing to two audiences at disjoint sequence numbers never emits a colliding pair. Under such a fork the superseding entry lands on a branch the holder of the empty result never reads, the at-or-below test never fires, and the assertion stands uncontradicted for as long as the branches are kept apart. An empty result is therefore an assertion about a named head on the chain its reader was served, and it is falsifiable to the extent that the reader holds head-consistency evidence for that chain from an observer independent of the responding service. Head evidence obtained only from that service does not bound this. A fork at disjoint sequence numbers is invisible from a single vantage by construction, and the vantage is what is in question: equivocation is precisely the condition that no single consistent chain explains two observations, so it becomes observable when two independent observers compare heads and not before. A relying party acting on an empty result SHOULD hold head-consistency evidence for the served chain from at least one observer independent of the responding service -- a witness countersignature over the head, or, where no witness set is available, an independently anchored head digest, in decreasing order of strength. This document does not specify a witness quorum and does not claim to close the gap; it names the evidence that bounds it, so that a relying party can tell whether it holds any. Hillier Expires 14 February 2027 [Page 75] Internet-Draft ARP August 2026 The contradiction is only as tight as the operator's freedom to defer. A continuation-supersession entry MUST be appended within the ledger-head notarisation interval of Section 4.18, measured from the completion of the Evaluation Sweep that produced the superseding Output -- an event the Evaluation Sweep Statement of Section 4.21.1 dates and signs, and which therefore exists for an immaterial supersession as much as for a material one. Where the supersession is the revocation of a Verified Principal Credential and no superseding Output is produced, the deadline runs from the completion of the sweep the revocation triggered, which Section 4.21.1 likewise dates and signs. Measuring from "the material change" would leave both that case and an immaterial supersession with no start point and so no deadline. Without a deadline an operator defers every supersession above the highest head it has ever named and no contradiction ever arises. 6.4.4. Error semantics A request that is well-formed and signed but that names a resource the requester is not entitled to, and a request naming a resource that does not exist, MUST both be refused with 404. Only an entitled requester receives 200. Answering 403 for the first and 404 for the second would turn every endpoint into an existence oracle: a party could sweep Reconciliation Hashes, or sequence numbers, and learn what a deployment had done without being entitled to any of it. The two cases MUST be equivalent under the normalised observation this section defines, rather than byte-identical, which a conforming server cannot make them: Section 6.4.3 requires every response to bind the request and the serving instant, so the request-binding, the response-time, the As-Of pair and the resulting signature differ between any two requests whether or not the resource exists. A requirement of byte equality would be unsatisfiable, and a test written against it would fail every conforming implementation. The normalised observation of a response is that response with exactly those four values removed. Two responses are equivalent when their normalised observations are equal. Across the two cases a server MUST therefore produce the same status, the same media type, the same set of HTTP header field names, the same set of protected COSE header parameters, the same empty-result representation, the same cache directives and the same rate-limit effects, and the signed payload MUST NOT carry any error discriminator whose value depends on whether the resource exists. Every value removed by normalisation MUST still be valid for its own request: normalisation is how two responses are compared, not a licence to omit a required field or to carry an existence-dependent discriminator inside one. Hillier Expires 14 February 2027 [Page 76] Internet-Draft ARP August 2026 A response to either case MUST carry Cache-Control: no-store. A response bound to a nonce and a serving instant is not reusable by another requester, and a cache that retained one case and not the other would reintroduce through intermediaries the distinction the rest of this section removes. Two channels survive that rule and MUST be closed with it. A server MUST charge the rate-limit counter before evaluating entitlement, so that an unentitled request and a nonexistent one consume the same budget and a burst of each yields the same sequence of statuses. And entitlement evaluation MUST NOT be short-circuited: a server MUST perform the same work for a Reconciliation Hash it does not hold as for one whose Audience Set does not name the requester, so that the two do not differ in response time. Response timing is a separate claim from the requirements above and MUST be stated separately. Serving both cases from one processing path is evidence about the design and is not evidence that the two latency distributions are indistinguishable to an observer. An implementation that claims resistance to timing-based existence inference MUST publish the measurement population, the sample count, the network placement of the measurement, the decision rule and the acceptance threshold under which the two response classes were compared. An implementation that makes no such claim is not for that reason non-conforming: the requirements above are met or not met independently of it, and conflating the two would let a deterministic conformance failure be excused as a measurement artefact, or a measurement result be read as protocol conformance. A server MUST rate-limit these operations, per authenticated principal, at the most permissive rate any of its Bilateral Register Agreements declares, and MUST answer 429 when the limit is reached. The declared rate MUST admit at least one read of each operation per Reconciliation Hash per reliance interval, so that a limit cannot silently void the obligation of Section 4.15.2. GET /arp/entries/{n} in particular ranges over the whole Ledger; unlimited, a party entitled to one consistency check could sweep for the deployment's entry count, write rate, and the timing of retroactive bursts, which is disclosure by aggregation of a surface every individual answer to which is innocuous. A read served under Section 4.19 with any field redacted MUST NOT return the Prior-Entry Hash or the Self-Entry Hash of that entry, and MUST NOT return the Prior-Entry Hash of the entry that follows it, which is a digest over the redacted entry in its entirety. The Self- Entry Hash is a digest over the entry's own fields and carries no blinding value; a reader holding the leading fields and denied the type-specific block could otherwise recover the block by search over Hillier Expires 14 February 2027 [Page 77] Internet-Draft ARP August 2026 register subsets, a small aggregation descriptor set, four binding classes and a bounded timestamp, and would do so off the audit trail that section imposes. A redacted field is returned as CBOR null in its position, so that the array's length is still the length fixed by the Entry Type; a regulator receiving a redacted entry therefore cannot verify its chain hashes, which is the price of redaction and is why an unredacted read is the ordinary case. Each read served under this section MUST be recorded in an append- only access log, retained for the period of Section 4.15.3. The log is not the Settlement-Layer Ledger and MUST NOT be written to it: who asked a question is not a fact about the reconciliation, and a Ledger that recorded reads would disclose the pattern of interest in a subject to every party entitled to read it. The log is readable only by a regulator under Section 4.19 and by an Audit Identity under Section 4.20, to which it is disclosed out of band as the policy- epoch material is; the reasoning that keeps it off the Ledger applies equally to the log itself. 6.5. SCITT Reference API Binding A Reconciliation Output MAY be notarised into a SCITT Transparency Service as a transparent statement. Where it is, an implementation MUST use the binding in this section. Appendix B states the architectural relationship; this section states the wire behaviour, so that two implementations registering the same Reconciliation Output against the same Transparency Service produce interchangeable results. 6.5.1. Registration The Reconciliation Output MUST be registered as a Signed Statement by POST /entries as defined in [I-D.ietf-scitt-scrapi], with the HTTP Content-Type that document requires on that request. A Transparency Service returns a Location header on both 201 Created and 202 Accepted; an implementation MUST use it in both cases rather than constructing a polling URL of its own. Notarising an Output does not enlarge its Audience Set. Registration places the sealed Output in a log whose retrieval is by EntryID, and a party that obtains it that way holds it on the terms of Section 4.15: it may verify the Sealing Signature and read the Combined Verdict, and it obtains no read under Section 6.4 and no notice of supersession. A deployment for which that is the wrong disclosure should not notarise; Section 6.5 is composed permissively for that reason. Hillier Expires 14 February 2027 [Page 78] Internet-Draft ARP August 2026 The payload of the Signed Statement MUST be the sealed COSE_Sign1 -- the Reconciliation Output under its Sealing Signature, as produced by Section 4.16 -- and MUST NOT be the bare Reconciliation Output. Nesting is what makes the requirements below checkable: a relying party holding only the bare Output has neither the sealing key identity nor the Policy-Version Hash the seal committed to, and could not verify either. The Signed Statement is therefore a COSE_Sign1 whose payload is itself a COSE_Sign1. Its protected header MUST carry: * the content type application/arp-sealed-reconciliation- output+cose, registered per Section 9. The outer payload is a COSE_Sign1 wrapping a Reconciliation Output, not a Reconciliation Output, and labelling it with the latter's media type would have a conforming decoder parse a signature envelope as an Output; * arp-policy-version-hash; * arp-bilateral-agreement-hash, carrying the array of the Bilateral- Register-Agreement Hashes of the addressed registers, sorted in lexicographic byte order as required by Section 6. A Reconciliation Output aggregates registers under more than one agreement, and an unordered encoding would make two conforming implementations produce non-interchangeable Signed Statements. The outer COSE_Sign1 MUST carry a kid in its protected header, MUST be signed under a key resolvable through Section 6.5.3, and that key's Sealing-Key Identifier MUST equal the Sealing-Key Identifier of the nested Output in both components. A relying party MUST verify the outer signature and that equality. "Signed by the server that sealed it" is otherwise not a predicate a relying party can evaluate: any operator of a conforming server could wrap another server's sealed Output, sign it under its own resolvable key, and every other check here would pass, and the Receipt would attribute the statement to the Transparency Service and to nobody else. Fixing the nested payload closes a false-policy-version attack; fixing the outer signer closes a wrong-registrant one. The arp-bilateral-agreement-hash in the outer protected header MUST equal the value carried in the nested sealed COSE_Sign1, and the arp- policy-version-hash in the outer protected header MUST equal the Policy-Version Hash carried in the nested sealed COSE_Sign1. A relying party MUST verify the Sealing Signature over the nested payload, MUST verify that equality, and MUST reject the Signed Statement where either fails. Hillier Expires 14 February 2027 [Page 79] Internet-Draft ARP August 2026 The verification key for the Sealing Signature is identified by the Sealing-Key Identifier of Section 4.14, whose kid component MUST equal the kid in the protected header of the nested COSE_Sign1, and is resolved through Section 6.5.3. A relying party that cannot resolve the Sealing-Key Identifier MUST NOT rely on the notarised statement. Without nesting and this equality the Signed Statement would be a second and independent envelope: any party holding a valid Reconciliation Output could register it under a protected header asserting a policy version it was not sealed under, and a relying party following Section 6.5.5 would believe that assertion. A protected header cannot be altered after signing, but it can be false when signed, and integrity is not correctness. The payload MUST NOT be the Verifiable Credentials serialisation of Section 6.6. That form is an interop convenience for relying parties and is not the notarised object; registering it instead would notarise a representation whose canonical form is unspecified. 6.5.2. Asynchronous registration A Transparency Service may register synchronously or asynchronously, and an implementation MUST support both. This is the most likely source of divergence between two otherwise conforming implementations, and is therefore stated as a requirement rather than left to the referenced document. On 201 Created the Receipt is available immediately. On 202 Accepted the response carries a Location header, and the implementation MUST poll that URL verbatim rather than constructing a path of its own. A 204 No Content means registration is still in progress and MUST NOT be treated as failure or as a negative result. A 4xx other than 404 returned synchronously by POST /entries is a terminal refusal and MUST NOT be retried under the same Signed Statement; it is the ordinary refusal case and is recorded as such under Section 4.18. A 404 Not Found ends polling and MUST NOT be polled further. It carries two meanings in [I-D.ietf-scitt-scrapi] -- that no Receipt was found for the specified EntryID, and that an asynchronous registration has failed and no Receipt will be produced -- and an implementation MUST distinguish them from the response body where the service supplies one, because the second is a registration failure and the first may follow from having polled a URL the Transparency Service did not issue. Ending polling is not the same as resolving the outcome: only the second meaning is a terminal refusal for the Hillier Expires 14 February 2027 [Page 80] Internet-Draft ARP August 2026 purposes of Section 4.18, and a 404 the implementation cannot resolve to one meaning or the other is recorded as an incomplete notarisation, not as a refusal. An implementation MUST honour a Retry-After header where one is present, MUST NOT poll more frequently than once per second in its absence, and MUST bound total polling, to the shortest bound any Bilateral Register Agreement addressed by the reconciliation declares; a bound of 300 seconds is RECOMMENDED where the Bilateral Register Agreement declares none. Exhaustion of the bound MUST be recorded in a Post-Seal Evaluation Record carrying notarisation- incomplete per Section 4.17, rather than as either success or refusal. A Reconciliation Output whose notarisation is incomplete remains valid under its Sealing Signature; notarisation is an additional property, not a precondition of validity. 6.5.3. Sealing-key discovery A signed key set, wherever this document requires one, is a COSE_Sign1 whose payload is the deterministically encoded CBOR serialisation of the COSE_KeySet, under the media type registered in Section 9. Each key in the set carries the arp-key-status and arp- key-validity COSE Key common parameters registered in Section 9. An Authorised-Origin Document is a COSE_Sign1 whose payload is a CBOR array of three-element arrays -- the server's authority origin, the identifier of the key signing its sealing key set, and the identifier of the key signing its operator key set -- sorted in bytewise lexicographic order of the origin. A relying party is not a party to any Bilateral Register Agreement and holds only the hashes of those agreements. It therefore cannot resolve the sealing key from them, and a binding that assumed otherwise would oblige every conforming relying party to refuse every Reconciliation Output. A reconciliation server MUST publish its sealing keys as a COSE Key Set at /.well-known/arp-sealing-keys on the reconciliation server's authority origin, and a single key by identifier at /.well-known/arp- sealing-keys/{kid_value}. The Sealing-Key Identifier is the pair of that origin and the kid; where this document requires a kid to equal the Sealing-Key Identifier, it is the kid component that is compared. Hillier Expires 14 February 2027 [Page 81] Internet-Draft ARP August 2026 Resolving a key is not sufficient. Web PKI establishes that an origin is the origin it claims to be; it does not establish that the origin is entitled to seal Reconciliation Outputs naming a given register set. A relying party that accepted any well-formed key set would accept an Output minted by any party able to stand up a host, since the Bilateral-Register-Agreement Hashes can be copied from a genuine Output and are one-way. Each Bilateral Register Agreement MUST therefore declare the authority origin of the reconciliation server it authorises, and each register operator MUST publish an Authorised-Origin Document at /.well-known/arp-authorised-origins on its own register origin. A Register Identifier is an origin, so the register origin is a member of the Addressed-Registers Identifier Set and is known to the relying party from the Output. An Authorised-Origin Document is a COSE_Sign1 whose payload comprises, for each reconciliation server the register operator has authorised, that server's the three-element arrays Section 6.5.3 pins above. It MUST be signed under a key served as a COSE Key Set at /.well-known/arp-register-keys on the same register origin -- a key set carrying the same arp-key-status and arp-key-validity parameters as a sealing key set, so that a compromised register key has an in- band revocation path, and the same key set that resolves a register's signatures on Partial Attestations and Non-Answer Statements -- which the relying party fetches over its ordinary web PKI. Signing it matters for the same reason signing the sealing key set matters: an unsigned document fetched over TLS can be varied per audience, and this one is the root of the chain. A relying party MUST verify that the origin component of the Sealing- Key Identifier appears in the Authorised-Origin Document published by every register in the Addressed-Registers Identifier Set, and MUST reject the Output where it does not or where any such document cannot be verified. The chain is then: register origins from the Output; each register's own key from its register origin; the Authorised-Origin Document verified under that key; the authorised server origin and its key-set signing key identifier from that document; and the sealing key from the server's key set, verified under that identifier. Every step is fetchable by a party holding only the Output. A key entry MUST carry the arp-key-validity and arp-key-status parameters of active, retired or revoked. A relying party MUST reject a Sealing Signature made under a revoked key irrespective of when the Output claims to have been sealed, MUST accept one made under a retired key only where the Reconciliation Timestamp falls Hillier Expires 14 February 2027 [Page 82] Internet-Draft ARP August 2026 within that key's validity interval, and MUST reject one whose Reconciliation Timestamp falls outside the interval of the key it resolves to. A key MUST NOT be removed from the set while any Reconciliation Output it sealed may still be relied upon: retirement is by status, not by deletion, so that a historical Output remains verifiable while a compromised key can still be refused. The key set MUST itself be signed under the key whose identifier the Authorised-Origin Document gives for that server, and a relying party MUST verify that signature. The identifier comes from a document the relying party can fetch, not from an agreement it does not hold. A key set fetched over TLS alone can be varied per audience, which would let a server present one key to one relying party and another to a second and seal two contradictory Outputs for the same reconciliation, each verifiable only by its intended audience -- reopening at the origin the equivocation that Section 6.5.5 closes at the Transparency Service. 6.5.4. Receipt validation A relying party MUST validate the Receipt against Transparency Service keys obtained from GET /.well-known/scitt-keys, or from GET /.well-known/scitt-keys/{kid_value} for a single key identified in the Receipt. 6.5.5. Policy-version determination A relying party MUST determine the Policy Version of a notarised Reconciliation Output from the arp-policy-version-hash parameter in the verified protected header of the Signed Statement, and MUST NOT determine it from any retrieval path, query parameter or Transparency Service index entry. Because the parameter is in the protected header, it is covered by the Receipt; and because Section 6.5.1 requires the sealed COSE_Sign1 to be the nested payload and the outer parameter to equal the Policy- Version Hash it carries, what the header asserts is verifiably what the seal committed to. The policy version is therefore established by verification rather than by lookup, and a Transparency Service that indexed an entry incorrectly, or presented different index results to different relying parties, cannot cause a relying party to attribute a Reconciliation Output to a policy version it was not sealed under. This holds only because of the nesting and equality requirements in Section 6.5.1, both of which the relying party checks. A protected header alone establishes that a value was not altered after signing, not that it was true when signed. Hillier Expires 14 February 2027 [Page 83] Internet-Draft ARP August 2026 [I-D.ietf-scitt-scrapi] defines retrieval by EntryID and defines no query surface. Correlating entries by policy version is consequently outside the scope of this binding and is a property of the deployment, not of the protocol. An implementation MUST NOT assume a standard retrieval path keyed on the Policy-Version Hash exists. 6.6. Verifiable Credentials Interop A Reconciliation Output MAY be additionally serialised as a JSON-LD document conforming to the W3C Verifiable Credentials Data Model [W3C-VC-DM-2.0], under the media type application/arp-reconciliation- output+json registered in Section 9 -- +json rather than +ld+json, there being no such registered structured syntax suffix -- with the Reconciliation Hash, Addressed-Registers Identifier Set, Bilateral- Register-Agreement Hash Set, Requester-Binding-Class, Policy-Version Hash, Claim Hash, Combined Verdict, Audience Set and Reliance Horizon included as credential subject fields. The COSE_Sign1 envelope is the normative form; the Verifiable Credential serialisation is an interop convenience for relying parties operating in W3C VC ecosystems. The Audience Set and the Reliance Horizon are not optional in this serialisation. A credential is the form of an Output most likely to reach a party outside its Audience Set, and one carrying neither the membership list against which such a party could determine that it is not entitled, nor the marker of its own staleness, would be the bearer artefact Section 4.15 exists to retire, reintroduced through the interop form. 7. Security Considerations 7.1. Service-Operator Containment The reconciliation server operates under a service-operator entity standing in bilateral contractual relationship with each Register Operator. The service-operator entity MUST NOT be given access to any register record or any Partial-Attestation payload beyond the verdict and divergence-axis fields, and a deployment MUST enforce that by construction -- by encryption addressed to the requester or by an equivalent measure that no internal operator action can reverse -- rather than by policy. A conformance test for this requirement is whether an operator holding every credential the deployment issues can obtain a register record; if it can, the deployment does not conform. That property is per-event and MUST NOT be read as a property of the system under repeated querying. A verdict is a function of an attested value the requester chooses, so a sequence of Hillier Expires 14 February 2027 [Page 84] Internet-Draft ARP August 2026 reconciliations varying that value recovers the underlying record field by search, and several Divergence Axis values -- ownership- threshold-mismatch, register-record-absent, temporal-mismatch -- disclose record content on their own. Each event conforms while the sequence does not. A deployment MUST therefore declare in each Bilateral Register Agreement a query budget and the interval over which it is measured, and the budget MUST be measured per accountable principal per subject, not per subject alone. Where the budget is shared across requesters, any one requester exhausts it for all of them -- including a requester whose Requester-Binding class is agent- unverified, which is to say a party the deployment has declined to identify -- and every subsequent reconciliation about that subject is forced to indeterminate for the remainder of the interval. That is a denial of service against every other requester, granted by the countermeasure. The recovery property this budget bounds is a property of one requester's sequence, and sequences run by colluding principals are the business of the repeated-narrowing pattern below rather than of a shared counter. The budget is keyed on the accountable principal identifier where the Requester-Binding carries one. Where it does not -- classes agent- unverified and agent-key-verified -- the budget MUST be keyed on the verified signing key where one exists, and otherwise on a deployment- declared fallback key such as the authenticated transport client identity. Every requester signs, by Section 6.4.1, so every requester has a key and none falls outside the budget. Admitting a requester to a shared counter is the denial of service this paragraph exists to remove. Hillier Expires 14 February 2027 [Page 85] Internet-Draft ARP August 2026 A deployment MAY additionally declare a per-subject ceiling across all principals. A ceiling is a shared counter and reintroduces that denial of service by construction, so where a deployment declares one it MUST partition it: a stated proportion reserved for principals of class human-operator and agent-verified, and within that proportion a per-principal sub-budget, so that no one principal can consume the reserve. Classes carrying no corroborated principal -- agent-key- verified and agent-unverified -- are charged only against the remainder. A reserve with no per-principal partition is exhausted by a subject that incorporates enough entities to hold enough corroborated principals, which is a purchase and not a barrier. A subject able to mint identities cheaply can otherwise exhaust the ceiling on itself and force every third-party reconciliation about it to indeterminate, which is a self-service veto over the verdicts this protocol exists to produce. Exhaustion of a ceiling is recorded as subject-ceiling-exhausted rather than query-budget-exhausted, so that the two are distinguishable in the record and an auditor can see which counter refused. Where a reconciliation would exceed the budget, the reconciliation server MUST NOT transmit a projection to the affected register and MUST record query-budget-exhausted as that register's Non-Answer Reason. The reconciliation proceeds and is sealed; it cannot reach a decisive Combined Verdict, by Section 4.13. It is the register that is refused, not the reconciliation: refusing the reconciliation outright would leave no Output in which to record the reason, which is the artefact the requester needs in order to know why it was refused and the regulator needs in order to see that it was. The Pattern Library MUST include a repeated-narrowing pattern so that the Adversarial Pre-Transmission Test detects the sequence rather than only the event. A register cannot apply its own statutory access regime to a requester it cannot see. Where a Bilateral Register Agreement requires it, the Per-Register Claim Projection MUST carry the Requester-Binding Class, which discloses the class and not the principal. 7.2. Budget Exhaustion as a Suppression Channel Section 4 places a reconciliation driven to query-budget-exhausted or subject-ceiling-exhausted outside the reproducibility requirement, because the budget is accumulated state rather than an enumerated input. That carve-out is a suppression channel and is recorded here as one. Hillier Expires 14 February 2027 [Page 86] Internet-Draft ARP August 2026 Any non-answering register makes a decisive Combined Verdict unreachable (Section 4.13). An operator that wishes to prevent a particular reconciliation from reaching a decisive verdict can therefore record query-budget-exhausted against one register, and an auditor replaying the enumerated inputs is required not to treat the divergence as a determinism failure. The reason is server-observed under Section 4.11, so no register signature contradicts it. Two mitigations are available and neither is adopted here. Publishing the budget counter and interval boundaries beside the refusal would let an auditor distinguish exhaustion from suppression -- and would tell every requester how much third-party interest a subject has attracted, and exactly when to exhaust the counter so that no other party obtains a decisive verdict, which is a worse disclosure than the one it cures. Requiring a register-signed acknowledgement of each charge against the budget would remove the server's discretion, at the cost of a round trip to every addressed register on every refused reconciliation, including the ones the budget exists to avoid making. The per-subject ceiling of Section 7.1 is the stronger of the two channels, because it is a counter several principals share: an operator need not fabricate anything, only decline to reserve enough of it. Section 7.1 requires the reserve to be partitioned per principal for that reason, and the residual is that the size of the reserve is a deployment choice this document does not bound. A deployment concerned with either channel should bound it contractually: the budget, its interval and the audit right over the counter are all declared in the Bilateral Register Agreements, and an Audit Identity under Section 4.20 can be given the counter state directly. That is an out-of-band remedy and it is stated as one. 7.3. Pattern-Library Integrity The Adversarial Pre-Transmission Test gates onward transmission. The Pattern Library MUST be bound to a Pattern-Library Commitment Hash. Any modification to the Pattern Library MUST produce a new Pattern- Library Version Identifier, and the Adversarial Pre-Transmission Test MUST be re-executed against the new library before the change takes effect. Hillier Expires 14 February 2027 [Page 87] Internet-Draft ARP August 2026 7.4. Agent Impersonation and Friend-or-Foe Integrity The Agent Friend-or-Foe Determination is the mechanism by which ARP resists reconciliation initiated by an agent impersonating a principal. The determination MUST default to ENEMY: absence of a verifiable identity, an expired or revoked signature-agent key, a failed HTTP Message Signature [RFC9421] verification, or a Verified Principal Credential that does not validate MUST all yield an ENEMY classification. The server MUST NOT infer friendliness from network origin, User-Agent string, or any self-asserted identifier, as these are trivially forgeable. Where an ENEMY requester is permitted for advisory reconciliation, the resulting Reconciliation Output MUST NOT carry a decisive verdict binding, and the Settlement-Layer Ledger entry MUST record the requester-binding class the gate determined -- agent-unverified where no verifiable identity was presented, or agent-key-verified where a key verified and the asserted principal was not corroborated -- so that downstream reliance is aware no accountable principal was established and can still tell the two apart. 7.5. Bilateral-Register-Agreement Drift Each Bilateral Register Agreement carries an Agreement Hash. Each Partial Attestation includes a reference to the Agreement Hash under which it was issued. Agreement drift is detectable by comparison of agreement-hash references across Partial-Attestation batches. Reconciliation MUST be suspended for an addressed register whose Agreement Hash deviates from the hash committed at the start of a reconciliation event. 7.6. Replay Defence Each Partial Attestation MUST carry a Freshness Timestamp. The reconciliation server MUST verify the Freshness Timestamp against a freshness window declared in the Bilateral Register Agreement. Stale Partial Attestations MUST be rejected, and the rejection MUST be recorded in the Reconciliation Output under Section 4.11 with the Non-Answer Reason attestation-stale and a freshness-stale divergence axis attributed to that register. A signed agent request under [RFC9421] MUST additionally carry a nonce and created/expires parameter set that Section 6.4.1 requires, so that a captured signed request cannot be replayed to initiate a fresh reconciliation. Hillier Expires 14 February 2027 [Page 88] Internet-Draft ARP August 2026 7.7. Post-Quantum Migration The Cryptographic-Primitive-Upgrade Path is the mechanism by which ARP deployments migrate to post-quantum primitives. ML-KEM-1024 [FIPS203] is RECOMMENDED for the claim-encryption primitive class. ML-DSA-65 [FIPS204] is RECOMMENDED for the partial-attestation- signature and sealing-signature primitive classes. Implementations MUST declare their chosen post-quantum primitives in the Bilateral Register Agreement. 7.8. Side-Channel Considerations The disclosure model as a whole, and the residual risks this document accepts, are set out in Section 8. Per-register projection narrowing is observable to the addressed register through the Projected Predicate. Implementations MUST NOT use narrowing patterns to fingerprint individual subjects. The Predicate Taxonomy SHOULD be designed such that the set of permitted narrowings is small enough that narrowing observation does not materially weaken subject privacy. 8. Privacy Considerations This protocol operates over beneficial-ownership registers, corporate registries, consolidated sanctions lists and customs records. Its subject is almost always a party that is neither the requester nor a recipient, and that is not told a reconciliation about it occurred. The disclosure model has two artefacts and one division. A Reconciliation Output is confidential to its Audience Set and carries subject references, register-signed attestations and principal identifiers; the Settlement-Layer Ledger is broadly readable and carries digests, register origins and structural metadata. Section 4.15 states the division and the rules that rest on it. Hillier Expires 14 February 2027 [Page 89] Internet-Draft ARP August 2026 What is protected. The Deployment Blinding Value of Section 4.16 keeps the Claim Hash and the Policy-Version Hash from being inverted by exhaustive search over their low-entropy preimages, which is what stops a Ledger reader recovering the subject and the commissioning principal. Entitlement follows the Audience Set, so possession of an Output is not authorisation to learn what happened to it afterwards. Enrolment under Section 6.2 means a requester cannot direct an Output at a party that has not agreed to receive one. The per-principal query budget of Section 7.1 bounds recovery of a register record by repeated querying. Read responses are rate-limited and logged, and the log is not on the Ledger, because a Ledger that recorded reads would disclose the pattern of interest in a subject to everyone entitled to read it. What is not. A subject has no standing in this protocol: it is not notified, it cannot object, and it cannot learn that it was reconciled. That is a deliberate property of a sanctions-screening protocol and a real cost, and a deployment operating where subject rights attach should provide for them outside this document. An Audience Member learns the subject, the predicate and every register's answer; the audience constraint of Section 4.15.1 lets a register cap how many such parties there may be, and the register cannot verify that the cap was enforced. Notarising an Output under Section 6.5 places it in a log whose retrieval is by EntryID, and a deployment for which that is the wrong disclosure should not notarise. The Ledger Head Statement is unauthenticated and carries a contiguous sequence number, so it discloses the deployment's size and approximate rate at the notarisation interval. An Audit Identity under Section 4.20 reads every Output of every reconciliation addressing its register irrespective of Audience Set, and each register declares one, so a deployment's disclosure surface grows with the number of registers it addresses. An Override Record names an authorising operator in the clear inside the Output. Section 7.2 records a further residual risk, and Section 7.8 the projection- narrowing channel. 9. IANA Considerations This document requests IANA to register the following: * Three COSE header parameters in the COSE Header Parameters registry, values to be assigned by IANA: - arp-bilateral-agreement-hash (value TBD) - arp-policy-version-hash (value TBD) - arp-source-data-version (value TBD) Hillier Expires 14 February 2027 [Page 90] Internet-Draft ARP August 2026 arp-policy-version-hash is a CBOR byte string; arp-bilateral- agreement-hash is a CBOR array of byte strings; arp-source-data- version is a CBOR array of two-element arrays, each of a list name and that publisher's state identifier, as Section 4.6 constructs it. Each MUST appear in a protected header and MUST NOT appear in an unprotected one: every one of them is a commitment a verifier relies on, and a commitment a signature does not cover is not a commitment. arp-policy-version-hash and arp-bilateral-agreement- hash are used by Section 6.5.1; arp-source-data-version is used by Section 4.6. * Two COSE Key common parameters in the COSE Key Common Parameters registry, values to be assigned by IANA: arp-key-status (value TBD), a CBOR text string of active, retired or revoked; and arp- key-validity (value TBD), a two-element CBOR array of the not- before and not-after times in the form of Section 4.14. Section 6.5.3 requires both on every key it publishes, and a key parameter used normatively and never registered is a parameter no other implementation can read. * A registry of ARP Divergence-Axis values, registration policy Specification Required, initially containing the descriptors enumerated in the Divergence Axis definition of Section 3. Each entry MUST record whether the axis is register-attestable or server-recorded, a distinction eight normative sections depend on and which is otherwise carried only in prose. The designated expert MUST refuse a registration that does not state it. * A registry of ARP Non-Answer Reasons, registration policy Specification Required, initially containing the values enumerated in Section 4.11. Each entry MUST record whether the reason is register-attested or server-observed, which determines whether a Non-Answer Statement signed by the register is required; the initial entries are recorded as Section 4.11 states. A Non-Answer Reason is not a verdict; the designated expert MUST refuse a registration that could be combined by the Verdict Arithmetic, and MUST refuse a register-attested registration that does not state what the register signs over. * A registry of ARP Post-Seal Evaluation Qualifiers, registration policy Specification Required, initially containing notarisation- incomplete and attribution-indeterminate, defined in Section 4.17. A registration MUST identify a condition arising after a Reconciliation Output is sealed; the designated expert refuses a registration that qualifies a verdict, which belongs in the Divergence-Axis registry. Hillier Expires 14 February 2027 [Page 91] Internet-Draft ARP August 2026 * A registry of ARP Register Data-Format Profile identifiers, registration policy Specification Required, initially containing arp-profile-bods, arp-profile-corporate-org, arp-profile-customs- wco and arp-profile-sanctions-consolidated, defined in Section 4.5. Identifiers beginning x- are reserved for bilateral use and are not registered. A registration MUST state the dated vocabulary in which permitted predicates are expressed where it names one and state that it names none otherwise, the relation corresponding to taxonomic narrowing for each branch of its predicate space, and the parameters a Bilateral Register Agreement declaring it must supply. The designated expert refuses a registration that defines any means of transporting register records, that declares more than one parent relation applicable to a single predicate, that names a vocabulary without pinning its version, or that fixes in the profile a parameter varying between registers using the same format. * A registry of ARP Aggregation-Method Descriptors, registration policy Specification Required, initially containing hash-linkage- conjunction, hash-linkage-disjunction, hash-linkage-threshold- count and hash-linkage-source-class-quorum: the aggregation mode of Section 4.10 joined to the Verdict-Arithmetic operator it sequenced. A registration naming a new aggregation mode MUST specify that mode's construction; the descriptor is a signed Ledger field and a mode with no construction gives it no meaning. * A registry of ARP Retroactive Evaluation Triggers, registration policy Specification Required, initially containing pattern- library, policy-version, source-data-version and credential- revocation, defined in Section 4.21.1. A registration MUST name an event whose occurrence and time a party outside the reconciliation server can establish, or state plainly that it cannot, since the falsifiability of Section 4.21.1 turns on it. * A registry of ARP Override Grounds, registration policy Specification Required, initially containing operational- continuity, pattern-false-positive and statutory-obligation, defined for use in the Override Record of the Adversarial Pre- Transmission Test. A registration MUST state the circumstances in which the ground is available and MUST NOT admit a ground that could be asserted of every override, which would return the field to free text. * A registry of ARP Re-Typing Grounds, registration policy Specification Required, initially containing bounded-depth-not- closure, declared-not-determined and threshold-divergence, corresponding to the three grounds of Section 4.12. Hillier Expires 14 February 2027 [Page 92] Internet-Draft ARP August 2026 * A registry of ARP Verdict-Arithmetic operators, registration policy Specification Required, initially containing conjunction, disjunction, threshold-count and source-class-quorum, defined in Section 4.13. A registration MUST state the operator's result as a total function of the multiset of contribution values and the operator's declared parameters, and MUST state whether it admits partial-match, on which Section 4.12 turns. * A registry of ARP Ledger Entry Types, registration policy Specification Required, initially containing reconciliation, continuation-notarisation, continuation-post-seal-record and continuation-supersession, defined in Section 4.18. Entry Type values are CBOR text strings. A registration MUST enumerate the fields an entry of that type carries in addition to the fields every entry carries, MUST state their order, since the Self-Entry Hash is taken over that order, and MUST state each field's value type and whether it is conditionally absent and on what condition. The designated expert MUST refuse a registration whose type restates a field already carried by the reconciliation entry it continues, and MUST refuse any type other than reconciliation that records a reconciliation rather than a fact arising after one was sealed. The initial registrations are those of Section 4.18, with these value types. Every hash is a 32-octet CBOR byte string; every sequence number is a CBOR unsigned integer; every timestamp is a CBOR text string in the form of Section 4.14; every Entry Type is a CBOR text string; the Addressed-Registers Identifier Set is a CBOR array of text strings, each an authority origin, sorted in bytewise lexicographic order of its UTF-8 encoding; the Aggregation-Method Descriptor and the Requester-Binding-Class Descriptor are CBOR text strings, the first drawn from the ARP Aggregation-Method Descriptors registry and the second from the four classes of the Requester Identity Binding and Agent Friend- or-Foe Gate section; the Override Indicator and the Material- Change Indicator are CBOR booleans; the Transparency Service Identifier is a CBOR text string carrying an authority origin; the EntryID is a CBOR text string as [I-D.ietf-scitt-scrapi] returns it; an HTTP status code is a CBOR unsigned integer; and every Entry Signature is a COSE_Sign1. 9.1. Well-Known URIs Six entries are requested in the Well-Known URIs registry of [RFC8615]. For each, the change controller is the IETF, the status is permanent, and the specification document is this document. Hillier Expires 14 February 2027 [Page 93] Internet-Draft ARP August 2026 +========================+==================+=====================+ | URI suffix | Defined in | Path syntax below | | | | the suffix | +========================+==================+=====================+ | arp-sealing-keys | Section 6.5.3 | /{kid}, where {kid} | | | | is a JWK | | | | thumbprint, returns | | | | that single key | +------------------------+------------------+---------------------+ | arp-register-keys | Section 6.5.3 | /{kid} as above | +------------------------+------------------+---------------------+ | arp-operator-keys | the Adversarial | /{kid} as above | | | Pre-Transmission | | | | Test | | +------------------------+------------------+---------------------+ | arp-authorised-origins | Section 6.5.3 | none | +------------------------+------------------+---------------------+ | arp-ledger-head | Section 4.18 | none | +------------------------+------------------+---------------------+ | arp-policy-parameters | Section 6.4.1 | none | +------------------------+------------------+---------------------+ Table 1 9.2. Media types Eleven media types are requested, registered under the template of [RFC6838]. For each: the type name is application; there are no required and no optional parameters; the encoding considerations are binary, save for the +json type, which is 8-bit UTF-8 text; the security and interoperability considerations are those of this document; the published specification is this document; the intended usage is COMMON; the change controller is the IETF; the applications that use the type are ARP reconciliation servers, registers, regulators and relying parties; there are no restrictions on usage; the author is the author of this document and the contact address is the one on its front page; there are no deprecated alias names, no magic numbers and no customary file extensions; and fragment identifier considerations are those of the structured syntax suffix where one applies -- Section 3.1 of [RFC6839] for +json -- and are otherwise none, no fragment identifier syntax being defined for the +cbor and +cose forms. Hillier Expires 14 February 2027 [Page 94] Internet-Draft ARP August 2026 +===================+==============================+==============+ | Subtype | Carries | Defined in | +===================+==============================+==============+ | arp- | a request commissioning a | Section 6.2 | | reconciliation- | reconciliation | | | request+cbor | | | +-------------------+------------------------------+--------------+ | arp-remediation- | a Remediation Advisory | the | | advisory+cbor | | Adversarial | | | | Pre- | | | | Transmission | | | | Test | +-------------------+------------------------------+--------------+ | arp-sovereign-re- | a Sovereign Re-Notification | Section | | notification+cose | | 4.19.1 | +-------------------+------------------------------+--------------+ | arp-sealed- | a Reconciliation Output | Section 4.14 | | reconciliation- | under its Sealing Signature, | | | output+cose | whether delivered directly | | | | or nested in a SCITT Signed | | | | Statement | | +-------------------+------------------------------+--------------+ | arp-policy- | a Policy Parameters Document | Section | | parameters+cose | | 6.4.1 | +-------------------+------------------------------+--------------+ | arp-post-seal- | a Post-Seal Evaluation | Section 4.17 | | evaluation- | Record | | | record+cbor | | | +-------------------+------------------------------+--------------+ | arp- | the Verifiable Credentials | Section 6.6 | | reconciliation- | JSON-LD form | | | output+json | | | +-------------------+------------------------------+--------------+ | arp-ledger- | a Ledger Head Statement | Section 4.18 | | head+cose | | | +-------------------+------------------------------+--------------+ | arp-read- | a signed read response | Section | | response+cose | | 6.4.3 | +-------------------+------------------------------+--------------+ | arp-evaluation- | an Evaluation Sweep | Section | | sweep+cose | Statement | 4.21.1 | +-------------------+------------------------------+--------------+ | arp-key-set+cose | a signed COSE Key Set or an | Section | | | Authorised-Origin Document | 6.5.3 | +-------------------+------------------------------+--------------+ Table 2 Hillier Expires 14 February 2027 [Page 95] Internet-Draft ARP August 2026 10. Acknowledgments This document benefits from the SCITT Architecture [RFC9943], the SCITT Reference APIs [I-D.ietf-scitt-scrapi], COSE Receipts [RFC9942], the RATS Architecture [RFC9334], HTTP Message Signatures [RFC9421], and the Web Bot Auth HTTP message signature protocol [I-D.meunier-webbotauth-httpsig-protocol]. Named findings, because a specification improved by review should say by whom. Songbo Bu established that the indistinguishability requirement of Section 6.4.4 could not be satisfied as -02 stated it: the response profile of Section 6.4.3 binds each response to its request and its serving instant, so two responses cannot be byte-equal, and a conformance rule demanding that they be would fail every conforming implementation. The normalised observation in Section 6.4.4, its enumeration of HTTP metadata and cache behaviour, and the separation of the deterministic requirements from any statistical timing claim are his design, contributed as an executable vector class. Steven Mih established that the empty-result contradiction of Section 6.4.3 is conditional on the reader and any later observer having been served one chain, and that under the fork Section 4.18 admits it may be opportunistic to detect, an absence assertion can stand uncontradicted indefinitely. The boundary now stated in Section 6.4.3 is his finding. He also confirmed, against three independent drafts, that the deterministic encoding requirements relied on here are those of Section 4.2.1 of [RFC8949] and not those of Section 9 of [RFC9052]. Iman Schrock established, with Anton Sokolov, that a content digest cannot serve as a correlation key across independently produced descriptions of one act. He then established that the earlier repair was itself imprecise: [I-D.schrock-canonical-action-identifier] declares required and optional fields per action type and marks no field as a correlation key, so the selection belongs to the profile. The requirements in Appendix D.1 to pin the action type and version, the selected field and its normalisation and comparison rules, and to require that the selected field be present in the Canonical Claim so that the Claim Hash commits to it, are his, substantially as he drafted them. Walter Hawkins established that the falsifiability condition of Section 6.4.3 is bounded by observer diversity rather than by any stronger single-log property: head evidence obtained from the responding service cannot bound a fork, because a fork at disjoint sequence numbers is invisible from a single vantage by construction Hillier Expires 14 February 2027 [Page 96] Internet-Draft ARP August 2026 and the vantage is what is in question. Naming the independent observer, and the ordering of witness countersignature over independently anchored head digest, is his. Tiago Pinto established that the obligation to answer with a signed response carrying a log position belongs on the party making the claim rather than on the party relying on it, and that an unsigned or position-less answer is to be treated as the log not having answered. Section 6.4.3 takes that shape at his argument. Tom Sato's leaf-construction work on Certificate Transparency logs informed the inclusion-proof requirements of Section 4.9. 11. References 11.1. Normative References [I-D.ietf-scitt-scrapi] Birkholz, H., Geater, J., and A. Delignat-Lavaud, "Supply Chain Integrity, Transparency, and Trust (SCITT) Reference APIs", Work in Progress, Internet-Draft, draft-ietf-scitt- scrapi-11, 26 June 2026, . [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet: Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002, . [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, DOI 10.17487/RFC3986, January 2005, . [RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type Specifications and Registration Procedures", BCP 13, RFC 6838, DOI 10.17487/RFC6838, January 2013, . [RFC6839] Hansen, T. and A. Melnikov, "Additional Media Type Structured Syntax Suffixes", RFC 6839, DOI 10.17487/RFC6839, January 2013, . Hillier Expires 14 February 2027 [Page 97] Internet-Draft ARP August 2026 [RFC7638] Jones, M. and N. Sakimura, "JSON Web Key (JWK) Thumbprint", RFC 7638, DOI 10.17487/RFC7638, September 2015, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", RFC 8174, DOI 10.17487/RFC8174, May 2017, . [RFC8615] Nottingham, M., "Well-Known Uniform Resource Identifiers (URIs)", RFC 8615, DOI 10.17487/RFC8615, May 2019, . [RFC8785] Rundgren, A., Jordan, B., and S. Erdtman, "JSON Canonicalization Scheme (JCS)", RFC 8785, DOI 10.17487/RFC8785, June 2020, . [RFC8949] Bormann, C. and P. Hoffman, "Concise Binary Object Representation (CBOR)", STD 94, RFC 8949, DOI 10.17487/RFC8949, December 2020, . [RFC9052] Schaad, J., "CBOR Object Signing and Encryption (COSE): Structures and Process", RFC 9052, DOI 10.17487/RFC9052, August 2022, . [RFC9053] Schaad, J., "CBOR Object Signing and Encryption (COSE): Initial Algorithms", RFC 9053, DOI 10.17487/RFC9053, August 2022, . [RFC9334] Birkholz, H., Thaler, D., Richardson, M., Smith, N., and W. Pan, "Remote ATtestation procedureS (RATS) Architecture", RFC 9334, DOI 10.17487/RFC9334, January 2023, . [RFC9421] Backman, A., Richer, J., and M. Sporny, "HTTP Message Signatures", RFC 9421, DOI 10.17487/RFC9421, February 2024, . [RFC9530] Polli, R. and L. Pardue, "Digest Fields", RFC 9530, DOI 10.17487/RFC9530, February 2024, . [RFC9942] Steele, O., Birkholz, H., Delignat-Lavaud, A., and C. Fournet, "CBOR Object Signing and Encryption (COSE) Receipts", RFC 9942, DOI 10.17487/RFC9942, June 2026, . Hillier Expires 14 February 2027 [Page 98] Internet-Draft ARP August 2026 [RFC9943] Birkholz, H., Delignat-Lavaud, A., Fournet, C., Deshpande, Y., and S. Lasker, "An Architecture for Trustworthy and Transparent Digital Supply Chains", RFC 9943, DOI 10.17487/RFC9943, June 2026, . [UAX15] The Unicode Consortium, "Unicode Standard Annex #15: Unicode Normalization Forms", 2025, . 11.2. Informative References [BODS] Open Ownership, "Beneficial Ownership Data Standard", 2024, . [EU-CFSP] European Union, "EU Consolidated Financial Sanctions List", 2026, . [FIPS203] "Module-Lattice-Based Key-Encapsulation Mechanism Standard", NIST FIPS 203, 2024, . [FIPS204] "Module-Lattice-Based Digital Signature Standard", NIST FIPS 204, 2024, . [I-D.meunier-webbotauth-httpsig-directory] Meunier, T. and S. Major, "HTTP Message Signatures Directory", Work in Progress, Internet-Draft, draft- meunier-webbotauth-httpsig-directory-00, 26 June 2026, . [I-D.meunier-webbotauth-httpsig-protocol] Meunier, T. and S. Major, "HTTP Message Signatures for automated traffic", Work in Progress, Internet-Draft, draft-meunier-webbotauth-httpsig-protocol-01, 5 August 2026, . [I-D.meunier-webbotauth-registry] Guerreiro, M., Kirazci, U., and T. Meunier, "Registry and Signature Agent card for Web bot auth", Work in Progress, Internet-Draft, draft-meunier-webbotauth-registry-03, 26 June 2026, . Hillier Expires 14 February 2027 [Page 99] Internet-Draft ARP August 2026 [I-D.mih-sato-agent-accountability-composition] Mih, S., Sato, Bu, S., and I. Schrock, "Agent Accountability: Composition and Conformance", Work in Progress, Internet-Draft, draft-mih-sato-agent- accountability-composition-00, 5 July 2026, . [I-D.mih-sokolov-scitt-payload-binding] Mih, S. and A. Sokolov, "Canonical Payload Binding: A Signed Statement Construction Profile", Work in Progress, Internet-Draft, draft-mih-sokolov-scitt-payload-binding- 01, 27 July 2026, . [I-D.schrock-canonical-action-identifier] Schrock, I., "The Canonical Action Identifier (CAID)", Work in Progress, Internet-Draft, draft-schrock-canonical- action-identifier-02, 6 August 2026, . [OFAC-SDN] United States Department of the Treasury, Office of Foreign Assets Control, "Specially Designated Nationals and Blocked Persons List", 2026, . [RFC6350] Perreault, S., "vCard Format Specification", RFC 6350, DOI 10.17487/RFC6350, August 2011, . [RFC8067] Leiba, B., "Updating When Standards Track Documents May Refer Normatively to Documents at a Lower Level", RFC 8067, DOI 10.17487/RFC8067, January 2017, . [UNCEFACT] United Nations Economic Commission for Europe, "UN/CEFACT Core Component Library and XML Schemas", 2024, . [W3C-ORG] World Wide Web Consortium, "The Organization Ontology", 2014, . [W3C-VC-DM-2.0] "Verifiable Credentials Data Model 2.0", 2025, . Hillier Expires 14 February 2027 [Page 100] Internet-Draft ARP August 2026 [WCO-DM] World Customs Organization, "WCO Data Model", 2024, . Appendix A. Examples A.1. Example: Three-register Sanctions Reconciliation This example is illustrative and non-normative; register identifiers, values and parties are fictitious, and no bilateral agreement with any named authority is asserted or implied. Suppose a relying party requests reconciliation of the predicate sanctions:any-list-match for subject identifier corp:EXAMPLE:0123456789 against three consolidated sanctions registers. Each Bilateral Register Agreement permits the predicate. The projection function emits identical Per-Register Claim Projections to all three registers. All three return Partial Attestations with verdict no-match. The Aggregation Subsystem operates in Hash-Linkage Aggregation. The Verdict Arithmetic, resolved from policy for the regimes the claim names, is disjunction. The Combined Verdict is no-match. The requester named itself and its compliance department's shared identity in the Audience Set; no addressed register declared an audience constraint, so both are admitted. The reliance interval that policy declares for sanctions: predicates is seven days, so the Reliance Horizon is 2026-05-04T19:47:14Z. The Output is sealed against the current Policy-Version Hash and returned to the requester in the signed read response to the request that commissioned it, over which the requester computes its Reconciliation Hash. The Settlement-Layer Ledger entry comprises: * Entry Sequence Number: 42 * Entry Type: reconciliation * Claim Hash: <32 bytes> * Reconciliation Hash: <32 bytes> * Entry Timestamp: 2026-04-27T19:47:15Z * Prior-Entry Hash: <32 bytes> * Policy-Version Hash: <32 bytes> Hillier Expires 14 February 2027 [Page 101] Internet-Draft ARP August 2026 * Addressed-Registers Identifier Set: ["https://register-a.example", "https://register-b.example", "https://register-c.example"] * Aggregation-Method Descriptor: hash-linkage-disjunction * Merkle Root: <32 bytes> * Requester-Binding-Class Descriptor: "human-operator" * Reconciliation Timestamp: 2026-04-27T19:47:14Z * Source-Reconciliation-Output Identifier: CBOR null -- this reconciliation supersedes none * Override Indicator: false * Self-Entry Hash: <32 bytes> * Entry Signature: COSE_Sign1, Sealing-Key Identifier (https://arp.example, example-sealing-2026-01) The one absent field occupies its position as CBOR null, so that the array's length is fixed by the Entry Type and the Self-Entry Hash is taken over a determinate encoding. When the sealed Output is registered with a Transparency Service, the EntryID it returns is not written into entry 42, which is already signed; it is appended as a later entry: * Entry Sequence Number: 57 * Entry Type: continuation-notarisation * Claim Hash: * Reconciliation Hash: * Entry Timestamp: 2026-04-27T19:52:03Z * Prior-Entry Hash: <32 bytes> * Transparency Service Identifier: https://ts.example/ * the notarisation outcome: ["entry-id", ] * Self-Entry Hash: <32 bytes> Hillier Expires 14 February 2027 [Page 102] Internet-Draft ARP August 2026 * Entry Signature: COSE_Sign1, Sealing-Key Identifier (https://arp.example, example-sealing-2026-01) Entry 57 carries no Policy-Version Hash and no Addressed-Registers Identifier Set; entry 42 records those and the shared Reconciliation Hash binds them. No register record content is stored on the Ledger in either entry. Had the registration neither completed nor been refused within the polling bound, entry 57 would not exist: the outcome would be a Post-Seal Evaluation Record qualified notarisation-incomplete, pointed to by a continuation-post-seal- record entry, and a later completion -- were the server able to learn of one, which Section 4.18 records as an open question -- would be appended as a continuation-notarisation entry later in the sequence. Had the service instead refused registration terminally, the second field would read ["refused", 400]. On 2026-05-06, two days past the Reliance Horizon, the compliance department wishes to rely on the verdict again. Being an Audience Member it presents a signed GET /arp/continuations/{reconciliation- hash}. The server answers 200 with a signed response carrying the ledger head it was served against and, as its result, entry 57 alone. That the result contains no continuation-supersession entry is a signed statement by the server that as of that head there was none -- not merely the absence of one -- and the department retains it. Had it not been an Audience Member the same request would have returned 404, which is also what it would have received had the Reconciliation Hash named nothing at all. A.2. Example: Retroactive Re-evaluation Continuing the illustrative example above: six weeks after that reconciliation, the list register-a.example consults adds the subject as part of a new tranche. That register, on next invocation over the bilateral channel its agreement declares, returns verdict match. The Retroactive Evaluation Subsystem detects the new Source-Data Version the list publisher issued, re-invokes Partial Attestations on the historical reconciliations whose Per-Register Result Set carries a Source-Data Version Identifier from the republished list, identifies the material verdict change, and emits a Sovereign Re- Notification through the Regulator Portal to the regulators whose statutory-regulator-access scope intersects the changed reconciliation. It also emits an Evaluation Sweep Statement recording the trigger source-data-version, the identifier of the list version that triggered it, the policy state applied, the ledger head at the start and end of the sweep, the Examined-Set Root over the Claim Hashes it Hillier Expires 14 February 2027 [Page 103] Internet-Draft ARP August 2026 examined, and the counts examined and materially changed. The compliance department later presents that root and its own Claim Hash to GET /arp/sweeps/{examined-set-root}/inclusion/{claim-hash} and is shown that its reconciliation was in the set the server claims to have examined. Had the server not run the sweep, there would be no Statement covering a list republication whose date is public, and its absence would itself be the finding. The supersession is recorded from both ends. A new Reconciliation Output is sealed against the current Policy-Version Hash and appended as a reconciliation entry whose Source-Reconciliation-Output Identifier is the Reconciliation Hash of the superseded Output. A continuation-supersession entry is then appended against the superseded Output, carrying that Output's Claim Hash and Reconciliation Hash, a Material-Change Indicator of true -- the verdict moved from no-match to match, which is decisive-to-decisive and therefore material -- the Superseding-Reconciliation Hash of the new Output, and the Entry Sequence Number of the entry that records it. The compliance department, an Audience Member of the original Output, presents GET /arp/continuations/{reconciliation-hash} again. This time the signed response carries the continuation-supersession entry. It reads the Superseding-Reconciliation Hash, presents GET /arp/ outputs/{superseding-reconciliation-hash}, and is served the new Output -- because a superseding Output inherits the Audience Set of the Output it supersedes, so the party entitled to learn that its verdict changed is entitled to see what it changed to. It verifies the new Sealing Signature, reads the match, and acts. Had the department retained the earlier signed empty response and the server now denied that any supersession existed, the two signed statements by one key would be irreconcilable, which is the point of signing them. A party that is not an Audience Member -- one that was handed the Output by someone who was -- reaches none of this. It may verify the Sealing Signature and read the no-match, which is what makes an Output worth handing on, and it obtains no read, learns of no supersession, and must not treat the verdict as current. Entitlement follows the Audience Set, not the artefact. Hillier Expires 14 February 2027 [Page 104] Internet-Draft ARP August 2026 A.3. Example: Agentic Principal Reconciliation An autonomous agent requests reconciliation of sanctions:any-list- match over HTTP, signing the request under HTTP Message Signatures [RFC9421] with a key published in a Web Bot Auth signature-agent card. The reconciliation server verifies the signature (Agent Friend-or-Foe Determination: the agent carries a verifiable identity). That establishes the class agent-key-verified -- the key verified and the asserted principal is so far uncorroborated -- and the Agent-IFF policy for the sanctions: class does not admit a decisive verdict at that class. The server therefore first performs an agent:principal-binding- verifiable reconciliation with Subject Identifier set to the agent's key thumbprint and Attested Value set to the asserted principal org:ACME:operator:jdoe, addressing the ACME organisational directory register and the credential-issuer status-list register. Both return match. The Requester-Binding class is raised to agent-verified with accountable principal org:ACME:operator:jdoe, committed to the Policy-Version Hash, and only then is the sanctions reconciliation performed with a decisive verdict binding. Had either identity register returned no-match with an attested Divergence-Axis Field of agent-impersonation-suspected, the agent would have been classified ENEMY -- a contradicted binding is a stronger signal than an absent one -- and the sanctions reconciliation refused or downgraded to advisory per policy. The distinction is not bookkeeping. Under -02 both states were recorded as agent-verified, so a relying party reading the Ledger entry for the first reconciliation could not tell an agent whose principal had been corroborated against two registers from one that had merely signed correctly. A.4. Example: Divergent Agent-Action Reconciliation This example is illustrative and non-normative. Capsule slots are those of [I-D.mih-sato-agent-accountability-composition]; see Appendix D. An autonomous agent is authorised, by a signed CAN capsule, to read from a named evaluation dataset and to write only to a sandboxed result store. During execution the agent's actual conduct, attested by a WHAT capsule produced by the execution environment, includes an outbound network connection to an external host and a write outside the sandboxed store. Hillier Expires 14 February 2027 [Page 105] Internet-Draft ARP August 2026 A relying party submits both capsules to ARP over the agent: predicate branch with a shared subject digest computed over the action. ARP verifies each capsule's signature, projects the authorised scope from the CAN capsule and the actual scope from the WHAT capsule, and reconciles them. The scopes diverge: the actual conduct exceeds the authorised scope. The Combined Verdict is no- match, and agent-action-scope-divergence is recorded in the Server- Recorded Divergence-Axis Set: it is a relation between two capsules and no single capsule producer can attest it, on the same reasoning that makes source-version-skew server-recorded. Because the Agent-IFF policy for this action class requires a decisive match before the action is treated as authorised, the divergent verdict is available as a refusal at decision time -- the reconciliation surfaces the excess while the action can still be refused, rather than after the consequence. The Reconciliation Output is sealed against the Policy-Version Hash and written to the Settlement-Layer Ledger without claim or register content, with requester-binding class agent-verified -- the agent's asserted principal having been corroborated as in the preceding example -- and no register or capsule content disclosed. Appendix B. Composition with the SCITT Architecture The SCITT Architecture [RFC9943] provides notarisation of supply- chain artefacts through a Transparency Service, which registers Signed Statements and returns Receipts, yielding Transparent Statements. ARP composes with SCITT in four ways: 1. SCITT receipts MAY be the input claim to ARP. A claim referencing a SCITT-anchored artefact (its hash and its registration receipt) is reconciled across registers without disclosing the underlying artefact. 2. ARP Reconciliation Outputs MAY be notarised into a SCITT Transparency Service as Transparent Statements, enabling SCITT- aware relying parties to verify the cross-sovereign reconciliation event in the same way they verify any other supply-chain claim. Registration and retrieval MAY use the SCITT Reference APIs [I-D.ietf-scitt-scrapi]. Notarisation does not enlarge the Audience Set of Section 4.15: what is registered is the sealed Output, and a party that retrieves it by EntryID holds it on the same terms as a party handed it directly. 3. The SCITT Architecture's Issuer role maps to the Bilateral Register Agreement structure: each Sovereign Register acts as a SCITT Issuer for a constrained predicate set. RFC 9943 defines no role for a party that combines statements from several Hillier Expires 14 February 2027 [Page 106] Internet-Draft ARP August 2026 Issuers, and this document does not claim one: the reconciliation server is an ARP role that acts as a SCITT Client toward the Transparency Service, registering its own Signed Statements. 4. ARP Hash-Linkage Aggregation MAY emit its Merkle commitment as COSE Receipts [RFC9942], the same inclusion-proof format SCITT uses for transparency receipts, so a single verifier library checks both. Appendix C. Composition with the RATS Architecture The RATS Architecture [RFC9334] provides remote-attestation procedures for compute-substrate trust. ARP composes with RATS in two ways: 1. The Adversarial Pre-Transmission Test runs inside a confidential computing boundary attested under RATS. The reconciliation server's integrity MAY be verified by relying parties through standard RATS verification flows. 2. Compute-attestation reconciliation across heterogeneous TEE / CC providers is the natural specialisation of ARP to the RATS evidence class. That specialisation is outside the scope of this document. Appendix D. Composition with Agent-Action Accountability Capsules [I-D.mih-sato-agent-accountability-composition] models accountable autonomous action as four independently verifiable slots -- CAN, what the agent was permitted to do; WHO, which human authorised it; WHAT the agent did; and AUDIT, the runtime enforcement record -- each filled by a separately signed profile. This document does not restate that model; the slot definitions, their semantics and their composition rules are those of [I-D.mih-sato-agent-accountability-composition], and this appendix uses them as defined there. This appendix calls a filled slot a capsule. That is this document's term and not that draft's, which speaks of slots and profiles; it is used here because ARP admits each filled slot as a Partial- Attestation source and the word names the signed unit rather than the position it occupies. Hillier Expires 14 February 2027 [Page 107] Internet-Draft ARP August 2026 What this appendix adds is reconciliation across those capsules. Each capsule may be signed by a different party, under a different signing chain, with a different payload schema -- the same non- reconcilable-outputs problem this document addresses for sovereign registers, arising in the agent-action domain. What the capsules share is the action serialisation over which the subject digest is computed. ARP composes such capsules without requiring them to share a producer, a schema, or a signing chain. The capsules are bound to a common action through a shared subject digest, computed as the SHA-256 of the JSON Canonicalization Scheme serialisation of the action being attested: subject_digest = SHA-256(JCS(action)) where JCS is the JSON Canonicalization Scheme specified in [RFC8785], and action is one action object serialised once. All capsules composed under this appendix MUST be computed over that same serialised action object. subject_digest is a join key across capsules over a shared serialisation; it is NOT a correlation key across independently produced descriptions of an act, and MUST NOT be used as one. See Appendix D.1.1. The shared serialisation is established once, by the party that authorises the action, and is echoed verbatim by every later attester. An attester that re-serialises its own account of the action MUST NOT compute subject_digest over that account; it MUST carry the serialisation it received. This is what makes the digest a join key here rather than a correlation across independent descriptions, and a profile that cannot guarantee it is in the second case of Appendix D.1.1 rather than the first. Implementations MUST use [RFC8785] and MUST NOT substitute another canonicalisation. In particular, [RFC8785] does not apply Unicode normalisation. An implementation that normalises before serialising therefore computes a different subject digest from a conforming implementation for any input carrying a member name or string value that is not already in the normalisation form it applies -- silently, since both parties obtain a well-formed digest. The agreement of this construction with a deployed [RFC8785] profile depends on both parties having selected [RFC8785], which the normative reference above makes an obligation. [I-D.mih-sato-agent-accountability-composition] freezes a conformance vector only once two independent implementations have recomputed it and specifies no implementation, so no pinned corpus is cited here. Hillier Expires 14 February 2027 [Page 108] Internet-Draft ARP August 2026 The capsules may disagree about the action -- that disagreement is the finding ARP exists to surface -- but they do not disagree about which action is under attestation, because they carry the same action serialisation. Each capsule's own account travels in its payload, committed by its receipt-payload digest below, not in subject_digest. Two further profile-tagged digests, defined by this document rather than by [I-D.mih-sato-agent-accountability-composition], position each capsule for reconciliation: an authority-reference digest committing to the authorising instrument (tagged transparency where it is the SHA-256 of a COSE_Sign1 transparency receipt, or offline where it is the SHA-256 of the [RFC8785] serialisation of an offline receipt payload), and a receipt-payload digest committing to the capsule's own payload. Each capsule is admitted to ARP as a Partial-Attestation source keyed on the shared subject digest, in the slot [I-D.mih-sato-agent-accountability-composition] assigns it. The reconciliation server verifies each capsule's signature under its own trust anchor, projects each into the agent: predicate branch, and aggregates the per-capsule verdicts under the Verdict Arithmetic declared for the action class -- yielding a single, producer-agnostic Combined Verdict over an action whose constituent attestations were never designed to interoperate. Where the authorised-scope capsule and the actual-conduct capsule reconcile to divergent scopes, the Combined Verdict is no-match with divergence axis agent-action-scope-divergence; the divergence is a refusable control input, produced at decision time and sealed to the Settlement-Layer Ledger without claim or capsule content. This composition is the agent-action specialisation of the mechanism ARP applies to sovereign registers: reconcile heterogeneous authoritative outputs over a shared subject into one deterministic verdict, disclose only verdict and divergence, and seal against a Policy-Version Hash. It allows a relying party to reconcile what an agent was permitted to do against what it did, at the moment of action, across attestations no single party produced. D.1. The two digest constructions are distinct This document defines two digest constructions over a JSON serialisation, for two different purposes, and they are NOT interchangeable: Claim Hash: SHA-256 over the Canonical Claim serialisation of Hillier Expires 14 February 2027 [Page 109] Internet-Draft ARP August 2026 Section 3 together with the Deployment Blinding Value of Section 4.16. Its purpose is to index a claim in the Settlement- Layer Ledger. It applies Unicode Normalization Form C. subject_digest: SHA-256 over the [RFC8785] serialisation of an action, per Appendix D. It is a CONTENT digest: it commits to the action object as serialised, and any difference in the serialised bytes yields a different digest except with negligible probability. [RFC8785] does not normalise. An implementation that substitutes one for the other MUST be assumed to produce incorrect correlations. The failure is silent: both constructions return a well-formed 32-octet digest for any input, so a substitution surfaces as a correlation that does not occur, or as two distinct actions correlating to one subject, rather than as an error. Two cases are worse than a mere difference of bytes, because the substitution produces a COLLISION rather than a mismatch. Under the Claim Hash construction, which normalises, an input in Normalization Form D and the same input in Normalization Form C yield the SAME digest; so do U+212B ANGSTROM SIGN and U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE. Under the subject_digest construction, which does not normalise, all four are distinct. An implementer who reuses the Claim Hash where a subject digest is required will therefore correlate two actions that a conforming implementation keeps apart. Neither case needs measuring: both follow from the two constructions as this document defines them, and either can be checked by computing the two digests over the four inputs named above. Accordingly: * An implementation MUST NOT use the Claim Hash construction where subject_digest is specified, or the reverse. * Where a digest is carried on the wire for correlation, the producer MUST identify the construction used, by an identifier that commits to the declared canonicalisation parameters -- member-sort code unit, normalisation, number rendering, absent- member handling and hash algorithm -- so that a consumer can determine compatibility rather than assume it. Such an identifier MUST NOT commit to facts about a specification that do not affect the serialised bytes, so that two implementations producing identical bytes share an identifier. [I-D.mih-sokolov-scitt-payload-binding] expresses a compatible rule statement-side. Hillier Expires 14 February 2027 [Page 110] Internet-Draft ARP August 2026 * Where the correlation digest is computed over a TYPED action object whose type declares required material fields, the producer MUST validate the object against a pinned definition of that type before emitting a correlation identifier for it, and MUST NOT emit one where validation fails. A digest is well-formed over any object, including one that omits fields the type requires; emitting an identifier in that case mints a join key for an action the identifier does not fully describe, which is the condition a relying party has no way to detect downstream. Validation against a pinned type definition is therefore required before emission. D.1.1. What a content digest does and does not establish subject_digest is collision-resistant over content: two actions whose serialisations differ in any byte produce different digests except with negligible probability, so a receipt bound to one action does not bind another. That property is what makes it usable as a join key between capsules computed over the SAME serialised action. It does not, and cannot, establish that two INDEPENDENTLY DESCRIBED accounts of one act correlate. The action types, their required and optional members and the reference issuer that minted the instances measured below are those of [I-D.schrock-canonical-action-identifier]; the measurement is not reproducible without it. Where an action type declares optional members, two conforming producers describing the same act may legitimately differ on whether an optional member is present, and their subject digests then differ. Stability under permitted variation and collision resistance over content are contradictory requirements, and no single digest satisfies both. This is measured, not assumed. Five action objects, each a conforming instance of one registered action type and each accepted by that type's reference issuer, differing only in content the type declares OPTIONAL, produced five distinct subject digests. The divergence appeared at the first optional member and did not require any nested reference or unusual value. Accordingly: * A profile MAY key capsules on subject_digest where those capsules are computed over the same serialised action object. Appendix D is such a profile: the capsules it composes share one action serialisation. * A profile that requires correlation across independently produced descriptions of one act MUST NOT rely on subject_digest alone. It MUST either pin the exact member set over which the digest is Hillier Expires 14 February 2027 [Page 111] Internet-Draft ARP August 2026 computed, so that permitted variation cannot enter it, or designate a typed field that the action type itself requires, and correlate on that. The second is the more robust of the two, because it does not require every producer to agree on a serialisation before they can agree that they are describing the same act. The selection is the profile's and not the registry's. [I-D.schrock-canonical-action-identifier] declares required and optional fields per action type; it does not mark any field as a correlation key, and a specification that says an action type "declares a material identifier" attributes to that registry a semantic it does not carry. A profile therefore MUST pin the action type and its version, the field it has selected for correlation, and that field's normalisation and comparison rules. The selected field MUST be present in the Canonical Claim, so that the Claim Hash commits to it and the join cannot be made on a value the reconciliation does not cover. Equality of the selected value identifies candidate descriptions only. It MUST NOT establish action equivalence, authorisation or execution. Exact-action agreement remains a separate comparison, under the subject-digest construction of Appendix D or under the profile of [I-D.schrock-canonical-action-identifier]. Where the selected values match and the exact-action digests differ, that is a conflict to surface and not a failed join, and surfacing it is what reconciliation is for. Three substitutions are forbidden, because each is available to an implementer who has read only part of the foregoing and each fails silently. * The designated join key MUST NOT be treated as the action's identity. The identity of an exact action is its content commitment; the join key is stable across the variation that commitment is required to detect, which is what makes it usable for correlation and useless for authorisation. * A Claim Hash MUST NOT be treated as a cross-deployment identifier. It is a digest over a canonical serialisation preceded by the Deployment Blinding Value of Section 4.16, so two deployments reconciling the same claim compute different Claim Hashes by construction, and equality of Claim Hashes across deployments is not a comparison that can be made at all. Hillier Expires 14 February 2027 [Page 112] Internet-Draft ARP August 2026 * Equal join keys MUST NOT be taken to mean equal claims. Two reports sharing a designated join key have been asserted to describe one act; whether they agree about it is the question reconciliation exists to answer. Where their Claim Hashes differ, the difference is the finding, and a profile that collapsed them on the strength of the join key would report agreement it never established. Stated positively, each object has one job: the designated field joins candidate reports across permitted variation, the Claim Hash commits to the exact claim under the deployment's blinding value, and the action type's own content commitment remains what authorisation and execution bind to. A specification that describes a content digest as a correlation key without stating which of the two preceding cases it relies on invites an implementer to assume a stability property the construction does not have. The resulting failure is a correlation that silently does not occur. Appendix E. Document History RFC Editor: please remove this section before publication. E.1. Since draft-hillier-scitt-arp-02 This revision answers a review of -02 on the SCITT list. Of its five asks, three are adopted as put, one is adopted in its goal and not in its mechanism, and one is declined for now with a reason. Section 6.4.3 now names the evidence that bounds the empty-result falsifiability condition. -02, and this revision as circulated for comment, said that an empty result is falsifiable to the extent that the reader "independently holds head-consistency evidence" for the served chain, without saying independent of whom. Head evidence obtained from the responding service bounds nothing, because a fork at disjoint sequence numbers is invisible from a single vantage by construction and the vantage is what is in question. The condition now names an observer independent of the responding service and carries a SHOULD on the relying party, with witness countersignature over the head preferred to an independently anchored head digest. The gap is not closed and is not claimed to be; it is bounded by evidence an implementation can be said to hold or not hold. The finding is Walter Hawkins's. Section 6.5 is new and normative. -02 composed with the SCITT Reference APIs permissively -- Reconciliation Outputs MAY be notarised, registration MAY use the APIs -- which is a permission and Hillier Expires 14 February 2027 [Page 113] Internet-Draft ARP August 2026 not a binding: two implementations could both conform to -02 and fail to interoperate against the same Transparency Service. The section now fixes the registration endpoint, the COSE_Sign1 framing and content type, receipt validation, and the asynchronous registration path. The asynchronous case is stated as a requirement because it is the most likely divergence between conforming implementations: a 202 Accepted with polling against 204 No Content is not the same code path as a 201 Created, and an implementer who codes only the latter interoperates with some Transparency Services and not others. The review also asked for a standard retrieval path keyed on the Policy-Version Hash. That is not specified here, because [I-D.ietf-scitt-scrapi] defines retrieval by EntryID and defines no query surface at all; a binding that specified one would specify an endpoint that does not exist. The goal -- preventing policy equivocation over time -- is met instead by requiring the Policy- Version Hash in the protected header of the Signed Statement, so that it is covered by the Receipt. A relying party therefore establishes the policy version by verification rather than by lookup, which is the stronger property: an index can be wrong, or can present different results to different relying parties, and a signed protected header cannot. Section 4.5 is new. -02 specified the controlled projection function over an abstract Predicate Taxonomy without saying how an implementer determines what a given register can answer. Four profiles are defined -- [BODS], [RFC6350] with [W3C-ORG], [UNCEFACT] with [WCO-DM], and consolidated sanctions list formats. Profiles constrain predicate expression only and are prohibited from introducing any means of transporting register records, which would defeat the property the protocol exists to provide. Section 4.6 is new, and is the substantive addition rather than the largest one. A designation verdict against a consolidated sanctions list is meaningful only relative to the state of that list, and consolidated lists are republished on a cadence and distributed as deltas. -02 could therefore record that a historical Combined Verdict had changed but could not attribute the change: a verdict that flipped because the policy changed and one that flipped because the list changed were indistinguishable, and Sovereign Re-Notification reported both as policy changes. Partial Attestations now carry a Source-Data Version Identifier under signature, Retroactive Evaluation must distinguish the two causes, and where it cannot it must report attribution-indeterminate rather than attribute the change to policy. A list-state identifier is a property of a published corpus and not a register record, so this does not weaken minimum disclosure. Hillier Expires 14 February 2027 [Page 114] Internet-Draft ARP August 2026 Three structural gaps predating this revision are closed, because the new material could not be made testable without them. Section 4.14 enumerates the Reconciliation Output, which no earlier revision did although both the Partial Attestation and the Ledger entry were enumerated; Reconciliation Hash and Combined Verdict are now defined in Section 3, the former having been used inside the bit-for-bit determinism requirement while undefined; and the Server-Recorded Divergence-Axis Set is a set, since a reconciliation may be qualified on more than one axis and a single-valued encoding would force a silent choice. Section 4.12 is new. Where a narrowing means a register's answer does not bear on the claim as asked, that register's contribution is re-typed before aggregation rather than the Combined Verdict being overridden after it, so the Verdict Arithmetic resolved under Section 4.13 is never displaced. A match found at any depth still establishes an existential closure predicate and is not re-typed. Section 4.17 is new. Notarisation outcomes and retroactive attribution failures arise after a Reconciliation Output is sealed and so can be carried neither in a Partial Attestation nor in the Output; they are Post-Seal Evaluation Qualifiers recorded in a separate signed record referencing the Reconciliation Hash, and are expressly not Divergence Axes. New Divergence Axis values: register-threshold-divergence, declared- not-determined and source-version-skew. New COSE header parameter arp-source-data-version, carrying a set so that a register consulting several lists can denote the state of each. arp-bilateral-agreement- hash now always carries a sorted array, of one member on a Partial Attestation and one per addressed register on a Sealing Signature, so that a decoder never has to infer the type from context. New IANA registries for Register Data-Format Profile identifiers and for Post- Seal Evaluation Qualifiers. -03 adds registries for Ledger Entry Types, Override Grounds, Retroactive Evaluation Triggers and Aggregation-Method Descriptors. [I-D.ietf-scitt-scrapi] moves from informative to normative, because Section 6.5 imposes requirements that cannot be met without it. A role-by-role walkthrough of the whole pipeline -- requester, agent, reconciliation server, register operator, relying party, Transparency Service, regulator, retroactive subsystem and IANA expert -- was run against this revision and found a further class of defect that no earlier review had reached: requirements addressed to an actor that does not hold the inputs they name. Those are closed here, and most of them predate -02. Hillier Expires 14 February 2027 [Page 115] Internet-Draft ARP August 2026 Section 4.4 now enumerates the Per-Register Claim Projection. It is the only structure a sovereign register receives and it was the sole major structure in the protocol without a field list, which made the register role unimplementable. The register echoes the Policy- Version Hash rather than computing it, and the server MUST now send one Policy-Version Hash to every addressed register and verify each echo -- without which the per-register signatures over it, the only independent corroboration the protocol has, were discarded at aggregation. Section 6.5.3 is new. -02 and the earlier -03 text told a relying party to verify a Sealing Signature whose key it had no way to obtain: it holds hashes of bilateral agreements it is not party to. Sealing keys are now published at a well-known location on a declared authority origin, mirroring how [I-D.ietf-scitt-scrapi] treats Transparency Service keys. Section 4.13 is new. Every operator is now given its result for every combination of contribution values, and whether it admits partial-match, on which Section 4.12 turns. -02 delegated combination to an operator it named but never defined, so two conforming implementations could produce different Combined Verdicts from identical inputs while the determinism requirement demanded they not. Section 4.11 is new. A register may fail to answer in eleven distinct ways and no earlier revision defined an outcome for any of them; dropping the register silently produces exactly the addressed- register-cherry-picking the adversarial test exists to detect. A reconciliation with any non-answering register can no longer reach a decisive Combined Verdict. The Reconciliation Output gains the Claim Hash, a timestamp, the Verdict Arithmetic, the Sealing-Key Identifier, per-register attested and effective verdicts with the re-typing ground, per-register echoed Policy-Version Hashes, and register attribution on the server- recorded divergence axes. Without the Claim Hash a relying party received a verdict with nothing to attribute it to, and the retroactive subsystem had no key to select on although the Claim Hash was already declared its key. The Settlement-Layer Ledger gains the Claim Hash and now exposes READ as well as APPEND -- the Regulator Portal, retroactive evaluation and the chain-invariant check all require reads that "only APPEND" forbade. Ledger entries are now signed, because prior-entry hashes prove that nothing was removed from a chain and not that only one chain exists. The Ledger now carries two kinds of entry under an Entry Type discriminator, and each type's fields are enumerated. Facts arising after an Output is sealed -- the outcome of notarisation, a Post-Seal Hillier Expires 14 February 2027 [Page 116] Internet-Draft ARP August 2026 Evaluation Record, a supersession -- are recorded as Continuation entries appended against the Reconciliation Hash they concern. An earlier revision of this text described Continuation entries without giving them a form: they carried fields the entry list did not admit, supplied none of the fields it made mandatory, and nothing distinguished one kind from another. Section 4.17 correspondingly no longer requires a Post-Seal Evaluation Record Hash to be appended to an already-signed entry, which the Ledger's absent UPDATE made impossible. Supersession is now recorded from both ends, the superseding entry naming what it replaced and a Continuation entry naming what replaced it, because neither pointer is reachable from the other's starting point. A retriever of a Post-Seal Evaluation Record must now check the retrieved bytes against the hash carried beside them, and that hash's construction is defined. A supersession entry carries the superseding entry's sequence number rather than a retrieval URI: obliging every reader to dereference an operator- chosen URI before it could check anything would have been a forced fetch, a de-blinding oracle and a covert channel no constraint on the URI's content could close. The Self-Entry Hash is defined, and is taken after the type-specific fields so that it covers them. The Prior-Entry Hash is now taken over the whole preceding entry including its Entry Signature. Chaining Self-Entry Hash to Self-Entry Hash would have left every signature outside the structure that detects tampering, which is a poor place for the field this document relies on to make a second chain attributable. Entry encoding and field order are stated, because the Self-Entry Hash is taken over them and a CBOR map would have been re-sorted by key. E.1.1. Five things the protocol assumed and never stated Working through the Ledger changes made it clear that a class of gap ran under all of them. Every discovery path in -02 ended at a value its holder could not present to anything, and each attempt to fix one by adding a pointer moved the dead end without removing it. Five substrate layers were missing. They are now written, and adding them closed more open items than any mechanism in this revision. *Section 4.15.3 states what the pipeline returns.* No earlier revision said that a Reconciliation Output is delivered to anybody. The document specified in detail how an Output is composed, sealed, digested, ledgered and notarised, and never that any party receives one. Every discovery path begins with a party holding a Reconciliation Hash; until now nothing said how it came to hold one. Hillier Expires 14 February 2027 [Page 117] Internet-Draft ARP August 2026 *Section 4.15 states who may hold an Output.* -02 made it a bearer artefact: possession was the whole of the entitlement, it never expired, and every read predicate the document attempted was expressed in terms of a Requester-Binding the reader could not present and the Ledger could not evaluate. An Output now carries a sealed Audience Set and a Reliance Horizon. Entitlement follows the Audience Set rather than possession, which admits the party the Requesting Principal named and excludes the party that merely came into possession; a register may cap how wide an Audience Set addressing it may be, because a register that attests about a subject is entitled to bound how far that attestation travels. The Horizon bounds reliance without touching validity: a sanctions no-match is a statement about lists that change daily, and an artefact asserting one indefinitely was relied upon indefinitely. *Section 6.4 states how a read is requested.* -02 and every draft of this revision before it stated what a read returns and never the endpoint, the request form, the response form, the media type, or the error semantics -- and the two errors that matter most, "nothing exists" and "you may not ask", are the two a reader most needs distinguished, because a server suppressing a supersession returns what a server with nothing to report returns. There are nine operations. Every response, success or error, is signed and carries the ledger head it was served against, so an empty result is an assertion rather than an absence, and a supersession later found at an earlier sequence number is evidence against the operator who signed the denial. Not-entitled and not-found are both 404 with no distinguishing body, so no endpoint is an existence oracle. Reads are rate-limited, because a surface whose every individual answer is innocuous discloses entry count, write rate and retroactive-burst timing when swept. With those in place, the Continuation entries of this revision are reachable by the parties they were written for, a superseded Output's replacement is retrievable because a superseding Output inherits the Audience Set of what it supersedes, and the fork check reconciles two heads at different sequence numbers through a signed consistency read rather than through an unsigned answer from the party under suspicion. Retrieval URIs, which an earlier draft of this revision put in Continuation entries, are gone: every artefact is now fetched by hash from the origin that served the entry, so the Ledger holds no retrieval address, no reader is obliged to dereference an operator- chosen URL before it can check anything, and the covert channel that host selection and path structure carried is closed. The published ledger head is a signed statement carrying a sequence number, and Entry Sequence Numbers are allocated in one sequence so that two conforming stores cannot present the same number over Hillier Expires 14 February 2027 [Page 118] Internet-Draft ARP August 2026 different entries. Two limits are stated rather than claimed away: an operator publishing to two audiences at disjoint sequence numbers never emits a colliding pair, and a party holding neither an Output nor an agreement cannot anchor the signing key. The Reconciliation Hash is no longer among the values required to be reproducible across runs. Its preimage includes the Reconciliation Timestamp, so the requirement was unsatisfiable; the Reconciliation Identifier is the reproducible index and always was. *Section 6.2 states how a reconciliation is commissioned.* The document imposed obligations on "the response to the request that commissioned it" without defining that request anywhere. *Section 4.20 states who an auditor is.* Four requirements were justified by what an auditor could reproduce, and the auditor was not a party this document admitted; an Audit Identity is now declared in a Bilateral Register Agreement, so that the audited party cannot choose its auditor after the facts are known. Several corrections follow from checking this document's claims about other specifications against those specifications. The deterministic CBOR encoding every digest here depends on is that of Section 4.2.1 of [RFC8949], which is now a normative reference; RFC 9052 narrows those requirements to COSE's own signing structures and states no map-key ordering rule, so the previous citation did not support what was built on it. [RFC3339], [RFC7638], [RFC3986] and [RFC6838] are referenced rather than named in prose. Appendix B no longer attributes an Identity Manager or an Aggregator role to [RFC9943], which defines neither. Appendix D no longer presents "capsule" as that draft's term. An unsourced claim about agreement on twenty-two pinned conformance vectors is removed, that draft having frozen none. The EU consolidated financial sanctions list and the OFAC SDN list are retargeted at the resources that actually publish them. Three further sections follow from those. Section 4.9 pins the tree both Merkle roots in this document use, with domain separation and an inclusion- proof encoding, so that a proof produced by one implementation verifies under another. Section 4.19.1 gives the Sovereign Re-Notification an artefact, a payload, a media type, a delivery endpoint and a retry obligation; it was a MUST with none of those in -02. Section 8 states the disclosure model and the residual risks this revision accepts rather than leaving them to be inferred -- the subject has no standing in this protocol, an Audit Identity reads broadly, and the published ledger head discloses a deployment's size at the notarisation interval. Hillier Expires 14 February 2027 [Page 119] Internet-Draft ARP August 2026 Every digest preimage and signature payload in the document is now pinned to a CBOR array with a normative field order and null- substitution for absent fields: the Reconciliation Output and its Sealing Signature, the Partial Attestation, the Per-Register Claim Projection, the ledger entry, the Post-Seal Evaluation Record, the Non-Answer Statement, the Ledger Head Statement, the Evaluation Sweep Statement and the read response. -02 left several of them as "the canonical serialisation of the foregoing", which is not a preimage two implementations can agree on. Homomorphic Aggregation Mode is removed and Hash-Linkage is the only mode. The mode named no primitive, had no class in the Cryptographic-Primitive-Upgrade Path for one to be declared in, and defined no encrypted-contribution structure; and the reconciliation server must read every per-register verdict in the clear in any case, to verify the register's signature, recompute the Query Binding, check the echoed Policy-Version Hash and apply re-typing. The privacy property the mode advertised was therefore not available under it, and ARP's actual minimum-disclosure property -- controlled projection, and a Partial Attestation payload that discloses of the subject only a verdict, a divergence axis, the applied parameters and a digest -- is unaffected by its removal. Four homomorphic-* Aggregation-Method Descriptors go with it. The interface between the reconciliation server and a sovereign register is now stated to be out of scope, and the claim that enumerating the Per-Register Claim Projection lets two register operators build interoperable endpoints is withdrawn. Enumerating a structure is not specifying a binding. That leg -- an endpoint, a media type, and a COSE_Encrypt construction pinning the AEAD and its authenticated additional data -- is the principal item this revision leaves for the next. E.1.2. Ways the protocol could be gamed, closed Section 7.1's query budget is now measured per accountable principal per subject. A budget shared across requesters is exhausted for everyone by any one of them -- including an unidentified agent -- which forced every reconciliation about that subject to indeterminate for the interval. The countermeasure was a denial of service. Exhaustion now refuses the register and not the reconciliation, which resolves a contradiction in -02: the old text refused the reconciliation and then recorded a Non-Answer Reason in an Output that consequently did not exist. A register-attested Non-Answer Reason now requires a Non-Answer Statement signed by that register over the projection values and the reason, and Section 4.11 records which reasons are register-attested Hillier Expires 14 February 2027 [Page 120] Internet-Draft ARP August 2026 and which are server-observed. Without it a register-refused was an unattested assertion by the party that transmitted the projection, and a server could suppress a match by claiming the register had declined. A server can still downgrade a reconciliation by asserting a server-observed reason and the document says so; what it can no longer do is dress suppression as an act of the register. Section 4.21.1 is new. Every trigger of retroactive evaluation was server-observed, every decision to run was the server's, and nothing recorded that a sweep had happened -- so "we evaluated and found no change" and "we never evaluated" were the same observation from outside. A signed Evaluation Sweep Statement per sweep, notarised on the head interval, makes the absence of one an assertion the operator has to make. A Source-Data Version publication is a public event with a public timestamp; an operator with no Statement covering one has not evaluated, which is now checkable. The Verdict Arithmetic is resolved by the reconciliation server from policy, keyed on the predicate and the regimes the requester names. -02 read as though the requester declared the operator and its threshold in its own claim, which would let it choose the verdict: disjunction over five registers and threshold-count with a threshold of five differ only in which answer they return over the same contributions. Naming a regime is a claim about which law applies and the requester is accountable for it; selecting an operator is a determination about how evidence combines, and the deployment makes it. source-class-quorum now carries its per-class threshold into the Output as well as its partition, without which it was as irreproducible as carrying neither. The Requester-Binding gains a fourth class, agent-key-verified, for an agent whose signing key verified but whose asserted principal was not corroborated. -02 recorded key possession and principal binding as one fact. An agent that signs correctly has shown it is the same agent as last time and not that any accountable party stands behind it; recording that as agent-verified overclaimed to every downstream reader and recording it as agent-unverified discarded something real. Section 4.21.2 states what revocation of a Verified Principal Credential does and does not reach. It is not detected in the hot path and this document does not pretend to put it there; what it does is bound the window, by requiring an Audience Member to read continuations before relying past the Reliance Horizon. Reliance years later on an Output whose principal was disowned the following week is the case that matters, and -02 left it open. Hillier Expires 14 February 2027 [Page 121] Internet-Draft ARP August 2026 The Override Record is enumerated, carries an Override Ground from a new registry, and is signed by the authorising operator rather than by the server. A record the server signs attests only that the server says an operator authorised a bypass. It names that operator in the clear, which is consistent with Section 4.15: blinding protects the published Ledger, and the Output is confidential to its Audience Set. Retroactive Evaluation now triggers on a new Source-Data Version. It previously triggered only on a Pattern Library or Policy Version change, so a sanctions list republication -- the case Section 4.6 was written for -- fired nothing. A material change now includes a transition between decisive values: a no-match becoming a match is the case the motivating domain cares most about, and the earlier definition omitted it. Homomorphic Aggregation Mode was restricted in -02 and is removed in -03; see the -03 entry above. The Pattern-Library Version Identifier is no longer bound as authenticated additional data: registers are never told the pattern-library version, so binding it either failed universally or was supplied by the party that chose it. The Reconciliation Hash is taken over deterministic CBOR rather than [RFC8785], because the Output is CBOR and several fields are byte strings for which JSON has no type. Regulator Portal scope is the intersection across agreements rather than the union, which had let one permissive agreement widen access to a stricter register's reconciliations. The Freshness Timestamp is now enumerated before the signature line in Section 4.8 and is therefore covered by it. It was listed after the signature in earlier revisions, and both replay defence and the new freshness-versus-skew distinction depend on it being signed. Not adopted: a statement that a reference implementation is forthcoming. It does not exist yet, and a draft should not carry a claim about an artefact a reader cannot check. When it is published it will be cited by repository and commit alongside the conformance vectors it is checked against. E.2. Since draft-hillier-scitt-arp-01 This revision closes canonicalisation ambiguities identified by running an implementation of -01 against two published conformance corpora -- the EMILIA clean-room frozen-v1 agent-action corpus and the Noa AI-agent-receipt corpus -- states the role of the Appendix D subject digest explicitly, and corrects a number of requirements that were unsatisfiable, untestable or out of scope as written in -01. The harness and its machine-readable results were posted to the SCITT Hillier Expires 14 February 2027 [Page 122] Internet-Draft ARP August 2026 mailing list. * [RFC8785] is now a NORMATIVE reference. -01 named JCS in Appendix D without identifying which JCS; the string "8785" did not occur in -01 at all. Agreement with a deployed profile depended on both parties having independently selected [RFC8785]. It is now an obligation rather than a coincidence. * The Canonical Claim in Section 3 now pins its member-sort code unit to UTF-16, per Section 3.2.3 of [RFC8785]. -01 said "lexicographic sorting of object keys", which does not determine the ordering of member names outside the Basic Multilingual Plane. * Number rendering now cites Section 3.2.2.3 of [RFC8785]. -01 cited "canonical JSON RFC 8259 number rendering"; RFC 8259 defines no canonical number rendering, and was an informative reference in -01. * "Stripping of undefined values" is replaced by a statement about absent members, JSON having no undefined value to strip. * New Appendix D.1 states that the Claim Hash and subject_digest are distinct constructions that MUST NOT be substituted for one another, and records the two observed COLLISION cases (Normalization Form D against Form C, and U+212B against U+00C5) in which a substitution fails silently rather than visibly. * New Appendix D.1.1 states what subject_digest is and what it is not, which -01 left to be inferred. subject_digest is a content digest: collision-resistant over content, and therefore NOT stable under the variation an action type permits. Measured: five conforming instances of one registered action type, each accepted by that type's reference issuer and differing only in content the type declares OPTIONAL, produced five distinct subject digests. The section now separates the case the construction supports -- capsules over one shared serialisation, which is what Appendix D composes -- from the case it does not, and requires a profile needing the latter to pin its member set or to join on a material identifier the action type declares. It also forbids describing a content digest as a correlation key without saying which case is relied on. * The order of canonicalisation operations in Section 3 is now normative. Normalization Form C is applied BEFORE the member sort. The two do not commute: for an object whose member names are U+0041 U+030A and "B", normalising first and sorting first produce different Claim Hashes. -01 gave the operations as an unordered list. Hillier Expires 14 February 2027 [Page 123] Internet-Draft ARP August 2026 * [I-D.mih-sato-agent-accountability-composition] remains an informative reference. Appendix D composes over the capsule slots it defines and would cite it normatively, but it is an individual draft; making it normative now would create a publication dependency. The same applies to [I-D.mih-sokolov-scitt-payload-binding]. The status of both references will be revisited as those documents progress. * Appendix D.1 requires that a correlation digest carried on the wire identify its construction, and requires that such an identifier not commit to facts which do not affect the serialised bytes, so that two implementations producing identical bytes share an identifier. * Appendix D.1 additionally requires that a correlation identifier over a typed action object be emitted only after the object validates against a pinned definition of its type. Reference and source corrections in this revision: * The SCITT Architecture reference is now [RFC9943] and the COSE Merkle tree proofs reference is now [RFC9942]. -01 cited both as Internet-Drafts; both have since been published as RFCs. * The Web Bot Auth architecture reference is replaced. -01 cited draft-meunier-web-bot-auth-architecture, which has been replaced by [I-D.meunier-webbotauth-httpsig-protocol]. [I-D.meunier-webbotauth-registry], which defines the signature- agent card, is retained. [I-D.meunier-webbotauth-httpsig-directory] is added, because the card is resolved through the directory the Signature-Agent header names and -01 cited no document for that step. * The document date, RFCXML version and submission type are declared in the source, and keyword is a single YAML sequence. * A note to the RFC Editor records the [RFC8785] downref explicitly, so that it can be called out at IETF Last Call per [RFC8067] rather than found there. * Appendix D now REQUIRES that all composed capsules carry one shared action serialisation, established by the authorising party and echoed verbatim by later attesters, and states that a capsule's own account of the action travels in its payload rather than in subject_digest. -01 left the shared-serialisation condition implicit, which is the condition the digest depends on. Hillier Expires 14 February 2027 [Page 124] Internet-Draft ARP August 2026 * The determinism requirement is scoped to the Reconciliation Output and to the Claim Hash, Reconciliation Hash and Policy-Version Hash; -03 removes the Reconciliation Hash from that set, as the -03 entry above records. -01 required bit-for-bit identical Settlement-Layer Ledger entries, which the entry's own sequence number, timestamp and prior-entry hash make unsatisfiable. * The Claim Hash is pinned to SHA-256 in Canonical Claim Ingestion. -01 named the algorithm only in an appendix, leaving a parameter the construction identifier is required to commit to unstated in the normative body. * Claim equality is stated over canonical field values, and declared array order is significant. -01 required semantically-equivalent claims to hash alike without defining semantic equivalence, which no implementer could test. * The Per-Register Claim Projection is defined as the nearest permitted ancestor predicate rather than a greatest lower bound, which the Predicate Taxonomy -- a tree -- does not have, and the projection function now fails explicitly on an ambiguous or unreachable walk rather than choosing. * The Settlement-Layer Ledger entry carries an OPTIONAL Source- Reconciliation-Output Identifier, which the retroactive re- evaluation example already relied on and the entry's closed field list did not admit. * freshness-stale is added to the Divergence-Axis controlled set, and server-recorded axes are stated to travel in the Reconciliation Output rather than in a register's signed payload, which the reconciliation server cannot modify. * COSE header labels are requested from IANA rather than asserted as a vendor-private range, and an IANA registry is requested for Divergence-Axis values. * The examples are de-identified. Register identifiers are illustrative and no bilateral agreement with any named authority is asserted. * Two independent implementations of an [RFC8785]-based digest construction, one in Go and one in Python and sharing no source, were measured as agreeing byte-for-byte on 24 generated inputs selected to exercise absent-field normalisation, arrays, string escaping, UTF-16 member sorting and both integer bounds. Two implementations derived from one source would have demonstrated code identity rather than agreement, which is why the pair is Hillier Expires 14 February 2027 [Page 125] Internet-Draft ARP August 2026 named. That is the outcome Appendix D.1 argues for: one identified construction per digest role, committing to the parameters that affect the serialised bytes and to nothing else. E.3. Since draft-hillier-scitt-arp-00 * Added a fourth motivating deficiency (unverifiable requester identity in an agentic setting) to the Introduction. * Added a new pipeline subsystem, Requester Identity Binding and Agent Friend-or-Foe (IFF) Gate, and renumbered the pipeline to twelve subsystems. * Added the agent: predicate branch, a new Agentic Principal Reconciliation section, and the divergence axes agent-principal- unverifiable, agent-credential-absent, and agent-impersonation- suspected. * Added Requester-Binding to the Policy-Version Hash commitment and a requester-binding-class descriptor to the Settlement-Layer Ledger entry. * Bound ARP to HTTP Message Signatures [RFC9421] and Web Bot Auth for signed agent requests, and added an Agent Impersonation security consideration. * Replaced the stale scitt-receipts reference with COSE Receipts [RFC9942] and added the SCITT Reference APIs [I-D.ietf-scitt-scrapi]; Hash-Linkage Aggregation now emits COSE Receipts. * Described the Evidentiary Provenance Manifest's optional carriage as a COSE-enveloped Verified-Principal-Credential evidence container. * Extended Retroactive Evaluation to treat credential revocation as a material change, and added a new IANA header label and worked agentic example. * Added the motivating agentic-containment failure class to the Introduction and framed real-time reconciliation of claimed- versus-actual conduct as a first-class property, distinct from after-the-fact forensic reconstruction. Hillier Expires 14 February 2027 [Page 126] Internet-Draft ARP August 2026 * Added a Composition with Agent-Action Accountability Capsules section reconciling heterogeneous CAN/WHO/WHAT/AUDIT capsules [I-D.mih-sato-agent-accountability-composition] over a shared subject digest into a producer-agnostic verdict, with a worked divergent agent-action example. * Added the agent-action-scope-divergence divergence axis. * Removed two unused informative references (JWS, JWT). Author's Address Joel David Hillier Certisyn, Inc. United States of America Email: jhillier@certisyn.com Hillier Expires 14 February 2027 [Page 127]