<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.38 (Ruby 3.4.9) -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-xu-oan-resource-identity-discovery-01" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="OAN Resource Discovery">Trust-Governed Resource Identity and Discovery Architecture for OpenAgenet</title>
    <author initials="J." surname="Xu" fullname="Jinliang Xu">
      <organization>CAICT</organization>
      <address>
        <postal>
          <street>No. 52, Huayuan North Road</street>
          <city>Beijing</city>
          <region>Haidian District</region>
          <code>100191</code>
          <country>China</country>
        </postal>
        <email>xujinliang@caict.ac.cn</email>
      </address>
    </author>
    <author initials="B." surname="Li" fullname="Bingqi Li">
      <organization>CAICT</organization>
      <address>
        <postal>
          <street>No. 52, Huayuan North Road</street>
          <city>Beijing</city>
          <region>Haidian District</region>
          <code>100191</code>
          <country>China</country>
        </postal>
        <email>libingqi@caict.ac.cn</email>
      </address>
    </author>
    <author initials="R." surname="Zhu" fullname="Runkai Zhu">
      <organization>CAICT</organization>
      <address>
        <postal>
          <street>No. 52, Huayuan North Road</street>
          <city>Beijing</city>
          <region>Haidian District</region>
          <code>100191</code>
          <country>China</country>
        </postal>
        <email>zhurunkai@caict.ac.cn</email>
      </address>
    </author>
    <author initials="Z." surname="Liu" fullname="Zhiruo Liu">
      <organization>CAICT</organization>
      <address>
        <postal>
          <street>No. 52, Huayuan North Road</street>
          <city>Beijing</city>
          <region>Haidian District</region>
          <code>100191</code>
          <country>China</country>
        </postal>
        <email>liuzhiruo@caict.ac.cn</email>
      </address>
    </author>
    <date year="2026" month="July" day="29"/>
    <area>General</area>
    <workgroup>Network Working Group</workgroup>
    <abstract>
      <?line 59?>

<t>Open agent ecosystems increasingly include heterogeneous resource products:
callable agents, skills, Model Context Protocol (MCP) servers, ordinary tools,
and application programming interfaces.  A user or orchestrator often needs to
discover such resources before it can decide which interaction protocol,
credential, endpoint, or artifact to use.  Discovery alone is not sufficient:
the relying party also needs to know which resource identity was registered,
which authority accepted it, whether the accepted package is current, and
whether the Discovery service is authorized to expose it.</t>
      <t>This document describes a trust-governed resource identity and discovery
architecture for OpenAgenet (OAN).  The architecture separates resource
subjects, resource providers, Registrar Nodes, a Root Node, Discovery Nodes,
content distribution, and resource consumers.  It defines architectural roles,
trust boundaries, resource identity expectations, Root-verified package
semantics, registration and verification behavior, authorization-aware
Discovery, and pre-use verification requirements.</t>
      <t>The architecture can be profiled with Decentralized Identifier (DID) document
concepts and credential-based assertions.  This document does not define a new
DID method, media type, URI scheme, transport protocol, ranking algorithm,
blockchain protocol, agent invocation protocol, or product-native schema.</t>
    </abstract>
  </front>
  <middle>
    <?line 83?>

<section anchor="about-this-document">
      <name>About This Document</name>
      <t>This note is to be removed before publishing as an RFC.</t>
      <t>The OpenAgenet project includes open-source implementation work and related
materials.  The project repository set can be found at
<eref target="https://github.com/OpenAgenet">https://github.com/OpenAgenet</eref>.</t>
      <t>The implementation is provided as running code and engineering feedback for
this draft.  It is not a substitute for the protocol requirements in this
document, and implementation-specific APIs, repository layouts, database
schemas, operational scripts, and deployment choices are not specified by this
document.  The intent of this draft is to describe interoperable behavior that
can be implemented by independent implementations using different codebases,
deployment models, and underlying technologies.</t>
    </section>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Open agent ecosystems are moving beyond a single "agent service" abstraction.
They can include callable agent services, reusable skills, MCP-compatible
servers, ordinary HTTP or RPC tools, and domain-specific APIs.  These resources
may be implemented by different operators and may be invoked through different
protocols.  A relying party therefore needs a layer that can answer trust and
discovery questions before product-specific interaction begins:</t>
      <t><list style="symbols">
          <t>What stable resource identity is being advertised?</t>
          <t>What type of resource is it?</t>
          <t>Which provider or controller is bound to the resource identity?</t>
          <t>Which Registrar checked the registration evidence?</t>
          <t>Which Root authority accepted the versioned package?</t>
          <t>Which Discovery Node is authorized to expose the resource for the requested
domain?</t>
          <t>Which hashes, proofs, versions, and lifecycle states must be verified before
use?</t>
        </list></t>
      <t>OpenAgenet (OAN) is an open architecture for resource identity, governed
registration, trusted package publication, authorization-aware discovery, and
pre-use verification.  OAN is intentionally protocol-neutral at the interaction
layer.  After OAN checks pass, a consumer can use MCP, A2A, HTTP, RPC, a Skill
runtime, or another product-native protocol.  OAN does not replace those
protocols; it supplies the trust path used to find and approach resources
safely.</t>
      <t>The central abstraction in this document is a discoverable resource, not only
an agent.  A discoverable resource is a product-shaped subject with a stable
resource identifier, resource metadata, versioned package material, and
verifiable Root acceptance.  The initial resource types are:</t>
      <t><list style="symbols">
          <t><spanx style="verb">agent_service</spanx></t>
          <t><spanx style="verb">skill</spanx></t>
          <t><spanx style="verb">mcp_server</spanx></t>
          <t><spanx style="verb">tool_api</spanx></t>
        </list></t>
      <t>This resource-first model allows OAN to support common agent ecosystem assets
without forcing all of them into one runtime protocol or one artifact format.</t>
      <section anchor="problem-statement">
        <name>Problem Statement</name>
        <t>Closed platforms can combine account identity, approval workflow, search,
artifact hosting, ranking, and invocation policy into one administrative
system.  In an open multi-operator environment, those functions need clearer
boundaries.  A Discovery result should not be trusted merely because it appears
in a catalog.  A CDN location should not become a trust anchor.  A local
ranking score should not override revocation state.  A Registrar should not be
able to register a resource whose subject key it never verified.  A valid old
package should not silently remain current after the Root has accepted a newer
or revoked state.</t>
        <t>The architectural gap is the lack of a common trust path that binds:</t>
        <t><list style="symbols">
            <t>stable resource identity;</t>
            <t>resource type and semantic metadata;</t>
            <t>subject-control proof;</t>
            <t>Registrar-issued registration evidence;</t>
            <t>Registrar authorization state;</t>
            <t>Root verification and package acceptance;</t>
            <t>package, metadata, and identity-document hashes;</t>
            <t>Discovery authorization scope;</t>
            <t>signed Discovery response provenance; and</t>
            <t>pre-use verification by consumers.</t>
          </list></t>
        <t>This document specifies that path at the architectural level.</t>
      </section>
      <section anchor="scope">
        <name>Scope</name>
        <t>This document specifies functional expectations for interoperable OAN
deployments.  A compliant implementation is expected to interoperate through
the trust semantics described here, not through shared source code, a shared
database, a single hosted service, or a single vendor-operated deployment.  It
covers:</t>
        <t><list style="symbols">
            <t>architectural roles and their trust boundaries;</t>
            <t>discoverable resource types and identity expectations;</t>
            <t>common resource package semantics;</t>
            <t>Root proof and hash-binding requirements;</t>
            <t>registration and Root verification behavior;</t>
            <t>infrastructure authorization and governance-state boundaries;</t>
            <t>CDN distribution semantics;</t>
            <t>authorization-aware Discovery behavior;</t>
            <t>lifecycle, versioning, and consistency expectations;</t>
            <t>pre-use verification by resource consumers; and</t>
            <t>security and privacy considerations.</t>
          </list></t>
        <t>This document uses normative language to describe architectural requirements.
