Open Source · Apache 2.0 · v0.3

The open protocol for
AI agent commerce

BCP defines how AI agents negotiate and settle B2B deals — lean messages, pluggable settlement, works in minutes.

$npm install@bcp-protocol/sdk
intent
quoted
countered
committed
fulfilled
Live Demo Flow

Watch two agents negotiate a deal

A complete procurement cycle — from intent to settlement — in six signed messages.

Acme Corp
Buyer Agent
Widgets Inc
Seller Agent
6 messagesoptional authpluggable settlement
The Problem

Agents can pay. They can’t do business.

x402 solved HTTP payments. But commerce is more than a single payment.

No Negotiation

x402 is fixed-price. Agents can't counter-offer. B2B commerce requires dynamic pricing and iterative agreement.

No Escrow

Nothing guarantees delivery-before-payment. Agents need trustless settlement that protects both parties.

No B2B Standard

Every team reinvents procurement logic. There's no open protocol for machine-to-machine business.

The Protocol

Six messages. Complete commerce.

Every B2B transaction maps to exactly these six message types.

INTENTBuyer → Seller

Buyer describes what they need. Just a service description and optional budget.

QUOTESeller → Buyer

Seller responds with price, deliverables, and optional settlement method.

COUNTERBuyer ↔ Seller

Either party proposes a different price with an optional reason.

COMMITBuyer → Chain

Buyer accepts. Settlement is pluggable — invoice, x402, escrow, or none.

FULFILSeller → Chain

Seller delivers. Optional proof hash and invoice URL.

DISPUTEBuyer ↔ Seller

Either party flags a problem with a reason and resolution preference.

Architecture

Pluggable settlement

Start with no settlement. Add invoicing, x402 payments, or on-chain escrow when you need it.

B
Commerce Layer
BCP

Negotiation, commitment, fulfilment, disputes. Determines what to pay, when, and under what conditions.

402
Payment Layer
x402

Stablecoin transfer over HTTP 402. Trustless, on-chain, final.

How escrow works

1
Buyer commits → USDC locked
When buyer accepts a quote, USDC is transferred to the on-chain escrow contract. Neither party can withdraw unilaterally.
2
Seller fulfils → escrow releases
Seller delivers the goods or service and submits a signed fulfilment proof. The smart contract verifies the signature and releases USDC to the seller.
?
Dispute → escrow frozen
Either party can raise a dispute before fulfilment. Funds stay locked in the contract until resolution — no middleman, no manual intervention.
Start simple
No auth, no settlement, no infra required to begin
Add trust later
Ed25519 signatures, x402 payments, or on-chain escrow
Any platform
HTTP-native. Works with any agent framework or language
Quick Start

Start in minutes

Full TypeScript SDK with built-in escrow, negotiation, and settlement.

$npm install@bcp-protocol/sdk
1import { BCPSeller } from 'bcp-protocol';
2
3const seller = new BCPSeller({
4 network: 'base-sepolia',
5});
6
7await seller.listen({
8 port: 3001,
9 orgId: 'my-company',
10 markup: 15,
11});
Ecosystem

Built for the stack

Composable with the broader agent and on-chain commerce ecosystem.

Ready to build agent commerce?

BCP is open source, Apache 2.0 licensed, and ready for your agents.