<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc [
  <!ENTITY nbsp "&#160;">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     version="3"
     docName="draft-stone-atxn-00"
     ipr="trust200902"
     category="std"
     submissionType="IETF"
     xml:lang="en"
     tocInclude="true"
     sortRefs="true"
     symRefs="true">

  <front>
    <title abbrev="ATXN">ATXN: Agent-to-Agent Transaction Definition Protocol</title>

    <seriesInfo name="Internet-Draft" value="draft-stone-atxn-00"/>

    <author fullname="Ben Stone" surname="stone" initials="B.">
      <organization>SwarmSync.AI</organization>
      <address>
        <email>benstone@swarmsync.ai</email>
      </address>
    </author>

    <date year="2026" month="April" day="25"/>

    <keyword>agent</keyword>
    <keyword>agentic-commerce</keyword>
    <keyword>A2A</keyword>
    <keyword>transaction</keyword>
    <keyword>escrow</keyword>
    <keyword>dispute</keyword>
    <keyword>audit</keyword>
    <keyword>liability</keyword>
    <keyword>AP2</keyword>
    <keyword>x402</keyword>
    <keyword>VCAP</keyword>
    <keyword>ATEP</keyword>

    <abstract>
      <t>
        This document defines a canonical, defensible, machine-checkable primitive for an
        Agent-to-Agent (A2A) transaction. It establishes the bundle of cryptographically signed
        elements that constitute a recorded value exchange between two software agents acting as
        instruments of identified principals, the conformance tiers that determine which elements
        are required, the rail-specific Profiles that map the bundle to existing payment
        infrastructure, and the two-tier validity model that distinguishes externally-adjudicable
        transactions from operationally-valid uncontested exchanges.
      </t>
      <t>
        ATXN is the foundational legal and technical primitive for escrow, dispute resolution,
        audit, and liability allocation in agentic commerce. It is designed to operate under
        existing contract law (UCC 2-204, UETA 14, Restatement (Third) of Agency, CISG) without
        requiring statutory recognition of agent personhood. It maps directly to AP2, Stripe ACP,
        Visa TAP, Mastercard Agent Pay, and x402 as Profiles of a single canonical bundle.
      </t>
      <t>
        Companion specifications (all co-submitted as Internet-Drafts, work in progress):
      </t>
      <ul>
        <li>AIVS (draft-stone-aivs-01): cryptographic audit-trail substrate that ATXN bundles inherit from</li>
        <li>VCAP (draft-stone-vcap-01): verified-commerce escrow rails that consume ATXN bundles</li>
        <li>ATEP (draft-stone-atep-01): trust passports that bind agents to capacity-attested principals</li>
        <li>ADRP (draft-stone-adrp-00): dispute resolution protocol invoked when an ATXN bundle enters the disputed state</li>
      </ul>
    </abstract>
  </front>

  <middle>

    <!-- ============================================================ -->
    <section anchor="introduction" numbered="true" title="Introduction">

      <section anchor="the-problem" numbered="true" title="The Problem">
        <t>
          Every existing payment infrastructure encodes 3,000 years of human commercial law
          (offer, acceptance, consideration, capacity, mutual assent, dispute window). Every
          assumption in that infrastructure presupposes a person — a mind that intends, a body
          that signs, a legal status that bears liability.
        </t>
        <t>
          Software agents transacting on behalf of principals break every one of these assumptions
          simultaneously:
        </t>
        <ul>
          <li>Agents cannot sign contracts in the legal sense;</li>
          <li>Delivery verification has no independent mechanism when both parties are software;</li>
          <li>When harm occurs, the liability chain among principal, operator, merchant, processor,
              and model provider is undefined;</li>
          <li>Existing dispute mechanisms (chargebacks, arbitration) have no native concept of an
              agent acting under bounded mandate.</li>
        </ul>
        <t>
          Without a canonical primitive, every platform deploying agentic commerce will
          independently invent incompatible transaction records, producing a fragmented ecosystem
          in which cross-platform escrow, dispute resolution, and audit are impossible.
        </t>
      </section>

      <section anchor="what-atxn-defines" numbered="true" title="What ATXN Defines">
        <t>
          An A2A transaction is the cryptographically-verifiable execution of a Bundle comprising
          five signed elements:
        </t>
        <ol>
          <li>Intent Mandate — principal's signed declaration of desired outcome</li>
          <li>Scope/Capability Token — machine-checkable bounds the agent cannot exceed</li>
          <li>Payment Authorization — rail-agnostic signed instrument reference</li>
          <li>Delivery Attestation — counterparty-countersigned proof that performance occurred</li>
          <li>Revocability Window — declared finality clock with a queryable revocation beacon</li>
        </ol>
        <t>
          Each agent participating in a Bundle presents a Standing Token binding it to a
          capacity-attested principal via a verifiable credential chain.
        </t>
      </section>

      <section anchor="what-atxn-does-not-do" numbered="true" title="What ATXN Deliberately Does NOT Do">
        <ul>
          <li>ATXN does not grant agents legal personhood. Bundles are evidentiary artifacts of
              principal-to-principal contracts.</li>
          <li>ATXN does not require statutory change. It operates under existing UCC 2-204,
              UETA 14, Restatement (Third) of Agency, and CISG.</li>
          <li>ATXN does not define a dispute resolution forum. The Bundle's choice-of-law tag and
              Profile-JURISDICTION pin the forum at signing; the actual dispute mechanism is
              profile-specific (chargeback for Profile-CARD, on-chain arbitration for
              Profile-CRYPTO, ADRP for Profile-MANDATE).</li>
          <li>ATXN does not define agent identity beyond a DID/operator/principal credential
              chain.</li>
        </ul>
      </section>

      <section anchor="legal-model" numbered="true" title="Legal Model: Agents as Executors, Not Parties">
        <t>
          ATXN treats Agents as instruments of Principals, not as independent legal parties.
          This is consistent with UETA 14 ("automated transactions") and Restatement (Third) of
          Agency 1.01, under which an agent acting within the scope of its mandate binds the
          principal, not itself. All liability in an ATXN Bundle flows to the identified
          Principals via the Standing Token chain. This legal model is shared by the companion
          specification ADRP (draft-stone-adrp-00, Section 5.1), which further specifies that
          only Principals have dispute standing.
        </t>
      </section>

      <section anchor="design-tenets" numbered="true" title="Design Tenets">
        <ul>
          <li><strong>Falsifiable:</strong> Every element is a binary cryptographic check.</li>
          <li><strong>Rail-agnostic:</strong> A Bundle abstracts over AP2, ACP, TAP, Agent Pay,
              x402; none privileged.</li>
          <li><strong>Two-tier validity:</strong> Distinguishes externally-adjudicable
              transactions from operationally-valid uncontested exchanges.</li>
          <li><strong>Mandate-framework-anchored:</strong> Legal force derives from the upstream
              mandate chain, not the transaction message itself.</li>
          <li><strong>Tiered conformance:</strong> L1 atomic, L2 mandated, L3 fiduciary —
              proportional to risk class.</li>
          <li><strong>Mechanical assent:</strong> "Mutual assent" is replaced by
              matched-signed-intents (a mechanical predicate match).</li>
        </ul>
      </section>

    </section>
    <!-- ============================================================ -->

    <section anchor="terminology" numbered="true" title="Terminology">
      <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>MAY</bcp14>, and
        <bcp14>OPTIONAL</bcp14> in this document are to be interpreted as described in
        BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/>.
      </t>
      <dl>
        <dt>Agent</dt>
        <dd>A software process that takes action on behalf of a Principal under a verifiable
            Mandate.</dd>
        <dt>Principal</dt>
        <dd>A natural or legal person whose legal capacity, liability, and recourse are anchored
            by the transaction.</dd>
        <dt>Operator</dt>
        <dd>The platform, service, or entity that runs an Agent on behalf of a Principal.</dd>
        <dt>Bundle</dt>
        <dd>The five-element ATXN primitive defined in <xref target="atxn-bundle"/>.</dd>
        <dt>Standing Token</dt>
        <dd>A verifiable credential chain (<tt>agent_key</tt> to <tt>operator_key</tt> to
            <tt>principal_legal_identity</tt>) presented at Bundle execution, defined in
            <xref target="standing-tokens"/>.</dd>
        <dt>Mandate Framework</dt>
        <dd>The pre-established principal-to-principal authorization structure from which the
            Bundle derives legal force.</dd>
        <dt>Profile</dt>
        <dd>A mapping of the Bundle's five elements onto a specific payment rail's native
            artifacts (<xref target="rail-profiles"/>).</dd>
        <dt>Tier</dt>
        <dd>A conformance level (L1/L2/L3) that determines which Bundle elements are required
            (<xref target="conformance-tiers"/>).</dd>
        <dt>Primary Validity</dt>
        <dd>All five Bundle elements are independently verifiable by a party with no stake in
            the outcome.</dd>
        <dt>Secondary (Operational) Validity</dt>
        <dd>Self-attested delivery by transacting parties; valid between parties when uncontested
            but not independently adjudicable.</dd>
        <dt>Commitment Event</dt>
        <dd>The point at which obligation forms; the liability-attachment moment.</dd>
        <dt>Revocation Beacon</dt>
        <dd>Principal-controlled endpoint that publishes signed revocation events.</dd>
        <dt>ADRP</dt>
        <dd>Agent Dispute Resolution Protocol (companion specification, draft-stone-adrp-00)
            invoked when a Bundle enters the disputed state. Terms from ADRP used in this
            document: DisputeBundle, DisputeFiling, DisputeFlag, RulingBundle, EscrowDirective,
            Arbitration Mandate. See draft-stone-adrp-00 Section 2 for definitions.</dd>
        <dt>Conduit Attestation</dt>
        <dd>A delivery attestation issued by the SwarmSync Conduit headless-browser audit
            substrate or another structurally independent attestor recognized by the Bundle's
            Profile.</dd>
      </dl>
    </section>

    <!-- ============================================================ -->
    <section anchor="atxn-bundle" numbered="true" title="The ATXN Bundle">
      <t>
        A Bundle is a cryptographically-signed object containing five elements. Each element
        <bcp14>MUST</bcp14> be a Verifiable Credential per the W3C VC Data Model 2.0,
        JSON-LD canonicalized per <xref target="RFC8785"/> (JCS), and signed using JWS with
        EdDSA (Ed25519) or ECDSA (P-256).
      </t>

      <section anchor="element-1-intent-mandate" numbered="true" title="Element 1: Intent Mandate">
        <t>
          The Intent Mandate is the Principal's signed declaration of desired outcome.
        </t>
        <t>Required fields:</t>
        <dl>
          <dt><tt>intent_id</tt> (UUID)</dt>
          <dd>Unique mandate identifier.</dd>
          <dt><tt>principal_did</tt> (DID)</dt>
          <dd>Principal's decentralized identifier.</dd>
          <dt><tt>outcome</tt> (String)</dt>
          <dd>Natural-language description of desired outcome.</dd>
          <dt><tt>budget_ceiling</tt> (Decimal + currency)</dt>
          <dd>Maximum spend authorized.</dd>
          <dt><tt>counterparty_class</tt> (Enum/String)</dt>
          <dd>Allowed counterparty type or specific DID.</dd>
          <dt><tt>time_window</tt> (ISO 8601 interval)</dt>
          <dd>Mandate validity window.</dd>
          <dt><tt>choice_of_law</tt> (ISO 3166-1 alpha-2)</dt>
          <dd>Jurisdiction tag for dispute pinning.</dd>
          <dt><tt>mandate_framework_ref</tt> (URI)</dt>
          <dd>Reference to upstream mandate framework that grants legal force.</dd>
          <dt><tt>principal_signature</tt> (Ed25519 base64)</dt>
          <dd>Principal's signature over canonical JSON of all preceding fields.</dd>
        </dl>
        <t>
          The <tt>mandate_framework_ref</tt> field is <bcp14>REQUIRED</bcp14>. A Bundle with no
          mandate-framework reference fails primary validity.
        </t>
      </section>

      <section anchor="element-2-scope-token" numbered="true" title="Element 2: Scope/Capability Token">
        <t>Required fields:</t>
        <dl>
          <dt><tt>scope_id</tt> (UUID)</dt>
          <dd>Unique scope identifier.</dd>
          <dt><tt>intent_id</tt> (UUID)</dt>
          <dd>Foreign key to Intent Mandate.</dd>
          <dt><tt>max_spend</tt> (Decimal + currency)</dt>
          <dd>Per-transaction spend cap.</dd>
          <dt><tt>allowed_actions</tt> (Array of String)</dt>
          <dd>Machine-checkable action predicates.</dd>
          <dt><tt>allowed_counterparties</tt> (Array of DID or pattern)</dt>
          <dd>Counterparty allowlist or pattern.</dd>
          <dt><tt>sub_delegation_depth</tt> (Integer)</dt>
          <dd>Maximum sub-agent chain depth.</dd>
          <dt><tt>predicate_engine_version</tt> (SemVer)</dt>
          <dd>Version of deterministic evaluator.</dd>
          <dt><tt>enforcement_mode</tt> (Enum: <tt>advisory</tt> or <tt>enforced</tt>)</dt>
          <dd>v0.1 default <tt>advisory</tt>; v1.0 default <tt>enforced</tt>.</dd>
          <dt><tt>operator_signature</tt> (Ed25519 base64)</dt>
          <dd>Operator's signature.</dd>
        </dl>
        <t>
          Enforcement mode: v0.1 implementations <bcp14>MAY</bcp14> use advisory mode, where
          scope is parseable but a scope-delta event is logged rather than blocking execution.
          v1.0 implementations <bcp14>MUST</bcp14> default to enforced.
        </t>
      </section>

      <section anchor="element-3-payment-auth" numbered="true" title="Element 3: Payment Authorization">
        <t>Required fields:</t>
        <dl>
          <dt><tt>payment_id</tt> (UUID)</dt>
          <dd>Unique payment identifier.</dd>
          <dt><tt>intent_id</tt> (UUID)</dt>
          <dd>Foreign key.</dd>
          <dt><tt>instrument_type</tt> (Enum)</dt>
          <dd><tt>card_token</tt>, <tt>x402_challenge</tt>, <tt>ach_mandate</tt>,
              <tt>stablecoin_preauth</tt>, <tt>bank_transfer</tt>,
              <tt>platform_credit</tt>.</dd>
          <dt><tt>instrument_ref</tt> (String)</dt>
          <dd>Rail-specific reference.</dd>
          <dt><tt>amount</tt> (Decimal + currency)</dt>
          <dd>Authorized amount.</dd>
          <dt><tt>profile</tt> (Enum)</dt>
          <dd>Active rail profile.</dd>
          <dt><tt>principal_signature</tt> or <tt>operator_signature</tt> (Ed25519 base64)</dt>
          <dd>Signature appropriate to profile.</dd>
        </dl>
      </section>

      <section anchor="element-4-delivery-attestation" numbered="true" title="Element 4: Delivery Attestation">
        <t>Required fields:</t>
        <dl>
          <dt><tt>delivery_id</tt> (UUID)</dt>
          <dd>Unique delivery identifier.</dd>
          <dt><tt>intent_id</tt> (UUID)</dt>
          <dd>Foreign key.</dd>
          <dt><tt>deliverable_class</tt> (Enum)</dt>
          <dd><tt>sync_api</tt>, <tt>async_job</tt>, <tt>streamed_media</tt>,
              <tt>physical_offchain</tt>.</dd>
          <dt><tt>attestation_pattern</tt> (Object)</dt>
          <dd>Class-specific structure.</dd>
          <dt><tt>counterparty_signature</tt> (Ed25519 base64)</dt>
          <dd>Receiving Agent's countersignature.</dd>
          <dt><tt>independent_attestor_signature</tt> (Ed25519 base64, optional)</dt>
          <dd>Required for primary validity.</dd>
        </dl>
        <t>Class-specific attestation patterns:</t>
        <ul>
          <li><tt>sync_api</tt>: <tt>response_hash</tt>, <tt>timestamp</tt>,
              <tt>status_code</tt></li>
          <li><tt>async_job</tt>: <tt>job_completion_oracle_signature</tt>,
              <tt>oracle_did</tt>, <tt>job_artifact_hash</tt></li>
          <li><tt>streamed_media</tt>: <tt>merkle_root</tt>, <tt>chunk_count</tt>,
              <tt>total_bytes</tt></li>
          <li><tt>physical_offchain</tt>: <tt>third_party_carrier_did</tt>,
              <tt>signed_proof_of_delivery</tt>, <tt>gps_timestamp_optional</tt></li>
        </ul>
        <t>
          A transaction lacking an <tt>independent_attestor_signature</tt> is operationally
          valid (secondary validity) but is <bcp14>NOT</bcp14> primary-valid for adjudication
          purposes.
        </t>
      </section>

      <section anchor="element-5-revocability-window" numbered="true" title="Element 5: Revocability Window">
        <t>Required fields:</t>
        <dl>
          <dt><tt>window_id</tt> (UUID)</dt>
          <dd>Unique window identifier.</dd>
          <dt><tt>intent_id</tt> (UUID)</dt>
          <dd>Foreign key.</dd>
          <dt><tt>start_time</tt> (ISO 8601 timestamp)</dt>
          <dd>Window opens.</dd>
          <dt><tt>end_time</tt> (ISO 8601 timestamp)</dt>
          <dd>Window closes (finality reached).</dd>
          <dt><tt>revocation_beacon_url</tt> (URI)</dt>
          <dd>Principal-controlled revocation endpoint.</dd>
          <dt><tt>clock_authority</tt> (Object)</dt>
          <dd>Threshold-signature clock specification.</dd>
        </dl>
        <t>
          The clock authority <bcp14>MUST</bcp14> be a 3-of-5 threshold signature from a
          federated set of timestamping authorities for L2 and L3 Bundles.
        </t>
      </section>

    </section>
    <!-- ============================================================ -->

    <section anchor="standing-tokens" numbered="true" title="Standing Tokens and Principal Anchoring">
      <t>
        Each Agent participating in a Bundle <bcp14>MUST</bcp14> present a Standing Token.
        A Standing Token is a verifiable credential chain: <tt>agent_key</tt> to
        <tt>operator_key</tt> to <tt>principal_legal_identity</tt>.
      </t>

      <section anchor="standing-token-sub-elements" numbered="true" title="Required Sub-Elements">
        <table>
          <thead>
            <tr>
              <th>Sub-element</th>
              <th>Required</th>
              <th>Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td><tt>agent_key</tt></td>
              <td>Yes</td>
              <td>Ed25519 or P-256 public key for the executing agent</td>
            </tr>
            <tr>
              <td><tt>operator_key</tt></td>
              <td>Yes</td>
              <td>Public key of the platform operating the agent</td>
            </tr>
            <tr>
              <td><tt>principal_did</tt></td>
              <td>Yes</td>
              <td>DID of the legal entity (natural or corporate)</td>
            </tr>
            <tr>
              <td><tt>capacity_attestation</tt></td>
              <td>Yes (L2/L3)</td>
              <td>VC issued by a recognized verifier proving principal capacity</td>
            </tr>
            <tr>
              <td><tt>freshness_proof</tt></td>
              <td>Yes</td>
              <td>Re-attestation timestamp, valid within freshness window</td>
            </tr>
            <tr>
              <td><tt>revocation_list_url</tt></td>
              <td>Yes</td>
              <td>Issuer-published revocation list endpoint</td>
            </tr>
            <tr>
              <td><tt>arbitrator_did</tt></td>
              <td>Yes (L2/L3)</td>
              <td>Pre-committed arbitrator DID for dispute escalation</td>
            </tr>
            <tr>
              <td><tt>arb_mandate_hash</tt></td>
              <td>Yes (L2/L3)</td>
              <td>SHA-256 hash of the Arbitration Mandate (per ADRP Section 4); anchors
                  the ADRP dispute-resolution agreement at Standing Token signing time</td>
            </tr>
          </tbody>
        </table>
      </section>

      <section anchor="capacity-attestation" numbered="true" title="Capacity Attestation">
        <t>
          A Standing Token without capacity attestation <bcp14>MUST NOT</bcp14> anchor an L2
          or L3 Bundle. Capacity attestation <bcp14>MUST</bcp14> establish that, at the time
          of mandate granting, the Principal had:
        </t>
        <ul>
          <li>legal age in the relevant jurisdiction;</li>
          <li>no active sanctions;</li>
          <li>(for corporate principals) active legal-entity status;</li>
          <li>jurisdiction-permitted authority for the transaction class.</li>
        </ul>
      </section>

      <section anchor="pre-committed-arbitrator" numbered="true" title="Pre-Committed Arbitrator">
        <t>
          Every L2 and L3 Standing Token <bcp14>MUST</bcp14> commit, at signing time, to an
          <tt>arbitrator_did</tt> empowered to adjudicate disputes. The
          <tt>arb_mandate_hash</tt> field anchors the full Arbitration Mandate (defined in
          ADRP, draft-stone-adrp-00, Section 4) at Standing Token signing time. A Standing
          Token for an L2 or L3 Bundle without a valid <tt>arb_mandate_hash</tt>
          <bcp14>MUST NOT</bcp14> be accepted.
        </t>
      </section>

      <section anchor="freshness-revocation" numbered="true" title="Freshness and Revocation">
        <t>
          Freshness window: Re-attestation <bcp14>MUST</bcp14> occur every N transactions or
          M days (whichever is shorter), where N and M are Profile-specific. A stale or
          revoked Standing Token <bcp14>MUST NOT</bcp14> anchor a new Bundle.
        </t>
      </section>

    </section>
    <!-- ============================================================ -->

    <section anchor="conformance-tiers" numbered="true" title="Conformance Tiers">
      <table>
        <thead>
          <tr>
            <th>Tier</th>
            <th>Required Elements</th>
            <th>Use Case</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>L1 — Atomic</td>
            <td>Elements 1, 2, 3, 4 in single round-trip; Element 5 optional</td>
            <td>x402 micropayments; sub-cent metered compute; streaming inference</td>
          </tr>
          <tr>
            <td>L2 — Mandated</td>
            <td>Elements 1-5 (full Bundle); capacity attestation; pre-committed arbitrator</td>
            <td>Standard agentic commerce: AP2 purchases, Stripe ACP, multi-step service contracts</td>
          </tr>
          <tr>
            <td>L3 — Fiduciary</td>
            <td>Elements 1-5 + epistemic attestation + multi-sig principal binding</td>
            <td>High-value (greater than $10k or fiduciary-grade) transactions; regulated commerce;
                agent-managed treasury moves</td>
          </tr>
        </tbody>
      </table>

      <section anchor="anti-arbitrage-rule" numbered="true" title="Anti-Arbitrage Rule">
        <t>
          Tier selection is constrained by transaction risk class, not by issuer election alone.
          A risk-classifier registry (jurisdiction-specific) determines the floor tier per
          transaction. An issuer <bcp14>MUST NOT</bcp14> select a Tier below the floor mandated
          by the registered classifier for the transaction class.
        </t>
      </section>

      <section anchor="dispute-phase-tier-escalation" numbered="true" title="Dispute-Phase Tier Escalation">
        <t>
          ATXN Tier assignment governs Bundle formation. During dispute resolution, ADRP
          (draft-stone-adrp-00, Section 10.1) <bcp14>MAY</bcp14> impose a lower
          dispute-routing escalation threshold than ATXN's L3 formation threshold.
          Specifically, ADRP routes a Bundle declared L2 at formation to L3 dispute processing
          if the transaction value exceeds $1,000. This is a dispute-processing rule only and
          does not retroactively change the Bundle's declared Tier. The $10k threshold in
          <xref target="conformance-tiers"/> is the formation-tier floor for L3 Bundles;
          the $1,000 escalation trigger in ADRP Section 10.1 governs only the dispute
          arbitration path.
        </t>
      </section>

    </section>
    <!-- ============================================================ -->

    <section anchor="rail-profiles" numbered="true" title="Rail Profiles">
      <t>
        A Bundle is valid if it conforms to a defined Tier and at least one Profile.
      </t>
      <table>
        <thead>
          <tr>
            <th>Profile</th>
            <th>Maps To</th>
            <th>Notes</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>Profile-MANDATE</td>
            <td>AP2 Intent/Cart/Payment Mandates</td>
            <td>Native AP2 alignment</td>
          </tr>
          <tr>
            <td>Profile-CARD</td>
            <td>Visa TAP / Mastercard Agent Pay / Stripe ACP</td>
            <td>Agentic tokens, SPTs, network credentials</td>
          </tr>
          <tr>
            <td>Profile-CRYPTO</td>
            <td>x402, ERC-8004</td>
            <td>HTTP 402 challenges, on-chain attestations</td>
          </tr>
          <tr>
            <td>Profile-AUTONOMOUS</td>
            <td>Standing intents, recurring scope</td>
            <td>For unattended operation; machine-time expiry</td>
          </tr>
          <tr>
            <td>Profile-PLATFORM</td>
            <td>Platform-vouched OAuth + HMAC equivalents</td>
            <td>Covers non-cryptographic enterprise A2A volume</td>
          </tr>
          <tr>
            <td>Profile-JURISDICTION-{US,EU,UK,SG,...}</td>
            <td>Choice-of-law overlay</td>
            <td>Declares applicable consumer-protection regime, dispute forum, data residency</td>
          </tr>
        </tbody>
      </table>

      <section anchor="profile-platform" numbered="true" title="Profile-PLATFORM">
        <t>
          The dominant real-world A2A volume in 2026 runs on platform-vouched rails.
          Profile-PLATFORM Bundles cannot achieve primary validity but <bcp14>MAY</bcp14> be
          operationally valid for execution between consenting parties using the platform.
        </t>
      </section>

      <section anchor="profile-composition" numbered="true" title="Profile Composition">
        <t>
          A Bundle <bcp14>MAY</bcp14> declare multiple Profiles. The Bundle's effective
          constraints are the union of its declared Profiles' constraints.
        </t>
      </section>

    </section>
    <!-- ============================================================ -->

    <section anchor="two-tier-validity" numbered="true" title="Two-Tier Validity Model">

      <section anchor="primary-validity" numbered="true" title="Primary Validity">
        <t>
          A Bundle is primary-valid if and only if:
        </t>
        <ul>
          <li>all five elements (per the conformance Tier) are present and signed;</li>
          <li>the Standing Token chain validates to a capacity-attested Principal;</li>
          <li>every element is independently verifiable by a party with no stake in the
              outcome;</li>
          <li>the Scope predicate evaluates true against the Cart/action under the declared
              <tt>enforcement_mode</tt>;</li>
          <li>the chosen Profile's settlement constraint is met.</li>
        </ul>
        <t>
          Primary validity is a precondition for independent adjudication (court enforcement,
          regulatory recognition, cross-platform dispute escalation).
        </t>
      </section>

      <section anchor="secondary-validity" numbered="true" title="Secondary (Operational) Validity">
        <t>
          A Bundle is secondary-valid if and only if:
        </t>
        <ul>
          <li>it executes successfully between the two parties;</li>
          <li>both parties countersign without dispute;</li>
          <li>Standing Tokens validate to identifiable Principals (capacity attestation
              <bcp14>MAY</bcp14> be deferred);</li>
          <li>delivery attestation is self-reported (no independent attestor).</li>
        </ul>
        <t>
          Secondary-valid Bundles are operationally binding between the transacting parties
          but are <bcp14>NOT</bcp14> independently adjudicable.
        </t>
      </section>

      <section anchor="validity-boundary" numbered="true" title="Boundary">
        <t>
          A primary-valid Bundle <bcp14>MUST</bcp14> also satisfy all secondary validity
          conditions. A secondary-valid Bundle <bcp14>MUST NOT</bcp14> be marketed, recorded,
          or relied upon as primary-valid.
        </t>
      </section>

    </section>
    <!-- ============================================================ -->

    <section anchor="state-machine" numbered="true" title="State Machine">
      <t>
        States: <tt>proposed</tt>, <tt>authorized</tt>, <tt>executing</tt>,
        <tt>delivered</tt>, <tt>finalized</tt>, <tt>disputed</tt>,
        <tt>adjudicated</tt>.
      </t>
      <artwork type="ascii-art"><![CDATA[
proposed --> authorized --> executing --> delivered --> finalized
                                               |
                                               v
                                           disputed --> adjudicated
]]></artwork>
      <table>
        <thead>
          <tr>
            <th>State</th>
            <th>Trigger</th>
            <th>Required Signatures</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td><tt>proposed</tt></td>
            <td>Intent Mandate signed by Principal</td>
            <td>Principal</td>
          </tr>
          <tr>
            <td><tt>authorized</tt></td>
            <td>Scope Token + Payment Authorization signed</td>
            <td>Principal + Operator</td>
          </tr>
          <tr>
            <td><tt>executing</tt></td>
            <td>Agent action begins</td>
            <td>n/a</td>
          </tr>
          <tr>
            <td><tt>delivered</tt></td>
            <td>Delivery Attestation countersigned</td>
            <td>Counterparty (+ independent attestor for primary validity)</td>
          </tr>
          <tr>
            <td><tt>finalized</tt></td>
            <td>Revocability Window closes without revocation</td>
            <td>Threshold clock authority</td>
          </tr>
          <tr>
            <td><tt>disputed</tt></td>
            <td>Counterparty contests OR revocation beacon fires</td>
            <td>Either party + arbiter notification</td>
          </tr>
          <tr>
            <td><tt>adjudicated</tt></td>
            <td>ADRP procedure terminates</td>
            <td>Arbiter + ADRP-defined parties</td>
          </tr>
        </tbody>
      </table>

      <section anchor="commitment-event" numbered="true" title="Commitment Event">
        <t>
          The commitment event — the transition from <tt>proposed</tt> to
          <tt>authorized</tt> — is the legally significant moment for liability attachment,
          NOT the <tt>finalized</tt> state. Liability attaches at authorization time, even if
          delivery never occurs. A Principal's revocation between <tt>authorized</tt> and
          <tt>delivered</tt> triggers <tt>disputed</tt> (not void). An Operator's failure
          between <tt>authorized</tt> and <tt>delivered</tt> is a breach attaching to the
          operator-fallback liability tier (<xref target="liability-waterfall"/>).
        </t>
      </section>

      <section anchor="adrp-join-points" numbered="true" title="ADRP State Machine Join Points">
        <table>
          <thead>
            <tr>
              <th>ATXN State Transition</th>
              <th>ADRP Entry State</th>
              <th>Condition</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td><tt>delivered</tt> to <tt>disputed</tt></td>
              <td>ADRP FLAGGED</td>
              <td>Agent emits DisputeFlag (advisory; principal must ratify within tier window)</td>
            </tr>
            <tr>
              <td><tt>delivered</tt> to <tt>disputed</tt></td>
              <td>ADRP FILED</td>
              <td>Principal emits DisputeFiling directly (skips FLAGGED)</td>
            </tr>
            <tr>
              <td><tt>disputed</tt> (ADRP RULED)</td>
              <td><tt>adjudicated</tt></td>
              <td>ADRP RulingBundle signed; EscrowDirective produced</td>
            </tr>
            <tr>
              <td><tt>disputed</tt> (ADRP SETTLED)</td>
              <td><tt>finalized</tt></td>
              <td>EscrowDirective consumed by payment rail; escrow released or refunded</td>
            </tr>
            <tr>
              <td><tt>disputed</tt> (ADRP WITHDRAWN)</td>
              <td><tt>finalized</tt></td>
              <td>Filer withdraws; partial fee refund; escrow releases per original terms</td>
            </tr>
            <tr>
              <td><tt>disputed</tt> (ADRP EXPIRED)</td>
              <td><tt>finalized</tt></td>
              <td>Dispute window expired; escrow defaults per Profile</td>
            </tr>
          </tbody>
        </table>
      </section>

    </section>
    <!-- ============================================================ -->

    <section anchor="cryptographic-requirements" numbered="true" title="Cryptographic Requirements">

      <section anchor="signature-algorithms" numbered="true" title="Signature Algorithms">
        <t>
          Primary: EdDSA (Ed25519) per <xref target="RFC8032"/>. Alternate: ECDSA P-256 per
          <xref target="RFC6979"/> (for FIPS-required environments). All signatures
          <bcp14>MUST</bcp14> be over the JCS (<xref target="RFC8785"/>) canonicalization of
          the signed object.
        </t>
      </section>

      <section anchor="hash-functions" numbered="true" title="Hash Functions">
        <t>
          Primary: SHA-256 per FIPS 180-4. Optional: SHA3-256 (forward-compatible).
        </t>
      </section>

      <section anchor="timestamping" numbered="true" title="Timestamping">
        <t>
          L2 and L3 Bundles <bcp14>MUST</bcp14> use a 3-of-5 threshold-signature clock
          authority. Single-source timestamps are <bcp14>SUFFICIENT</bcp14> only for L1.
        </t>
      </section>

      <section anchor="key-hierarchy" numbered="true" title="Key Hierarchy">
        <dl>
          <dt><tt>agent_key</tt></dt>
          <dd>Short-lived (rotated per session or per N transactions).</dd>
          <dt><tt>operator_key</tt></dt>
          <dd>Longer-lived (rotated quarterly or on incident).</dd>
          <dt><tt>principal_key</tt></dt>
          <dd>Long-lived (rotated annually or on key-loss event).</dd>
        </dl>
        <t>
          Cross-domain key reuse <bcp14>MUST</bcp14> be documented in the Standing Token's
          <tt>key_usage</tt> field.
        </t>
      </section>

    </section>
    <!-- ============================================================ -->

    <section anchor="dispute-triggers" numbered="true" title="Dispute Triggers and ADRP Handoff">

      <section anchor="dispute-trigger-list" numbered="true" title="Dispute Triggers">
        <t>
          A Bundle <bcp14>MUST</bcp14> transition to <tt>disputed</tt> if any of:
        </t>
        <ul>
          <li>counterparty issues a contestation signed by their Standing Token within the
              Revocability Window;</li>
          <li>Principal triggers the revocation beacon for the Bundle's <tt>intent_id</tt>
              before <tt>finalized</tt>;</li>
          <li>independent attestor's signature fails verification (when present);</li>
          <li>scope predicate evaluates false post-execution (under enforced mode);</li>
          <li>capacity attestation expires or revokes mid-execution;</li>
          <li>mandate framework reference becomes invalid.</li>
        </ul>
      </section>

      <section anchor="adrp-handoff" numbered="true" title="ADRP Handoff">
        <t>
          When a Bundle enters <tt>disputed</tt>, the executing platform
          <bcp14>MUST</bcp14>:
        </t>
        <ol>
          <li>Freeze settlement (if Profile-CRYPTO escrow) or initiate chargeback hold (if
              Profile-CARD);</li>
          <li>Notify the pre-committed <tt>arbitrator_did</tt> from the Standing Token;</li>
          <li>Package the Bundle and all signatures into an ADRP DisputeBundle (per
              draft-stone-adrp-00, Section 2);</li>
          <li>Surface the dispute to both Principals via the operator UI;</li>
          <li>Halt any sub-delegation chains that depend on the disputed Bundle.</li>
        </ol>
      </section>

      <section anchor="conduit-attestation-disputes" numbered="true" title="Conduit-Attestation Disputes">
        <t>
          ATXN <tt>dispute_class</tt> / ADRP <tt>claim_code</tt> mapping:
        </t>
        <table>
          <thead>
            <tr>
              <th><tt>dispute_class</tt></th>
              <th>Description</th>
              <th>ADRP Claim Code(s)</th>
              <th>ADRP Path</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td><tt>fact_dispute</tt></td>
              <td>Attestation correctness contested</td>
              <td><tt>bundle_integrity</tt>, <tt>timestamp_skew</tt>,
                  <tt>oracle_contradiction</tt></td>
              <td>Cryptographic-class resolution; ADRP Section 6.1</td>
            </tr>
            <tr>
              <td><tt>terms_dispute</tt></td>
              <td>Scope or quality contested</td>
              <td><tt>mandate_scope</tt>, <tt>quality_mismatch</tt>,
                  <tt>spec_ambiguity</tt>, <tt>timing_breach</tt>,
                  <tt>fitness_for_purpose</tt></td>
              <td>Semantic-class resolution; ADRP Section 6.2</td>
            </tr>
            <tr>
              <td><tt>capacity_dispute</tt></td>
              <td>Standing Token / capacity contested</td>
              <td>Out of scope for ADRP (see ADRP Section 6.4)</td>
              <td>Agent action set aside; refund-to-buyer; handled outside ADRP</td>
            </tr>
            <tr>
              <td><tt>framework_dispute</tt></td>
              <td>Mandate framework validity contested</td>
              <td>Out of scope for ADRP (see ADRP Section 6.4)</td>
              <td>ATXN and ADRP halt; settlement frozen until resolved</td>
            </tr>
          </tbody>
        </table>
        <t>
          For <tt>capacity_dispute</tt>: the executing platform <bcp14>MUST</bcp14> freeze
          settlement, return funds to the buyer, and notify both Principals. No ADRP filing
          is permitted.
        </t>
        <t>
          For <tt>framework_dispute</tt>: the executing platform <bcp14>MUST</bcp14> freeze
          settlement and await resolution of the framework validity question. ADRP processing
          <bcp14>MUST NOT</bcp14> proceed.
        </t>
      </section>

    </section>
    <!-- ============================================================ -->

    <section anchor="liability-waterfall" numbered="true" title="Liability Waterfall">
      <table>
        <thead>
          <tr>
            <th>Tier</th>
            <th>Party</th>
            <th>Triggering Failure</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>1</td>
            <td>Principal</td>
            <td>Authorized in-scope action delivered as specified</td>
          </tr>
          <tr>
            <td>2</td>
            <td>Operator</td>
            <td>Out-of-scope action; freshness violation; revocation propagation failure</td>
          </tr>
          <tr>
            <td>3</td>
            <td>Merchant</td>
            <td>Delivery attestation fraud; goods/services not as described</td>
          </tr>
          <tr>
            <td>4</td>
            <td>Processor</td>
            <td>Settlement failure; payment-rail compromise</td>
          </tr>
          <tr>
            <td>5</td>
            <td>Model Provider</td>
            <td>(L3 only) Demonstrable model-induced mandate violation under epistemic
                attestation</td>
          </tr>
        </tbody>
      </table>
      <t>
        Profile-specific overrides <bcp14>MAY</bcp14> adjust this enum. The Profile
        <bcp14>MUST</bcp14> publish its waterfall explicitly.
      </t>
    </section>
    <!-- ============================================================ -->

    <section anchor="out-of-scope" numbered="true" title="Out-of-Scope Concerns">
      <t>
        The following are explicitly out of scope for ATXN v1.0:
      </t>
      <ol>
        <li>Agent legal personhood.</li>
        <li>Tax treatment.</li>
        <li>Securities classification.</li>
        <li>Reputation as contractual term.</li>
        <li>Sub-agency chains beyond <tt>sub_delegation_depth</tt>.</li>
      </ol>
    </section>
    <!-- ============================================================ -->

    <section anchor="security-considerations" numbered="true" title="Security Considerations">

      <section anchor="sec-scope-enforceability" numbered="true"
               title="Q4 Dangerous Consensus: Scope Machine-Enforceability">
        <t>
          The most fragile load-bearing assumption in ATXN is that scope can be made
          machine-checkable by a deterministic predicate engine. Implementations
          <bcp14>MUST</bcp14> log <tt>enforcement_mode</tt>.
        </t>
      </section>

      <section anchor="sec-clock-compromise" numbered="true"
               title="Threshold-Signature Clock Compromise">
        <t>
          A 3-of-5 clock authority remains compromisable via collusion. Implementations
          <bcp14>SHOULD</bcp14> diversify the clock authority set across operators with
          non-correlated risk profiles.
        </t>
      </section>

      <section anchor="sec-revocation-dos" numbered="true"
               title="Revocation Beacon DoS">
        <t>
          The revocation beacon is a denial-of-service surface. Implementations
          <bcp14>MUST</bcp14> cache beacon responses with a Profile-specific TTL.
        </t>
      </section>

      <section anchor="sec-capacity-privacy" numbered="true"
               title="Capacity Attestation as Privacy Attack Surface">
        <t>
          Capacity attestation tied to KYC/sanctions is a privacy attack surface.
          Implementations <bcp14>SHOULD</bcp14> use selective-disclosure VCs (BBS+ or
          equivalent).
        </t>
      </section>

      <section anchor="sec-hallucinated-mandates" numbered="true"
               title="Hallucinated Mandates">
        <t>
          An LLM-generated mandate that the Principal did not actually intend is a legitimate
          Bundle from a cryptographic standpoint. L3 epistemic attestation partially mitigates
          this for high-value transactions. This is acknowledged residual risk.
        </t>
      </section>

      <section anchor="sec-sub-agency-chains" numbered="true"
               title="Sub-Agency Adversarial Chains">
        <t>
          Implementations <bcp14>MUST</bcp14> limit <tt>sub_delegation_depth</tt> per Profile
          and <bcp14>SHOULD</bcp14> require all Standing Tokens in a chain to be independently
          verifiable.
        </t>
      </section>

      <section anchor="sec-tier-arbitrage" numbered="true"
               title="Tier Arbitrage">
        <t>
          ATXN does not define an adjudicator for the risk-classifier registry itself; this is
          a governance question outside the protocol.
        </t>
      </section>

    </section>
    <!-- ============================================================ -->

    <section anchor="iana-considerations" numbered="true" title="IANA Considerations">

      <section anchor="iana-jsonld-context" numbered="true" title="ATXN Bundle JSON-LD Context">
        <t>
          URI: <tt>https://swarmsync.ai/spec/atxn/v1</tt>
        </t>
      </section>

      <section anchor="iana-profile-registry" numbered="true" title="ATXN Profile Registry">
        <t>
          A new IANA registry "ATXN Profile Identifiers" is requested. Registration policy:
          Specification Required (per <xref target="RFC8126"/>).
        </t>
        <t>Initial entries:</t>
        <table>
          <thead>
            <tr>
              <th>Identifier</th>
              <th>Description</th>
              <th>Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td><tt>atxn-mandate-ap2</tt></td>
              <td>AP2 binding</td>
              <td>This document</td>
            </tr>
            <tr>
              <td><tt>atxn-card-stripe-acp</tt></td>
              <td>Stripe ACP binding</td>
              <td>This document</td>
            </tr>
            <tr>
              <td><tt>atxn-card-visa-tap</tt></td>
              <td>Visa TAP binding</td>
              <td>This document</td>
            </tr>
            <tr>
              <td><tt>atxn-card-mc-agentpay</tt></td>
              <td>Mastercard Agent Pay binding</td>
              <td>This document</td>
            </tr>
            <tr>
              <td><tt>atxn-crypto-x402</tt></td>
              <td>x402 binding</td>
              <td>This document</td>
            </tr>
            <tr>
              <td><tt>atxn-crypto-erc8004</tt></td>
              <td>ERC-8004 binding</td>
              <td>This document</td>
            </tr>
            <tr>
              <td><tt>atxn-autonomous-default</tt></td>
              <td>Standing-intent default</td>
              <td>This document</td>
            </tr>
            <tr>
              <td><tt>atxn-platform-oauth-hmac</tt></td>
              <td>Platform-vouched OAuth+HMAC</td>
              <td>This document</td>
            </tr>
          </tbody>
        </table>
      </section>

      <section anchor="iana-liability-waterfall" numbered="true"
               title="ATXN Liability Waterfall Enum">
        <t>
          A new IANA registry "ATXN Liability Tiers" is requested. Initial entries are listed
          in <xref target="liability-waterfall"/>.
        </t>
      </section>

    </section>
    <!-- ============================================================ -->

    <section anchor="acknowledgements" numbered="true" title="Acknowledgements">
      <t>
        This specification is the synthesis of Decision Oracle adjudication (2026-04-25) and
        Ultimate Brainstorm panel (2026-04-25). The author thanks the panel agents —
        EpistemicAuditor, Archaeologist, Quantifier, ConstraintCartographer,
        socratic-mentor, DarkMirror, IdeaMatrix, RemixForge, SoSpec, SpiderSpark — and the
        Decision Oracle agents for the framework synthesis. The author also acknowledges
        Paola Di Maio's prior critical review of the SwarmSync IETF Draft Stack, the
        AIKR CG Technical Note AI-KR-CG-TR-2026-001, and the AP2 coalition.
      </t>
    </section>

  </middle>

  <back>

    <references title="Normative References">
      <name>Normative References</name>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8032.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8785.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6979.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml"/>
      <reference anchor="W3C-VC-2.0" target="https://www.w3.org/TR/vc-data-model-2.0/">
        <front>
          <title>Verifiable Credentials Data Model 2.0</title>
          <author>
            <organization>W3C</organization>
          </author>
          <date year="2024"/>
        </front>
      </reference>
      <reference anchor="W3C-DID" target="https://www.w3.org/TR/did-core/">
        <front>
          <title>Decentralized Identifiers (DIDs) v1.0</title>
          <author>
            <organization>W3C</organization>
          </author>
          <date year="2022"/>
        </front>
      </reference>
      <reference anchor="draft-stone-aivs-01">
        <front>
          <title>AIVS: Agentic Integrity Verification Standard</title>
          <author fullname="Ben Stone" surname="stone" initials="B.">
            <organization>SwarmSync.AI</organization>
          </author>
          <date year="2026"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-stone-aivs-01"/>
      </reference>
      <reference anchor="draft-stone-vcap-01">
        <front>
          <title>VCAP: Verified Commerce for Agent Protocols</title>
          <author fullname="Ben Stone" surname="stone" initials="B.">
            <organization>SwarmSync.AI</organization>
          </author>
          <date year="2026"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-stone-vcap-01"/>
      </reference>
      <reference anchor="draft-stone-atep-01">
        <front>
          <title>ATEP: Agent Trust and Execution Passport</title>
          <author fullname="Ben Stone" surname="stone" initials="B.">
            <organization>SwarmSync.AI</organization>
          </author>
          <date year="2026"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-stone-atep-01"/>
      </reference>
      <reference anchor="draft-stone-adrp-00">
        <front>
          <title>ADRP: Agent Dispute Resolution Protocol</title>
          <author fullname="Ben Stone" surname="stone" initials="B.">
            <organization>SwarmSync.AI</organization>
          </author>
          <date year="2026"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-stone-adrp-00"/>
      </reference>
    </references>

    <references title="Informative References">
      <name>Informative References</name>
      <reference anchor="UCC-2-204">
        <front>
          <title>Uniform Commercial Code 2-204</title>
          <author>
            <organization>American Law Institute</organization>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="UETA-14">
        <front>
          <title>Uniform Electronic Transactions Act 14</title>
          <author>
            <organization>National Conference of Commissioners on Uniform State Laws</organization>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="REST-AGENCY-3D">
        <front>
          <title>Restatement (Third) of Agency</title>
          <author>
            <organization>American Law Institute</organization>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="CISG">
        <front>
          <title>United Nations Convention on Contracts for the International Sale of Goods</title>
          <author>
            <organization>United Nations</organization>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="REG-E">
        <front>
          <title>12 CFR Part 1005 (Regulation E)</title>
          <author>
            <organization>Consumer Financial Protection Bureau</organization>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="AP2" target="https://developers.google.com/agent-payments">
        <front>
          <title>Agent Payments Protocol</title>
          <author>
            <organization>Google</organization>
          </author>
          <date year="2026"/>
        </front>
      </reference>
      <reference anchor="STRIPE-ACP" target="https://stripe.com/docs/agentic-commerce">
        <front>
          <title>Agentic Commerce Protocol</title>
          <author>
            <organization>Stripe</organization>
          </author>
          <date year="2026"/>
        </front>
      </reference>
      <reference anchor="VISA-TAP">
        <front>
          <title>Trusted Agent Protocol</title>
          <author>
            <organization>Visa</organization>
          </author>
          <date year="2026"/>
        </front>
      </reference>
      <reference anchor="x402" target="https://x402.org">
        <front>
          <title>x402: Internet-native payments for AI agents</title>
          <author>
            <organization>Coinbase</organization>
          </author>
          <date year="2026"/>
        </front>
      </reference>
      <reference anchor="ERC-8004" target="https://eips.ethereum.org/EIPS/eip-8004">
        <front>
          <title>ERC-8004: Trustless Agents</title>
          <author>
            <organization>Ethereum</organization>
          </author>
          <date year="2026"/>
        </front>
      </reference>
      <reference anchor="UCP-600">
        <front>
          <title>Uniform Customs and Practice for Documentary Credits</title>
          <author>
            <organization>International Chamber of Commerce</organization>
          </author>
          <date year="2007"/>
        </front>
      </reference>
    </references>

    <!-- ============================================================ -->
    <section anchor="appendix-a-json-schema" numbered="false"
             title="Appendix A: JSON Schema (Informative)">
      <t>
        The ATXN Bundle schema (abbreviated):
      </t>
      <sourcecode type="json"><![CDATA[
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://swarmsync.ai/spec/atxn/v1/bundle.schema.json",
  "title": "ATXN Bundle",
  "type": "object",
  "required": [
    "bundle_id",
    "tier",
    "profile",
    "intent_mandate",
    "scope_token",
    "payment_auth",
    "delivery_attestation",
    "revocability_window",
    "standing_tokens",
    "state"
  ],
  "properties": {
    "bundle_id":   { "type": "string", "format": "uuid" },
    "tier":        { "enum": ["L1", "L2", "L3"] },
    "profile":     { "type": "array", "items": { "type": "string" }, "minItems": 1 },
    "state":       { "enum": ["proposed", "authorized", "executing", "delivered",
                               "finalized", "disputed", "adjudicated"] },
    "validity_tier": { "enum": ["primary", "secondary"] }
  }
}
]]></sourcecode>
      <t>
        Full schema published at the IANA-registered URI.
      </t>
    </section>
    <!-- ============================================================ -->

    <section anchor="appendix-b-worked-example" numbered="false"
             title="Appendix B: Worked Example (Informative)">
      <t>
        Scenario: A consumer's shopping agent purchases a $42.00 pair of running shoes from a
        merchant agent on Stripe ACP rails. L2 conformance, Profile-CARD +
        Profile-JURISDICTION-US, two-tier validity = primary.
      </t>
      <sourcecode type="json"><![CDATA[
{
  "Bundle.bundle_id": "7f3a...",
  "Bundle.tier": "L2",
  "Bundle.profile": ["atxn-card-stripe-acp", "atxn-jurisdiction-us"],
  "Bundle.state": "finalized",
  "Bundle.validity_tier": "primary",

  "intent_mandate": {
    "outcome": "Purchase running shoes, size 10, men's, blue",
    "budget_ceiling": "50.00 USD",
    "choice_of_law": "US"
  },

  "scope_token": {
    "max_spend": "50.00 USD",
    "allowed_actions": ["purchase:athletic_footwear"],
    "enforcement_mode": "advisory"
  },

  "payment_auth": {
    "instrument_type": "card_token",
    "instrument_ref": "stripe_acp_spt_abc123",
    "amount": "42.00 USD"
  },

  "delivery_attestation": {
    "deliverable_class": "physical_offchain",
    "third_party_carrier_did": "did:web:fedex.com",
    "independent_attestor_signature": "Ed25519(fedex)"
  },

  "revocability_window": {
    "end_time": "2026-06-24T14:00:00Z",
    "comment": "60-day Reg E window",
    "clock_authority": {
      "threshold": "3-of-5",
      "set": ["aws-ts", "gcp-ts", "azure-ts", "swarmsync-ts", "stripe-ts"]
    }
  },

  "standing_tokens": [
    { "role": "consumer-side", "arbitrator_did": "did:web:arb.swarmsync.ai" },
    { "role": "merchant-side", "arbitrator_did": "did:web:arb.swarmsync.ai" }
  ]
}
]]></sourcecode>
    </section>

  </back>

</rfc>
