<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.2.3) -->
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dimare-pay-uri-00" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="The pay URI Scheme">The 'pay' URI Scheme for Rail-Neutral Payment Aliases</title>
    <seriesInfo name="Internet-Draft" value="draft-dimare-pay-uri-00"/>
    <author initials="J." surname="DiMare" fullname="J. DiMare">
      <organization>DNS of Money</organization>
      <address>
        <email>jdimare@pm.me</email>
      </address>
    </author>
    <date year="2026" month="July" day="27"/>
    <keyword>payment</keyword>
    <keyword>URI</keyword>
    <keyword>agent</keyword>
    <keyword>resolution</keyword>
    <keyword>x402</keyword>
    <abstract>
      <?line 49?>

<t>This document defines the "pay" Uniform Resource Identifier (URI) scheme, a
rail-neutral, human- and agent-friendly name for a payment payee that resolves,
through a resolution protocol, to one or more concrete payment endpoints. Unlike
a URI that names a specific account on a specific payment method, a "pay" URI
names a payee independently of any settlement rail; a resolver deterministically
maps the name to the rail(s), endpoint(s), and metadata a payer needs to
construct a payment. This document specifies the scheme syntax and semantics, the
resolution mechanism and its discovery, the deterministic resolution property, and
requests provisional registration of the scheme with IANA per RFC 7595. It does not
define a settlement protocol and takes no custody of funds; it composes with
agent-payment protocols such as x402 for the actual money movement.</t>
    </abstract>
  </front>
  <middle>
    <?line 63?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>AI agents and their operators increasingly need to pay one another without prior
knowledge of each other's banking or on-ledger details. Today a payer must know a
specific account on a specific rail (an IBAN, an on-ledger address, a card token)
before value can move. That couples the payee's identity to a rail and leaks
sensitive routing information to anyone who wants to pay.</t>
      <t>The "pay" URI scheme decouples the two. A "pay" URI - for example
<tt>pay:acme</tt> or <tt>pay:agent.example</tt> - names a payee in a rail-neutral way. To pay it,
a payer submits the name to a resolver, which returns the payment endpoint(s) the
payee accepts, the preferred rail, and the metadata needed to construct a
compliant payment. The intelligence - rail selection, endpoint ordering - lives in
the resolver and is deterministic (see <xref target="deterministic"/>); the payer receives a
verifiable answer, not a probabilistic one.</t>
      <t>This scheme is a naming and resolution layer only. It defines no settlement
protocol, holds no funds, and is not a payment method in the sense of <xref target="RFC8905"/>.
It is designed to compose with agent-payment protocols - notably x402 <xref target="X402"/>,
Agent2Agent <xref target="A2A"/>, and agent-discovery systems such as <xref target="ANS"/> - which carry out
the actual payment once a "pay" URI has been resolved.</t>
      <t>This document specifies the reference resolution wire format used by the first
deployed registry in an informative appendix (<xref target="reference-wire"/>). The normative
content - the scheme syntax, the resolution mechanism, resolver discovery, and the
deterministic property - is deliberately operator-neutral: nothing here requires
any particular registry, and multiple independent resolvers can serve the scheme.</t>
    </section>
    <section anchor="conventions-and-terminology">
      <name>Conventions and Terminology</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The following terms are used:</t>
      <dl>
        <dt>alias:</dt>
        <dd>
          <t>The rail-neutral payee name carried in a "pay" URI, i.e. the portion after the
<tt>pay:</tt> prefix.</t>
        </dd>
        <dt>registry:</dt>
        <dd>
          <t>A service that records the mapping from an alias to a payee and its payment
endpoints.</t>
        </dd>
        <dt>resolver:</dt>
        <dd>
          <t>A service that answers resolution requests for aliases, returning payment
endpoints and metadata. A registry typically operates a resolver; the roles are
logically distinct.</t>
        </dd>
        <dt>rail:</dt>
        <dd>
          <t>A settlement network or payment method (for example, a specific ledger or a
bank-transfer scheme) over which value ultimately moves.</t>
        </dd>
        <dt>resolution:</dt>
        <dd>
          <t>The act of mapping an alias to payment endpoint(s) and metadata.</t>
        </dd>
      </dl>
    </section>
    <section anchor="the-pay-uri-scheme">
      <name>The "pay" URI Scheme</name>
      <section anchor="syntax">
        <name>Syntax</name>
        <t>The "pay" URI syntax is defined by the following ABNF <xref target="RFC5234"/>, and is a