It does not define a complete wire format.  Future OAN profiles can define
specific JSON schemas, media types, HTTP APIs, canonicalization algorithms, DID
method syntax, or test vectors.</t>
      </section>
      <section anchor="open-interoperability-principles">
        <name>Open Interoperability Principles</name>
        <t>OAN is intended to support an open multi-operator ecosystem.  The architecture
therefore follows these principles:</t>
        <t><list style="symbols">
            <t>interoperability is based on verifiable protocol objects and role behavior,
not on a single implementation, source repository, deployment operator, or
hosted service;</t>
            <t>storage, transport, database, programming language, and user-interface
choices are deployment matters unless a future profile explicitly
standardizes a wire protocol or object format;</t>
            <t>open-source code can provide implementation experience and test material, but
conformance is determined by observable behavior and verification results;</t>
            <t>extensions are expected, but critical extensions need explicit criticality
and failure behavior so that unsupported features do not silently weaken
trust decisions;</t>
            <t>local policy, ranking, semantic search, and review workflow can vary by
operator, while the cryptographic verification path needs stable semantics;
and</t>
            <t>a Root Node is scoped to a trust domain.  This document does not define a
single global Root, require all deployments to use the same administrative
authority, or prevent future federation profiles among trust domains.</t>
          </list></t>
      </section>
      <section anchor="non-goals">
        <name>Non-Goals</name>
        <t>This document does not define:</t>
        <t><list style="symbols">
            <t>a new DID method or identifier syntax;</t>
            <t>a new URI scheme;</t>
            <t>a new media type;</t>
            <t>a new transport protocol;</t>
            <t>a replacement for MCP, A2A, HTTP APIs, RPC, Skill packaging, or other
interaction protocols;</t>
            <t>a ranking, recommendation, reputation, or semantic retrieval algorithm;</t>
            <t>a business ontology or product marketplace policy;</t>
            <t>a blockchain protocol or smart contract interface;</t>
            <t>a Root key-management ceremony;</t>
            <t>a database schema, repository layout, or implementation language;</t>
            <t>a requirement to use any particular open-source codebase or hosted service;</t>
            <t>a user interface or operator review workflow; or</t>
            <t>a mandatory artifact hosting model for Skill files, API specifications, MCP
manifests, executable code, or other product-native payloads.</t>
          </list></t>
      </section>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>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
<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as
shown here.</t>
        <dl>
          <dt>Agent Service:</dt>
          <dd>
            <t>A callable business resource, represented as an OAN resource of type
<spanx style="verb">agent_service</spanx>.  It can expose an agent-to-agent endpoint, an HTTP endpoint,
an RPC endpoint, an MCP-related binding, or another product-native
interaction endpoint.</t>
          </dd>
          <dt>Capability Domain:</dt>
          <dd>
            <t>A governance-recognized domain used to determine whether a Discovery Node is
authorized to expose a resource.  Capability domains are distinct from local
custom tags and ranking features.</t>
          </dd>
          <dt>CDN Service:</dt>
          <dd>
            <t>A content distribution service that stores and serves Root-published
packages, identity documents, metadata, manifests, and related artifacts.
A CDN Service is not a protocol trust authority in this architecture.</t>
          </dd>
          <dt>Discoverable Resource:</dt>
          <dd>
            <t>A resource that can be registered, Root-verified, distributed, indexed,
discovered, and verified before use.  Initial OAN resource types are
<spanx style="verb">agent_service</spanx>, <spanx style="verb">skill</spanx>, <spanx style="verb">mcp_server</spanx>, and <spanx style="verb">tool_api</spanx>.</t>
          </dd>
          <dt>Discovery Node:</dt>
          <dd>
            <t>An infrastructure service that synchronizes Root-verified resource packages,
verifies them, applies authorization-domain filtering, builds local indexes,
and returns signed discovery responses.</t>
          </dd>
          <dt>Governance State:</dt>
          <dd>
            <t>The current authorization lifecycle state of an infrastructure subject, such
as a Registrar Node, Discovery Node, or VC issuer.  Governance state is
separate from ordinary resource package lifecycle state.</t>
          </dd>
          <dt>MCP Server:</dt>
          <dd>
            <t>A resource of type <spanx style="verb">mcp_server</spanx> that describes an MCP-compatible server and
its OAN-facing identity, endpoint, metadata, and verification material.</t>
          </dd>
          <dt>Registrar Node:</dt>
          <dd>
            <t>An infrastructure service that assists resource providers, checks candidate
resource material, verifies subject control, issues registration evidence,
and submits complete registration packages to the Root Node.</t>
          </dd>
          <dt>Resource Consumer:</dt>
          <dd>
            <t>A user agent, application, orchestrator, service, or other relying party that
queries Discovery and verifies resource material before download, invocation,
or other use.</t>
          </dd>
          <dt>Resource Identity Document:</dt>
          <dd>
            <t>The identity-facing document for a discoverable resource.  A deployment can
express it as a DID Document profile or another signed representation that
provides equivalent identifier, key, endpoint or artifact-reference,
metadata, and verification properties.</t>
          </dd>
          <dt>Resource Package:</dt>
          <dd>
            <t>A versioned Root-verified package that binds a resource identifier, resource
type, package version, resource identity document, resource metadata, hashes,
lifecycle state, and Root proof.</t>
          </dd>
          <dt>Resource Provider:</dt>
          <dd>
            <t>The subject, operator, or organization responsible for preparing and
controlling a discoverable resource.</t>
          </dd>
          <dt>Root Node:</dt>
          <dd>
            <t>The trust anchor role for one OAN trust domain.  It verifies Registrar
submissions, accepts or rejects resource packages, signs Root proofs,
publishes package facts, maintains or consumes infrastructure authorization
state, and coordinates downstream distribution.  A Root Node is not assumed
to be globally unique across all OAN deployments.</t>
          </dd>
          <dt>Skill:</dt>
          <dd>
            <t>A resource of type <spanx style="verb">skill</spanx> that describes a capability.  A Skill can refer to
one or more Agent Service, MCP Server, or Tool/API implementations.  The
Skill artifact itself can be hosted outside OAN, provided that OAN metadata
includes verifiable references.</t>
          </dd>
          <dt>Tool/API:</dt>
          <dd>
            <t>A resource of type <spanx style="verb">tool_api</spanx> that describes a callable tool, API, function
gateway, enterprise connector, or similar interface.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="architecture-overview">
      <name>Architecture Overview</name>
      <t>OAN separates governance, registration, Root acceptance, distribution,
Discovery, and product-native use.  The high-level relationship is:</t>
      <figure>
        <artwork><![CDATA[
Resource Provider
   | prepares resource identity, metadata, package, hashes
   v
Registrar Node
   | verifies subject control and issues registration evidence
   | submits signed upstream request
   v
Root Node
   | verifies Registrar authorization, evidence, hashes, package
   | signs Root proof and queues publication
   v
CDN Service
   | distributes Root-published packages and metadata
   v
Discovery Node
   | verifies packages, enforces authorized domains, signs responses
   v
Resource Consumer
   | verifies Discovery response and selected package before use
   v
Product-native protocol or artifact retrieval
]]></artwork>
      </figure>
      <t>The architecture has several important invariants:</t>
      <t><list style="symbols">
          <t>Root acceptance is the authoritative resource-package trust event within the
applicable trust domain.</t>
          <t>Registrar review is not sufficient without Root verification.</t>
          <t>CDN distribution is not a trust decision.</t>
          <t>Discovery indexing is not a Root lifecycle state.</t>
          <t>Discovery ranking is not authorization.</t>
          <t>Product-native invocation or artifact retrieval begins only after OAN
