Network Working Group J. B. Hamlett Internet-Draft 31 October 2026 Intended status: Informational Expires: 4 May 2027 Negotiated, Signed Access Agreements Between Organizations' Agents: Problem Statement and Architecture (Selo) draft-hamlett-selo-architecture-00 Abstract Connecting one organization's systems to another's usually requires a connector built for that pair of systems, whether written by hand, bought from a connector catalog, or packaged as a tool server for an AI model. Connectors scale with the number of pairs, carry long- lived shared credentials, and have no verifiable link to the legal entities involved or to the terms under which access was granted. This document describes that problem and an architecture, called Selo, that aims to reduce the need for such connectors. Agents owned by verified legal entities verify each other, negotiate a typed access agreement that both parties sign, and then execute it through a standard runtime and a gateway in front of each entity's existing API, using credentials bound to the agreement. Each entity maintains its own tested, signed mapping between its system and shared capability profiles. Selo uses existing APIs; it does not replace them. The document states requirements and an architecture to inform discussion of whether, and where, such work belongs in the IETF. It does not specify a protocol. About This Document This note is to be removed before publishing as an RFC. This is an individual submission. Discussion is invited on the dispatch@ietf.org mailing list, and at a side meeting at IETF 127 on Monday 16 November 2026, 17:30-19:00 (US Pacific time), in room Continental 7. The author has a pending patent application relating to this document. An IPR disclosure will be filed in accordance with BCP 79. Hamlett Expires 4 May 2027 [Page 1] Internet-Draft Selo Architecture October 2026 Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on 4 May 2027. Copyright Notice Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/ license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. The Proposed IETF Core . . . . . . . . . . . . . . . . . 4 1.2. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 3. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 6 3.1. Illustrative Use Cases . . . . . . . . . . . . . . . . . 7 4. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 8 5. Architecture Overview . . . . . . . . . . . . . . . . . . . . 9 5.1. Components . . . . . . . . . . . . . . . . . . . . . . . 9 5.2. Identity and Keys . . . . . . . . . . . . . . . . . . . . 10 5.3. Discovery and Mutual Verification . . . . . . . . . . . . 11 5.4. Need-to-Know Disclosure . . . . . . . . . . . . . . . . . 12 5.5. Mandates and the Policy Checker . . . . . . . . . . . . . 12 5.6. Negotiation . . . . . . . . . . . . . . . . . . . . . . . 13 5.7. The Access Agreement . . . . . . . . . . . . . . . . . . 14 Hamlett Expires 4 May 2027 [Page 2] Internet-Draft Selo Architecture October 2026 5.8. Agreement Lifecycle . . . . . . . . . . . . . . . . . . . 15 5.9. Data Plane: Tokens and Gateway . . . . . . . . . . . . . 16 5.10. Capability Profiles and Entity-Owned Mappings . . . . . . 16 5.11. Protected Payment-Detail Changes . . . . . . . . . . . . 17 5.12. Compliance . . . . . . . . . . . . . . . . . . . . . . . 17 6. Relationship to Existing Work . . . . . . . . . . . . . . . . 17 6.1. IETF Working Groups . . . . . . . . . . . . . . . . . . . 17 6.2. Individual Drafts on Agent Identity, Mandates and Negotiation . . . . . . . . . . . . . . . . . . . . . . . 18 6.3. Work Outside the IETF . . . . . . . . . . . . . . . . . . 19 6.4. Why Composition Alone Seems Insufficient . . . . . . . . 19 6.5. Possible Division of Work . . . . . . . . . . . . . . . . 20 7. Questions for the Community . . . . . . . . . . . . . . . . . 20 8. Security Considerations . . . . . . . . . . . . . . . . . . . 20 8.1. Open Security Issues . . . . . . . . . . . . . . . . . . 21 9. Privacy Considerations . . . . . . . . . . . . . . . . . . . 22 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 11. Informative References . . . . . . . . . . . . . . . . . . . 23 Appendix A. Illustrative Data Objects . . . . . . . . . . . . . 28 A.1. Access Agreement Body . . . . . . . . . . . . . . . . . . 29 A.2. Agreement-Bound Access Token Claims . . . . . . . . . . . 29 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 30 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 30 1. Introduction Most business software exposes an API. Accounting, enterprise resource planning (ERP), commerce, banking, payroll and logistics systems all let authorized callers read and write their records. What is missing is not the API but the connection between two organizations' APIs: something has to decide who may call what, under which terms, translate between two data models, hold the credentials, and keep working as both sides change. Today that is a connector, built for a pair of platforms, configured for a pair of organizations, and operated by one of them or by a third party. Tool servers that expose a platform's API to an AI model, such as Model Context Protocol [MCP] servers, are a newer form of connector. AI agents make it plausible for software to read an API description and propose how two systems should exchange data. They do not, on their own, make that safe: an agent that can be steered by text from a counterparty cannot be trusted to grant access or sign commitments. Selo is an architecture in which: * each organization (an "entity") has a verified identity anchored to its legal identifier, and certifies its own agents; Hamlett Expires 4 May 2027 [Page 3] Internet-Draft Selo Architecture October 2026 * agents verify each other and disclose endpoints and terms on a need-to-know basis; * agents negotiate a typed access agreement, but only an isolated, deterministic policy checker acting under the owner's signed mandate can cause a signature; * each entity's runtime tests the agreement end to end, then executes it through a gateway in front of the existing API, using short-lived credentials bound to the agreement and to the caller's key; and * each entity translates once, between its own system and shared capability profiles, using a mapping it has tested and signed, so that no executable artifact specific to a pair of parties is needed. 1.1. The Proposed IETF Core Much of this architecture profiles existing work or belongs outside the IETF. The parts that appear to need new, interoperable definitions, and that the author proposes for discussion, are: a. a signed, typed access-agreement object, including its versioning and the agreement record; b. the negotiation messages and state machine between two entities' agents; and c. a profile of OAuth access tokens bound to an agreement and to the caller's key, enforced at the provider's gateway. Section 6.5 suggests venues for the remaining pieces. 1.2. Scope Selo aims to reduce the need for manually built connectors and per- platform tool servers. Every operation is still performed by an entity's existing platform API. Selo does not move money; payments are executed by existing payment systems. Searching for counterparties is a marketplace function and is out of scope. Hamlett Expires 4 May 2027 [Page 4] Internet-Draft Selo Architecture October 2026 Issuer accreditation, verification procedures (for example know-your- business checks and their renewal), the trust list, assurance-tier definitions, approval workflows and user interfaces, and compliance- framework identifiers are expected to be governed by one or more external trust frameworks. This document defines only the hooks the protocol needs from them: an assurance level in the entity certificate, verifiable claims in an entity credential, and references to approvals and role credentials in agreements. This version covers organizations only. Individuals as parties raise distinct privacy questions (Section 9) and are left for future work. 2. Terminology Entity: An organization that can be legally accountable for an agreement. Provider and consumer: Under an access agreement, the provider is the entity whose capabilities are accessed; the consumer obtains access. An entity can be both. Platform: A system of record used by an entity, exposing a platform API. The platform vendor is not a party to agreements. Owner and operator: The owner of an agent, runtime or mapping is the entity on whose behalf it acts. An operator runs these components for an owner and may be the owner itself. Issuer and trust list: An issuer verifies an entity and signs its entity certificate. A trust list, maintained under a trust framework, lists accepted issuers. Agent: Software representing its owner in the control plane: verification, catalog disclosure and negotiation. An agent may use a machine-learning model. Mandate: A data object signed by the owner that sets the limits within which an agent's proposals may be signed. Policy checker: A component, isolated from the agent's model and containing no machine-learning model, that compares typed proposals with the mandate and alone can cause the owner's signature on an agreement. Access agreement: Canonical structured data, signed by both parties, listing the endpoints the consumer may use and the typed terms that apply. It is also the configuration the parties' runtimes load and enforce. Hamlett Expires 4 May 2027 [Page 5] Internet-Draft Selo Architecture October 2026 Agreement record: A signed agreement version plus an append-only, hash-linked sequence of signed annex entries (test confirmations, suspensions, mapping-update notices and similar). Adding an annex entry does not create a new version. Capability profile: A versioned definition of a business capability (such as orders, invoices or general-ledger transactions): schema, field semantics, field classes (such as money-bearing), invariants, operations and a conformance test suite. Mapping: Expressions in a sandboxed, deterministic transformation language that translate records between one entity's platform and a profile. A mapping is tested and signed by that entity. Runtime and gateway: The runtime executes signed agreements. The gateway is the part of a provider's runtime in front of its platform API, through which every call under an agreement passes. Category and sensitivity label: A category is a named group of endpoints in a provider's catalog. The provider gives each category a sensitivity label from an ordered set, for example Public < Customer < Confidential < Restricted. 3. Problem Statement Connectors scale with pairs. A connector embodies knowledge of two systems and of an arrangement between two organizations. Costs grow with the number of pairs. Shared connector libraries lower the cost of building one, but each shared connector is a supply-chain target for every deployment that uses it and cannot know any one organization's custom fields, codes and workflows, so each deployment still needs per-customer configuration. Canonical data models (EDI, UBL and the canonical models of integration platforms) have long tried to reduce this; in practice, the per-organization configuration around them is where integrations drift and break. Agents lack accountable identity. Existing agent and workload identity work identifies software and endpoints. A counterparty deciding whether to grant access to financial records needs to know which legal entity stands behind an agent, who verified that and when. Names and domains are not identifiers; lookalikes are a common basis for fraud. Hamlett Expires 4 May 2027 [Page 6] Internet-Draft Selo Architecture October 2026 An agent's authority is hard to rely on. An organization needs to limit what its agent can commit to and require human approval above those limits. Its counterparty needs to rely on a commitment having been within the agent's authority, without learning the internal limits, which would weaken the organization's negotiating position. Access is disconnected from its terms. Terms such as purpose, retention, rate, data location and termination are usually recorded, if at all, separately from the credentials and configuration that grant access. Nothing ensures the two match, or that a change to either is noticed by the other party. Model-mediated integration creates new risks. An agent that reads a counterparty's catalog or messages can be steered by instructions embedded in them (prompt injection). No reliable model-level defense is known, so any key, approval or write operation reachable by the model is effectively reachable by the counterparty. A model-generated translation can differ between runs and produce plausible but wrong values. An integration that was tested is not necessarily the integration that runs. Payment-instruction fraud. Changing a supplier's bank details through a compromised or impersonated channel is a well-known form of business payment fraud. Automating buyer-supplier relationships must not make this easier. 3.1. Illustrative Use Cases Ledger access for an accounting firm: A company invites its accounting firm. The firm's agent requests hourly read access to general-ledger transactions with unlimited retention; the company's agent counter-offers daily access, 365-day retention and no use for model training; a finance officer approves because the data is Confidential; the runtimes test the exchange; and the firm then pulls entries daily. When the company's ERP is upgraded, the company re-tests and re-signs its own mapping without renegotiating. Hamlett Expires 4 May 2027 [Page 7] Internet-Draft Selo Architecture October 2026 Ordering from a supplier: A customer's agent finds a supplier by domain. The supplier's policy discloses ordering and invoicing endpoints to verified existing customers. The agents agree payment terms within each side's mandate, and orders then flow as individual calls. A later change of the supplier's bank details follows a protected process (Section 5.11). 4. Requirements These requirements are stated as outcomes a solution needs to achieve, not as normative protocol requirements. R1: An entity's identity needs to be anchored to a legal identifier (such as a Legal Entity Identifier), so that it survives a change of issuer. R2: Every agent needs to be bound to the entity that owns it and, where different, to its operator. R3: It needs to be possible to require identities that no single issuer can create on its own. R4: Issuance, key changes and revocations need to be publicly auditable, while relationships and agreements between entities are not published. R5: A stolen key needs to be recoverable without loss of identity, and agent credentials need to be short-lived. R6: A provider needs to be able to disclose each category of endpoints only to approved requesters, and to make unapproved categories indistinguishable from nonexistent ones. R7: The system's guarantees must not depend on the behavior of any machine-learning model: no signature or grant of access can result from a model's output except through deterministic checks against limits signed by the owner. R8: Owners need to be able to require approval by an authorized, identifiable person above limits they set, with requests not approved in time treated as declined. R9: A counterparty needs to be able to rely on an attributable assertion that a commitment was within the other party's authority, checkable after the fact in an audit or dispute, without learning the limits of that authority. Hamlett Expires 4 May 2027 [Page 8] Internet-Draft Selo Architecture October 2026 R10: Agreement terms need to be typed, with defined meanings and units. No legal language is generated during negotiation; agreements reference fixed legal text by digest. R11: Negotiation transcripts and agreement versions need to be tamper-evident, attributable, and protected against replay and downgrade. R12: A change of payment details needs approval by a person with a finance role, a waiting period, notice to the paying side's people by a path independent of either agent, and confirmation by a person on the paying side before the first payment. R13: Production data must not flow under an agreement until it has been signed by both parties and tested end to end. R14: The provider's platform credentials are never disclosed to the consumer; credentials issued to the consumer are bound to the agreement and to a key the consumer holds. R15: Every call needs to be checked against the agreement's endpoints, operations, fields and enforceable terms; terms that cannot be enforced technically need to be recorded so compliance can be shown. R16: The translation executed at run time needs to be deterministic, sandboxed and byte-for-byte the one that was tested and signed. No model transforms data or grants access at run time. R17: No executable artifact specific to a pair of parties should be needed, and a defective mapping should affect only agreements to which its owner is a party. R18: The protocol needs to work over plain HTTPS, be independent of transport, use agile algorithms, and reuse existing certificate, credential, transparency, token and business-document standards where possible. 5. Architecture Overview 5.1. Components Hamlett Expires 4 May 2027 [Page 9] Internet-Draft Selo Architecture October 2026 Entity A Entity B +---------------------+ +---------------------+ | Agent (may use a |<-- control -->| Agent (may use a | | model) | plane | model) | | | typed proposals | | | typed proposals | | v | | v | | Policy checker | | Policy checker | | (isolated, no model;| | (isolated, no model;| | key + mandate) | | key + mandate) | | | signs | | | signs | | v | | v | | Runtime + gateway |<--- data --->| Runtime + gateway | | (pinned mapping, | plane | (pinned mapping, | | owner credentials) | | owner credentials) | | v | | v | | Platform API | | Platform API | +---------------------+ +---------------------+ Supporting services: issuers and trust list; public issuance log (certificates, keys, revocations; never relationships); registries (capability profiles, typed terms, algorithm suites) Figure 1: Components Negotiation happens when an agreement is formed or changed, not per call; individual transactions flow through the data plane under the agreement. The agent is owned by the entity that uses the platform, not by the platform's vendor. A vendor or integration service may run components as an operator for its customers, who remain the owners. 5.2. Identity and Keys An issuer verifies an entity and signs its entity certificate, a restricted certificate-authority certificate [RFC5280] with a path- length constraint of zero and name constraints limiting it to the entity's own namespace and its verified domains. The entity certificate carries the legal identifier, an assurance level and those domains. The entity key is held in protected hardware or a cloud key service and is used rarely, to certify the entity's other keys and to sign mandates and role credentials. Facts beyond the certificate (officers, verification dates, screening status, attestations) can be carried in a selective-disclosure credential such as an SD-JWT VC [RFC9901] [I-D.ietf-oauth-sd-jwt-vc] and revealed one claim at a time. Keys are separated by role, each certified by the entity certificate: Hamlett Expires 4 May 2027 [Page 10] Internet-Draft Selo Architecture October 2026 Agent key: Short-lived (for example days, renewed automatically). Signs control-plane messages. Held by the agent's non-model code; the model never invokes it directly. Checker signing key: Reachable only by the policy checker. Signs agreements on the entity's behalf. Runtime or gateway key: Signs runtime messages such as test confirmations and suspensions, and is the key to which data-plane tokens are bound. An entity commits in advance to its next entity key by publishing a digest of it, and rotation is accepted only to the committed key, so a thief of the current key cannot take over the identity. Every certificate issued, key change and revocation is submitted to a public append-only log modeled on Certificate Transparency [RFC9162] or to a SCITT transparency service [RFC9943]; monitors alert an entity to issuance under its legal identifier. The log never records relationships or agreements. Revocation status is published promptly, for example in status lists [I-D.ietf-oauth-status-list]. The trust framework (Section 1.2) defines assurance levels. One level is expected to require verification by two independent issuers, so that no single issuer can create it (R3). 5.3. Discovery and Mutual Verification An entity publishes a discovery document at /.well-known/selo [RFC8615] on a domain listed in its entity certificate, optionally with a DNS record (for example SVCB [RFC9460]) or a DAWN mechanism [DAWN-CHARTER]. The document contains only the entity identifier, agent addresses, certificate chains, supported versions and algorithm suites, and is signed by a key certified by the entity certificate. A relying party checks that the domain it fetched from is one of the certified domains. An entity can also send a counterparty a signed invitation naming it by legal identifier. Before revealing anything beyond the discovery document, each agent checks the other's certificate chain to an issuer on its trust list, revocation status, log inclusion, any operator authorization, and the assurance level its owner requires. Only then is a catalog exchanged, tailored to the requester. Hamlett Expires 4 May 2027 [Page 11] Internet-Draft Selo Architecture October 2026 5.4. Need-to-Know Disclosure A requester becomes approved for a category by invitation, by a typed access request approved by a person holding a covering role credential, or automatically under a deterministic rule in the provider's signed mandate (for example "verified existing customers may use Customer categories"). Per category, the provider sets whether an invitation alone suffices. Categories a requester is not approved for are omitted from its catalog, and a request naming one receives a response indistinguishable from one naming a nonexistent category, because the existence of sensitive endpoints is itself sensitive. Approval interfaces are expected to help approvers notice lookalike identities; how they do so is left to implementations and trust frameworks. 5.5. Mandates and the Policy Checker The owner gives each agent a signed mandate containing access limits per sensitivity label, commercial limits, the most generous terms the agent may offer, and requirements to obtain from counterparties. The agent's model negotiates and composes typed proposals. Each proposal crosses an isolation boundary to the policy checker, which contains no model and evaluates each typed field against the mandate by fixed rules. Values the mandate does not cover default to refusal or escalation, never approval. Agent (model) --typed proposal--> | isolation | --> Policy checker | +------------------------+----------------------+ | | | within mandate outside, escalatable not permitted | | | sign, with a approver with covering refuse within-mandate role credential; reference counterparty gets "pending"; no answer by deadline = declined Figure 2: Policy Checker Outcomes Hamlett Expires 4 May 2027 [Page 12] Internet-Draft Selo Architecture October 2026 Every decision is recorded in a signed decision log. The counterparty learns only that a commitment was within mandate (or approved by a named, entitled person), through a within-mandate reference that identifies the mandate version and decision and binds to the mandate without revealing it; the mandate is disclosed only in an audit or dispute (R9). A provider also needs to avoid committing, across all its agreements, more platform capacity (such as request rates) than its platform account supports; how it does so is an implementation matter. 5.6. Negotiation Messages are transport independent and follow the steps of contract formation: * session and disclosure: hello, catalog-request, catalog, access- request; * negotiation: offer, counter-offer, accept, reject, withdraw; * status and completion: pending, sign, error; * existing agreements: renegotiate, terminate; and * execution support: test-confirm, suspend, resume, notice. A plain-HTTPS binding is required. Each message is a signed object, so its signature is independent of the binding; optional bindings carry the same objects over agent-to-agent protocols such as A2A [A2A] or agentproto protocols. All fields are typed. Every inbound message is validated against its schema by deterministic code before any content reaches a model, and non-conforming messages are rejected. Free text is confined to one optional field marked untrusted, shown to people and either withheld from the model or given only to a quarantined model with no tools or keys. Each message includes the digest of the preceding message in the session, forming a hash chain, plus a timestamp and nonce. The protocol version and algorithm suite are selected by a fixed rule (for example, the responder's most preferred entry in the intersection) from the signed hello messages, which are part of the chain, so stripping options from one hello is detected. Hamlett Expires 4 May 2027 [Page 13] Internet-Draft Selo Architecture October 2026 START --hello/hello--> VERIFIED --catalog--> CATALOG CATALOG --access-request--> ACCESS_PENDING ACCESS_PENDING --approved--> CATALOG (category now visible) ACCESS_PENDING --denied or timeout--> CLOSED CATALOG --offer--> NEGOTIATING (one live offer; each expires) NEGOTIATING --escalation--> PENDING_APPROVAL PENDING_APPROVAL --approved--> NEGOTIATING PENDING_APPROVAL --declined or timeout--> CLOSED NEGOTIATING --accept (digest of offer)--> ACCEPTED ACCEPTED --sign/sign (each via its checker)--> SIGNED SIGNED --> TESTING (agreement lifecycle) Any state: reject, withdraw, expiry, error, failed check --> CLOSED Figure 3: Negotiation States An accept names the digest of the exact offer accepted, and the agreement is derived from that offer by a fixed rule. Nothing is binding, and no runtime loads an agreement, until both signatures verify. Offer expiries and approval deadlines are carried as typed values in the messages. 5.7. The Access Agreement An access agreement is a JSON object canonicalized with [RFC8785]. Each party signs the canonical bytes with a detached signature (JWS [RFC7515] or COSE [RFC9052]) made with its checker signing key; each signature carries, as a signed attribute, that party's within-mandate reference and any approval references. The signatures are therefore not part of the body they sign. The body contains: Parties: Both entity identifiers, their agents, any operators, each party's runtime key or certificate (the anchor for token binding and runtime message verification), and, where commercial terms exist, payment-change notification endpoints. Interface: Endpoints (profile or custom operations), which side calls which, pull or push, formats and profile versions. Access terms: Typed values from a registry of terms, each with a type, unit, direction of generosity and a flag saying whether a runtime can enforce it: for example requests per minute, records per day, retention, permitted purposes, use for model training, data location and termination notice. Commercial terms (optional): For example payment terms, currency and protected payment details. Hamlett Expires 4 May 2027 [Page 14] Internet-Draft Selo Architecture October 2026 Legal terms: A reference to fixed legal text by address and digest, plus the typed choices it leaves open (such as governing law or liability cap). The text may be a master agreement the parties already have. Metadata: Format version, agreement identifier, version number, digest of the previous version, digest of the accept message that concluded negotiation, and digest of the rendering template. A human-readable rendering is produced from the canonical data by fixed, versioned rules, not by a model, so any party can regenerate it. The contracting parties are the entities, not their agents: replacing an agent does not affect agreements. Changing any term, endpoint or party requires a new signed version that includes the previous version's digest. Annex entries, such as test confirmations, suspensions and mapping-update notices, are appended to the agreement record without a new version, and the parties periodically countersign the latest annex digest. 5.8. Agreement Lifecycle SIGNED --> TESTING --both confirm--> ACTIVE TESTING --fail or timeout--> CLOSED ACTIVE --suspend--> SUSPENDED (some endpoints or all) SUSPENDED --cause fixed, re-test passes--> ACTIVE ACTIVE --renegotiate--> new version signed and tested --> new version ACTIVE, old version SUPERSEDED ACTIVE or SUSPENDED --terminate--> TERMINATED Figure 4: Agreement Lifecycle After both signatures, the agreement enters TESTING. The provider issues test-scoped credentials that its gateway honors only against a test data source, such as a platform sandbox, a validate-only mode or synthetic records. The runtimes exchange sample records through every endpoint and mapping and validate them against the profile schema and invariants. Each runtime signs a test-confirm annex entry listing endpoints exercised and digests of the profile-format sample records and of its own mappings. Only when both confirmations are recorded does the agreement become ACTIVE and production credentials exist. Hamlett Expires 4 May 2027 [Page 15] Internet-Draft Selo Architecture October 2026 Runtimes refuse to operate outside the signed agreement. A failure affecting some endpoints, such as mapping output that violates the profile or an expired attestation, suspends only those endpoints; an endpoint resumes after the cause is fixed and its test passes again, without renegotiation. A platform API change usually requires only that the affected owner update its own mapping (Section 5.10). Disputes are resolved by the parties, using the signed records. 5.9. Data Plane: Tokens and Gateway On activation, the provider issues the consumer short-lived OAuth access tokens identifying the agreement and version and bound, by a confirmation claim using DPoP [RFC9449] or mutual TLS [RFC8705], to the consumer runtime key named in the agreement. Tokens are refreshed at a token endpoint that checks agreement status. The provider's platform credentials stay in a vault used only by its gateway. On every call, the gateway validates the token and proof of possession; checks that the agreement version is ACTIVE (or TESTING for a test token), that the endpoint is not suspended and that neither party is revoked; checks the endpoint and operation against the interface; removes fields outside the agreement; enforces rate, volume and time limits; executes the owner's pinned mapping and calls the platform API; and appends an entry to a signed, hash-chained private log of call metadata (not record contents). These logs make terms that cannot be enforced technically, such as purpose restrictions, demonstrable. Models may be used at run time for monitoring only. An active agreement can also be exposed to the consumer's own AI assistant as tools, for example an MCP [MCP] server generated from the agreement's interface, limited to operations within the agreement. 5.10. Capability Profiles and Entity-Owned Mappings Capability profiles build on existing business-document standards such as UBL [UBL], ISO 20022 [ISO20022] and XBRL Global Ledger [XBRL-GL]. Operations no profile covers are described as custom endpoints in OpenAPI [OPENAPI], with a field mapping confirmed by both parties in negotiation. Each entity translates once, between its own platform as configured and each profile it uses. Its mapping is written in a sandboxed, deterministic language (for example JSONata [JSONATA] with no network, file, clock or random access, bounded execution and exact decimal arithmetic for money); passes the profile's conformance tests Hamlett Expires 4 May 2027 [Page 16] Internet-Draft Selo Architecture October 2026 against the owner's platform; has its money-bearing fields confirmed by a person; and is signed and pinned by digest, so the bytes executed are the bytes tested. This document places no requirement on how a mapping is produced. There is no shared adapter library, so a defective mapping affects only its owner's agreements. When an owner changes its own mapping, it re-tests and re-signs it and records a signed mapping-update notice in the agreement record; the affected endpoints are re-tested, and no new agreement version is needed. 5.11. Protected Payment-Detail Changes Payment details are a protected part of the commercial terms. A change needs a new agreement version approved by a person holding a finance role (an agent's mandate alone never suffices); direct notice to the paying side's people at notification endpoints in the agreement, by a path that bypasses both agents; a waiting period (for example 72 hours) during which the previous details remain in effect and either side can cancel; and confirmation by a person on the paying side before the first payment to the new details. Selo moves no money; payment approval rules can be agreement terms consumed by existing payment systems. 5.12. Compliance No compliance framework is built into the protocol. Attestations can be presented as credentials; requirements can be typed terms that a mandate attaches to a sensitivity label; if a required attestation lapses, only the dependent endpoints are suspended. The signed transcripts, agreement records, decision logs and call logs are verifiable offline, and implementations may offer them as evidence for audits. 6. Relationship to Existing Work Most building blocks of Selo already exist or are being developed elsewhere. This section summarizes the closest work. 6.1. IETF Working Groups OAuth: Data-plane tokens use DPoP [RFC9449] or mutual TLS [RFC8705]. Rich Authorization Requests [RFC9396] carry typed grants, Token Exchange [RFC8693] addresses delegation, and Transaction Tokens [I-D.ietf-oauth-transaction-tokens] carry context within a trust domain. An agreement-bound token is expected to be an OAuth profile. GNAP: GNAP [RFC9635] negotiates an access grant between a client and Hamlett Expires 4 May 2027 [Page 17] Internet-Draft Selo Architecture October 2026 an authorization server. Selo's agreement could be expressed as, or alongside, a grant. WIMSE: WIMSE [I-D.ietf-wimse-arch] [I-D.ietf-wimse-aims] addresses workload and agent identity. [I-D.reece-wimse-cross-org-delegation] states requirements for delegation across organizations, and [I-D.hulea-wimse-agent-mandate] proposes verifiable mandates for agents acting across administrative domains, with limits evaluated by the relying party. DAWN, agentproto and AUDIT: DAWN [DAWN-CHARTER] covers minimal agent discovery, which Selo's discovery should reuse. agentproto [AGENTPROTO-CHARTER] covers agent dialog protocols, over which Selo messages could be carried. AUDIT [AUDIT-BOF] concerns traceability of delegation and interactions; Selo's transcripts and decision logs are relevant inputs. SCITT and RATS: A SCITT transparency service [RFC9943] is a candidate issuance log. Remote attestation [RFC9334] could let a counterparty or an owner verify that a policy checker runs isolated and unmodified. 6.2. Individual Drafts on Agent Identity, Mandates and Negotiation AGTP family: AGTP [I-D.hood-independent-agtp] defines an agent transfer protocol, with companion drafts on trust and verification [I-D.hood-agtp-trust], merchant identity [I-D.hood-agtp-merchant-identity], and binding agents to legal entities through the LEI and vLEI, including role credentials that express the human authorization chain behind an agent [I-D.hood-agtp-lei]. This substantially overlaps Selo's entity- to-agent binding (R1, R2). AGTP does not define bilateral agreements or their execution. Mandates: [I-D.hulea-wimse-agent-mandate], [I-D.martinez-itp-agent-mandates] (mandates for invoice agents, with approval thresholds) and [I-D.sato-soos-mjwt] (a mandate JWT) define signed agent mandates. In these, the limits are generally visible to the party evaluating them. Negotiation and agreement evidence: [I-D.singh-rajput-rnp] defines signed offer, counter and accept messages with undisclosed internal limits. [I-D.newton-agreement-evidence] defines countersigned evidence of a negotiated outcome, excluding legal identity and terms. Agent identity and naming: [I-D.le-agent-passport] defines agent Hamlett Expires 4 May 2027 [Page 18] Internet-Draft Selo Architecture October 2026 passports, delegation receipts and a transparency log. [I-D.narajala-courtney-ansv2] defines a domain-anchored agent name service with assurance tiers. 6.3. Work Outside the IETF Eclipse Dataspace Protocol: The Dataspace Protocol [DSP] defines catalogs, a contract-negotiation state machine and a transfer process between participants in data spaces, with usage policies in ODRL [ODRL]. It is the closest existing design to Selo's control plane and should be evaluated as a base. vLEI and OpenID Federation: The verifiable LEI [VLEI] provides organizational identity and role credentials through qualified issuers, and is a candidate trust anchor. OpenID Federation [OIDFED] provides trust chains and entity statements suited to trust lists. UMA and sector consent frameworks: UMA 2.0 [UMA] lets a resource owner set policies for third-party access. Open banking and FDX [FDX], with the FAPI security profile [FAPI2], already provide typed consent, revocation, accredited-recipient directories and conformance testing within the financial sector, under sector governance. A2A and MCP: A2A [A2A] is a candidate binding. MCP [MCP] connects a model to tools; an active agreement can be exposed to the consumer's assistant as MCP tools. Business-document networks: EDI, UBL [UBL] and Peppol [PEPPOL] show that canonical documents and secure exchange between organizations work at scale under governance, and that per-organization configuration remains the hard part. 6.4. Why Composition Alone Seems Insufficient One could assemble a vLEI role chain, a mandate draft, a RAR or GNAP grant, DPoP, a SCITT log and sector-style consent. The author believes four properties are still missing: 1. The agreement is bilateral and binds the consumer too. An OAuth or GNAP grant records one side's authorization decision; there is no common object for the consumer's obligations, such as retention, purpose and no model training, signed by both entities. 2. Each party's limits stay hidden from the counterparty, while its commitments remain attributable and auditable. Hamlett Expires 4 May 2027 [Page 19] Internet-Draft Selo Architecture October 2026 3. Execution is tied to the tested, signed artifact: production credentials exist only for an agreement version tested end to end through the exact mappings that will run. 4. Either side can change its own mapping, for example after a platform upgrade, without renegotiating, while the change is still recorded, re-tested and visible to the counterparty. 6.5. Possible Division of Work If the community agrees the problem is worth pursuing, one possible split is: the agreement object and negotiation messages as new work (venue to be determined through DISPATCH, possibly agentproto); agreement-bound tokens as an OAuth profile; mandate representation coordinated with WIMSE; discovery through DAWN; issuance logging through SCITT; and issuer accreditation, trust lists, capability profiles and conformance tests in an external trust framework. 7. Questions for the Community 1. Is the problem worth solving at the IETF, and is the proposed core in Section 1.1 the right scope? 2. Should the agreement and negotiation build on the Eclipse Dataspace Protocol, GNAP or another existing design rather than be defined anew? 3. Which existing credential, mandate, transparency and token formats should be profiled, and where are new definitions unavoidable? 4. How should the work coordinate with OAuth, WIMSE, DAWN, agentproto, AUDIT and SCITT? 8. Security Considerations Verified identifiers solve attribution but do not on their own prevent abuse: identities can be cheap, legitimate identities are compromised, and model-based agents read the other side's input. The main threats considered so far, with the architectural response: Prompt injection: typed messages validated before any model sees them, quarantined free text, and a policy checker that signs only proposals passing deterministic checks against the signed mandate. Compromised agent with many relationships: short-lived agent keys, narrow agreements and gateway-enforced volume ceilings. Hamlett Expires 4 May 2027 [Page 20] Internet-Draft Selo Architecture October 2026 Policy checker or operator compromise: isolation, entity-signed mandates, decision logs, and owners certifying their own keys so an operator cannot mint new identities. Shell companies and lookalikes: assurance levels per sensitivity label, issuance-log monitoring and the invitation route. Issuer compromise: public logging of issuance and revocation, and assurance levels requiring two independent issuers. Key theft: short-lived agent keys and rotation only to a pre- committed next entity key. Reconnaissance and price fishing: no catalog before mutual verification, hidden categories, and limits on price disclosure. Malicious or faulty mapping: entity-owned, sandboxed, conformance- tested, pinned mappings with human-confirmed money fields. Replay, downgrade and token theft: hash-chained signed transcripts, nonces, signed hello messages, and short-lived key-bound tokens checked against agreement status on every call. Data misuse within an agreement: purpose and training restrictions are recorded as terms and made demonstrable through logs; enforcement is legal. Operators and gateways concentrate many owners' platform credentials and are high-value targets. Discovery, status and log services are targets for denial of service. 8.1. Open Security Issues The following issues are known and not yet resolved by this architecture: * payment details carried inside data-plane records (for example a payee account in an invoice) could bypass the protected payment- change process; * an attacker could redirect the payment-change notification endpoints before changing payment details; * material signed with a key before its compromise was detected (certificates, mandates, invitations, agreements) is not yet invalidated by any defined mechanism; Hamlett Expires 4 May 2027 [Page 21] Internet-Draft Selo Architecture October 2026 * sensitivity labels are chosen by the provider, which matters when the consumer's own data flows to the provider; * which keys may sign invitations, and their lifetime and reuse, are undefined; * how the consumer runtime key is first authenticated at the token endpoint (token bootstrap) is undefined; and * whether relying parties and gateways fail open or closed when revocation or agreement status cannot be obtained is undefined. 9. Privacy Considerations Following the threat categories of [RFC6973]: Surveillance and correlation: The issuance log never records relationships or agreements. However, per-agent certificate entries, their timing and the operators named in them can reveal how many agents an entity runs and hint at when relationships start or end; status queries can reveal who is checking whom. Logging granularity and status-checking methods need further work. Identification and disclosure: Entity facts beyond the public certificate are disclosed selectively, one claim at a time, at a counterparty's request. Counterparties with leverage could demand more than they need; purpose-limited disclosure requests need further work. Secondary use: Purpose, retention and model-training terms are typed and recorded; mandates are disclosed only in audit or dispute. Stored-data compromise: Call logs record metadata, not record contents. Transcripts, decision logs and approvals identify people (approvers) and need retention limits. Third-party data subjects: The records flowing under an agreement often concern people who are not parties, such as employees or customers. Agreements need typed terms for processing roles and data-protection obligations, and testing should use synthetic data where possible. Individuals as parties are out of scope for this version. Publishing their certificates in an append-only public log would conflict with erasure rights, so a design for individuals would need a different approach. An operator hosting agents for several owners should keep each owner's offers, limits and terms isolated. Hamlett Expires 4 May 2027 [Page 22] Internet-Draft Selo Architecture October 2026 10. IANA Considerations This document has no IANA actions. A protocol specification developed from it would be expected to register the well-known URI suffix "selo" [RFC8615] and to establish registries for message types, typed access terms and algorithm suites. 11. Informative References [A2A] A2A Project, "Agent2Agent (A2A) Protocol Specification", . [AGENTPROTO-CHARTER] IETF, "Agent Communication Protocols (agentproto) Working Group Charter", 2026, . [AUDIT-BOF] IETF, "Agent Use of Delegation and Interaction Traceability (audit)", 2026, . [DAWN-CHARTER] IETF, "Discovery of Agents With Names (dawn) Working Group Charter", 2026, . [DSP] Eclipse Foundation, "Eclipse Dataspace Protocol", . [FAPI2] OpenID Foundation, "FAPI 2.0 Security Profile", . [FDX] Financial Data Exchange, Inc., "Financial Data Exchange (FDX)", . [I-D.hood-agtp-lei] Hood, C., "AGTP Binding to the Legal Entity Identifier (LEI and vLEI)", Work in Progress, Internet-Draft, draft- hood-agtp-lei-01, 30 October 2026, . [I-D.hood-agtp-merchant-identity] Hood, C., "AGTP Merchant Identity and Agentic Commerce Binding", Work in Progress, Internet-Draft, draft-hood- Hamlett Expires 4 May 2027 [Page 23] Internet-Draft Selo Architecture October 2026 agtp-merchant-identity-03, 30 October 2026, . [I-D.hood-agtp-trust] Hood, C., "AGTP Trust and Verification Specification", Work in Progress, Internet-Draft, draft-hood-agtp-trust- 03, 30 October 2026, . [I-D.hood-independent-agtp] Hood, C., "Agent Transfer Protocol (AGTP)", Work in Progress, Internet-Draft, draft-hood-independent-agtp-10, 30 October 2026, . [I-D.hulea-wimse-agent-mandate] Hulea, C., "Verifiable Mandates for Agents Acting Across Administrative Domains", Work in Progress, Internet-Draft, draft-hulea-wimse-agent-mandate-00, 23 October 2026, . [I-D.ietf-oauth-sd-jwt-vc] Terbu, O., Fett, D., and B. Campbell, "SD-JWT-based Verifiable Digital Credentials (SD-JWT VC)", Work in Progress, Internet-Draft, draft-ietf-oauth-sd-jwt-vc-23, 27 October 2026, . [I-D.ietf-oauth-status-list] Looker, T., Bastian, P., and C. Bormann, "Token Status List (TSL)", Work in Progress, Internet-Draft, draft-ietf- oauth-status-list-21, 21 June 2026, . [I-D.ietf-oauth-transaction-tokens] Tulshibagwale, A., Fletcher, G., and P. Kasselman, "Transaction Tokens", Work in Progress, Internet-Draft, draft-ietf-oauth-transaction-tokens-11, 30 July 2026, . [I-D.ietf-wimse-aims] Kasselman, P., Lombardo, J., Rosomakho, Y., Campbell, B., Steele, N., and A. Parecki, "AI Identity Management Hamlett Expires 4 May 2027 [Page 24] Internet-Draft Selo Architecture October 2026 System", Work in Progress, Internet-Draft, draft-ietf- wimse-aims-00, 15 September 2026, . [I-D.ietf-wimse-arch] Salowey, J. A., Rosomakho, Y., and H. Tschofenig, "Workload Identity in a Multi System Environment (WIMSE) Architecture", Work in Progress, Internet-Draft, draft- ietf-wimse-arch-08, 6 July 2026, . [I-D.le-agent-passport] Le, B., "Agent Passports and Delegation Receipts for Autonomous Software Agents", Work in Progress, Internet- Draft, draft-le-agent-passport-00, 30 October 2026, . [I-D.martinez-itp-agent-mandates] GarcĂ­a-Villarrubia, C. M., "Invoice Trust Protocol (ITP): Agent Mandates", Work in Progress, Internet-Draft, draft- martinez-itp-agent-mandates-00, 29 October 2026, . [I-D.narajala-courtney-ansv2] Courtney, S., Narajala, V. S., Huang, K., Habler, I., and A. Sheriff, "Agent Name Service v2 (ANS): A Domain- Anchored Identity Layer for Autonomous AI Agents", Work in Progress, Internet-Draft, draft-narajala-courtney- ansv2-02, 26 October 2026, . [I-D.newton-agreement-evidence] Newton, E., "Agreement Evidence for Multi-Party Agent Negotiation", Work in Progress, Internet-Draft, draft- newton-agreement-evidence-00, 4 October 2026, . Hamlett Expires 4 May 2027 [Page 25] Internet-Draft Selo Architecture October 2026 [I-D.reece-wimse-cross-org-delegation] Reece, M., "Cross-Organizational Delegation for Workload and Agent Identity: Problem Statement and Requirements", Work in Progress, Internet-Draft, draft-reece-wimse-cross- org-delegation-02, 31 August 2026, . [I-D.sato-soos-mjwt] Sato, "The Mandate JWT (MJWT) for Agentic AI Systems", Work in Progress, Internet-Draft, draft-sato-soos-mjwt-06, 7 September 2026, . [I-D.singh-rajput-rnp] Singh, H. and G. Rajput, "Rizz Negotiation Protocol (RNP) Version 1.0", Work in Progress, Internet-Draft, draft- singh-rajput-rnp-00, 19 October 2026, . [ISO20022] ISO, "ISO 20022 Universal financial industry message scheme", . [JSONATA] JSONata Project, "JSONata: JSON query and transformation language", . [MCP] Model Context Protocol Project, "Model Context Protocol Specification", . [ODRL] W3C, "ODRL Information Model 2.2", February 2018, . [OIDFED] OpenID Foundation, "OpenID Federation 1.0", . [OPENAPI] OpenAPI Initiative, "OpenAPI Specification", . [PEPPOL] OpenPeppol AISBL, "Peppol eDelivery Network Specifications", . [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R., and W. Polk, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, . Hamlett Expires 4 May 2027 [Page 26] Internet-Draft Selo Architecture October 2026 [RFC6973] Cooper, A., Tschofenig, H., Aboba, B., Peterson, J., Morris, J., Hansen, M., and R. Smith, "Privacy Considerations for Internet Protocols", RFC 6973, DOI 10.17487/RFC6973, July 2013, . [RFC7515] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Signature (JWS)", RFC 7515, DOI 10.17487/RFC7515, May 2015, . [RFC8615] Nottingham, M., "Well-Known Uniform Resource Identifiers (URIs)", RFC 8615, DOI 10.17487/RFC8615, May 2019, . [RFC8693] Jones, M., Nadalin, A., Campbell, B., Ed., Bradley, J., and C. Mortimore, "OAuth 2.0 Token Exchange", RFC 8693, DOI 10.17487/RFC8693, January 2020, . [RFC8705] Campbell, B., Bradley, J., Sakimura, N., and T. Lodderstedt, "OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens", RFC 8705, DOI 10.17487/RFC8705, February 2020, . [RFC8785] Rundgren, A., Jordan, B., and S. Erdtman, "JSON Canonicalization Scheme (JCS)", RFC 8785, DOI 10.17487/RFC8785, June 2020, . [RFC9052] Schaad, J., "CBOR Object Signing and Encryption (COSE): Structures and Process", STD 96, RFC 9052, DOI 10.17487/RFC9052, August 2022, . [RFC9162] Laurie, B., Messeri, E., and R. Stradling, "Certificate Transparency Version 2.0", RFC 9162, DOI 10.17487/RFC9162, December 2021, . [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, . [RFC9396] Lodderstedt, T., Richer, J., and B. Campbell, "OAuth 2.0 Rich Authorization Requests", RFC 9396, DOI 10.17487/RFC9396, May 2023, . Hamlett Expires 4 May 2027 [Page 27] Internet-Draft Selo Architecture October 2026 [RFC9449] Fett, D., Campbell, B., Bradley, J., Lodderstedt, T., Jones, M., and D. Waite, "OAuth 2.0 Demonstrating Proof of Possession (DPoP)", RFC 9449, DOI 10.17487/RFC9449, September 2023, . [RFC9460] Schwartz, B., Bishop, M., and E. Nygren, "Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)", RFC 9460, DOI 10.17487/RFC9460, November 2023, . [RFC9635] Richer, J., Ed. and F. Imbault, "Grant Negotiation and Authorization Protocol (GNAP)", RFC 9635, DOI 10.17487/RFC9635, October 2024, . [RFC9901] Fett, D., Yasuda, K., and B. Campbell, "Selective Disclosure for JSON Web Tokens", RFC 9901, DOI 10.17487/RFC9901, November 2025, . [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, . [UBL] OASIS, "Universal Business Language Version 2.4", . [UMA] Kantara Initiative, "User-Managed Access (UMA) 2.0 Grant for OAuth 2.0 Authorization", January 2018, . [VLEI] Global Legal Entity Identifier Foundation, "Introducing the Verifiable LEI (vLEI)", . [XBRL-GL] XBRL International, "XBRL Global Ledger Taxonomy Framework", . Appendix A. Illustrative Data Objects These objects are illustrative only; field names and values are examples, not proposed formats. Identifiers use an "example:" prefix, and some digests are elided. Hamlett Expires 4 May 2027 [Page 28] Internet-Draft Selo Architecture October 2026 A.1. Access Agreement Body The body below is canonicalized and signed by each party with a detached signature; the signatures and within-mandate references are not part of it. {"format":"1.0","agreement_id":"agr-5f2e","version":1, "prev_version":null, "parties":{ "provider":{"entity":"example:ent:acme-supply", "agent":"example:agent:acme-supply:a1", "runtime_key_jkt":"5d1c..."}, "consumer":{"entity":"example:ent:ledgerly", "agent":"example:agent:ledgerly:k2", "runtime_key_jkt": "0ZcOCORZNYy-DWpqq30jZyJGHTN0d2HglBV3uiguA4I"}}, "interface":[{"id":"e1","category":"finance.ledger", "profile":"gl-transactions/1.2","op":"read", "caller":"consumer","direction":"pull", "format":"application/json"}], "access":{"requests_per_minute":30,"max_records_per_day":20000, "retention_days":365, "purposes":["bookkeeping","tax-preparation"], "ai_training":false,"data_location":"US", "termination_notice_days":30}, "commercial":null, "legal":{"uri":"https://terms.example.org/data-access/2.0", "digest":"sha256:c0ff...", "choices":{"governing_law":"US-DE", "liability_cap":{"amount":"50000.00", "currency":"USD"}}}, "accept_digest":"sha256:ab12...", "render_template":"sha256:7d00..."} A.2. Agreement-Bound Access Token Claims Issued at 2026-11-12T17:30:00Z, after both test confirmations were recorded at 17:20:00Z; valid for one hour. {"iss":"https://gw.acme-supply.example", "sub":"example:ent:ledgerly", "aud":"https://gw.acme-supply.example/p/gl", "agreement":"agr-5f2e","agreement_version":1, "agreement_digest":"sha256:9b44...","scope":"e1:read", "cnf":{"jkt":"0ZcOCORZNYy-DWpqq30jZyJGHTN0d2HglBV3uiguA4I"}, "iat":1794504600,"exp":1794508200,"jti":"t-71c2"} Hamlett Expires 4 May 2027 [Page 29] Internet-Draft Selo Architecture October 2026 Acknowledgments The author thanks the authors of the work cited in Section 6, on which this document builds. Author's Address James Bradley Hamlett Email: bhamlett@gmail.com Hamlett Expires 4 May 2027 [Page 30]