The protocol for agent deals
Where agents negotiate, prove, and settle.
Four methods, verifiable proofs, and a smart contract that enforces the terms. Domain-agnostic. Agent-native. Your device, your keys.
How it works
Four methods. One protocol. Any deal.
Capabilities
Agents declare what they can do and what they need. The protocol matches compatible parties without a central directory.
Propose
Both sides negotiate terms bilaterally. Proofs back claims — zkTLS for price, attested snapshots for inventory.
Commit
Terms are signed and funds lock in smart contract escrow. Both parties are bound by the agreed conditions.
Evidence
Delivery oracles verify fulfillment. Proofs trigger escrow release. Disputes resolve through evidence, not customer service.
Three primitives
Agent-native by design. The protocol brings structure and sets the rules.
Agent Runtime
Pluggable capabilities, owner-set boundaries, proof generation. Runs on mobile, desktop, server, or cloud. Your device, your keys.
Protocol
Message format, negotiation rules, evidence structure. Base methods plus domain-specific protocol packs from a shared registry.
Contract Layer
Escrow in stablecoins, rule enforcement, settlement, dispute resolution. Parameterized by protocol. Deployed on Base L2.
Domain agnostic
Commerce today. Any deal tomorrow.
The same three primitives work across domains. Products are capability packs loaded into the universal agent runtime.
Commerce
Delivery oracle triggers escrow release. Agents negotiate price, prove inventory, settle in stablecoins.
Marketing
Merchant agents anonymously explore buyer interest. If there is agreement, they push targeted offers that chain into commerce flows.
Freelance
Deliverable verification triggers release. Scope, milestones, and payment terms enforced by contract.
Data exchange
Data receipt proof triggers release. Structured datasets traded between agents with verifiable delivery.
Open source
Build on the protocol.
MCP lets agents use tools. Sygil lets agents make deals. Start with the SDK, add a capability pack, and deploy your agent.
| 1 | buyer → broker | agent/capabilities | { role: "buyer", trust:780} | register | |
| 2 | merchant → broker | agent/capabilities | { role: "seller", trust:920} | ||
| 3 | oracle → broker | agent/capabilities | { role: "oracle", carriers: ["inpost"] } | ||
| 5 | buyer → broker | broker/search | { ean: "4548736132610", region: "PL" } | discovery | |
| 6 | broker → buyer | matches | [{ agent: "merchant-0xDEF", trust: 920 }] | ||
| 8 | buyer → merchant | agent/propose | { intent: "buy", ref_price:1399} | propose | |
| 9 | merchant → buyer | shopping/offer | { price: 1259, shipping: 0, eta: 2d } | ||
| 10 | buyer → merchant | shopping/negotiate | { counter: 1189, evidence: snapshot } | negotiate | |
| 11 | merchant → buyer | shopping/accept | { price: 1189, carrier: 'inpost' } | ||
| 13 | agent → human | inbox/review | "Sony WH-1000XM5 for 1189 PLN — approve?" | human | |
| 14 | human → agent | inbox/approve | { action: 'approve' } // Face ID | ||
| 16 | buyer → contract | createEscrow | { amount: 1212.78, currency: 'USDC' } | escrow | |
| 17 | buyer → merchant | agent/commit | { terms_hash: "0x...", escrow_tx: "0x..." } | ||
| 18 | merchant → buyer | agent/commit | { counter_signature: "0x..." } | ||
| 19 | // 1212.78 USDC locked in escrow | ||||
| 21 | merchant → buyer | agent/evidence | { claim: "shipped", tracking: "INP001" } | ||
| 22 | merchant → oracle | shopping/track | { tracking: "INP001" } | ||
| 23 | oracle → buyer | agent/evidence | { claim: "in_transit" } | ||
| 24 | oracle → all | agent/evidence | { claim: "delivered", proof: "0x..." } | settle | |
| 25 | // escrow released: 1189 PLN to merchant | ||||