verification has succeeded.</t>
        </list></t>
      <section anchor="role-responsibilities">
        <name>Role Responsibilities</name>
        <section anchor="root-node">
          <name>Root Node</name>
          <t>Within its trust domain, the Root Node is responsible for:</t>
          <t><list style="symbols">
              <t>verifying Registrar-origin resource submissions;</t>
              <t>verifying signed upstream envelopes, timestamp freshness, nonce uniqueness,
and body-hash binding;</t>
              <t>verifying registration evidence, issuer authorization, and subject-control
binding;</t>
              <t>verifying resource identity document structure, resource type consistency,
package hashes, metadata hashes, and package versions;</t>
              <t>creating Root proofs over accepted package claims;</t>
              <t>preserving versioned resource package history;</t>
              <t>publishing or queuing packages for CDN distribution;</t>
              <t>notifying or enabling Discovery synchronization;</t>
              <t>issuing or validating infrastructure authorization credentials when the
deployment profile uses them; and</t>
              <t>enforcing current governance state for infrastructure subjects.</t>
            </list></t>
          <t>The Root Node MUST NOT treat CDN location, Discovery ranking, local search
signals, or Registrar policy recommendation as a substitute for Root
verification.</t>
        </section>
        <section anchor="registrar-node">
          <name>Registrar Node</name>
          <t>A Registrar Node is the onboarding and submission gateway for resources.  It
is responsible for:</t>
          <t><list style="symbols">
              <t>assisting resource providers with draft resource identity documents and
metadata;</t>
              <t>validating resource type, resource identifier, metadata, package version,
hashes, and hash algorithm fields;</t>
              <t>verifying that the applicant controls the resource subject key material;</t>
              <t>issuing registration evidence after successful policy review and
subject-control verification;</t>
              <t>preserving local evidence for audit and resubmission; and</t>
              <t>submitting complete resource packages to the Root Node with a signed
upstream envelope.</t>
            </list></t>
          <t>A Registrar Node MUST NOT issue authoritative registration evidence for a
resource subject unless the subject-control proof or an equivalent verified
binding has succeeded.  A Registrar Node SHOULD fail closed for Root-facing
authoritative submission when its own infrastructure authorization credential
or current governance state is missing, stale beyond policy, suspended,
revoked, expired, or unknown.</t>
        </section>
        <section anchor="discovery-node">
          <name>Discovery Node</name>
          <t>A Discovery Node is responsible for:</t>
          <t><list style="symbols">
              <t>synchronizing Root-verified resource packages from approved distribution
locations;</t>
              <t>verifying Root proofs, package hashes, metadata hashes, identity-document
hashes, and lifecycle state;</t>
              <t>enforcing its authorized capability domains;</t>
              <t>maintaining accepted and rejected package state;</t>
              <t>building local indexes over accepted packages; and</t>
              <t>returning signed Discovery responses.</t>
            </list></t>
          <t>Discovery Nodes MAY use local ranking, semantic matching, reputation, or
operator policy after package verification and authorization filtering.  These
local signals MUST NOT cause a resource to be exposed outside the Discovery
Node's authorized domains, override Root revocation state, or hide verification
failures.</t>
        </section>
        <section anchor="cdn-service">
          <name>CDN Service</name>
          <t>The CDN Service is a distribution layer.  It stores and serves Root-published
resource packages, identity documents, metadata, manifests, and related
artifacts.  The CDN Service is not an OAN trust authority, is not necessarily a
chain-governed infrastructure subject, and does not decide whether a resource
is accepted.</t>
          <t>Relying parties MUST verify Root proofs and package hashes after fetching
content from a CDN Service.  A manifest entry, storage location, URL, or CDN
identity MUST NOT be treated as sufficient proof of resource trust.</t>
        </section>
        <section anchor="resource-provider">
          <name>Resource Provider</name>
          <t>A Resource Provider prepares the resource identity document, metadata,
endpoint descriptors, artifact references, package version, and hash material.
The provider is responsible for controlling the corresponding subject key
material and for maintaining product-native endpoints or artifacts.  OAN does
not require Discovery Nodes or CDN Services to host provider-native Skill
files, OpenAPI specifications, MCP manifests, executables, or other external
payloads.</t>
        </section>
        <section anchor="resource-consumer">
          <name>Resource Consumer</name>
          <t>A Resource Consumer queries Discovery and verifies selected candidates before
use.  It is responsible for checking the Discovery response signature, Root
proofs, hashes, lifecycle state, endpoint or artifact-reference binding,
resource type consistency, and any product-specific credential requirements.
After these checks pass, the consumer can use the relevant product-native
protocol or retrieve the referenced artifact.</t>
        </section>
      </section>
    </section>
    <section anchor="resource-identity-model">
      <name>Resource Identity Model</name>
      <t>An OAN resource identity model separates stable identity, package version,
protocol version, and endpoint or artifact version.</t>
      <t>The stable resource identifier identifies the resource subject.  It SHOULD NOT
encode a package version, endpoint version, protocol version, cryptographic
algorithm, mutable URL, or mutable descriptive metadata.</t>
      <t>The package version identifies a Root-verified release of resource identity and
metadata.  A resource can publish multiple package versions under the same
stable resource identifier.  A new resource identifier SHOULD be used when the
controller boundary, trust boundary, or core product semantics change enough
that treating the change as a new package version would mislead relying
parties.</t>
      <t>The protocol or interface version identifies a product-native interface such
as an MCP version, HTTP API version, A2A profile, Skill format version, schema
version, or endpoint contract version.  OAN can record these versions as
metadata, but it does not define their native semantics.</t>
      <section anchor="resource-types">
        <name>Resource Types</name>
        <t>An OAN deployment that implements this document SHOULD support the following
initial resource types:</t>
        <texttable>
          <ttcol align="left">Resource Type</ttcol>
          <ttcol align="left">Product Form</ttcol>
          <ttcol align="left">Typical OAN Material</ttcol>
          <c>
            <spanx style="verb">agent_service</spanx></c>
          <c>Callable agent service</c>
          <c>endpoint, supported protocols, capabilities</c>
          <c>
            <spanx style="verb">skill</spanx></c>
          <c>Capability description or package</c>
          <c>artifact URI, digest, semantics, implementations</c>
          <c>
            <spanx style="verb">mcp_server</spanx></c>
          <c>MCP-compatible server</c>
          <c>endpoint, transport, protocol hints, tools summary</c>
          <c>
            <spanx style="verb">tool_api</spanx></c>
          <c>Tool or API</c>
          <c>endpoint or schema reference, auth mode, policy</c>
        </texttable>
        <t>Resource-type-specific data SHOULD be represented in typed extension fields or
profile-specific objects rather than by creating unrelated package formats.</t>
      </section>
      <section anchor="resource-identifier-and-type-consistency">
        <name>Resource Identifier and Type Consistency</name>
        <t>When a deployment uses a DID-based identifier profile, the resource identity
document SHOULD make the product form explicit in its OAN metadata.  A
deployment MAY use subject-code conventions, method-specific syntax, or another
profile mechanism to distinguish resource types.  When such a mechanism is
used, the following values MUST be mutually consistent:</t>
        <t><list style="symbols">
            <t>the public resource identifier;</t>
            <t>the resource type declared in the registration submission;</t>
            <t>the resource type declared in OAN metadata; and</t>
            <t>the resource type bound by the Root proof.</t>
          </list></t>
        <t>Registrars, Root Nodes, Discovery Nodes, and SDKs MUST reject or quarantine