restricted profile consistent with the generic syntax of <xref target="RFC3986"/>:</t>
        <sourcecode type="abnf"><![CDATA[
pay-URI  = "pay:" alias
alias    = label *( "." label )
label    = alnum *62( alnum / "-" )
alnum    = DIGIT / lc-alpha
lc-alpha = %x61-7A            ; a-z (lowercase only)
]]></sourcecode>
        <t>Additional constraints:</t>
        <ul spacing="normal">
          <li>
            <t>The entire "pay" URI, including the <tt>pay:</tt> prefix, is at least 5 and at most 128
octets in length.</t>
          </li>
          <li>
            <t>Each label is 1 to 63 octets and begins with an alphanumeric character.</t>
          </li>
          <li>
            <t>Only lowercase ASCII letters, digits, and the hyphen appear in a label. No
percent-encoding, uppercase letters, Unicode, userinfo, host, port, query, or
fragment components are permitted. This restriction is deliberate: it eliminates
homograph and normalization ambiguity (see <xref target="security"/>).</t>
          </li>
        </ul>
        <t>A "pay" URI has no authority, path, query, or fragment component; the entire
scheme-specific part is the alias.</t>
      </section>
      <section anchor="semantics">
        <name>Semantics</name>
        <t>A "pay" URI identifies a payee independently of any settlement rail. It does not
identify an account, a wallet, a ledger address, or a transaction. Dereferencing a
"pay" URI means submitting its alias to a resolver (<xref target="resolution"/>) and receiving
the payment endpoint(s) and metadata the payee accepts. The mapping from alias to
payee is stable; the set of endpoints returned <bcp14>MAY</bcp14> vary over time and <bcp14>MAY</bcp14> be
tailored to the resolution context (for example, an amount or currency hint).</t>
      </section>
      <section anchor="comparison-with-the-payto-uri-scheme">
        <name>Comparison with the "payto" URI scheme</name>
        <t>The "payto" scheme <xref target="RFC8905"/> identifies a <em>payment target on a specific method</em>:
<tt>payto://iban/DE75...</tt> names an account reachable over a named payment method. The
"pay" scheme, by contrast, names a <em>rail-neutral payee</em> whose concrete
account(s)/endpoint(s) are discovered only at resolution time and <bcp14>MAY</bcp14> span several
rails. The two are complementary, not competing:</t>
        <ul spacing="normal">
          <li>
            <t>A "payto" URI is a fully-qualified destination; a "pay" URI is a name that
<em>resolves to</em> one or more destinations.</t>
          </li>
          <li>
            <t>A resolver <bcp14>MAY</bcp14> represent one of a payee's resolved endpoints as a "payto" URI
where the target rail has a "payto" method registered.</t>
          </li>
          <li>
            <t>"pay" adds rail selection and endpoint discovery above the destination layer that
"payto" occupies.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="resolution">
      <name>Resolution</name>
      <section anchor="resolver-discovery">
        <name>Resolver discovery</name>
        <t>A payer <bcp14>MUST</bcp14> determine a resolver for an alias before resolving it. Two mechanisms
are defined; a payer that supports both <bcp14>SHOULD</bcp14> prefer a locally configured resolver.</t>
        <ol spacing="normal" type="1"><li>
            <dl>
              <dt>Configured resolver:</dt>
              <dd>
                <t>A payer <bcp14>MAY</bcp14> be configured with a default resolver origin (an "https" origin). This
is the simplest deployment and matches the reference deployment
(<xref target="reference-wire"/>).</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt>DNS-based discovery:</dt>
              <dd>
                <t>A resolver for a given operator domain <bcp14>MAY</bcp14> be discovered via a Service Binding
(SVCB) record <xref target="RFC9460"/> published at the name
<tt>_pay._agents.&lt;operator-domain&gt;</tt>, following the DNS-AID conventions <xref target="DNSAID"/>.
The SVCB TargetName gives the resolver host; ALPN and port parameters give the
transport. When DNS-based discovery is used, the zone <bcp14>SHOULD</bcp14> be signed with
DNSSEC and a payer <bcp14>SHOULD NOT</bcp14> act on unsigned discovery data (see <xref target="security"/>).</t>
              </dd>
            </dl>
          </li>
        </ol>
        <t>The <tt>_pay._agents</tt> label composes with the other <tt>_&lt;service&gt;._agents</tt> service
