Open onchain framework for autonomous agent-to-agent B2B negotiation.
Open Deal is the first open onchain framework for autonomous agent-to-agent B2B commerce. Anthropic just published Project Deal showing AI agents can negotiate enterprise contracts on behalf of a company (186 deals in a single week). What's missing is the infrastructure to make it run outside the lab — on real ERPs, with real escrow, real audit, and a real spec any agent can adopt.
So I built a wire-level protocol with six sub-specs: ENS-based discovery, content-addressed catalogs on 0G Storage, paid RFQs + signed quotes via HTTP 402, two settlement modes (escrow.v1 for goods, direct.v1 for services), on-chain audit anchors, and ERP source-system connectors.
The reference implementation ships: • 5 Claude tools ready to drop into any Anthropic SDK project: record_audit, treasury_policy_check, kh_pay, kh_balance, kh_fund_instructions • 3 plugins: audit-to-0g (anchors decisions on 0G Chain), policy-from-ens (treasury rules as ENS text records), keeperhub-rail (USDC payments via x402) • 2 deployed contracts: ProcurementEscrow.sol on Sepolia, AuditAnchor.sol on 0G Chain • A live buyer agent connected to Odoo ERP that runs end-to-end procurement: detects low-stock SKUs → broadcasts RFQs to seller agents → Claude picks the winner with reasoning anchored on-chain → locks USDC in escrow → requests human approval via Telegram → writes the chain refs back into Odoo's chatter. 92 seconds, zero manual intervention.
For verifiability, a public KeeperHub workflow checks all audit anchors every 30 minutes and alerts on anomalies — fork it, point it at any Open Deal agent.
MIT-licensed and onchain today.
Built with Next.js 14 on Vercel. The buyer agent runs as a serverless function streaming live logs via SSE to a badge-based terminal in the browser.
Anthropic Claude (via AWS Bedrock) drives winner selection — the agent calls 5 Claude tools registered via the Anthropic SDK (record_audit, treasury_policy_check, kh_pay, kh_balance, kh_fund_instructions). The model receives eligible quotes, purchase history, and policy constraints, and returns a reasoned choice that gets anchored on-chain. The reasoning is stored in the audit JSON on 0G Storage so any third party can verify why the agent chose a specific supplier.
0G Foundation: every procurement tick uploads a JSON audit record to 0G Storage and calls AuditAnchor.append() on 0G Galileo. The content-addressed root hash is the proof of what the agent decided and why.
KeeperHub: a public workflow (forkable by anyone) polls /api/anomaly/check every 30 minutes. The endpoint reads the AuditAnchor contract, downloads each new audit JSON from 0G, runs four heuristics (vendor concentration, LLM degradation, budget pressure, pattern-triggered orders without approval), and calls /api/anomaly/notify which fires a Telegram alert — no secrets in the public workflow.
Sellers are ENS subnames on Sepolia with text records for endpoint, catalog-uri (pointing to 0G Storage), and procurement.rfq-price (x402 anti-spam). Sellers can charge per RFQ via X-Payment headers — making brute-force RFQ farming economically irrational at scale. Payment is locked in a custom ProcurementEscrow.sol contract.
Odoo integration via JSON-RPC closes the loop by creating POs with escrow tx hashes and 0G anchor indices in the chatter.
Hacky bit worth mentioning: treasury policy lives entirely as ENS text records on the parent name. To change a cooldown, max swap, or carrier whitelist, you don't touch code — you update an ENS record. The agent reads the record, hashes it, and includes the hash in every audit anchor. Policy is governable like a domain.