resource packages where the resource identifier profile and declared resource
type conflict, unless a future OAN profile explicitly defines an alias or
migration rule.</t>
      </section>
      <section anchor="resource-identity-document-expectations">
        <name>Resource Identity Document Expectations</name>
        <t>A Resource Identity Document SHOULD contain or reference:</t>
        <t><list style="symbols">
            <t>the stable resource identifier;</t>
            <t>verification methods and verification relationships needed by the profile;</t>
            <t>controller or provider information;</t>
            <t>resource type and product-form metadata;</t>
            <t>semantic metadata used for discovery;</t>
            <t>capability tags or capability domains;</t>
            <t>endpoint descriptors for service resources;</t>
            <t>artifact references for resource types that use external artifacts;</t>
            <t>credential references or registration evidence references;</t>
            <t>package version information;</t>
            <t>lifecycle-state information or references; and</t>
            <t>extension fields, with clear criticality semantics where supported.</t>
          </list></t>
        <t>The document MUST NOT be trusted merely because it resolves or parses.  It is
trusted only when it is bound to a verified package, Root proof, and acceptable
current lifecycle state.</t>
      </section>
      <section anchor="capability-metadata">
        <name>Capability Metadata</name>
        <t>Capability metadata has two components:</t>
        <t><list style="symbols">
            <t>governance-recognized capability domains; and</t>
            <t>custom tags, local labels, search hints, embeddings, examples, or other
descriptive fields.</t>
          </list></t>
        <t>Only governance-recognized capability domains can expand Discovery
authorization scope.  Custom tags MAY refine local search after authorization
has succeeded, but they MUST NOT cause a Discovery Node to expose a resource
outside its authorized domains.</t>
        <t>Unknown non-critical extension fields MAY be ignored.  Unknown critical fields
MUST cause rejection by a verifier that does not understand them.</t>
      </section>
      <section anchor="external-artifact-references">
        <name>External Artifact References</name>
        <t>Some resources, especially <spanx style="verb">skill</spanx>, can reference external artifacts.  Examples
include Skill files, MCP manifests, OpenAPI descriptions, source archives,
schemas, or executable packages.  OAN does not require these artifacts to be
hosted by a Discovery Node or CDN Service.</t>
        <t>An external artifact reference SHOULD include:</t>
        <t><list style="symbols">
            <t>URI;</t>
            <t>media type or profile identifier;</t>
            <t>expected version;</t>
            <t>digest algorithm;</t>
            <t>digest value;</t>
            <t>retrieval policy where applicable; and</t>
            <t>the identity or package claims that bind the artifact to the resource.</t>
          </list></t>
        <t>The Root proof can make the reference and digest trustworthy as accepted
metadata.  It does not make the remote artifact host trustworthy.  Consumers
MUST verify the artifact digest after retrieval when the artifact is used for a
trust-sensitive purpose.</t>
      </section>
    </section>
    <section anchor="resourcepackage-and-root-proof-model">
      <name>ResourcePackage and Root Proof Model</name>
      <t>The ResourcePackage is the common Root-verified registry object.  It binds a
resource identity document, normalized metadata, version information, hashes,
lifecycle state, and Root proof.</t>
      <t>A ResourcePackage SHOULD include:</t>
      <t><list style="symbols">
          <t><spanx style="verb">resourceDid</spanx> or an equivalent stable resource identifier;</t>
          <t><spanx style="verb">resourceType</spanx>;</t>
          <t><spanx style="verb">packageVersion</spanx>;</t>
          <t>the resource identity document or a verifiable reference to it;</t>
          <t>resource metadata;</t>
          <t><spanx style="verb">didDocumentHash</spanx>;</t>
          <t><spanx style="verb">metadataHash</spanx>;</t>
          <t><spanx style="verb">packageHash</spanx>;</t>
          <t><spanx style="verb">hashAlgorithm</spanx>;</t>
          <t>lifecycle state;</t>
          <t>Registrar identity and registration evidence reference;</t>
          <t>Root proof claims;</t>
          <t>publication cursor or sequence where applicable; and</t>
          <t>endpoint or artifact-reference metadata needed for verification.</t>
        </list></t>
      <t>The Root proof over an accepted package MUST bind at least:</t>
      <t><list style="symbols">
          <t>stable resource identifier;</t>
          <t>resource type;</t>
          <t>package version;</t>
          <t>identity-document hash;</t>
          <t>metadata hash;</t>
          <t>package hash;</t>
          <t>hash algorithm identifier; and</t>
          <t>lifecycle state at the time of acceptance or publication.</t>
        </list></t>
      <t>The proof SHOULD also bind Registrar identity, registration evidence reference,
publication cursor, and any critical extension fields that affect
verification.</t>
      <section anchor="hash-and-canonicalization-requirements">
        <name>Hash and Canonicalization Requirements</name>
        <t>OAN relies on hash binding.  A deployment profile MUST define deterministic
canonicalization rules for every object whose bytes are hashed or signed.
Objects that require stable canonicalization include:</t>
        <t><list style="symbols">
            <t>resource identity documents;</t>
            <t>normalized resource metadata;</t>
            <t>registration evidence;</t>
            <t>signed upstream envelopes;</t>
            <t>ResourcePackage payloads;</t>
            <t>Root proof claims;</t>
            <t>Discovery response payloads; and</t>
            <t>trusted invocation or access envelopes, when used.</t>
          </list></t>
        <t>Hashes MUST identify their algorithm.  A bare digest value without an
algorithm identifier is insufficient for interoperable verification.</t>
      </section>
      <section anchor="version-and-lifecycle-binding">
        <name>Version and Lifecycle Binding</name>
        <t>Package-version lifecycle is distinct from resource-identifier lifecycle.  A
package version can be superseded, suspended, expired, or revoked while the
stable resource identifier remains active.  If the resource identity itself is
deactivated, the resource subject is inactive even if older package files are
still reachable from caches.</t>
        <t>Discovery Nodes SHOULD return the latest active package version by default.
When a Discovery Node returns a historical version, the response MUST indicate
the exact version, package hash, metadata hash, Root proof reference, lifecycle
state, and whether the version is recommended for new use.</t>
      </section>
    </section>
    <section anchor="trust-and-governance-layers">
      <name>Trust and Governance Layers</name>
      <t>OAN separates governance review, credential issuance, subject-control proof,
runtime verification, and resource package lifecycle.</t>
      <section anchor="governance-review">
        <name>Governance Review</name>
        <t>Operator review, legal review, organizational checks, contact validation, or
manual approval can be useful before a Registrar, Discovery Node, VC issuer, or
ordinary resource is admitted.  These processes are policy decisions.  They are
not protocol proofs by themselves.</t>
        <t>Email addresses, phone numbers, SMS codes, web account login, and similar
account-centric factors MAY be used in private review workflows.  They MUST
NOT be required as OAN protocol trust primitives for cross-network
interoperability.</t>
      </section>
      <section anchor="credential-issuance">
        <name>Credential Issuance</name>
        <t>After review and cryptographic checks succeed, an authorized issuer can issue a
credential or credential-like assertion.  A registration credential binds the
issuer, subject resource identifier, credential type, claims, issuance time,
expiration time if present, and proof.</t>
        <t>The credential is the protocol-facing result of review.  It does not replace
Root acceptance, package verification, or current lifecycle-state checks.</t>
      </section>
      <section anchor="subject-control-proof">
        <name>Subject-Control Proof</name>
        <t>Subject-control proof prevents a Registrar from issuing registration evidence
for a resource identifier whose key material the applicant does not control.
The proof SHOULD be challenge-response based and bind:</t>
        <t><list style="symbols">
            <t>challenge identifier;</t>
            <t>resource identifier;</t>
            <t>Registrar identifier;</t>
            <t>identity-document hash or equivalent stable representation hash;</t>
            <t>proof purpose;</t>
            <t>verification method;</t>
            <t>nonce;</t>
            <t>issuance time; and</t>
            <t>expiration time.</t>
          </list></t>
        <t>The Registrar MUST verify subject-control proof before issuing authoritative
registration evidence.  Root verification MUST ensure that registration
evidence remains bound to the subject-control process and target resource
identifier.</t>
      </section>
      <section anchor="infrastructure-governance-state">
        <name>Infrastructure Governance State</name>
        <t>Infrastructure subjects, such as Registrar Nodes, Discovery Nodes, and future
