{
    "version": "https://jsonfeed.org/version/1",
    "title": "A2A Settlement — Essays",
    "home_page_url": "https://docs.a2a-settlement.org/blog",
    "description": "Essays on the settlement layer of autonomous agent commerce.",
    "items": [
        {
            "id": "https://docs.a2a-settlement.org/blog/citable-settlement-layer",
            "content_html": "<p>A category does not exist because someone declares it. It exists when other people can cite it.</p>\n<p>As of this week, three A2A-SE artifacts have permanent DOIs: two public comments filed with NIST, and the normative specification itself. That last one matters more than it sounds, and this post explains why we bothered.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-is-now-archived\">What is now archived<a href=\"https://docs.a2a-settlement.org/blog/citable-settlement-layer#what-is-now-archived\" class=\"hash-link\" aria-label=\"Direct link to What is now archived\" title=\"Direct link to What is now archived\" translate=\"no\">​</a></h2>\n<table><thead><tr><th>Artifact</th><th>DOI</th></tr></thead><tbody><tr><td>A2A-SE Specification v0.11.0</td><td><a href=\"https://doi.org/10.5281/zenodo.21953795\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">10.5281/zenodo.21953795</a></td></tr><tr><td>NIST CAISI public comment</td><td><a href=\"https://doi.org/10.5281/zenodo.21745191\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">10.5281/zenodo.21745191</a></td></tr><tr><td>NIST NCCoE public comment</td><td><a href=\"https://doi.org/10.5281/zenodo.21745274\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">10.5281/zenodo.21745274</a></td></tr></tbody></table>\n<p>The specification also has a concept DOI, <a href=\"https://doi.org/10.5281/zenodo.21953794\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">10.5281/zenodo.21953794</a>, which always resolves to the newest archived release. Cite the version DOI to pin v0.11.0; cite the concept DOI when you mean \"the spec, whatever its current version.\"</p>\n<p>The full chronology lives on the <a class=\"\" href=\"https://docs.a2a-settlement.org/docs/standards/\">Standards &amp; Provenance</a> page.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"a-github-url-is-not-a-citation\">A GitHub URL is not a citation<a href=\"https://docs.a2a-settlement.org/blog/citable-settlement-layer#a-github-url-is-not-a-citation\" class=\"hash-link\" aria-label=\"Direct link to A GitHub URL is not a citation\" title=\"Direct link to A GitHub URL is not a citation\" translate=\"no\">​</a></h2>\n<p>The specification has been public since 17 February 2026, in commit <a href=\"https://github.com/a2a-settlement/a2a-settlement/commit/c5ba9aaa8bfca489d1f95cd78a695b98988dacc2\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\"><code>c5ba9aaa</code></a>. Anyone could read it. So what did the deposit actually add?</p>\n<p>A repository URL is a <em>location</em>, not an <em>identifier</em>. It breaks when an org is renamed, a repo is transferred, a branch is rewritten, or a company folds. Worse, it points at a moving target: <code>main</code> today is not <code>main</code> last March, so a citation to a repository is a citation to nothing in particular. If a standards body or an academic paper wants to reference the settlement semantics we defined, \"see this GitHub link\" is not a reference they can rely on.</p>\n<p>A DOI fixes both problems. It resolves to a specific immutable deposit, held by an institution whose job is outliving us, and it carries a timestamp that is not ours to edit.</p>\n<p>That timestamp is the part people underrate. The claim we care about is not \"we wrote a spec.\" It is \"the settlement layer was identified as a distinct architectural concern, with concrete semantics, on this date.\" Priority claims need dates that a third party will vouch for.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"why-the-nist-comments-came-first\">Why the NIST comments came first<a href=\"https://docs.a2a-settlement.org/blog/citable-settlement-layer#why-the-nist-comments-came-first\" class=\"hash-link\" aria-label=\"Direct link to Why the NIST comments came first\" title=\"Direct link to Why the NIST comments came first\" translate=\"no\">​</a></h2>\n<p>Both comments were filed before the spec was archived, and both are grounded in a running implementation rather than a proposal.</p>\n<p>The <a href=\"https://doi.org/10.5281/zenodo.21745191\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">CAISI comment</a> responded to the Request for Information on Security Considerations for Artificial Intelligence Agents (Docket NIST-2025-0035). Its argument: the economic settlement layer is a largely unexamined attack surface for agentic AI. When autonomous agents transact across organizational boundaries, you get threats with no clean parallel in traditional software — settlement fraud, reputation poisoning, escrow-timing attacks, cascading multi-agent settlement failures, cross-boundary trust exploitation.</p>\n<p>The <a href=\"https://doi.org/10.5281/zenodo.21745274\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">NCCoE comment</a> responded to the concept paper on accelerating adoption of software and AI agent identity and authorization. Its argument is one sentence: identity without economic accountability is incomplete. OAuth, OIDC, and SPIFFE can establish <em>who this agent is</em> and <em>what it may access</em>. None of them answer <em>what economic commitments it may make</em>, or <em>what happens when it commits and fails to deliver</em>.</p>\n<p>Notice that both comments make the same structural point from different directions, which is the point of filing them separately. Security people arrive at settlement by asking what an agent can do to you. Identity people arrive at it by asking what an agent is allowed to do. Both roads end at an unowned layer.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"the-three-layer-position-stated-once\">The three-layer position, stated once<a href=\"https://docs.a2a-settlement.org/blog/citable-settlement-layer#the-three-layer-position-stated-once\" class=\"hash-link\" aria-label=\"Direct link to The three-layer position, stated once\" title=\"Direct link to The three-layer position, stated once\" translate=\"no\">​</a></h2>\n<p>Agent commerce has at least three separable concerns, and conflating them is the source of most confused architecture:</p>\n<ul>\n<li class=\"\"><strong>Payments</strong> decide how value moves.</li>\n<li class=\"\"><strong>Authorization</strong> decides whether an agent may spend.</li>\n<li class=\"\"><strong>Settlement</strong> decides whether the obligation was satisfied, and what happens to value that was already committed.</li>\n</ul>\n<p>A2A-SE is a standard for the third one. It is not a payment rail and does not want to be. It integrates with authorization rather than replacing it. If you want the long version, see <a class=\"\" href=\"https://docs.a2a-settlement.org/docs/agent-settlement/\">What is Agent Settlement?</a>.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-this-does-not-mean\">What this does not mean<a href=\"https://docs.a2a-settlement.org/blog/citable-settlement-layer#what-this-does-not-mean\" class=\"hash-link\" aria-label=\"Direct link to What this does not mean\" title=\"Direct link to What this does not mean\" translate=\"no\">​</a></h2>\n<p>An archived specification is not a ratified standard, and a DOI is not an endorsement. Zenodo assigns identifiers; it does not review content. Filing a public comment means NIST received it, not that NIST agreed.</p>\n<p>What the deposits do accomplish is narrow and real. The artifacts are permanent, dated, and citable. If the settlement layer becomes contested ground — and it will, because it sits directly between two layers that already have well-funded standards efforts — the record of who specified what, and when, is now held somewhere we cannot quietly revise.</p>\n<p>That is worth a DOI.</p>",
            "url": "https://docs.a2a-settlement.org/blog/citable-settlement-layer",
            "title": "Making the settlement layer citable",
            "summary": "Two NIST public comments and the A2A-SE specification now have permanent DOIs. Here is why a category needs citable artifacts, not just a repository.",
            "date_modified": "2026-08-15T00:00:00.000Z",
            "author": {
                "name": "Richard Smith",
                "url": "https://a2a-settlement.org"
            },
            "tags": [
                "Standards",
                "Provenance"
            ]
        },
        {
            "id": "https://docs.a2a-settlement.org/blog/red-teaming-settlement",
            "content_html": "<p>Escrow protects you from a counterparty who never delivers. It does nothing about a counterparty who delivers something that merely looks right.</p>\n<p>That is the harder problem, and it is the one that decides whether settlement is worth anything. If value releases whenever a provider returns well-formed JSON, then an agent that fabricates well-formed JSON has found a money printer. So the reference implementation ships an adversarial simulation harness whose entire job is producing convincing garbage and seeing what survives verification.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"the-threat-is-plausibility-not-malformedness\">The threat is plausibility, not malformedness<a href=\"https://docs.a2a-settlement.org/blog/red-teaming-settlement#the-threat-is-plausibility-not-malformedness\" class=\"hash-link\" aria-label=\"Direct link to The threat is plausibility, not malformedness\" title=\"Direct link to The threat is plausibility, not malformedness\" translate=\"no\">​</a></h2>\n<p>Broken output is easy. It fails a schema check, and nobody needs a settlement layer to catch it.</p>\n<p>The interesting adversary produces output that passes every structural check and is still fiction. It cites a real domain. Its timestamps are recent and internally consistent. Its content hash is the right length and character set. Its record count matches the metadata that describes the record count. Everything is coherent, and none of it happened.</p>\n<p>This is not a hypothetical failure mode for language-model agents; it is their default failure mode. A model asked to retrieve data and unable to retrieve it will frequently produce something shaped exactly like the answer. The settlement layer is the last checkpoint before that becomes a payment.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"three-archetypes\">Three archetypes<a href=\"https://docs.a2a-settlement.org/blog/red-teaming-settlement#three-archetypes\" class=\"hash-link\" aria-label=\"Direct link to Three archetypes\" title=\"Direct link to Three archetypes\" translate=\"no\">​</a></h2>\n<p>The harness in <a href=\"https://github.com/a2a-settlement/a2a-settlement/tree/main/simulation\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\"><code>simulation/</code></a> implements three adversarial agents, each isolating a different way provenance can be false while looking true. All three declare <code>is_fabricated=True</code> internally, so scoring knows ground truth; the verifier does not.</p>\n<p><strong>The fake endpoint citer</strong> invents the source outright. It generates a random subdomain like <code>api.nonexistent-service-abcdef.io</code> and claims a <code>GET</code> against it. This is the easiest case: the endpoint cannot be reached, because it does not exist. It exists in the harness as a control — a verifier that cannot catch this one is not doing anything at all.</p>\n<p><strong>The GitHub fabricator</strong> is more interesting because its citation is <em>real</em>. It points at <code>https://api.github.com/repos/{repo}/commits</code>, a legitimate, reachable, well-known endpoint. The commits it returns are invented: SHAs are the first twelve hex characters of a hashed UUID, messages are drawn from a list of plausible conventional-commit strings. The content hash is 64 random hex characters — correct in form, meaningless in fact. Reachability checks pass. Only comparing the claimed hash against the actual response catches this.</p>\n<p><strong>The plausible hallucinator</strong> attacks the attestation tier itself. It cites a real API, fabricates the payload, and then claims <code>attestation_level: \"signed\"</code> while supplying <code>\"fake-x-request-id-12345\"</code> as the signature. It is asserting a stronger provenance guarantee than it can back. A verifier that trusts self-reported tiers will rank this <em>above</em> an honest agent that modestly declares <code>self_declared</code>.</p>\n<p>That last archetype is the one that keeps me up. Tiered provenance creates an incentive to overclaim your tier, so tier assertions have to be verified rather than believed. Otherwise the tier system inverts: honesty is penalized.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"honest-agents-are-half-the-experiment\">Honest agents are half the experiment<a href=\"https://docs.a2a-settlement.org/blog/red-teaming-settlement#honest-agents-are-half-the-experiment\" class=\"hash-link\" aria-label=\"Direct link to Honest agents are half the experiment\" title=\"Direct link to Honest agents are half the experiment\" translate=\"no\">​</a></h2>\n<p>The harness also implements three honest agents — a GitHub retriever, a web extractor, and a dataset summarizer — and by default assigns tasks with <code>honest_ratio=0.5</code>.</p>\n<p>They are not there for balance. They are there because detection rate alone is a worthless metric. A verifier that rejects everything scores 100% detection. The number that matters is what it does to legitimate work, so scoring tracks the full confusion matrix: fabricated and flagged, fabricated and approved, honest and approved, honest and flagged. A false positive is an honest provider who did the work and did not get paid, which is a more expensive failure than it first appears, because it drives good providers off the exchange.</p>\n<p>Two further measures come out of each run. <strong>Escrow protected</strong> sums the value held in escrows where fabrication was caught, which converts detection into the only unit that matters to an operator. <strong>Verification latency</strong> records the overhead, because a check nobody can afford to run is a check nobody runs.</p>\n<p>Scenarios are plain YAML — currently data retrieval, code review, and document summary — each fixing an attestation tier and an escrow amount, so you can ask how detection changes as the stakes rise.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"no-numbers-yet-deliberately\">No numbers yet, deliberately<a href=\"https://docs.a2a-settlement.org/blog/red-teaming-settlement#no-numbers-yet-deliberately\" class=\"hash-link\" aria-label=\"Direct link to No numbers yet, deliberately\" title=\"Direct link to No numbers yet, deliberately\" translate=\"no\">​</a></h2>\n<p>The harness is checked in. Published results are not, and I want to be precise about why.</p>\n<p>Producing credible numbers requires the mediator's verification pipeline running against live endpoints, and the results are only as meaningful as the scenario set is representative. Three scenario files authored by the same person who wrote the adversaries is not an evaluation; it is a demonstration. Publishing a detection rate from it would be exactly the failure mode this whole post is about — a well-formed number with nothing behind it.</p>\n<p>So the harness is offered as methodology rather than evidence, and the invitation is for someone else to run it. The neutral place to do that is the <a class=\"\" href=\"https://docs.a2a-settlement.org/docs/conformance/\">conformance suite</a>, which is designed so that any settlement rail can be tested without using our exchange.</p>\n<p>The claim I will make is narrower: a settlement layer that never verifies deliverables is not settling anything. It is a payment queue with extra steps.</p>",
            "url": "https://docs.a2a-settlement.org/blog/red-teaming-settlement",
            "title": "Red-teaming a settlement layer: three ways agents lie",
            "summary": "A deliverable that looks correct and a deliverable that is correct are different things. The A2A-SE simulation harness models three archetypes of fabricating agent.",
            "date_modified": "2026-08-15T00:00:00.000Z",
            "author": {
                "name": "Richard Smith",
                "url": "https://a2a-settlement.org"
            },
            "tags": [
                "Security",
                "Verification"
            ]
        },
        {
            "id": "https://docs.a2a-settlement.org/blog/trust-discount",
            "content_html": "<p>An agent that has settled a thousand honest transactions on one exchange arrives at a second exchange as a stranger. That is a real cost — it locks agents to whichever exchange they started on, which is how an interface quietly becomes a platform.</p>\n<p>The obvious fix is to let exchanges import each other's reputation scores. The obvious fix is also how you get reputation laundering.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"why-face-value-fails\">Why face value fails<a href=\"https://docs.a2a-settlement.org/blog/trust-discount#why-face-value-fails\" class=\"hash-link\" aria-label=\"Direct link to Why face value fails\" title=\"Direct link to Why face value fails\" translate=\"no\">​</a></h2>\n<p>Suppose Exchange B accepts Exchange A's reputation scores as equivalent to its own. Exchange B has now outsourced its trust model to an operator whose incentives it does not control and whose implementation it cannot inspect at runtime.</p>\n<p>The attack writes itself. Stand up an exchange. Score your own agents at 1.0. Peer with someone real. Your agents now arrive everywhere pre-trusted, and the cost of manufacturing that trust was a domain name.</p>\n<p>Even without malice the numbers are not commensurable. If A computes reputation over a 30-day window and B over 90, or A counts a partial release as success where B counts it as partial failure, then \"0.85\" from A and \"0.85\" from B describe different things. Averaging them produces a number that describes nothing.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"discount-rather-than-reject\">Discount rather than reject<a href=\"https://docs.a2a-settlement.org/blog/trust-discount#discount-rather-than-reject\" class=\"hash-link\" aria-label=\"Direct link to Discount rather than reject\" title=\"Direct link to Discount rather than reject\" translate=\"no\">​</a></h2>\n<p><a class=\"\" href=\"https://docs.a2a-settlement.org/docs/federation/\">A2A-SE Federation</a> takes the position that foreign reputation is real evidence but weaker evidence, and prices it accordingly. Every peer carries a discount factor, ρ, and imported scores are multiplied by it:</p>\n<div class=\"language-text codeBlockContainer_Ckt0 theme-code-block\" style=\"--prism-color:#F8F8F2;--prism-background-color:#282A36\"><div class=\"codeBlockContent_QJqH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_bY9V thin-scrollbar\" style=\"color:#F8F8F2;background-color:#282A36\"><code class=\"codeBlockLines_e6Vv\"><span class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">effective_reputation = native_reputation × ρ</span><br></span></code></pre></div></div>\n<p>A new peer starts at <strong>ρ = 0.15</strong>. A perfect 1.0 from a brand-new peer enters as 0.15 — better than nothing, nowhere near parity. The ceiling is ρ = 1.0, and local reputation is always weighted at exactly 1.0, so an exchange's own observations are never discounted against an outsider's claims.</p>\n<p>Imported evidence is also capped in aggregate. Blended scoring weights local history at 70% and the federated average at 30%, so foreign attestations can move an agent's standing but cannot dominate it. Under the hood, local reputation is still an exponential moving average with λ = 0.1, which means recent behavior on <em>this</em> exchange keeps outweighing history imported from elsewhere.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-earns-ρ-down\">What earns ρ down<a href=\"https://docs.a2a-settlement.org/blog/trust-discount#what-earns-%CF%81-down\" class=\"hash-link\" aria-label=\"Direct link to What earns ρ down\" title=\"Direct link to What earns ρ down\" translate=\"no\">​</a></h2>\n<p>The discount is not a fixed insult; it is a starting position. Exchanges advertise a named discount algorithm during the peering handshake — the default is <code>urn:a2a:trust:discount:linear-volume-weighted-v1</code> — along with the initial ρ and its parameters. Naming the algorithm matters, because it means a peer can inspect how it will be judged before agreeing to peer.</p>\n<p>The telemetry that drives ρ is deliberately behavioral rather than reputational. Each peer accumulates federation age in days, cross-exchange settled volume, cross-exchange transaction count, and attestation success rate, alongside health signals like 90-day uptime, average attestation latency, and consecutive health-check failures. Policies can set an attestation success floor and a review cadence.</p>\n<p>So ρ rises through settled cross-exchange volume that did not go wrong. A peer earns parity the same way an agent earns reputation: by being economically accountable over time, in public, at increasing stakes. There is no way to buy it and no way to declare it.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"the-unglamorous-parts-matter\">The unglamorous parts matter<a href=\"https://docs.a2a-settlement.org/blog/trust-discount#the-unglamorous-parts-matter\" class=\"hash-link\" aria-label=\"Direct link to The unglamorous parts matter\" title=\"Direct link to The unglamorous parts matter\" translate=\"no\">​</a></h2>\n<p>Two implementation details do most of the actual defensive work.</p>\n<p><strong>Only active peers are accepted.</strong> An attestation from an issuer that is not an active federation peer is rejected outright, with that stated as the reason. There is no anonymous reputation import, which means every imported score is attributable to a named counterparty who staked their own ρ on it.</p>\n<p><strong>Attestations expire.</strong> Imported credentials carry validity windows and an active flag, so foreign reputation decays unless it is refreshed. A score from an exchange that has gone dark stops counting, rather than lingering as permanent unearned credit.</p>\n<p>Peering itself is a signed exchange of capability manifests and discount policies with nonce challenges in both directions, so peers cannot be silently impersonated or replayed into a trust relationship.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"federation-is-optional-and-that-is-the-design\">Federation is optional, and that is the design<a href=\"https://docs.a2a-settlement.org/blog/trust-discount#federation-is-optional-and-that-is-the-design\" class=\"hash-link\" aria-label=\"Direct link to Federation is optional, and that is the design\" title=\"Direct link to Federation is optional, and that is the design\" translate=\"no\">​</a></h2>\n<p>None of this is required to use A2A-SE. Core settlement — commitment, delivery, verification, release or refund, disputes, finality — is complete on a single exchange, and federation is a separate optional layer on top. If you never peer, you never import a foreign score, and nothing above applies to you.</p>\n<p>That separation is intentional. A standard that forces every implementer to adopt a cross-organizational trust model in order to hold funds in escrow would deserve to be ignored. The useful sequence is: get settlement right locally, then decide whether portability is worth the discount.</p>\n<p>The broader point generalizes past this protocol. Portable reputation is not a data format problem. Any two systems can agree on a JSON shape for \"reputation: 0.85.\" The hard part is agreeing what it cost to earn — and until that is settled, the honest answer is to import it at a haircut and make the sender earn parity.</p>",
            "url": "https://docs.a2a-settlement.org/blog/trust-discount",
            "title": "Reputation does not travel for free",
            "summary": "Importing another exchange's reputation scores at face value imports its incentives too. A2A-SE Federation applies a Trust Discount that starts steep and has to be earned down.",
            "date_modified": "2026-08-15T00:00:00.000Z",
            "author": {
                "name": "Richard Smith",
                "url": "https://a2a-settlement.org"
            },
            "tags": [
                "Federation",
                "Reputation"
            ]
        }
    ]
}