Skip to content

v0.1 working documents

A202

The Verifiable Agreement Protocol for Agent-Led Commerce

An open, carrier-neutral specification of commercial authority, negotiation state, and verifiable conformance for transactions between independent organisations, including transactions conducted on their behalf by software agents.

Read the introduction The specification The charter

Five questions every transaction must answer

Two organisations that have never transacted before need a shared answer to a small number of questions. Existing agent, payment, and identity specifications answer parts of the first and none of the rest. A202 specifies the missing layer.

  • Authority


    Who is this counterparty, and who inside it authorised this act? What exactly was that party permitted to commit to, and was the act inside that permission?

    Commercial mandate

  • State


    What state is this transaction in, and what changed it? Only a signed, authorised event moves state. A message, a model output, and a database write do not.

    Transaction state machine

  • Disclosure


    What did the other side learn, and what did it not? Disclosure is a declared policy with a default of revealing nothing across counterparties, and every disclosure is a recorded event.

    Canonical commercial model

  • Record


    If this is disputed a year from now, what can be reconstructed, by whom, from what? Every claim is checkable by replaying signed records, with no privileged access to anyone's infrastructure.

    Evidence verification

Three layers

The specification set is organised in three layers that work together, and each layer is checkable on its own.

flowchart TB
    subgraph objects ["Commercial objects"]
        direction LR
        M[Mandate] ~~~ O[Offer] ~~~ AG[Agreement] ~~~ OB[Obligation] ~~~ EV[Evidence] ~~~ D[Determination]
    end
    subgraph state ["Transaction state"]
        direction LR
        TA[Transaction aggregate] ~~~ NS[Negotiation sessions] ~~~ SE[Signed events] ~~~ DR[Disclosure rules]
    end
    subgraph verify ["Verification and conformance"]
        direction LR
        CB[Canonical bytes] ~~~ SG[Signatures] ~~~ RP[Replay] ~~~ CS[Conformance suite]
    end
    objects --> state --> verify

Typed objects carry commercial meaning: who may act, what was offered, what was agreed, what is owed, what was proven, what was decided. Two state machines govern how those objects move a transaction, one for the aggregate and one for each bilateral session inside it. Underneath both, every object canonicalises to exact bytes, every commitment is a signature over those bytes, and an executable suite of 148 fixtures decides whether an implementation agrees with the specification.

Meaning, not transport

A202 is carrier-neutral by construction: it defines what objects mean, not how they travel. Objects defined here may be carried, wrapped, or referenced by another protocol without changing what they mean.

  • A2A carrier binding: how A202 objects travel between agents over the Agent2Agent protocol, with a declared extension and closed failure modes.
  • A202 MCP server: a reference server giving an agent, over the Model Context Protocol, the seven capabilities two organisations need in order to buy and sell from each other directly.

How A202 composes with A2A and MCP

Where to go next

  • Specification


    The canonical commercial model, the object families, and the state machines, each marking its own normative sections.

    Introduction

  • Conformance


    An executable fixture set and a normative runner. Schema validity is necessary and not sufficient, and grades are earned per role scope.

    Conformance grades

  • Proposals


    Every normative change lands under a numbered proposal, so the record of why the specification says what it says is public.

    The proposal process

  • Governance


    How the project is run, what the sponsor does and does not control, and when the governance is reviewed.

    Governance


Status: pre-release. No release has been made. The contents are v0.1 working documents under the release policy in RELEASES.md, and the specification is licensed under the Apache License, Version 2.0.