third-party VC issuers, can have lifecycle state governed by a bulletin,
committee process, on-chain event source, or another deployment-specific
governance mechanism.</t>
        <t>This infrastructure governance state is separate from ordinary resource
package state.  It governs whether an infrastructure subject is active,
suspended, revoked, expired, unknown, or otherwise inactive.  It does not by
itself create a resource package, validate a DID Document, host an artifact, or
make a Discovery result trustworthy.</t>
        <t>Where an OAN deployment uses Root-issued infrastructure authorization
credentials, effective infrastructure authorization is the conjunction of:</t>
        <t><list style="symbols">
            <t>a valid Root-issued authorization credential for the infrastructure subject;
and</t>
            <t>latest governance-derived state showing that the same subject and role are
active within the applicable scope.</t>
          </list></t>
        <t>If either condition is missing, stale beyond policy, suspended, revoked,
expired, or unknown, infrastructure peers SHOULD fail closed for
trust-sensitive operations.</t>
      </section>
      <section anchor="on-chain-governance-profile">
        <name>On-Chain Governance Profile</name>
        <t>An OAN deployment MAY use on-chain governance as the publication mechanism for
infrastructure lifecycle outcomes.  In such a profile, blockchain contract
events can provide an auditable source of governance results for infrastructure
subjects such as Registrar Nodes, Discovery Nodes, and future VC issuers.</t>
        <t>The on-chain governance profile is an infrastructure-governance profile.  It
does not make the blockchain a storage system for resource identity documents,
ResourcePackages, credentials, external artifacts, or product-native payloads.
It also does not require ordinary Resource Providers, Resource Consumers, or
lightweight SDKs to subscribe to blockchain events.</t>
        <t>An on-chain governance event is not, by itself, an OAN service credential.  For
trust-sensitive infrastructure interactions, the effective authorization
decision still depends on the combination of current governance-derived state
and protocol-verifiable authorization material, such as a Root-issued
infrastructure authorization credential.</t>
        <t>This document does not define a blockchain protocol, blockchain contract
interface, transaction format, consensus mechanism, governance voting procedure,
or chain-specific event schema.  Those choices are deployment or future-profile
matters.  The interoperability requirement here is that relying infrastructure
can determine the current governance state that is relevant to a trust decision
and can combine that state with OAN protocol evidence.</t>
      </section>
      <section anchor="bulletin-boundary">
        <name>Bulletin Boundary</name>
        <t>A governance bulletin can publish infrastructure authorization outcomes,
package publication events, or other deployment-specific facts.  A profile MAY
implement the bulletin as an append-only signed log, an on-chain event stream,
a committee-approved record, or a combination of these mechanisms.</t>
        <t>The bulletin MUST NOT be assumed to store complete resource identity
documents, full credentials, private credential material, resource packages,
external artifacts, or product-native payloads unless a future profile
explicitly defines such storage.  In the architecture described here, resource
package trust remains based on Root verification, Root proof, hashes, package
state, and Discovery verification.</t>
      </section>
    </section>
    <section anchor="registration-and-root-verification">
      <name>Registration and Root Verification</name>
      <t>The standard OAN registration flow is:</t>
      <t><list style="numbers" type="1">
          <t>The Resource Provider prepares a resource identity document, metadata,
package version, hashes, endpoint descriptors, or artifact references.</t>
          <t>The Registrar validates resource type, resource identifier consistency,
identity-document shape, metadata, hashes, and hash algorithm fields.</t>
          <t>The Resource Provider proves control of the resource subject key material.</t>
          <t>The Registrar applies local policy and issues registration evidence.</t>
          <t>The Registrar creates a complete registration submission.</t>
          <t>The Registrar signs an upstream request envelope and submits it to Root.</t>
          <t>Root verifies infrastructure authorization, request integrity, freshness,
replay protection, registration evidence, subject-control binding, hashes,
and package semantics.</t>
          <t>Root accepts or rejects the package.</t>
          <t>On acceptance, Root archives the version, creates a Root proof, and queues
package publication and Discovery synchronization.</t>
        </list></t>
      <t>Create and update operations SHOULD use a complete-document path.  Root SHOULD
verify a complete new resource identity representation rather than applying
ambiguous partial patches.</t>
      <section anchor="signed-upstream-envelope">
        <name>Signed Upstream Envelope</name>
        <t>Registrar-to-Root submissions and other trusted upstream writes MUST be
authenticated and integrity protected.  A signed upstream envelope SHOULD cover:</t>
        <t><list style="symbols">
            <t>request identifier;</t>
            <t>protocol version or profile identifier;</t>
            <t>request purpose;</t>
            <t>HTTP method or equivalent operation;</t>
            <t>path or target operation name;</t>
            <t>audience identifier;</t>
            <t>signer identifier;</t>
            <t>timestamp;</t>
            <t>nonce;</t>
            <t>body hash;</t>
            <t>canonicalization algorithm; and</t>
            <t>proof.</t>
          </list></t>
        <t>Receivers MUST verify the sender's authorization state, proof validity, body
hash, timestamp freshness, nonce uniqueness, audience binding, and expected
operation before processing the body.</t>
      </section>
      <section anchor="root-verification-requirements">
        <name>Root Verification Requirements</name>
        <t>Root verification MUST be deterministic and auditable.  At a minimum, Root
MUST verify:</t>
        <t><list style="symbols">
            <t>the Registrar is currently authorized for the requested operation;</t>
            <t>the upstream envelope signature is valid;</t>
            <t>the request timestamp is fresh according to policy;</t>
            <t>the nonce has not been replayed within the replay window;</t>
            <t>the body hash matches the received body;</t>
            <t>the resource identifier syntax or profile is valid;</t>
            <t>the identity document is bound to the submitted resource identifier;</t>
            <t>the declared resource type is consistent across submitted objects;</t>
            <t>the identity-document hash matches the submitted identity document;</t>
            <t>the metadata hash matches normalized metadata;</t>
            <t>the package hash and hash algorithm are valid;</t>
            <t>registration evidence is issued by an authorized Registrar;</t>
            <t>registration evidence is bound to the target resource identifier;</t>
            <t>subject-control proof or an equivalent verified binding is present; and</t>
            <t>the requested lifecycle transition is valid.</t>
          </list></t>
        <t>Root MUST reject a submission if a required verification step fails.  Silent
partial acceptance is unsafe because downstream consumers can treat Root
acceptance as evidence that the complete trust path succeeded.</t>
      </section>
      <section anchor="registration-outcome">
        <name>Registration Outcome</name>
        <t>On successful verification, Root SHOULD:</t>
        <t><list style="symbols">
            <t>archive the accepted identity document and metadata;</t>
            <t>assign or confirm the package version;</t>
            <t>create Root proof claims over required package fields;</t>
            <t>create or update the latest-version index;</t>
            <t>record publication state or cursor information;</t>
            <t>queue CDN publication or equivalent distribution; and</t>
            <t>make Discovery synchronization possible.</t>
          </list></t>
        <t>A successful Root response indicates Root acceptance of a specific package
version.  It does not prove product quality, endpoint liveness, ranking value,
or suitability for a particular task.</t>
      </section>
    </section>
    <section anchor="distribution-model">
      <name>Distribution Model</name>
      <t>OAN distribution has two layers:</t>
      <t><list style="symbols">
          <t>Root-to-Discovery distribution of Root-verified package material; and</t>
          <t>provider-to-consumer distribution of product-native external artifacts.</t>
        </list></t>
      <t>The CDN Service belongs to the Root-to-Discovery distribution path.  It can
serve ResourcePackages, identity documents, metadata, manifests, and package
indexes.  It does not make bytes trustworthy.</t>
      <t>Provider-to-consumer artifact distribution remains outside the OAN core.  A
