Apache 2.0 · v0.2.0 · 202 tests passing

AI agents can discover, communicate,
and pay. They cannot negotiate.

Teams are already building agent-driven procurement and revenue workflows. Those workflows break at the point of negotiation and commitment — there is no shared protocol for what happens when a buyer agent meets a seller agent. A2CN is that missing layer.

For procurement and revenue platforms building agent-driven workflows
MCP · Agent-to-tool ✓ Exists Model Context Protocol — tools, resources, prompts A2A · Agent communication ✓ Exists Google Agent-to-Agent — task delegation, capability discovery A2CN · Commercial negotiation ← This layer Offer exchange · Mandate verification · Dual-signed transaction record AP2 / ACP · Payment execution ✓ Exists Agentic Payment Protocol / Agent Commerce Protocol — settlement

Agents can talk. Agents can pay. Agents cannot safely negotiate commercial terms across organizational boundaries — no open standard exists for this layer.

saas_renewal.py
Discovery document fetched from seller
Session initiated — session_id: 222118e7-7f18-4a20-9fa6-dd35a945e67d Round 1: TechCorp offers $95,000 Acme counters $115,000
Round 2: TechCorp offers $103,000 Acme counters $105,000 net-45
Round 4: TechCorp accepts $105,000 Transaction record generated
record_hash: _H3cQxZuwkMculi1CXxPNVWQEBMYbasK...
Buyer record_hash == Seller record_hash
A2CN bilateral session complete

Two Python processes. Different organizations. Neither controls the authoritative record. The cryptography proves the agreement — not the platform.

Run this yourself →
Discovery
/.well-known/a2cn-agent — agents advertise capabilities and find each other
Mandate Verification
Cryptographic proof an agent has authority to commit its organization (W3C DIDs, two-tier: Declared + VC)
Session Invitation
Push-based handshake enabling adoption by parties without pre-deployed endpoints — cold-start solved
Offer Exchange
Signed offers and counteroffers with strict turn-taking — ES256 + RFC 8785 JCS canonicalization
Deal-Type Terms
Normative schemas for goods_procurement and saas_renewal with extensible custom_terms
Session State Machine
Turn enforcement, sequence ordering, round limits, impasse detection — formally specified transitions
Transaction Record
Dual-signed, content-addressed record independently generated by both parties — neither controls the authoritative copy
Audit Log
Structured EU AI Act compliance output for every terminal session state — COMPLETED, REJECTED, WITHDRAWN, IMPASSE

Platform adapters translate procurement platform webhooks into A2CN sessions — zero platform changes required.

Fairmarkit fires a BID_CREATED webhook when a buyer invites a supplier. When the supplier has an A2CN agent, zero Fairmarkit platform changes are required.

from adapters.fairmarkit_adapter import FairmakitEventParser # 1. Fairmarkit fires BID_CREATED to supplier's webhook endpoint terms = FairmakitEventParser.bid_created_to_goods_procurement_terms(payload) # → {total_value: 1800000, currency: "USD", line_items: [...], delivery_days: 14} # 2. Negotiate via A2CN session (offer / counteroffer / acceptance) # ... # 3. Translate agreed terms back to Fairmarkit response API response = FairmakitEventParser.terms_to_fairmarkit_response( agreed_terms, session_id="a2cn-sess-001", request_id=payload["request_id"] ) # → POST /self-service/api/v3/responses/request/{request_id}/

Full end-to-end demo: examples/invitation_flow.py →

Protocol spec v0.2.0 — 3,700+ lines, 8 components, Apache 2.0 Complete
Reference implementation — 202 tests passing, 0 skipped Complete
Session Invitation — cold-start adoption solved Complete
Platform adapters — Fairmarkit, Salesforce Revenue Cloud, Keelvar Complete
MCP server — 6 tools, stdio + HTTP transport, Claude Desktop / LangGraph Complete
JWT request authentication — ES256, anti-replay, DID verification Complete
LLM integration pattern — Section 13.9, separation of concerns Complete
LLM negotiation skills file — deployable agent prompt, warmth calibration, injection defense Complete
🔄 A2A extension proposal — OQ-011, submitted In Progress
📋 Meeting Place — neutral transaction hosting, planned v0.3 Planned
📋 TypeScript reference implementation Planned
📋 SDK — pip + npm Planned

Christian Magorrian

Former early GTM and technical hire at Samsung Next and Comet ML, working directly with enterprise teams adopting AI infrastructure. Cross-organizational workflows consistently broke at the point of negotiation and agreement. A2CN started as an attempt to define that missing layer.

Design partner conversations welcome — contact@a2cn.io

Meeting Place

A2CN defines the protocol for negotiation. Meeting Place is the neutral infrastructure that makes those agreements operational at enterprise scale.

When two agents from different organizations reach agreement, neither side's system can be the authoritative record keeper. Meeting Place holds the record that neither party controls — independently verified, immutably stored, accessible to both.

Neutral Transaction Records
Both parties submit the record. Meeting Place verifies the dual signatures independently. Neither side can modify or delete it.
Mandate Management
Issue, store, rotate, and revoke agent mandates from a single control plane. Audit trail of every mandate at every session.
Compliance Export
EU AI Act and SOX-ready audit packages generated on demand. Structured output for GRC systems. Full chain of custody.
Read the spec
3,700+ lines covering eight protocol components, normative JSON schemas, platform integration patterns, and a complete bilateral walkthrough.
spec/a2cn-spec-v0.2.0.md →
Build on it
Python reference implementation with 202 passing tests. LangChain, CrewAI, and Agentforce compatible. MIT-friendly Apache 2.0 license.
github.com/A2CN-protocol/A2CN →
Start with the skills file
Deployable LLM prompt template for A2CN agents. Covers warmth calibration, chain-of-thought reasoning, and prompt injection defense — grounded in 182,812 AI-to-AI negotiations (MIT / Johns Hopkins, 2026).
reference-implementation/skills/a2cn-negotiation.md →
Give feedback
Design partner conversations welcome. If your platform encounters the cross-organizational agent negotiation problem, we want to hear from you.
contact@a2cn.io