labels defined by <xref target="DNSAID"/> (for example <tt>_mcp</tt> and <tt>_a2a</tt>), allowing an operator
to publish payment-resolver discovery alongside agent-protocol discovery in one
zone. This mechanism keeps the scheme operator-neutral: any operator publishing the
record becomes discoverable in the standards-track way, with no central registry
required.</t>
      </section>
      <section anchor="resolution-request">
        <name>Resolution request</name>
        <t>A resolver exposes resolution over HTTP. A payer resolves an alias by issuing an
HTTP GET whose final path segment is the alias, or an HTTP POST carrying the alias
and optional context (an amount, a currency, or a preferred rail) that the resolver
<bcp14>MAY</bcp14> use to tailor the response. The reference request and response shapes are given
in <xref target="reference-wire"/>.</t>
      </section>
      <section anchor="resolution-response">
        <name>Resolution response</name>
        <t>A resolution response conveys, at minimum, the alias, a resolution status, and - on
success - the payment endpoint(s) and preferred rail. The status is one of:</t>
        <table>
          <thead>
            <tr>
              <th align="left">status</th>
              <th align="left">meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">resolved</td>
              <td align="left">the alias resolved to at least one payment endpoint</td>
            </tr>
            <tr>
              <td align="left">not_found</td>
              <td align="left">no payee is registered for the alias</td>
            </tr>
            <tr>
              <td align="left">compliance_pending</td>
              <td align="left">resolution is held pending compliance review</td>
            </tr>
            <tr>
              <td align="left">blocked</td>
              <td align="left">resolution is refused (for example, a sanctions match)</td>
            </tr>
            <tr>
              <td align="left">degraded</td>
              <td align="left">resolved, but with reduced confidence or a fallback path</td>
            </tr>
          </tbody>
        </table>
        <t>A resolver <bcp14>MAY</bcp14> disclose different levels of detail to different callers (for
example, returning only status to unauthenticated callers and full routing metadata
only to authorized ones). Such tiering is a resolver policy matter and is not
constrained by this document, except that a resolver <bcp14>MUST NOT</bcp14> disclose payee
routing metadata (account numbers, ledger addresses) to an unauthenticated caller.</t>
      </section>
      <section anchor="deterministic">
        <name>Deterministic resolution</name>
        <t>Resolution <bcp14>MUST</bcp14> be deterministic: for a given alias and resolution context, a
resolver <bcp14>MUST</bcp14> return the same routing decision. No probabilistic model, heuristic
scorer, or machine-learning system is permitted in the resolution path. This is a
verifiable protocol property: a payer, an auditor, or a compliance system can
reproduce and check any resolution. Intelligence, if any, belongs in the <em>calling</em>
agent that decides whether and how much to pay - never in the mapping from name to
endpoint.</t>
      </section>
    </section>
    <section anchor="composition-with-agent-payment-protocols">
      <name>Composition with Agent-Payment Protocols</name>
      <t>The "pay" scheme names and locates a payee; other protocols move the money.</t>
      <ul spacing="normal">
        <li>
          <t>x402 <xref target="X402"/>: after resolving <tt>pay:name</tt>, a payer <bcp14>MAY</bcp14> obtain HTTP 402 payment
requirements for the alias and settle over x402. The resolved endpoint and the
x402 "accepts" block describe the same payee.</t>
        </li>
        <li>
          <t>Agent2Agent <xref target="A2A"/> and agent discovery <xref target="ANS"/>: an A2A Agent Card <bcp14>MAY</bcp14> advertise
the ability to resolve or be paid via a "pay" URI; an ANS endpoint's metadata URL
<bcp14>MAY</bcp14> point at such a card. In these compositions "pay" supplies the payee-naming
and resolution layer that the discovery and messaging protocols lack.</t>
        </li>
      </ul>
      <t>In all cases the "pay" scheme remains off the settlement path: it answers "who is