Skill file, MCP manifest, OpenAPI document, source archive, executable, or
other artifact can be hosted by the provider, a repository, object storage, an
institutional website, or another distribution service.  OAN verifies the
reference, digest, package binding, publisher identity, and Root proof; it does
not require OAN infrastructure to host the artifact.</t>
      <t>Discovery Nodes and consumers MUST verify fetched package material before
using it.  Verification includes Root proof, package hash, metadata hash,
identity-document hash, resource type, lifecycle state, and applicable bulletin
or publication facts.</t>
    </section>
    <section anchor="authorization-aware-discovery">
      <name>Authorization-Aware Discovery</name>
      <t>Discovery has three separate outputs:</t>
      <t><list style="symbols">
          <t>eligibility from verified Root-anchored package data;</t>
          <t>matching and ordering from local query logic; and</t>
          <t>response provenance from the Discovery Node signature.</t>
        </list></t>
      <t>These outputs MUST NOT be conflated.  A resource can be valid but not highly
ranked.  A response can be signed by a Discovery Node but still contain only
local ranking decisions.  A high local score does not make an unverifiable or
revoked package trusted.</t>
      <section anchor="synchronization">
        <name>Synchronization</name>
        <t>Discovery synchronization SHOULD follow this order:</t>
        <t><list style="numbers" type="1">
            <t>identify the Root trust anchor or Root endpoint for the deployment;</t>
            <t>obtain current Root or bulletin facts needed by the profile;</t>
            <t>resolve distribution locations from verifiable Root-controlled material
when available;</t>
            <t>fetch manifests or package indexes;</t>
            <t>fetch resource packages;</t>
            <t>verify identity-document hash, metadata hash, package hash, and Root proof;</t>
            <t>verify lifecycle state and current-version expectations;</t>
            <t>enforce Discovery authorized domains;</t>
            <t>persist accepted packages into the query index; and</t>
            <t>persist rejected packages with inspectable reasons.</t>
          </list></t>
        <t>Discovery MUST NOT index packages that fail verification as trusted
candidates.  Discovery SHOULD keep accepted and rejected package state
separate so operators can distinguish missing publication, verification
failure, authorization-domain mismatch, and query mismatch.</t>
      </section>
      <section anchor="authorized-domains">
        <name>Authorized Domains</name>
        <t>A Discovery Node's authorized domains limit which resources it may expose.
Profiles can express these domains through a capability tree, tags, policy
attributes, or another governance-recognized mechanism.</t>
        <t>A Discovery Node MUST NOT expose a resource as trusted unless the resource is
eligible under the Discovery Node's authorized domains.  Custom tags, semantic
embeddings, local labels, or ranking features MUST NOT expand the authorized
domain set.</t>
      </section>
      <section anchor="query-model">
        <name>Query Model</name>
        <t>A Discovery query MAY include text, capability tags, resource type, protocol
binding, provider identifier, endpoint type, version requirement, package hash,
authorization domain, lifecycle state, or other profile-specific filters.</t>
        <t>Discovery SHOULD return the latest active package version by default.  If a
consumer asks for an exact version, version constraint, or package hash,
Discovery MUST NOT silently substitute a different package version unless the
response clearly indicates the substitution and the consumer policy allows it.</t>
      </section>
      <section anchor="signed-discovery-response">
        <name>Signed Discovery Response</name>
        <t>A Discovery response SHOULD be signed by the Discovery Node.  The signed
payload SHOULD include:</t>
        <t><list style="symbols">
            <t>Discovery Node identifier;</t>
            <t>response timestamp;</t>
            <t>query echo or query hash;</t>
            <t>candidate identifiers;</t>
            <t>package versions and package hashes;</t>
            <t>Root proof references;</t>
            <t>lifecycle states;</t>
            <t>matched fields or explanation metadata when provided;</t>
            <t>nonce or correlation identifier where useful; and</t>
            <t>proof.</t>
          </list></t>
        <t>The Discovery signature proves response provenance from that Discovery Node.
It does not prove product quality, endpoint liveness, user suitability, or
business trustworthiness.</t>
      </section>
    </section>
    <section anchor="pre-use-verification">
      <name>Pre-Use Verification</name>
      <t>Before downloading, invoking, composing, or otherwise relying on a discovered
resource, a Resource Consumer SHOULD verify:</t>
      <t><list style="symbols">
          <t>Discovery response signature and freshness;</t>
          <t>Discovery Node authorization, where required by the profile;</t>
          <t>selected candidate identifier and resource type;</t>
          <t>ResourcePackage Root proof;</t>
          <t>identity-document hash;</t>
          <t>metadata hash;</t>
          <t>package hash and hash algorithm;</t>
          <t>package version and lifecycle state;</t>
          <t>endpoint descriptor or artifact-reference binding;</t>
          <t>external artifact digest after retrieval, when an artifact is used;</t>
          <t>credential requirements and issuer authorization where applicable;</t>
          <t>resource identifier and resource type consistency; and</t>
          <t>timestamp, nonce, audience, target, and body-hash binding for signed access
or invocation envelopes.</t>
        </list></t>
      <t>For service resources, an SDK or client SHOULD construct the product-native
client only after OAN verification has passed.  For Skill resources, a client
SHOULD verify the referenced Skill file or manifest before resolving and
invoking implementation resources.</t>
      <t>OAN verification is a pre-use guard.  After it succeeds, control moves to the
product-native protocol or artifact format.  Product-native behavior remains
outside this document.</t>
    </section>
    <section anchor="lifecycle-versioning-and-consistency">
      <name>Lifecycle, Versioning, and Consistency</name>
      <t>OAN uses multiple lifecycle scopes.  Implementations MUST keep them distinct.</t>
      <section anchor="registrar-draft-state">
        <name>Registrar Draft State</name>
        <t>Registrar draft state is local onboarding workflow state.  Example states can
include draft, challenged, control-verified, credentialed, submitted,
accepted, or rejected.  Draft existence MUST NOT imply Root acceptance or
Discovery visibility.</t>
      </section>
      <section anchor="resource-package-state">
        <name>Resource Package State</name>
        <t>Resource package state is Root-governed version state.  Example states include
accepted, published, active, superseded, suspended, expired, and revoked.
These states apply to a versioned package, not necessarily to every historical
package or to every local Discovery index row.</t>
        <t>Root MUST avoid ambiguous current-version state for the same resource
identifier.  Discovery Nodes SHOULD suppress revoked, suspended, expired, or
otherwise inactive package versions from default trusted query results.</t>
      </section>
      <section anchor="discovery-index-state">
        <name>Discovery Index State</name>
        <t>Discovery index state is local to a Discovery Node.  Example states include
fetched, accepted, indexed, rejected, quarantined, or stale.  These states
describe Discovery-local processing outcomes.  They do not modify Root package
lifecycle state.</t>
      </section>
      <section anchor="infrastructure-authorization-state">
        <name>Infrastructure Authorization State</name>
        <t>Infrastructure authorization state applies to Registrar Nodes, Discovery
Nodes, and future infrastructure issuers.  It is separate from ordinary
resource package state.  Revoking a Registrar does not automatically revoke all
historical resource packages that Registrar helped onboard, unless the Root or
profile defines such a consequence.  However, a revoked Registrar MUST NOT be
accepted for new authoritative submissions.</t>
      </section>
      <section anchor="asynchronous-publication">
        <name>Asynchronous Publication</name>
        <t>Root acceptance, CDN publication, Discovery synchronization, and query
visibility can be asynchronous.  A newly accepted package may not be
immediately queryable.  This is acceptable if implementations expose enough
state for operators and consumers to distinguish publication delay,
verification failure, authorization-domain filtering, and query mismatch.</t>
        <t>Discovery MUST NOT compensate for staleness by accepting unverifiable packages.
