AEA/P Protocol Docs
The Autonomous Economic Agent Protocol defines the governance layer for AI agents operating as accountable economic entities — identity, proof of performance (PoP), liability escrow, dispute resolution, and governance in one open specification.
The problem AEA/P solves
AI agents are becoming autonomous economic actors. They execute transactions, commit resources, and interact with other agents at machine speed — without the oversight structures that govern human commerce. The existing infrastructure handles this incompletely.
Communication protocols like MCP and A2A define how agents connect. Payment protocols like x402, MPP, and AP2 enable agents to transact. Identity standards like ERC-8004 provide on-chain discovery. None of these answer what happens when something goes wrong.
An enterprise deploys a Consumer agent to purchase data enrichment from third-party Provider agents. The Consumer selects a provider based on price, transfers 500 USDC on-chain, and receives a malformed response. The provider is unresponsive. 48 hours later the enterprise's principal discovers the problem.
The governance lifecycle
The five AEA/P components are not parallel options — they activate in sequence as an agent's economic participation deepens. Identity comes first: an agent cannot transact without a verified AID. Performance accumulates once transactions begin. Escrow builds from transaction revenue. Disputes become relevant when something goes wrong. Entity Governance is the constitutional layer for ENTERPRISE agents with complex operations and multiple principals. An agent does not need to reach Stage 5 to benefit from AEA/P — each stage adds a layer of accountability that functions independently.
The reinforcement loop
Once active, the components reinforce each other. A high Agent Rating lowers the escrow threshold — reducing the capital a Provider must hold in reserve and freeing operational revenue. Clean dispute history protects the rating. Strong identity verification makes that rating trustworthy. The loop rewards consistent performance and makes defection costly over time.
What AEA/P defines
AEA/P is a governance protocol, not a payment protocol. It specifies the accountability layer that sits above communication, payments, and identity infrastructure. The five pillars are complementary — each reinforces the others.
Conformance levels
Not every agent needs the full protocol stack. AEA/P defines three conformance levels — how deeply an implementation engages depends on the agent's economic role. A CONSUMER agent at Level 1 needs only verified identity. A PROVIDER agent at Level 2 adds liability escrow and dispute resolution. An ENTERPRISE agent at Level 3 adds entity governance.
Where to start
Status: Framework and Extended Specification published. NIST CAISI RFI submitted.
Quickstart
The fastest path from zero to a working integration. Pick the role you're building — each path is condensed here and links into its full role guide.
The hosted sandbox and issued credentials arrive with the reference Operator. The steps below describe the flow; live keys and a runnable walkthrough land alongside the rollout.
Pick your role
Choose what you're building. The fastest path differs by role — these aren't four equal-weight quickstarts.
You integrate through a Platform — you don't implement the protocol yourself. The fastest path to a working agent:
- Pick a Platform and the market you'll transact in — network, currency, and method.
- Register your agent through that Platform. You receive a certificate and your declared spend scope (
authorized_actions,spending_limit). - Get sandbox credentials from your Platform, and skim for auth and headers.
- Run one transaction end to end — discover, authenticate, settle on-chain, facilitate, deliver, confirm. Clone the reference agents below to see every call.
→ Full path:
You're the onboarding front door and runtime host — a primary implementer. To stand up a Platform:
- Connect to an Operator — register your platform and obtain client credentials (OAuth 2.0 over mTLS).
- Build onboarding: run KYC / KYB through a , then register each agent with the Operator to issue its certificate.
- Implement discovery and routing between agents, and enforce each consumer's spend policy at egress, before funds move.
- Wire the 402 negotiation path. Stay out of the funds path and the service payload — you mediate the control plane only.
→ Full path:
You're the accountable system of record — the heaviest lift, owning four of the five pillars. To stand up an Operator:
- Get listed in the as a conformant issuer, and issue agent certificates.
- Deploy and register the on-chain Settlement Contract; provision per-provider escrow.
- Implement the core endpoints — challenge nonces, payment-address and intents, and
facilitate(verify the consumer, read theSettledevent, credit escrow, open the task). - Run performance scoring and disputes, and expose the pull-based reporting endpoint.
→ Full path: ·
A narrow role — onboarding diligence only. To stand up a Verifier:
- Get listed in the as a conformant issuer.
- Implement attestation issuance — KYC for consumers, KYB for providers — returning a Verification Attestation.
- Onboarding diligence only; transaction-time AML is the Operator's job.
→ Full path:
Reference implementations
Two runnable reference agents demonstrate both sides of a transaction:
github.com/aeap-labs/aeap-reference-provider— a Provider Agent (non-merchant, settles on-chain).github.com/aeap-labs/aeap-reference-consumer— a Consumer Agent (discovers, pays, confirms).
Full wire contracts for every endpoint live in the , which links out to the live API of a running Operator. The role guides point into the slice each role needs.
Protocol Framework
The Framework Edition defines the architecture, governance lifecycle, and component interactions of AEA/P. Intended for decision-makers, standards bodies, and technical leaders evaluating the protocol's design and applicability.
What the Framework covers
For each of the five protocol components, the Framework presents the governance lifecycle and state transitions — the what and why, without the implementation detail of the Extended Specification.
- Economic roles: CONSUMER, PROVIDER, ENTERPRISE
- Conformance levels 1–3 and role transitions
- Agent Identity lifecycle (AID states: DRAFT → ACTIVE → REVOKED)
- PoP rating lifecycle (Unrated → Provisional → Rated → Decayed)
- Liability Escrow lifecycle (FUNDING → ACTIVE → DISPUTE_HOLD → CONSTRAINED → RELEASED)
- Dispute lifecycle (initiation through enforcement)
- Entity Governance lifecycle (creation through termination)
- Operational scenarios and security threat model
Download
Web-rendered version of the Framework is coming. The full content will be available here as structured pages with diagrams and inline navigation.
Relationship to the Extended Specification
The Framework and the Extended Specification cover the same protocol. The Framework is the public-facing summary — every section ends where detailed implementation guidance begins. The Extended Specification continues from those cut-off points with schemas, algorithms, formulas, and integration patterns.
Changes applied to the Extended Specification are reflected in the Framework in the same version increment. The two documents are mechanically derived from the same source.
Extended Specification
The Extended Specification is the complete implementation guide for AEA/P. It provides detailed data schemas, field-level definitions, calculation algorithms, and integration patterns required to build a conformant implementation.
What the Specification adds
Beyond the Framework, the Specification provides:
- §5 Agent Identity: Full AID schema, PrincipalRef structure, delegation chain rules, counterparty verification flows, verification attestation format
- §6 Proof of Performance: Provider and Consumer signal tables with weights, AR formula with time decay, performance record structure, manipulation resistance mechanisms
- §7 Liability Escrow: Escrow account structure, threshold calculation (dispute window, coverage period, AR modifier), funding mechanism, transparency fields
- §8 Dispute Resolution: Dispute initiation fields, triage rules, dispute pool listing, bounty economics, arbitration board formation, voting protocol, escalation, enforcement
- §9 Entity Governance: Governance document structure, ownership registry, token types, ownership transfer, voting and decision-making, privilege management
Download
Full web-rendered specification with inline diagrams, searchable content, and cross-references is planned for v0.3.
Conformance & Certification
AEA/P defines three conformance levels mapped to economic roles. AEA/P Certified attests that an implementation meets the protocol's MUST requirements for the role it claims.
Conformance levels
| Level | Adds | For |
|---|---|---|
| 1 · Identified | Verifiable identity — a resolvable certificate and status. | All agents |
| 2 · Accountable | Identity + escrow, settlement verification, and PoP. | Paying / settling agents |
| 3 · Governed | Accountability + entity governance — ownership, voting, lifecycle. | Multi-principal entities |
Per-participant requirements
Each role has a defined set of MUST / SHOULD / MAY requirements — the endpoints it must implement, the checks it must perform, and the invariants it must uphold. The role guides summarize these; the normative checklist is enumerated here.
The full per-participant conformance checklist and the AEA/P Certified process are being finalized for v0.3. The level definitions above are stable.
AEA/P Certified
An implementation that meets the MUST requirements for its role and level may be listed as AEA/P Certified. Certification is per role and per level — a conformant Operator, Platform, or Agent each certifies against its own requirement set.
Conformant products and integrations place the AEA/P Certified mark on their own surfaces to attest implementation of the five pillars. Certification is a property of the protocol, so the badge carries the AEA/P mark — not a product mark — and the green check is the only third color, carrying the same "verified" semantic a padlock does in a browser bar.
Trust Registry inclusion
To issue certificates or attestations that other participants will trust, an Operator or Verifier must be listed in the . Inclusion is the operational outcome of certification: an operator certifies as a conformant issuer at the relevant level and is then listed, so its iss resolves for counterparties. Listing and delisting are governed — a delisted issuer's certificates stop being trusted at the next verification, which lets the protocol withdraw trust without coordinating every relying party.
The formal inclusion application, the issuer requirements (operational, security, and governance), and the registry's own governance model are being finalized for v0.3.
Changelog
Version history for the AEA/P Protocol Framework and Extended Specification.
- Introduced the Operator, Platform, and Trust Registry as distinct roles that MAY be operated by the same entity — identity portability, not entity separation, is the requirement (§1.1, §2.1)
- The Operator (formerly "Trust Provider") scoped to the economic-accountability mechanisms bound to the identities it issues — Proof of Performance, Liability Escrow, and Dispute Resolution — alongside identity issuance, with KYC / KYB delegated to a Verifier
- Verifier verification tiered by certification tier — payment-instrument verification (e.g. card pre-authorization) permitted at CONSUMER tier
- Added the
accepted_issuersscope dimension (§5.3.2.3) and Trust Registry issuer-recognition resolution (§5.6.3), tied to the per-agentaccepted_issuerspolicy - Added the
untrusted_issuerrejection code (§5.6.6) - Renamed authentication headers from
X-AEAP-*toAEAP-*— dropped the deprecatedX-prefix per RFC 6648; theAEAP-namespace is retained
- Added §5.6 — a normative cross-implementation wire surface: the
aeapDID method, the certificate JWT format andaeap.*claim set, CA key discovery at{iss}/.well-known/aeap-ca-jwks, theAEAP-*mutual-authentication headers, standardized status-resolution fields, and theaeap_verification_failedrejection-code set - Established that identifiers crossing an implementation boundary use the
aeapnamespace, while implementation-internal identifiers (credential branding, management authentication, contract names, domains) remain implementation-defined
- Added Escrow → PoP build-time dependency to component interactions (§3.4) — PoP cannot produce rating data before the Escrow settlement mechanism is live
- Generalized payment protocol narrative (§1.4, §3.3) — AEA/P may be implemented above existing protocols (x402, MPP, AP2) or alongside a native settlement implementation; no specific underlying protocol is required
- Dispute definition updated: filing restricted to the Consumer (payer) — consistent with payment network chargeback model
- Arbitration Board definition updated: board sizes specified as exactly 3 / 5 / 7 arbitrators per hearing round
- §2.2 Scope term generalized — now describes the concept (bounds of an agent’s economic activity) rather than enumerating fields
- §2.2 Delegation Chain term updated to chain-invariant phrasing — replaces the v0.1.5 "authority can only narrow" wording, which conflated cross-link and cross-time semantics
minimum_counterparty_cert_tierterminology corrected (certificate tier of the counterparty agent, not verification tier of its principal); tier-value enumeration removed in favor of implementation-defined ordering
- §5.3 AID schema reorganized into five pillar objects (
identity,performance,escrow,disputes,governance) matching the AEA/P protocol components — role-conditional content is now structurally explicit: ENTERPRISE populates all five, PROVIDER populates identity / performance / escrow / disputes, CONSUMER populates identity and performance only - New
descriptionfield — human-readable description of the service or functionality the agent provides; complementsdisplay_name(short identifier),capabilities(structured tags), andobjective(machine-readable directive) - New
endpoint_urlfield — network endpoint for counterparty discovery - New
certificatesub-object — holdscert_tierand theverification_attestationreference (relocated from PrincipalRef, reflecting that the attestation is the compliance backing of the agent’s certificate, not a standalone property of the principal) - Root
versionrenamed toaid_version; newscope.versionmutation counter introduced — increments on every signed scope mutation, lets counterparties detect changes between commitments liability_profilefield expanded:escrow_state,total_balance, andeffective_thresholdnow required as publicly readable fieldsauthorized_marketsclarified as a compliance/jurisdiction declaration, not a payment method configuration- §5 chapter intro rewritten — replaces the v0.1.5 "monotonically decreasing scope" language with explicit chain-invariant phrasing (each link’s scope a subset of the parent’s)
- Invariant split: the cross-link chain invariant (each link’s scope MUST be a subset of or equal to the preceding link’s — always true) is now separated from the per-AID mutability rules over time (per-dimension: append-only for
authorized_actions, bidirectional for most others, with certificate-tier gating for raisingmax_transaction_valueorspending_limit) - Replaces v0.1.5’s "asymmetric narrowing" rule, which conflated the chain invariant with cross-time mutation
- Cascading narrowing clarified: narrowing a parent’s scope cascades to sub-agents at the next
scope.version; widening does not cascade - Certificate renewal clarified as orthogonal to scope mutation — renewal does not increment
scope.version
- Added platform-sourced-only principle: task records must be created at payment settlement; principals cannot submit or modify records
- Added Sybil rule: same-principal transactions execute and credit escrow but generate no PoP task record
- Payment timeliness signal expanded to include Consumer payment abandonment (payment committed but not settled)
- Confirmation auto-timeout: tasks auto-confirm at score 1.0 after the confirmation window expires, preventing rating suppression
- Added non-custodial settlement principle: implementations must not hold funds in transit; atomic routing required
- Added funding rate control principle:
funding_ratemust be under implementation control; providers cannot modify their own rate - Balance field clarified: aggregate across all networks per currency; threshold evaluation uses aggregate
- Added track record → threshold reduction principle: sustained dispute-free performance may progressively reduce the effective threshold
- CONSTRAINED state clarified: dispute obligations (evidence submission, arbitrator responses) remain accessible during suspension
- Consumer-only filing: only the Consumer (payer) may initiate a dispute; Provider-initiated disputes are out of scope for this version
- TRIAGE formalized as a named lifecycle stage with explicit CONSTRAINED trigger condition
- Board size specified: exactly 3 arbitrators for first hearing, +2 per escalation round, maximum 3 hearings
- Bounty calculation structure added:
clamp(disputed_amount × bounty_rate, bounty_min, bounty_max) - Evidence window extension: board may grant one extension when submitted evidence is insufficient
- §2.2: added the Scope term; Authorized Actions refocused on payment-bearing commitments (
purchase,sell,delegate—hireandcontractremoved); Delegation Chain term extended to in-place (cross-time) narrowing - §9 PrivilegeSet
permitted_operations:hireandcontractremoved - §12 Future Work: roadmap items added (additional payment action types,
spending_limitdetail, pre-commitment negotiation flexibility)
- Revision history relocated from the title page to §14 — no content changes; format aligned with the Framework and Platform specifications
- §5.3
authorized_actionstightened fromstring[]toenum[]and raised from SHOULD to MUST, with a fixed enumeration and role-compatibility rules — Consumer MUST includepurchaseand MUST NOT includesell; Provider MUST includeselland MUST NOT includepurchase; Enterprise MAY include either or both
- §5.2.1 strengthened — added the role / verification-tier matrix and normative rejection semantics; operational scenarios specify the verification tier required for each role
- Initial published draft — establishes the five pillars (Agent Identity, Proof of Performance, Liability Escrow, Dispute Resolution, Entity Governance), the basic / extended specification split, and the operational scenarios
- Three economic roles: CONSUMER, PROVIDER, ENTERPRISE
- Three conformance levels: Identified, Accountable, Governed
- NIST CAISI RFI submission (Docket No. NIST-2025-0035)
API Reference
The API Reference documents the Operator API — the server surface a conformant Operator exposes. Platforms and agents are clients of it. Rather than a static contract, the surface is demonstrated live by running Operator implementations you can explore directly.
The Operator surface
Every endpoint belongs to the Operator. The surface splits into two groups by who calls it.
| Method | Endpoint | Purpose |
|---|---|---|
POST | /v1/agents/register | Issue an agent credential from a Verification Attestation |
POST | /v1/agents/{did}/market-configs | Provision an agent's settlement market |
GET | /v1/agents/{did}/status | Live identity, escrow, and rating status |
GET | /v1/agents/{did}/facilitations | Settlement and performance records (pull-based reporting) |
| Method | Endpoint | Purpose |
|---|---|---|
GET | /v1/verify/challenge | Issue a challenge nonce for mutual authentication |
GET | /v1/payment-address | Return payment terms and settlement intent |
POST | /v1/facilitate | Verify the counterparty and confirm settlement |
POST | /v1/tasks/{task_id}/confirm | Confirm task completion and record the rating |
Request and response bodies, the AEAP-* authentication headers (§5.6.4), status-resolution fields (§5.6.5), and the rejection-code set (§5.6.6) are exercised live in the implementations below.
Explore a live Operator
Choose an Operator to browse its live API. Each implements the same protocol surface, so the contracts are interchangeable — and because the explorer is the running system, it never drifts from what is deployed.
This is a directory: as more Operators are certified, each appears here with a link to its own live API explorer.
Integration by participant
AEA/P is implemented primarily by Agentic Platforms and Operators — the infrastructure that gives agents identity, settlement, and accountability. If you are building an agent, you integrate through a platform, not the protocol directly. This section is a focused guide for each participant — what you implement, your path through the flow, and the endpoints you touch.
The participant model
A governed transaction involves five participants: two agents transacting, and three that provide trust, hosting, and settlement around them. The boundary that keeps the system non-custodial and portable is simple — the Platform mediates the control plane (discovery, policy, routing) but never touches funds or the service payload; the Operator verifies and records but never submits a transaction; funds move directly through the Settlement Contract.
| Participant | Role |
|---|---|
| Builder | An agent builder — consumer agents pay for services, provider agents sell them. Both register through a Platform. |
| Platform | The Agentic Platform — onboarding front door and runtime host: discovery, routing, and spend-policy enforcement. |
| Operator | The accountable system of record — issues identity, confirms settlement, holds escrow, runs proof of performance and disputes. |
| Verifier | Performs KYC / KYB diligence at onboarding and issues a Verification Attestation. |
Pick your guide
Each participant's responsibilities map to the five . The shared integration primitives — auth, certificates, headers, errors — are in .
End-to-end transaction
How the roles interlock in a single governed transaction — six phases from identity verification through settlement, service delivery, and PoP confirmation. The mechanics shown are one concrete realization of the protocol.
Reading this page: This walkthrough is an example implementation, not a normative protocol definition. The sequence diagram and per-phase mechanics illustrate one concrete way an implementation can realize the protocol’s requirements. Other implementations may use different transports, identity formats, settlement mechanisms, or timing parameters and still conform to AEA/P.
Transaction phases
The six phases in sequence:
facilitate call verifies the consumer and confirms settlement, credits escrow, and opens the task. Only then does the Provider deliver — settlement gates delivery.Phase 0 — Onboarding
Both agents onboard once through a single front door at their Platform. The platform runs KYC/KYB through a Verifier — which issues a Verification Attestation — and registers the agent with an Operator, which issues the agent's certificate. For a Provider, this one-time setup also provisions a segregated escrow wallet and registers the Provider on the Settlement Contract; the Operator controls the escrow wallet, so the Provider cannot modify its own funding_rate.
Protocol requirements
- The market being registered must already appear in the agent's
authorized_marketsAID field — a compliance declaration that the agent is permitted to operate in that jurisdiction and currency - The escrow wallet is provisioned by the Operator under its control. The Provider cannot withdraw from or modify escrow parameters directly
- The
funding_rateis set from an Operator-controlled configuration. Provider cannot override it - On-chain registration stores the three-way split configuration: operational wallet, escrow wallet,
escrowBps,feeBps - After registration, the agent's
escrow_statebegins asFUNDING— it transitions toACTIVEonce the escrow balance reaches the computed effective threshold
Escrow state machine
| State | Meaning | Agent can transact? |
|---|---|---|
FUNDING | Balance below effective threshold | Limited |
ACTIVE | Balance at or above threshold — full coverage | Yes |
DISPUTE_HOLD | Disputed amounts locked; remainder available | Partial |
CONSTRAINED | Total disputed amount exceeds balance. Suspended from new transactions. Dispute obligations (evidence, board responses) remain accessible | No new txns |
RELEASED | Entity terminated. Funds distributed after 90-day hold | No |
Phase 1 — Discovery & mutual authentication
The Consumer discovers a Provider through its platform, then verifies it directly. Before committing to a payment, the Consumer confirms the Provider holds a valid AEA/P identity and sufficient escrow coverage. Critically, certificate verification is offline — the Consumer never needs a round-trip to the Operator to verify the Provider's identity or the challenge response. The Operator is called only once, to check live operational status — ACTIVE, escrow_state, and rating.
Protocol requirements
- Challenge nonce TTL: 120 seconds — the Provider must respond within 2 minutes of the Consumer requesting the nonce
- Certificate verification is offline: The Provider's AEA/P Certificate is a JWT signed by the AEA/P Certificate Authority. The Consumer verifies the JWT signature against the published CA public key — no Operator call needed
- Challenge response is an EC signature over the nonce. Consumer verifies offline using the public key extracted from the certificate
- Timestamp check: within 30 seconds — the
X-AEAP-Timestampin the Provider's response must be within 30 seconds of the Consumer's local time, preventing delayed-replay attacks - Consumer checks
escrow_stateandpop_ratingfrom the status endpoint before proceeding. A Consumer may refuse to transact with a Provider inFUNDINGorCONSTRAINEDstate
Key AID fields checked during authentication
| Field | Source | What the Consumer checks |
|---|---|---|
cert_tier | Certificate (offline) | Minimum tier required for the requested service |
environment | Status endpoint | Must match Consumer's environment (sandbox / production) |
escrow_state | Status endpoint | ACTIVE = full coverage; FUNDING = below threshold |
pop_rating | Status endpoint | Agent Rating (AR); null if fewer than 10 interactions (Provisional) |
Phase 2 — Payment negotiation
When a resource requires payment, the Provider issues an HTTP 402 Payment Required response, routed back through the platform. The protocol specifies exactly what the 402 may and may not disclose. The Operator creates a payment intent when the Provider requests payment details — tracking whether the Consumer follows through, which feeds the Consumer's payment_timeliness signal. The platform enforces the Consumer's spend policy at egress, before any funds move.
Protocol requirements
- The 402 response must include: Settlement Contract address, token contract address, amount, Provider DID hash, expiry timestamp
- The 402 response must not include: wallet addresses, split ratios, fee percentages, or internal configuration details
- Payment intents are created automatically by the Operator when the Provider requests a payment address — the Provider does not create intents manually
- The
authorized_marketsfield in the Provider's AID is validated at intent creation — the requested market must be in the list - Payment intents expire after a configured window (default 5 minutes). Intents that expire without being paid transition to
ABANDONED
Payment intent lifecycle
| Status | Meaning | Effect on Consumer AR |
|---|---|---|
PENDING | Awaiting payment | — |
SETTLED | Payment confirmed on-chain | payment_timeliness = 1.0 |
ABANDONED | Consumer obtained payment details but did not pay | payment_timeliness = 0.0 |
Phase 3 — Settlement
The Consumer pays the Settlement Contract directly on-chain. The contract performs an atomic three-way split in a single transaction — all three transfers succeed or all revert. This is a core protocol guarantee: the Operator never intermediates fund transfers. It only reads settlement records after the fact.
Protocol requirements
- Non-custodial: Implementations must not hold funds in transit. The contract routes directly from the Consumer to three destinations atomically
- Split control: The split configuration (
escrowBps,feeBps) is stored on-chain in the Settlement Contract. Only the protocol authority can modify these values — the Provider cannot lower its own escrow funding rate - Rounding: Maximum rounding loss is 2 wei per settlement (two integer divisions). Rounding error always favors the escrow and fee recipients
- The Consumer must have approved the token spend before calling
pay()if the current allowance is insufficient
Split formula
feeAmt = amount × feeBps / 10000→ protocol fee walletnet = amount − feeAmtescrowAmt = net × escrowBps / 10000→ agent escrow wallet (Operator-controlled)opAmt = net − escrowAmt→ provider operational walletPhase 4 — Verification & delivery
With payment settled, the Consumer makes the service request — presenting its certificate, a bound proof, and the settlement payment_tx. The Provider makes a single facilitate call to the Operator that verifies the consumer and confirms the on-chain settlement in one step, crediting escrow and opening the performance task. Only once that call succeeds does the Provider deliver. Settlement verification gates delivery; it never follows it. Delivery is direct, Provider to Consumer — the platform is not in the service path.
Protocol requirements
- One call, both checks:
facilitateverifies the consumer's bound proof and confirms settlement together. No separate verify step is required ahead of it — the settlement path carries the verification - Bound proof: The Consumer includes an EC signature over
(timestamp | consumer_did | provider_did), cryptographically linking the service call to this specific Consumer–Provider pair and preventing replay of the payment proof for a different call - Read-only on-chain confirmation: The Operator reads the on-chain
Settledevent — it never submits a transaction. It checks the settlement contract address, the DID hashes, and that amounts match the registered split. This is how escrow stays non-custodial: the Operator observes what happened on-chain rather than intermediating it - Sybil check: If the Consumer and Provider share a principal, the service executes and escrow is credited, but no performance task is created and no rating credit accrues — preventing self-dealing
- Environment enforcement: The Operator checks that both agents'
environmentfields match — a sandbox agent cannot complete a verified transaction against a production agent - Escrow balance is aggregated per currency across all networks — a Provider on Base and Arbitrum carries one USD escrow balance
- The payment intent is marked
SETTLEDby matchingconsumer_did + provider_did + amountagainst open intents; a performance task is created at facilitation time, opening the 72-hour window - The Provider may independently check the Consumer's rating and enforce a
minimum_cert_tier, rejecting the request without affecting either party's rating
What the Consumer sends
| Header | Content |
|---|---|
X-AEAP-Certificate | Consumer's signed AEA/P Certificate (JWT) |
X-AEAP-Proof | EC signature over timestamp | consumer_did | provider_did |
X-AEAP-Timestamp | Current timestamp (must be within 30s) |
X-AEAP-Payment-Tx | Settlement tx_hash + network identifier |
What facilitation verifies
| Check | What passes |
|---|---|
| Contract address | tx called the registered AEAPSettlement contract |
| DID hashes | providerDidHash and consumerDidHash match the request |
| Amounts | opAmt, escrowAmt, feeAmt match the registered split config |
| Sybil | Consumer and Provider have different principals |
Phase 5 — Performance confirmation
Within 72 hours of facilitation, the Consumer confirms whether the service was delivered. The Operator computes PoP signals for both agents from objective transaction data — not from the confirmation score alone — and updates each agent's Agent Rating (AR). Updated AR triggers a recalculation of the escrow effective threshold: high-performing agents carry lower reserve requirements.
Provider signals
| Signal | Weight | Source |
|---|---|---|
task_completion | 0.40 | Consumer's confirmation score (confirmed = 1.0, partial = 0.5, rejected = 0.0) |
dispute_free | 0.25 | 1.0 if no dispute filed; 0.0 if dispute filed on this task |
timeliness | 0.20 | Time from facilitation to service confirmation (decays linearly over 72h) |
availability | 0.15 | 1.0 if challenge response returned within 120s; 0.0 otherwise |
Consumer signals
| Signal | Weight | Source |
|---|---|---|
payment_timeliness | 0.30 | Ratio of SETTLED intents to total intents; ABANDONED intents score 0.0 |
task_confirmation | 0.30 | 1.0 if confirmed within 24h; decays to 0.0 at 72h; 0.0 if auto-confirmed |
dispute_fairness | 0.15 | 1.0 if no dispute lost; 0.0 if Consumer lost a dispute |
transaction_completion | 0.15 | 1.0 if transaction completed; 0.0 if cancelled after payment intent created |
budget_compliance | 0.10 | 1.0 if gross_amount ≤ max_transaction_value in AID; 0.0 if exceeded |
Agent Rating formula
AR = Σ(rᵢ × e^(−0.005 × tᵢ)) / Σ(e^(−0.005 × tᵢ))Where rᵢ is the task rating and tᵢ is the age of the interaction in days. The decay constant 0.005 gives a half-life of approximately 139 days — interactions older than ~1.3 years carry less than half their original weight.
Auto-confirm rule
If the Consumer does not respond within 72 hours, the task auto-confirms with task_completion = 1.0. The Consumer's task_confirmation signal scores 0.0 for that task. This prevents rating suppression through deliberate non-response — a Provider cannot be penalized simply because the Consumer went silent.
Integration concepts
The primitives every participant shares — identity, authentication, headers, environments, and the error model. Read this once; the role guides assume it.
Identity & certificates
Every agent holds a certificate — an ES256 JWT issued by an Operator that binds the agent's public key to its stable-identity claims (role, capabilities, principal, issuer). Identity is the subject of ; full claim schemas are normative and live in the API Reference.
The Trust Registry
The Trust Registry is the set of issuers — Operators and Verifiers — recognized to issue certificates and attestations. It is what makes AEA/P federated rather than a single walled garden: when a participant verifies a counterparty, it resolves the certificate's issuer (iss) against the registry and trusts the certificate only if the issuer is listed. The registry is the protocol's root of trust — an unrecognized issuer fails verification regardless of an otherwise-valid certificate. Operating as an issuer, and getting listed, is covered in .
Two authentication models
| Model | Where it applies |
|---|---|
| Client → Operator | OAuth 2.0 client credentials over mTLS — HTTP calls a platform or agent makes to an Operator. |
| Agent → Agent | Certificate + a fresh bound proof — direct calls between a consumer and a provider. |
The challenge handshake
Before an agent-to-agent call, the caller proves key control: obtain a short-lived nonce from the Operator (GET /v1/verify/challenge), then present a proof — a signature over timestamp | caller_did | callee_did, bound to the callee and valid only within the replay window. The provider half of mutual auth answers a challenge with a signed challenge-response.
Wire headers
| Header | Purpose |
|---|---|
AEAP-Certificate | The caller's signed agent certificate (ES256 JWT). |
AEAP-Proof | Fresh signature proving key control, bound to the callee. |
AEAP-Timestamp | Proof timestamp; bounds the replay window. |
AEAP-Payment-Tx | Settlement reference presented as the receipt. |
Environments
Certificates and status are environment-scoped — sandbox for integration, production for live traffic. A counterparty in the wrong environment fails verification.
Errors & status
Agents carry a mutable status (ACTIVE, SUSPENDED, REVOKED) resolved separately from the certificate. Verification and settlement failures return distinct, enumerated reasons. The canonical error model and status lifecycles live in the API Reference.
Full field-level schemas for certificates, proofs, headers, and errors are normative — see the for the live Operator surface. This page is the orientation; the reference is the contract.
Builder
If you are building an agent — one that pays for services (a Consumer) or sells them (a Provider) — you integrate through a Platform, not against the protocol directly. The platform onboards you, registers your identity with an Operator, and enforces policy. This page is what your agent does within a transaction; the infrastructure is the platform's and the Operator's.
You build on a platform. Agent builders do not implement identity issuance, settlement, escrow, or performance accounting — those belong to the and the . Pick a platform, register your agent, and follow its onboarding. The shared primitives — certificates, headers, the handshake — are in .
Consumer agents
A Consumer Agent discovers providers, authenticates them, and pays under a spend scope its principal declares and the platform enforces at the gateway.
- Register through your platform with your principal and declared scope (
authorized_actions,max_tx,spending_limit); receive a certificate. - Carry your
AEAP-Certificateand a freshAEAP-Proofon outbound calls. - Before paying, authenticate the provider — obtain a challenge nonce, run the offline certificate checks, then a status check.
- Pay the registered settlement contract directly; present the
payment_txas your receipt; confirm the task within 72h.
| Method | Endpoint | When |
|---|---|---|
| GET | /v1/verify/challenge | Nonce to authenticate the provider (Phase 1) |
| GET | /v1/agents/{did}/status | Check the provider is ACTIVE (Phase 1) |
| POST | {settlement_contract}.pay(...) | Pay on-chain, directly (Phase 3) |
| POST | /v1/tasks/{task_id}/confirm | Confirm the outcome (Phase 5) |
Provider agents
A Provider Agent sells services. A non-merchant provider has no merchant account and is paid by settling a stablecoin on-chain. Your defining obligation: confirm — through the Operator, not the caller's word — that you were paid, before you deliver.
- Register through your platform and declare your markets (network, currency, method) and an operational wallet; the Operator provisions your escrow and settlement config.
- Publish your capabilities; answer a consumer's challenge with your certificate and a signed challenge-response.
- Price a request: return
402 Payment Requiredwith terms drawn from the Operator. - On the service call, make a single
facilitatecall — the Operator verifies the caller and the on-chain settlement together and credits escrow — then deliver directly. Never deliver on a claimedpayment_txalone.
| Method | Endpoint | When |
|---|---|---|
| GET | /v1/payment-address | Terms + settlement intent to price a request (Phase 2) |
| POST | /v1/facilitate | Verify caller + confirm settlement, one call (Phase 4) |
Invariant: settlement verification gates delivery, and your is built from real, settled transactions. The platform and Operator enforce both — your job is to call them correctly. See and for what they implement.
Platform integration
An Agentic Platform is the agent's onboarding front door and runtime host. It discovers and routes between agents and enforces each consumer's spend policy — but it is a control-plane mediator, never a data-plane proxy. Funds settle directly to the contract; the service is delivered directly between agents.
What you implement
- Single onboarding front door. Accept one submission per agent; run (or arrange) KYC / KYB via a Verifier; register the agent with an Operator. Preserve distributed anchoring — the certificate is Operator-signed, the attestation Verifier-signed; your registry is an operational cache, not the root of trust.
- Registry + discovery. Index agents by network and currency; verify counterparty certificates against the Trust Registry; expose matching by capability and market.
- Payment-negotiation brokering. Mediate
GET /resource→402and route by the provider's declared method. - Egress spend-policy enforcement. Before any funds move: spend limits, velocity, allowlists, authorization, and an egress confirmation gate. Never expose wallet, split, or fee.
- Stay out of the money and service paths; pull observability from the Operator rather than receiving it in-flow.
Your path through the flow
| Phase | What you do |
|---|---|
| 0a / 0b · Onboarding | Verify + register provider and consumer; store and index. |
| 1 · Discovery | Match the consumer to a provider; return the certificate ref + endpoint. |
| 2 · Negotiation | Route the request; enforce spend policy at egress; pass the 402. |
| 3–5 | Out of the path — funds and service are direct; pull receipts when needed. |
Endpoints you call
| Method | Endpoint | When |
|---|---|---|
| POST | /v1/agents/register | Register a verified agent (Phase 0) |
| POST | /v1/agents/{did}/market-configs | Declare a provider's market (Phase 0) |
| GET | /v1/agents/{did}/status | Counterparty checks during discovery (Phase 1) |
| GET | /v1/agents/{did}/facilitations | Pull settlement + performance records (out of band) |
Invariant: control-plane only. You mediate discovery and negotiation and enforce egress policy before funds move; you are in neither the funds path () nor the service path.
Operator integration
An Operator is the accountable system of record — the trust and settlement backbone of a transaction. It issues agent identity, confirms settlement on-chain, holds escrow, and runs proof of performance and disputes, operationally owning four of the five pillars. KYC is delegated to a Verifier.
Reference implementation: Troth is a commercial Operator. The role described here is open — any conformant provider can operate it.
What you implement
- Identity (Pillar 1). Operate the CA: validate the Verifier's attestation and issue agent certificates (ES256 JWT); maintain the Trust Registry of accepted issuers; serve status and challenge nonces; support revocation and publish JWKS.
- Settlement. Provision per-provider config on-chain (
registerProvider); issue payment addresses + intents; onfacilitate, verify caller identity and read-only confirm the on-chainSettledevent, then credit escrow and open the performance task. Never submit a transaction. - Escrow (Pillar 3) + PoP (Pillar 2). Hold escrow under HSM / KMS; run the
escrow_statelifecycle; compute bilateral, time-decayed ratings; apply Sybil suppression. - Disputes (Pillar 4) and transaction monitoring — transaction-time sanctions / AML; adverse outcomes drive
SUSPENDED. - Expose a reporting endpoint so platforms and principals pull receipts and ratings out of band.
Endpoints you expose
| Method | Endpoint | Surface |
|---|---|---|
| POST | /v1/agents/register | Issue credential from attestation |
| POST | /v1/agents/{did}/market-configs | Provision settlement market |
| GET | /v1/agents/{did}/status | Live status |
| GET | /v1/verify/challenge | Challenge nonce |
| GET | /v1/payment-address | Payment terms + intent |
| POST | /v1/facilitate | Verify + confirm settlement |
| POST | /v1/tasks/{task_id}/confirm | Task confirmation + rating |
| GET | /v1/agents/{did}/facilitations | Reporting (pull) |
The Operator operationally owns , , , and . Governance () stays with the principal.
Verifier integration
A Verifier performs point-in-time identity diligence at onboarding and issues a signed Verification Attestation the Operator relies on to issue a certificate. Verifiers are often operated by the Platform. Ongoing, transaction-time AML is the Operator's responsibility — the Verifier does onboarding diligence only.
What you implement
- Run onboarding diligence tiered by certification tier: full KYC / KYB (identity, sanctions / PEP, beneficial ownership, source of funds) for Provider and Enterprise tiers; payment-instrument verification may suffice for low-tier Consumers.
- Issue a signed Verification Attestation — the tier reached, the checks performed, and your signature.
- Hand the attestation to the registering party (the Platform), which relays it to the Operator. You do not issue certificates and you do not see the transaction stream.
Your path through the flow
| Phase | What you do |
|---|---|
| 0a / 0b · Onboarding | Run diligence on the principal; issue the Verification Attestation. |
| 1–5 | Not in the runtime path — onboarding only. |
Distributed anchoring: your attestation is Verifier-signed and the certificate is Operator-signed — independently resolvable, so identity stays portable and no single party becomes a walled garden. Transaction-time AML belongs to the .
Agent Identity
AEA/P identity is economic identity — not just authentication. An Agent Identity Document (AID) declares what an agent is authorized to do, what role it plays, who is accountable for its actions, and what liability escrow it holds. Every agent traces to a verified principal, and the AID is a single signed document organized into the five protocol pillars.
The five-pillar AID
The AID is one signed document organized into five pillar objects — one per protocol pillar — plus root-level fields (aid_url, aid_version, created_at, signature). Which pillars an agent populates depends on its economic role; pillars that do not apply are structurally present but null. The root signature signs across all five.
{
"aid_url": "...",
"aid_version": 2,
"created_at": "...", "updated_at": "...",
"visibility": { ... },
"metadata": { ... },
"identity": {
"agent_id": "...",
"economic_role": "PROVIDER",
"public_key": "...",
"principal": { ... },
"entity_id": "...",
"display_name": "...",
"description": "...",
"objective": "...",
"endpoint_url": "...",
"certificate": { "cert_tier": "...", "verification_attestation": { ... } },
"scope": {
"version": 1,
"authorized_actions": [...],
"capabilities": [...],
"authorized_markets": [...],
"max_transaction_value": ...,
"spending_limit": { ... },
"minimum_counterparty_cert_tier": "...",
"minimum_counterparty_ar": ...
},
"delegation": { "chain": [ ... ] }
},
"performance": { "pop_rating": null, "performance_record": null },
"escrow": { "liability_profile": null },
"disputes": { },
"governance": null,
"signature": "..."
}| Pillar | Carries | Populated by |
|---|---|---|
identity | Cryptographic identity, principal, certificate, scope, and delegation chain | All roles |
performance | PoP rating and performance record (null until the first rated interaction) | All roles |
escrow | Liability profile — escrow state, balance, and threshold | Provider, Enterprise |
disputes | Dispute summary metrics — counts and recency | Provider, Enterprise |
governance | Reference to the entity governance document | Enterprise (Level 3) |
A Consumer agent populates identity and performance; a Provider adds escrow and disputes; an Enterprise adds governance.
AID lifecycle
Every agent has an AID that progresses through defined states. Counterparties resolve any DID to check current status before transacting. The typical path is DRAFT → ACTIVE → REVOKED.
| State | Meaning | Can transact? |
|---|---|---|
DRAFT | Created but not yet signed or principal-verified | No |
ACTIVE | Signed, principal-verified, fully operational | Yes |
SUSPENDED | Temporarily non-operational — escrow entering CONSTRAINED (Provider/Enterprise), principal action (Consumer), or attestation expiry/revocation | No new txns |
REVOKED | Permanently invalidated by principal. Outstanding disputes still resolve; PoP history retained for auditability | No |
TRANSFERRED | Ownership moved to a new principal. Delegation chain re-rooted; AID history, escrow, and PoP record follow the agent | Yes (new principal) |
ABANDONED | Draft never completed within the implementation-defined timeout | No (terminal) |
Principal verification
Every agent begins with principal verification — identity checks (KYC for individuals, KYB for organizations) plus sanctions and restricted-party screening — performed by an independent before the AID can become ACTIVE. The result is a Verification Attestation, which the AID references. It is time-bound (validity SHOULD NOT exceed 12 months); on expiry or revocation the AID is suspended.
The depth of verification is captured in the attestation's verification_tier, coupled to the agent's economic role:
| Tier | Role | Checks |
|---|---|---|
Tier 1 | Consumer | Identity verification (KYC) and sanctions / restricted-party screening of the principal |
Tier 2 | Provider | Tier 1 plus business registration (KYB), beneficial-ownership identification (>10% or significant control), and screening of those owners |
Tier 3 | Enterprise | Tier 2 for each principal, plus cross-principal ownership screening, PEP screening, source-of-funds verification, and ongoing AML monitoring |
The coupling is normative: a Verifier MUST NOT attest below a role's tier, and an AID MUST NOT become ACTIVE if the referenced attestation's tier is below its role's requirement. Raising a role (e.g. Consumer → Provider) requires re-verification at the new tier.
The certificate also carries a cert_tier, but its value set and ordering are implementation-defined — counterparties compare tiers using the issuer's published ordering. minimum_counterparty_cert_tier sets an optional floor on a counterparty's cert tier.
Identity pillar fields
| Field | Description |
|---|---|
agent_id | Permanent agent DID. Format did:aeap:{uuid4}; opaque and case-sensitive |
economic_role | CONSUMER | PROVIDER | ENTERPRISE. Immutable after registration — changing it requires a new agent |
public_key | The agent's signing key |
principal | Reference to the verified principal: principal_id, the principal's public_key, and display name |
description | Human-readable description of the service the agent provides |
endpoint_url | Network endpoint at which counterparties reach the agent |
certificate | Wraps the agent's cert_tier and a reference to the principal's Verification Attestation |
scope | The bounds of the agent's authority — see below |
delegation | The delegation chain from the principal to this agent |
Scope and mutability
An agent's authority lives in its scope. Every dimension is enforced both down the delegation chain and over the life of the AID. Each signed scope change re-signs the AID and increments scope.version — a monotonic counter counterparties read to detect changes between commitments.
| Dimension | Bounds | Mutability |
|---|---|---|
authorized_actions | Permitted commitments: purchase, sell, delegate | Append-only |
capabilities | Services and competencies the agent offers or uses | Bidirectional |
authorized_markets | Market and currency pairs the agent may operate in | Bidirectional; adding a market is gated |
max_transaction_value | Per-transaction cap | Bidirectional; raising above the tier ceiling needs a cert-tier upgrade |
spending_limit | Windowed aggregate spend (Consumer / Enterprise) | Bidirectional; same tier gating |
minimum_counterparty_cert_tier | Floor on a counterparty's cert tier | Bidirectional |
minimum_counterparty_ar | Floor on a counterparty's Agent Rating (default 0.75) | Bidirectional |
accepted_issuers | Certificate issuers this agent will accept | Bidirectional |
economic_role is part of identity, not scope, and is immutable after registration.
Field visibility
The headline Agent Rating and escrow state MUST always remain public; other fields default to public but the principal MAY restrict them.
| Visibility | Who can read | Example fields |
|---|---|---|
| Public | Anyone | agent_id, economic_role, description, endpoint_url, pop_rating, liability_profile headline, cert_tier |
| Counterparty-authorized | Agents with a completed verified transaction | authorized_markets, authorized_actions, spending_limit |
| Private | Principal only | Raw key material, internal configuration |
Delegation chains
A delegation chain traces authority from the principal through any intermediate agents to the acting agent — how principals stay in control of autonomous agents.
- Chain invariant. Each link's scope is a subset of its parent's — sets narrow, ceilings only lower, floors only rise. Authority cannot be amplified by delegating.
- Delegation authorization. A delegator must itself hold
delegatein itsauthorized_actions; a link from an agent that lacks it is invalid. - Top-of-chain accountability. The root of the chain — the principal, or the topmost agent — is accountable for liability, escrow funding, PoP contribution, and disputes. Intermediate links are relays and do not take on accountability by re-delegating.
- Cascading narrowing. When a parent narrows a dimension, sub-agents auto-constrain at their next
scope.version. Widening does not cascade. - Revocation. Revoking any link invalidates every link below it.
Identity on the wire
An agent's economic identity is portable across the ecosystem. The AID is the full, resolvable record, but across an implementation boundary an agent presents a compact certificate — a signed JWT asserting its DID, role, scope, and principal. Because the certificate format and key discovery are fixed by the protocol, any conformant counterparty can verify a certificate issued by any Operator — even one it has never contacted — and an agent acting through one Platform is recognizable to agents on another. Which Operator certified an agent and which Platform hosts it are branding, not barriers to interoperability.
Before committing, two agents mutually authenticate — a challenge-response proving each controls the key bound to its certificate — then each resolves the other's live status (lifecycle state, environment, current rating and escrow) rather than trusting the certificate's snapshot. The wire headers, the challenge handshake, key discovery, and rejection codes are in .
Full AID schema, the five pillar objects, ScopeRef, PrincipalRef, and the Verification Attestation format are in the Extended Specification §5.
Proof of Performance
PoP is AEA/P's automated performance rating. Ratings derive from verifiable transaction outcomes — task completion, payment history, dispute results — not subjective reviews, and records are created automatically at settlement, so principals cannot submit or suppress them. PoP produces one rating per agent regardless of role; only the signals that feed it differ.
Rating lifecycle
An agent's rating evolves as it transacts. The transition between Rated and Decayed is continuous — an agent that resumes activity rebuilds its rating through new interactions that carry full weight.
| Stage | Condition | AR shown publicly? |
|---|---|---|
Unrated | 0 interactions — no track record; trust rests on identity, delegation chain, and escrow | No |
Provisional | 1–9 interactions (default threshold 10) — accumulating but not yet statistically meaningful | Shown, marked Provisional |
Rated | ≥ 10 interactions — statistically meaningful | Yes |
Decayed | No recent interactions — older interactions lose weight under time decay | Yes — trends toward neutral |
Task rating
Each completed interaction produces a task rating between 0.0 and 1.0 — a weighted sum of objective signals whose weights sum to 1.0 (and MAY be adjusted in an entity's governance document). Which signal set applies depends on the agent's role in that specific interaction. Interactions between two agents under the same principal execute and credit escrow, but produce no task record.
Provider signals
Applied when an agent sells a service (Provider, or Enterprise selling).
| Signal | Weight | How measured |
|---|---|---|
task_completion | 0.40 | Was the service completed as specified? Confirmed by the customer: confirmed = 1.0, rejected = 0.0, partial = a score in 0.0–1.0. Auto-confirms at 1.0 if the customer is silent past the window (default 72h) |
dispute_free | 0.25 | 1.0 if no dispute was filed on this task; 0.0 if any was filed, regardless of outcome |
timeliness | 0.20 | Was the task completed within the agreed timeframe? 0.0 (missed entirely) to 1.0 (on time or early) |
availability | 0.15 | Was the agent operational when the counterparty needed it? Uptime vs. the declared SLA. 0.0 or 1.0 |
Consumer signals
Applied when an agent buys a service (Consumer, or Enterprise purchasing).
| Signal | Weight | How measured |
|---|---|---|
task_completion | 0.30 | Did the agent fulfill the principal's purchasing assignment? Confirmed by the principal. 0.0 or 1.0 |
payment_timeliness | 0.30 | Did the agent settle on time and follow through on payment commitments it initiated? Late settlement or abandonment lowers the score. 0.0 to 1.0 |
transaction_completion | 0.15 | 1.0 if the agreed transaction completed; 0.0 if the buyer cancelled after committing |
dispute_fairness | 0.15 | Ratio of disputes the consumer initiated that resolved in its favor. Frequent losses reduce the score — discourages frivolous filing |
budget_compliance | 0.10 | 1.0 if the transaction stayed within the agent's authorized spending parameters; 0.0 if exceeded |
task_completion vs transaction_completion. The first is the principal–agent relationship — did the agent fulfill the purchasing mandate its principal gave it (the principal confirms). The second is the agent–counterparty relationship — did the agent follow through on what it committed to without canceling (the counterparty confirms). An agent can score high on one and low on the other.
Enterprise: blended AR
An Enterprise agent buys and sells, generating provider signals when selling and consumer signals when buying — but it has one AR, not two. The AR is a transaction-weighted blend that tracks its actual mix:
AR = provider_component × provider_weight + consumer_component × consumer_weightEach weight is that role's share of total transactions; each component is the time-decayed mean of task ratings from that side. The blend shifts automatically as the business mix evolves — an agent that mostly sells has an AR that mostly reflects service quality, one that mostly buys reflects purchasing reliability — and counterparties still check one number.
Agent Rating (AR)
The AR is the agent's single PoP score: the weighted mean of its task ratings with exponential time decay, so recent performance counts more than old.
AR = Σ(rᵢ × e^(−0.005 × tᵢ)) / Σ(e^(−0.005 × tᵢ))rᵢ— task rating for interaction i (weighted sum of the role's signals)tᵢ— age of interaction i in days. Decay constant λ = 0.005 → half-life ≈ 139 days; λ MAY be configured in governance- AR ranges 0.0–1.0. A higher AR lowers the agent's escrow effective threshold — see
Performance record
The AR is the summary; the evidence behind it is the performance record — an append-only, publicly readable log with one entry per interaction: the signal scores, the computed task rating, how completion was confirmed, and any dispute and its outcome. Entries cannot be modified or deleted, which is what makes the rating verifiable rather than curated.
Because it is queryable, a counterparty can break the AR down — for example, inspect an Enterprise agent's consumer signals to judge payment reliability specifically, or pull its dispute history and transaction mix.
Aggregation
Agent ratings roll up. A Team Rating (TR) is the mean of its members' ARs; an Entity Rating (ER) is the mean of team ratings (or of member ARs for a flat entity). Both are publicly queryable, so a strong agent in a weakly-rated team reads differently from one in a high-performing organization.
Manipulation resistance
| Mechanism | How it resists gaming |
|---|---|
| Objective signals only | Ratings come from verifiable outcomes — never reviews or self-reported data |
| Bilateral confirmation + auto-confirm | Both sides confirm an outcome; silence past the window (default 72h) auto-confirms for the deliverer, so a party cannot suppress a rating by withholding confirmation |
| Dispute integration | A disputed transaction affects ratings regardless of outcome — discouraging both frivolous disputes and poor service |
| Minimum interaction threshold | AR is not shown publicly until ~10 interactions, blocking thin-file exploitation |
| Sybil resistance | Interactions between agents under the same principal are excluded (weight 0) — an agent cannot vouch for itself |
| Time decay | Exponential decay prevents coasting on an old record while current performance slips |
Full performance-record schema, signal-breakdown queries, and the team / entity aggregate rating records are in the Extended Specification §6.
Liability Escrow
Liability Escrow makes agent transactions trustworthy. A configured percentage of every incoming payment is automatically reserved in a segregated escrow account the Provider cannot withdraw from unilaterally, so counterparties can verify coverage before transacting. When open disputes exceed coverage, the agent is automatically constrained. Escrow applies to Provider and Enterprise agents; a Consumer's liability is handled by its spending limits, with the principal bearing it.
Who needs escrow
| Role | Requirement | Why |
|---|---|---|
| Provider | SHOULD maintain escrow | Providers accept payments and bear service liability; escrow funds from revenue |
| Enterprise | MUST maintain escrow | Both service liability and contractual obligations — broader risk requires mandatory coverage |
| Consumer | Not required | Consumers only make outgoing payments; liability runs through spending limits and the principal bears it |
Escrow state machine
Counterparties resolve the escrow state before transacting. The typical path is FUNDING → ACTIVE, with occasional trips to DISPUTE_HOLD and back.
| State | Condition | Accept new transactions? |
|---|---|---|
FUNDING | Balance below the threshold — counterparties are warned of low coverage via the AID | Yes — with warning |
ACTIVE | Balance at or above the threshold — full coverage, verifiable before transacting | Yes |
DISPUTE_HOLD | One or more active disputes — disputed amounts plus bounties are locked; the remainder stays available | Yes (remaining balance) |
CONSTRAINED | Open disputes (including bounties) exceed the balance — AID → SUSPENDED; dispute obligations stay accessible; resolves back to DISPUTE_HOLD or ACTIVE as disputes close and the balance recovers | No new transactions |
RELEASED | Entity terminated or transferred; 90-day hold elapsed and all disputes resolved — funds distributed to owners per the governance document | No |
Funding and custody
For every incoming payment, a configured percentage is reserved in escrow before the remainder reaches the agent's operational account — an atomic split (operational, escrow, fee) that either fully succeeds or reverts. The protocol never holds funds in transit; balances update only from confirmed settlement events, which keeps custody risk out of the protocol layer.
- The funding rate is set by the Operator (recommended default 5%) and stored in a registry the Provider cannot modify — a Provider that could zero its own rate would carry no coverage
- Funding continues until the balance reaches the threshold; above it, incoming value is credited in full to the operational account
- Principals may pre-fund escrow directly at any time, including at creation, for immediate full coverage
- Balance is aggregated per currency — one balance per currency, not per network — and the escrow is denominated in one of the agent's authorized-market currencies
The threshold
The threshold — the minimum balance an agent needs to operate unconstrained — is dynamic. It scales with three inputs: the dispute window the agent offers, its recent transaction volume, and its Agent Rating.
The dispute_window is the period during which a counterparty may file a dispute — set by the principal, default 30 days, publicly visible. It MAY be 0, meaning final-sale: no dispute recourse and no escrow exposure. From it, the coverage_period sets how many days of average volume the threshold must cover (at least 25% of the window, floored at 30 days), and base_threshold is one coverage period of the agent's average daily incoming volume.
That base is then scaled by an AR modifier — the protocol's link between performance and coverage. Strong agents reserve less; weak agents reserve more:
| Agent Rating | Modifier | Effect |
|---|---|---|
| ≥ 0.9 | 0.75× | 25% reduction — strong record, less coverage needed |
| 0.7 – 0.89 | 1.0× | No adjustment — standard coverage |
| 0.5 – 0.69 | 1.25× | 25% increase — below-average performance buffered |
| < 0.5 | 1.5× | 50% increase — poor performers hold substantially more |
| Provisional (< 10 interactions) | 1.25× | Conservative default until the agent is Rated |
coverage_period = max(dispute_window × 0.25, 30)base_threshold = avg_daily_volume × coverage_periodeffective_threshold = base_threshold × ar_modifierThe effective_threshold is always public — counterparties compare it against the current balance. Beyond the AR modifier, implementations MAY further reduce the threshold for agents with long dispute-free records, reversing the reduction if disputes occur.
Worked example
A Provider with a 120-day dispute window and roughly $1,000/day in volume:
coverage_period = max(120 × 0.25, 30) = 30 daysbase_threshold = $1,000 × 30 = $30,000| Agent Rating | Modifier | Effective threshold |
|---|---|---|
| 0.92 (high performer) | 0.75× | $22,500 |
| 0.85 (standard) | 1.0× | $30,000 |
| 0.60 (below average) | 1.25× | $37,500 |
| 0.42 (poor) | 1.5× | $45,000 |
Crossing the threshold
A transaction larger than the current threshold is never blocked. The threshold rises to the transaction value, the configured rate reserves escrow as usual, and the account simply drops to FUNDING — a soft signal that coverage is rebuilding. FUNDING never restricts operations.
CONSTRAINED is different. It triggers only when open disputes exceed the balance, and it does restrict the agent:
- New outbound transactions are blocked
- Inbound transactions continue, with all proceeds routed to escrow to rebuild coverage
- The AID transitions to SUSPENDED; counterparties see status “escrow constrained”
- Constraints lift only when all disputes resolve and the balance recovers above the threshold
Transparency
Counterparties can read the full escrow posture before transacting. The following are public: current balance, funding_rate, threshold, current state, dispute_window, coverage_period, principal-contribution history, and dispute history — enough to judge whether coverage is adequate for a proposed transaction.
Escrow account schema, new-agent bootstrapping rules, and the full worked example are in the Extended Specification §7.
Dispute Resolution
AEA/P provides structured recourse when a buyer receives inadequate or no service despite having paid. It mirrors the payment-network chargeback model: the paying party has standing to dispute, the respondent bears every cost of resolution, and a buyer is never penalized for filing a legitimate claim.
Standing — who can file
Standing belongs to the paying party: the buyer files, the seller answers.
| Role | Usual position | Notes |
|---|---|---|
| Consumer | Applicant | Files against providers it purchased from. Protected by the respondent-pays model, but a pattern of lost disputes lowers its dispute_fairness, discouraging frivolous filing |
| Provider | Respondent | Usually answers customer claims; MAY also file as a buyer against its own suppliers |
| Enterprise | Both | Respondent when selling, applicant when buying |
Recourse against a Consumer is out of scope — because consumers only pay out, a counterparty's recourse runs through the consumer's principal via the delegation chain.
Dispute lifecycle
A dispute moves through a fixed sequence from filing to enforcement.
| Stage | What happens |
|---|---|
FILED | The buyer submits the dispute with evidence, the disputed transaction(s), and the amount claimed |
PRE_ARBITRATION | A 7-day window for the respondent to resolve directly. If the applicant accepts the offer, the dispute closes as a resolved complaint — reduced AR impact, no bounty |
TRIAGE | Exposure (disputed amount + bounty) is compared to escrow; high exposure constrains the agent (see below) |
IN_ARBITRATION | The dispute enters the pool, a board forms, both parties submit evidence, and arbitrators vote |
RESOLVED | The board reaches a strict majority. The losing party MAY escalate within the deadline (default 7 days), up to three hearings total |
ENFORCED | Funds disburse from escrow, bounties pay out, and escrow state and PoP update automatically |
The share of disputes settled in pre-arbitration versus those going to a full board is itself a meaningful trust signal.
Triage
Once pre-arbitration fails, the dispute is triaged on total financial exposure — the disputed amount plus the arbitration bounty.
| Exposure | Escrow impact | Agent impact |
|---|---|---|
| ≤ escrow balance | Disputed amount + bounty locked in DISPUTE_HOLD | Keeps operating; proceeds to arbitration |
| > escrow balance | Full balance locked in DISPUTE_HOLD | Enters CONSTRAINED — AID → SUSPENDED; arbitration proceeds in parallel, dispute obligations still accessible |
The dispute pool
Unresolved disputes sit in a public pool that registered arbitrators browse and self-select from. Each listing shows the domain, amount, bounty, priority, and escalation round — but never the parties' identities, the evidence, or prior votes.
- The pool is stratified: new and probationary arbitrators work a remediation pool of low-bounty disputes to build their record, while proven arbitrators handle the rest. A board is drawn entirely from one pool
- Arbitrators are independent humans or agents with a minimum escrow stake, no open disputes against them, and no relationship or shared principal with either party. An agent-arbitrator needs its own AID and an unrelated principal
- A board forms once enough eligible arbitrators sign up, and the dispute leaves the pool. If none sign up for 14 days, the bounty auto-increases from the respondent's escrow
Arbitration board
The board grows with each escalation, and no arbitrator carries over between rounds.
| Hearing | Board size | Strict majority |
|---|---|---|
| First | 3 arbitrators | 2 of 3 |
| Second (escalation) | 5 arbitrators | 3 of 5 |
| Third (final) | 7 arbitrators | 4 of 7 |
- Arbitrator identities are anonymous to the parties throughout
- The board MAY grant one evidence-window extension, by majority vote, if the evidence is insufficient
- An abstaining arbitrator withdraws and is replaced to keep the board at full size; resolution needs a strict majority of the votes cast
- Each escalation adds a fresh board and additional bounty; the final outcome is a strict majority across two of the three hearings, or escalation is exhausted
Every arbitrator carries an Arbitrator Reliability Score — the time-decayed ratio of votes that matched the final outcome (ARS = aligned_votes / total_votes). A high ARS earns preferential selection; at or below 0.5 the arbitrator drops to the remediation pool; at or below 0.3 they may forfeit part of their stake. Bounties are split equally among the board regardless of how each member voted.
Bounty
Dispute costs fall entirely on the respondent; the applicant never pays.
bounty = clamp(disputed_amount × bounty_rate, bounty_min, bounty_max)bounty_rate, bounty_min, and bounty_max are configurable per agent and funded from the respondent's escrow. The floor keeps small disputes worth an arbitrator's time; the ceiling caps the cost on large ones.
Enforcement
Once voting concludes and the escalation deadline passes, disbursement and state changes execute automatically.
| Outcome | Funds | After |
|---|---|---|
| For applicant | Disputed amount moves from escrow to the applicant; bounty pays the arbitrators | Respondent's AR decreases; the agent returns to ACTIVE only once escrow is restored above threshold |
| For respondent | DISPUTE_HOLD releases back to escrow; bounty still pays the arbitrators | Neutral for the respondent; the applicant's AR may suffer if its filing pattern looks frivolous |
Effects on Agent Rating
| Signal | Effect |
|---|---|
Provider dispute_free | Drops to 0.0 the moment any dispute is filed on a task, regardless of how it resolves |
Consumer dispute_fairness | A lost dispute lowers the ratio of disputes resolved in the consumer's favor — discouraging frivolous filing |
| Provider wins | Escrow is returned, but the dispute_free hit for that task stands — it is not retroactively undone |
Dispute submission fields, evidence format, pool-listing details, and the full ARS thresholds are in the Extended Specification §8.
Entity Governance
Entity Governance is the coordination layer for autonomous economic entities with more than one principal. It defines ownership, voting, agent management, and lifecycle controls for organizations where no single party has unilateral authority.
When it applies
The principal hierarchy is Principal(s) → own → Entity → governs → Agent(s). An entity is an optional layer; how strongly it is needed scales with the number of principals and agents involved.
| Deployment | Entity Governance | Why |
|---|---|---|
| Single principal, one Consumer agent | Not required | The delegation chain already provides all the governance needed |
| Single principal, one Provider agent | Optional | The delegation chain suffices; a governance document can still formalize operating parameters |
| Single principal, multiple agents | Recommended | One place to set team structure, privileges, shared escrow policy, and coordinated lifecycle |
| Multiple principals | Required | Co-owners need a shared agreement defining ownership, voting, and modification rules |
The rule underneath the table is simple: entity governance is required the moment more than one principal shares ownership.
Entity lifecycle
| Stage | Description |
|---|---|
FORMING | Founding principals register their public keys, agree on the entity's objective, and sign the Governance Document. Escrow opens in FUNDING; no agents are active yet |
ACTIVE | The Governance Document is signed by all founders. The entity is operational and agents can be registered |
AMENDING | An amendment is under vote. The entity continues operating during the vote |
TRANSFERRING | An equity sale is crossing the 50% control threshold. 90-day hold; escrow locked during the transfer |
DISSOLVING | A unanimous dissolution vote has passed. Outstanding disputes must resolve before any distribution |
TERMINATED | The entity is closed. Escrow is distributed by ownership stake after the 90-day dispute hold |
Objective
Every entity declares an objective — its mission, or optimization directive — in the Governance Document. It is machine-readable where possible (maximize_profit, minimize_cost, maximize_service_quality, balanced) and guides agents whenever operating parameters leave room for discretion.
- It is public. Counterparties read it as a trust signal — whether the entity's optimization directive aligns with the transaction they are considering
- Every agent's own objective (in its AID) MUST be consistent with it. An agent may specialize the mission — entity
maximize_profit, agentminimize_input_costs— but never contradict it - Changing the objective requires a unanimous vote (see below). It defines the purpose the principals collectively committed to, so all of them must agree to redirect it
Governance Document
The Governance Document is the machine-readable constitution of the entity. Every modification creates a new version, preserving a complete audit trail.
| Component | Description |
|---|---|
| Entity identity | document_id, entity_id, name, version, and creation/modification timestamps |
| Objective | The entity's declared mission or optimization directive — public, and binding on every agent's objective |
| Ownership registry | Founding principals, their public keys, and equity stakes (must sum to 100%) |
| Voting rules | Quorum and threshold per decision category |
| Escrow policy | Funding rate, dispute_window (default 30 days, which drives the §7 coverage period), and per-principal top-up commitments |
| Agent registry | Which agents the entity controls, with a privilege set per agent |
| Procedures | Modification and termination procedures, plus optional machine-readable bylaws |
| Version history | Every prior version retained — a full signed audit trail |
Parameters set here propagate to every agent under the entity; an agent may be stricter via its delegation chain but never exceed the entity's limits. Because the whole document is machine-readable, it can be enforced in a database, on-chain via smart contracts, or a hybrid — with distributed ledgers giving co-owners the strongest guarantee that the agreed rules execute exactly as written.
Ownership and tokens
Ownership is cryptographically grounded — each principal's stake is bound to their public key in the registry, and any owner action is performed by signing with the matching private key. There is no external registrar; ownership is enforced by cryptography, not by trust.
| Token type | Rights | Governance control |
|---|---|---|
| Equity (voting) | Ownership share plus voting weight proportional to holdings; >50% controls the entity | Yes — bound to a public key in the ownership registry |
| Non-voting | Revenue sharing and service access | No — participation without governance control |
- Below 50%: a principal may transfer their stake with a simple-majority vote
- Crossing 50% (a control transfer): supermajority approval plus a 90-day hold with escrow locked
- The performance record, escrow, and dispute history follow the entity — a new owner inherits the full economic history, including outstanding dispute obligations
Voting and decisions
Decisions are made through cryptographically signed votes. A principal submits a signed proposal; every equity holder casts a signed vote (FOR / AGAINST / ABSTAIN) weighted by their equity; the system tallies against the threshold by the deadline. Approved changes increment the document version, and every proposal, vote, and outcome is recorded with full signature chains — a verifiable audit trail with no trusted intermediary.
| Decision category | Threshold |
|---|---|
| Operational — escrow rate, bounty levels, PoP weights, adding/removing agents | Simple majority (more than 50% of equity) |
| Financial — expenditures above a limit, principal contributions, revenue distribution | Simple majority (more than 50%) |
| Governance amendment — structure, voting thresholds, issuing tokens | Supermajority (at least two-thirds) |
| Ownership transfer — sale or transfer of controlling interest | Supermajority (at least two-thirds) |
| Objective change — redirecting the entity's mission | Unanimous (all principals) |
| Entity termination — dissolve and distribute | Unanimous (all principals) |
Agent management
The Governance Document holds an agent registry — each agent's economic_role, team, supervisor, status, and a privilege set.
- A privilege set covers transaction limits, the co-signer threshold above which a second signature is required, permitted operations (
purchase,sell,delegate,governance_vote), data access, and whether the agent may sub-delegate - Privilege changes require a governance vote — no single principal can unilaterally expand an agent's authority
- Removing an agent from the registry does not revoke its AID; only the entity's authorization for that agent ends
- An entity must resolve all outstanding disputes before dissolving — agents cannot be deregistered while disputes are open
Transparency
Entity governance is a public trust signal, not an opaque internal matter. Counterparties can inspect the essentials before transacting.
| Information | Visibility |
|---|---|
| Objective, current Governance Document, ownership distribution | Public — operating rules, mission, and concentration risk |
| Version history and governance activity summary | Public — proposal counts and outcomes by category, showing governance is active and stable |
| Agent registry and lifecycle stage | Public — which agents operate under the entity, and whether it is operating, transferring, or terminating |
| Full proposal and vote details | Principals only — individual signed votes and detailed change specifications |
The Governance Document schema, the full proposal and vote structures, privilege fields, and bylaw enforcement are in the Extended Specification §9.