this payee and where can I pay them", not "move value now".</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests <strong>provisional</strong> registration of the "pay" URI scheme in the
"Uniform Resource Identifier (URI) Schemes" registry, per the procedure in
Section 7.2 of <xref target="RFC7595"/>:</t>
      <dl>
        <dt>Scheme name:</dt>
        <dd>
          <t>pay</t>
        </dd>
        <dt>Status:</dt>
        <dd>
          <t>Provisional</t>
        </dd>
        <dt>Applications/protocols that use this scheme name:</dt>
        <dd>
          <t>Rail-neutral naming and resolution of payment payees for human- and agent-initiated
payments; composition with agent-payment protocols (for example x402) that carry
out settlement.</t>
        </dd>
        <dt>Contact:</dt>
        <dd>
          <t>J. DiMare <eref target="mailto:jdimare@pm.me">jdimare@pm.me</eref></t>
        </dd>
        <dt>Change controller:</dt>
        <dd>
          <t>J. DiMare <eref target="mailto:jdimare@pm.me">jdimare@pm.me</eref></t>
        </dd>
        <dt>References:</dt>
        <dd>
          <t>This document.</t>
        </dd>
      </dl>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <dl>
        <dt>Resolution integrity:</dt>
        <dd>
          <t>A payer relies on the resolver to map an alias to the correct payee. Payers <bcp14>MUST</bcp14>
resolve over TLS. When a resolver is discovered via DNS (<xref target="resolution"/>), the zone
<bcp14>SHOULD</bcp14> be DNSSEC-signed and payers <bcp14>SHOULD</bcp14> reject unsigned discovery data, to
prevent an attacker from substituting a hostile resolver.</t>
        </dd>
        <dt>Homograph and normalization safety:</dt>
        <dd>
          <t>The alias grammar admits only lowercase ASCII letters, digits, and the hyphen.
There is no Unicode, no percent-encoding, and no case variation, so two distinct
aliases cannot be visually confused through homograph or normalization tricks that
affect internationalized identifiers.</t>
        </dd>
        <dt>Routing-metadata disclosure:</dt>
        <dd>
          <t>Payee routing metadata (account numbers, ledger addresses) is sensitive. A resolver
<bcp14>MUST NOT</bcp14> return such metadata to unauthenticated callers, and <bcp14>SHOULD</bcp14> apply
least-disclosure by caller authorization.</t>
        </dd>
        <dt>No custody, deterministic path:</dt>
        <dd>
          <t>A resolver holds no funds and does not settle. The deterministic-resolution
requirement (<xref target="deterministic"/>) prevents a resolver from covertly steering payments
through model-driven or non-reproducible logic, and makes every resolution auditable.</t>
        </dd>
        <dt>Amount and replay binding:</dt>
        <dd>
          <t>This scheme does not bind an amount or prevent replay; those properties belong to