If synchronization is stale beyond policy, Discovery SHOULD fail closed for
trust-sensitive results or clearly mark the response freshness state.</t>
      </section>
    </section>
    <section anchor="relationship-to-other-protocols">
      <name>Relationship to Other Protocols</name>
      <t>OAN is an identity, registration, package, and discovery trust layer.  It can
be used before or around product-native protocols.</t>
      <dl>
        <dt>MCP:</dt>
        <dd>
          <t>OAN can discover and verify an <spanx style="verb">mcp_server</spanx> resource, then allow an MCP
client to connect using MCP semantics.  OAN does not define MCP tool
behavior.</t>
        </dd>
        <dt>A2A or Agent Interaction Protocols:</dt>
        <dd>
          <t>OAN can discover and verify an <spanx style="verb">agent_service</spanx> resource and provide identity
and package evidence before the agent interaction protocol begins.  OAN does
not define the full task conversation.</t>
        </dd>
        <dt>HTTP or RPC APIs:</dt>
        <dd>
          <t>OAN can discover and verify a <spanx style="verb">tool_api</spanx> resource, endpoint descriptor, and
schema or artifact reference.  The API's business semantics remain native to
that API.</t>
        </dd>
        <dt>Skills:</dt>
        <dd>
          <t>OAN can discover and verify a <spanx style="verb">skill</spanx> resource and its external artifact
reference.  Skill package format, execution, and composition semantics remain
outside the OAN core.</t>
        </dd>
      </dl>
    </section>
    <section anchor="protocol-object-expectations">
      <name>Protocol Object Expectations</name>
      <t>Future OAN profiles are expected to define concrete object schemas.  This
document identifies the expected objects and minimum semantic requirements.</t>
      <section anchor="registration-submission">
        <name>Registration Submission</name>
        <t>A registration submission SHOULD contain:</t>
        <t><list style="symbols">
            <t>Registrar identifier;</t>
            <t>resource identifier;</t>
            <t>resource type;</t>
            <t>complete resource identity document;</t>
            <t>normalized metadata;</t>
            <t>package version;</t>
            <t>identity-document hash;</t>
            <t>metadata hash;</t>
            <t>package hash;</t>
            <t>hash algorithm;</t>
            <t>registration evidence;</t>
            <t>subject-control proof or equivalent binding; and</t>
            <t>signed upstream envelope.</t>
          </list></t>
      </section>
      <section anchor="registration-evidence">
        <name>Registration Evidence</name>
        <t>Registration evidence SHOULD contain:</t>
        <t><list style="symbols">
            <t>issuer identifier;</t>
            <t>subject resource identifier;</t>
            <t>credential or evidence type;</t>
            <t>issued-at time;</t>
            <t>expiration time where applicable;</t>
            <t>registration purpose;</t>
            <t>identity-document hash;</t>
            <t>subject-control proof hash or equivalent reference;</t>
            <t>verified verification method; and</t>
            <t>proof.</t>
          </list></t>
      </section>
      <section anchor="discovery-candidate">
        <name>Discovery Candidate</name>
        <t>A Discovery candidate SHOULD contain:</t>
        <t><list style="symbols">
            <t>resource identifier;</t>
            <t>resource type;</t>
            <t>package version;</t>
            <t>package hash;</t>
            <t>metadata hash;</t>
            <t>identity-document hash;</t>
            <t>lifecycle state;</t>
            <t>endpoint descriptors or artifact references;</t>
            <t>matched capability domains or tags;</t>
            <t>Root proof reference; and</t>
            <t>product-native protocol hints where applicable.</t>
          </list></t>
      </section>
    </section>
    <section anchor="error-taxonomy">
      <name>Error Taxonomy</name>
      <t>Precise errors improve interoperability and operations.  Implementations
SHOULD distinguish at least the following categories:</t>
      <texttable>
        <ttcol align="left">Category</ttcol>
        <ttcol align="left">Example</ttcol>
        <ttcol align="left">Expected Behavior</ttcol>
        <c>syntax</c>
        <c>malformed object</c>
        <c>reject before trust checks</c>
        <c>crypto</c>
        <c>bad signature</c>
        <c>reject and audit signer</c>
        <c>authorization</c>
        <c>inactive Registrar</c>
        <c>reject as unauthorized</c>
        <c>freshness</c>
        <c>stale timestamp</c>
        <c>reject as expired</c>
        <c>replay</c>
        <c>repeated nonce</c>
        <c>reject and audit</c>
        <c>binding</c>
        <c>wrong resource identifier</c>
        <c>reject as mismatch</c>
        <c>hash</c>
        <c>metadata hash mismatch</c>
        <c>reject or quarantine</c>
        <c>scope</c>
        <c>out-of-domain package</c>
        <c>do not index</c>
        <c>state</c>
        <c>revoked package</c>
        <c>suppress from trusted results</c>
        <c>artifact</c>
        <c>digest mismatch</c>
        <c>do not use artifact</c>
      </texttable>
      <t>External error messages MAY avoid exposing sensitive operator details, but
internal logs SHOULD preserve enough information for audit and debugging.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document follows the general guidance for protocol threat analysis in
<xref target="RFC3552"/>.</t>
      <dl>
        <dt>Malicious Registrar:</dt>
        <dd>
          <t>A Registrar can attempt to register resources without verifying subject
control or after losing authorization.  Root MUST verify Registrar
authorization, signed upstream envelopes, freshness, replay protection,
registration evidence, and subject-control binding.</t>
        </dd>
        <dt>Subject-control failure:</dt>
        <dd>
          <t>An applicant can try to register a resource identifier controlled by another
party.  Registrars MUST verify subject-control proof before issuing
authoritative registration evidence, and Root MUST verify that the evidence
remains bound to the target resource.</t>
        </dd>
        <dt>Tampered CDN content:</dt>
        <dd>
          <t>A CDN or intermediary can serve modified packages or stale manifests.
Discovery Nodes and consumers MUST verify Root proofs and all relevant hashes
after retrieval.</t>
        </dd>
        <dt>Overbroad Discovery exposure:</dt>
        <dd>
          <t>A Discovery Node can expose resources outside its authorized domains.
Discovery implementations MUST enforce authorized-domain filtering before
indexing or returning trusted candidates.</t>
        </dd>
        <dt>Ranking as authorization:</dt>
        <dd>
          <t>Local ranking, semantic search, or reputation features can be mistaken for
trust decisions.  Implementations MUST apply ranking only after Root package
verification and Discovery authorization filtering.</t>
        </dd>
        <dt>Stale lifecycle state:</dt>
        <dd>
          <t>A stale cache can return superseded or revoked resources.  Discovery Nodes
SHOULD track freshness and fail closed for trust-sensitive results when
lifecycle state is stale beyond policy.</t>
        </dd>
        <dt>Replay attacks:</dt>
        <dd>
          <t>Attackers can replay upstream submissions or signed invocation envelopes.
Signed envelopes MUST bind timestamp, nonce, audience, operation, and body
hash.  Receivers MUST enforce freshness windows and nonce uniqueness.</t>
        </dd>
        <dt>Wrong-target invocation:</dt>
        <dd>
          <t>A request prepared for one resource can be redirected to another endpoint.
Consumers and service resources SHOULD bind signed access or invocation
envelopes to the selected target identifier and verified endpoint metadata.</t>
        </dd>
        <dt>External artifact substitution:</dt>
        <dd>
          <t>A Skill file, MCP manifest, API description, or executable can be replaced at
its external host.  Consumers MUST verify artifact digests and package
binding before use.</t>
        </dd>
        <dt>Canonicalization mismatch:</dt>
        <dd>
          <t>Independent implementations can compute different hashes for the same
logical object.  Profiles MUST define canonicalization rules and SHOULD
provide test vectors.</t>
        </dd>
        <dt>Root key compromise:</dt>
        <dd>
          <t>A compromised Root signing key can undermine a trust domain.  Deployments