the settlement protocol (for example x402) invoked after resolution.</t>
        </dd>
      </dl>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="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="RFC7595">
          <front>
            <title>Guidelines and Registration Procedures for URI Schemes</title>
            <author fullname="D. Thaler" initials="D." role="editor" surname="Thaler"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <author fullname="T. Hardie" initials="T." surname="Hardie"/>
            <date month="June" year="2015"/>
            <abstract>
              <t>This document updates the guidelines and recommendations, as well as the IANA registration processes, for the definition of Uniform Resource Identifier (URI) schemes. It obsoletes RFC 4395.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="35"/>
          <seriesInfo name="RFC" value="7595"/>
          <seriesInfo name="DOI" value="10.17487/RFC7595"/>
        </reference>
        <reference anchor="RFC9460">
          <front>
            <title>Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)</title>
            <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
            <author fullname="M. Bishop" initials="M." surname="Bishop"/>
            <author fullname="E. Nygren" initials="E." surname="Nygren"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document specifies the "SVCB" ("Service Binding") and "HTTPS" DNS resource record (RR) types to facilitate the lookup of information needed to make connections to network services, such as for HTTP origins. SVCB records allow a service to be provided from multiple alternative endpoints, each with associated parameters (such as transport protocol configuration), and are extensible to support future uses (such as keys for encrypting the TLS ClientHello). They also enable aliasing of apex domains, which is not possible with CNAME. The HTTPS RR is a variation of SVCB for use with HTTP (see RFC 9110, "HTTP Semantics"). By providing more information to the client before it attempts to establish a connection, these records offer potential benefits to both performance and privacy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9460"/>
          <seriesInfo name="DOI" value="10.17487/RFC9460"/>
        </reference>
        <reference anchor="RFC5234">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="P. Overell" initials="P." surname="Overell"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8905">
          <front>
            <title>The 'payto' URI Scheme for Payments</title>
            <author fullname="F. Dold" initials="F." surname="Dold"/>
            <author fullname="C. Grothoff" initials="C." surname="Grothoff"/>
            <date month="October" year="2020"/>
            <abstract>
              <t>This document defines the 'payto' Uniform Resource Identifier (URI) scheme for designating targets for payments.</t>
              <t>A unified URI scheme for all payment target types allows applications to offer user interactions with URIs that represent payment targets, simplifying the introduction of new payment systems and applications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8905"/>
          <seriesInfo name="DOI" value="10.17487/RFC8905"/>
        </reference>
        <reference anchor="DNSAID" target="https://datatracker.ietf.org/doc/draft-mozleywilliams-dnsop-dnsaid/">
          <front>
            <title>DNS-Based Agent Information Discovery (DNS-AID)</title>
            <author initials="" surname="Mozley-Williams, et al">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="X402" target="https://www.x402.org/">
          <front>
            <title>x402: An HTTP-native protocol for agent payments (HTTP 402 Payment Required)</title>
            <author>
              <organization/>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="A2A" target="https://a2a-protocol.org/">
          <front>
            <title>Agent2Agent (A2A) Protocol - Agent Card</title>
            <author>
              <organization/>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="ANS" target="https://datatracker.ietf.org/doc/draft-narajala-ans/">
          <front>
            <title>Agent Name Service (ANS)</title>
            <author>
              <organization/>
            </author>
            <date year="2026"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 322?>

<section anchor="reference-wire">
      <name>Reference deployment wire format</name>
      <t>This appendix is informative. It documents the resolution wire format of the first
deployed "pay" resolver, as an illustration of the mechanism in <xref target="resolution"/>. It
is not normative; other resolvers <bcp14>MAY</bcp14> use other encodings.</t>
      <t>The reference resolver serves resolution at an "https" origin under <tt>/api/v1</tt>:</t>
      <ul spacing="normal">
        <li>
          <t><tt>GET /api/v1/resolve/{alias}</tt> - resolve by path.</t>
        </li>
        <li>
          <t><tt>POST /api/v1/resolve</tt> - resolve with a JSON body
<tt>{ "alias_name": "...", "amount": "...", "currency": "...", "preferred_rail": "..." }</tt>,
of which only <tt>alias_name</tt> is required.</t>
        </li>
      </ul>
      <t>Responses carry an <tt>X-Resolved-From</tt> header with value <tt>origin</tt>, <tt>cache</tt>, or
<tt>negative_cache</tt>, and a JSON envelope:</t>
      <sourcecode type="json"><![CDATA[
{
  "success": true,
  "data": { "...": "resolution object" },
  "error_code": null,
  "message": null,
  "timestamp": "2026-07-27T00:00:00Z"
}
]]></sourcecode>
      <t>The resolution object (fully disclosed) contains: <tt>resolution_id</tt>, <tt>message_id</tt>,
<tt>alias</tt>, <tt>status</tt>, <tt>resolved_at</tt>, <tt>resolved_from</tt>, and - on success -
<tt>preferred_rail</tt>, <tt>preferred_endpoint</tt>, <tt>fallback_endpoints</tt>, and optional
<tt>iso20022_hint</tt>, <tt>compliance</tt>, and <tt>agent_commerce</tt> blocks. Each endpoint carries a
<tt>rail_type</tt>, <tt>currency</tt>, <tt>priority</tt>, and (only to sufficiently authorized callers)
<tt>routing_metadata</tt>. An unauthenticated caller receives only
<tt>{ alias, status, resolution_id, message_id, resolved_at }</tt>, consistent with the
disclosure rule in <xref target="resolution"/>.</t>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to the maintainers of the DNS-AID, ANS, and x402 efforts, whose adjacent work
this scheme is designed to compose with.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
FkJkWV1H9XCi/GOz25Po/wAnArp93DkAAA==

-->

</rfc>