SHOULD define key rotation, compromise response, revocation, and recovery
procedures.  Higher-assurance deployments SHOULD consider threshold signing
or other operational controls.</t>
        </dd>
        <dt>Denial of service:</dt>
        <dd>
          <t>Attackers can submit many registrations, trigger expensive verification, or
overload Discovery queries.  Registrars, Root Nodes, CDN Services, and
Discovery Nodes SHOULD apply rate limits, quotas, backpressure, input size
limits, and monitoring.</t>
        </dd>
      </dl>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>OAN metadata can reveal provider identities, service endpoints, capability
areas, business relationships, policy requirements, and organizational
structure.  Deployments SHOULD minimize public metadata and avoid publishing
private endpoint details, unnecessary internal schemas, private credentials,
or sensitive operational information.</t>
      <t>Discovery queries can reveal user or enterprise intent.  Discovery Nodes
SHOULD provide transport confidentiality, access control where appropriate,
retention limits, privacy-preserving logs, and clear operator policies for
query data.</t>
      <t>External artifact references can leak which users or organizations retrieve a
Skill, API description, or package from a third-party host.  Consumers SHOULD
consider retrieval privacy and artifact caching policies for sensitive
deployments.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document makes no IANA requests.</t>
      <t>Future OAN profiles that define media types, URI schemes, HTTP fields, well-
known URIs, registries, or protocol parameter values are expected to include
their own IANA considerations.</t>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section is to be removed before publication as an RFC.</t>
      <t>A research implementation of OAN has been developed with
separate Root, Registrar, Discovery, and CDN services; resource-oriented
registration; <spanx style="verb">did:oan</spanx> resource identifiers; first-class resource types for
Agent Service, Skill, MCP Server, and Tool/API; subject-control proof;
Registrar-issued registration evidence; Root-verified ResourcePackage objects;
signed upstream envelopes; Root-to-CDN package publication; Discovery package
verification; authorized-domain filtering; signed Discovery responses; and
pre-use verification examples.</t>
      <t>The open-source project is available at <eref target="https://github.com/OpenAgenet">https://github.com/OpenAgenet</eref>.
The repository set is expected to evolve as the implementation and draft are
refined.  The existence of this code is intended to support experimentation,
review, and interoperability feedback; it is not required for conformance.</t>
      <t>Implementation details such as repository layout, programming language,
database backend, HTTP route names, local file paths, and operator tooling are
not specified by this document.</t>
    </section>
    <section anchor="conformance-checklist">
      <name>Conformance Checklist</name>
      <t>An implementation or deployment can be reviewed against the following
checklist:</t>
      <t><list style="symbols">
          <t>resource type consistency is checked across identifiers, metadata,
submissions, packages, and Root proofs;</t>
          <t>subject-control proof is required before authoritative registration evidence
is issued;</t>
          <t>trusted upstream writes are signed and bind method, path, audience,
timestamp, nonce, and body hash;</t>
          <t>Registrar and Discovery infrastructure authorization checks fail closed when
state is missing, stale, suspended, revoked, expired, or unknown;</t>
          <t>Root proof binds resource identifier, resource type, package version,
identity-document hash, metadata hash, package hash, hash algorithm, and
lifecycle state;</t>
          <t>CDN content is verified after retrieval;</t>
          <t>Discovery enforces authorized domains before ranking or returning trusted
candidates;</t>
          <t>custom tags do not expand authorization scope;</t>
          <t>latest active package version is returned by default;</t>
          <t>historical versions are explicitly identified when returned;</t>
          <t>external artifacts are verified by digest before use;</t>
          <t>signed Discovery responses are verified by consumers; and</t>
          <t>replayed or stale signed envelopes are rejected.</t>
        </list></t>
    </section>
  </middle>
  <back>
    <references title="Normative References" anchor="sec-normative-references">
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <reference anchor="RFC3552">
        <front>
          <title>Guidelines for Writing RFC Text on Security Considerations</title>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
          <author fullname="B. Korver" initials="B." surname="Korver"/>
          <date month="July" year="2003"/>
          <abstract>
            <t>All RFCs are required to have a Security Considerations section. Historically, such sections have been relatively weak. This document provides guidelines to RFC authors on how to write a good Security Considerations section. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="72"/>
        <seriesInfo name="RFC" value="3552"/>
        <seriesInfo name="DOI" value="10.17487/RFC3552"/>
      </reference>
    </references>
    <?line 1261?>

<section anchor="example-resourcepackage-informative">
      <name>Example ResourcePackage (Informative)</name>
      <t>The following JSON fragment illustrates a ResourcePackage.  It is not a
mandatory wire format.</t>
      <figure>
        <sourcecode type="json">
{
  "resourceDid": "did:oan:AG:example-translator",
  "resourceType": "agent_service",
  "packageVersion": "3",
  "lifecycleState": "active",
  "didDocumentHash": "sha256:012345...",
  "metadataHash": "sha256:abcdef...",
  "packageHash": "sha256:789abc...",
  "hashAlgorithm": "sha256",
  "metadata": {
    "name": "Example Translator",
    "capabilityTags": ["translation", "translation.zh-en"],
    "customTags": ["legal-contract-translation"],
    "protocolBindings": ["https"]
  },
  "registrarDid": "did:oan:REG:registrar-01",
  "rootProof": {
    "type": "ExampleDataIntegrityProof2026",
    "verificationMethod": "did:oan:ROOT:root-01#key-1",
    "packageClaims": {
      "resourceDid": "did:oan:AG:example-translator",
      "resourceType": "agent_service",
      "packageVersion": "3",
      "didDocumentHash": "sha256:012345...",
      "metadataHash": "sha256:abcdef...",
      "packageHash": "sha256:789abc...",
      "lifecycleState": "active"
    },
    "proofValue": "..."
  }
}
</sourcecode>
      </figure>
    </section>
    <section anchor="example-skill-artifact-reference-informative">
      <name>Example Skill Artifact Reference (Informative)</name>
      <t>The following JSON fragment illustrates an external artifact reference for a
Skill resource.  It is not a mandatory wire format.</t>
      <figure>
        <sourcecode type="json">
{
  "resourceDid": "did:oan:SK:invoice-review",
  "resourceType": "skill",
  "packageVersion": "1.0.0",
  "artifact": {
    "uri": "https://example.org/skills/invoice-review.skill.json",
    "mediaType": "application/example-skill+json",
    "version": "1.0.0",
    "digest": "sha256:13579b...",
    "retrievalPolicy": "public-read"
  },
  "implementedBy": [
    {
      "resourceDid": "did:oan:MC:accounting-mcp",
      "resourceType": "mcp_server"
    }
  ]
}
</sourcecode>
      </figure>
    </section>
    <section anchor="example-discovery-response-informative">
      <name>Example Discovery Response (Informative)</name>
      <t>The following JSON fragment illustrates a signed Discovery response.  It is not
a mandatory wire format.</t>
      <figure>
        <sourcecode type="json">
{
  "discoveryDid": "did:oan:DIS:discovery-01",
  "issuedAt": "2026-06-06T08:01:00Z",
  "queryHash": "sha256:2468ac...",
  "results": [
    {
      "resourceDid": "did:oan:AG:example-translator",
      "resourceType": "agent_service",
      "packageVersion": "3",
      "packageHash": "sha256:789abc...",
      "metadataHash": "sha256:abcdef...",
      "lifecycleState": "active",
      "matchedTags": ["translation.zh-en"],
      "rootProofRef": "root-proof:4812"
    }
  ],
  "proof": {
    "type": "ExampleDataIntegrityProof2026",
    "verificationMethod": "did:oan:DIS:discovery-01#key-1",
    "proofValue": "..."
  }
}
</sourcecode>
      </figure>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The authors thank participants in discussions on open agent networks, resource
identity, trusted discovery, and cross-protocol agent interoperability.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
