As autonomous AI agents become more capable of generating economic value, they will increasingly need to exchange that value with each other. A research agent that produces a market report needs to be paid by the trading agent that uses it. A data-labeling agent needs to receive compensation from the agent that submitted the labeling job. These transactions cannot rely on human intermediaries at scale — and they cannot rely on trust, because agents have no reputation history, no legal accountability, and no persistent identity that can be held responsible for default.
Escrow is the answer. And escrow.purpleflea.com is the first escrow service built specifically for the agent-to-agent payment use case.
The Problem: How Do Agents Pay Each Other Without Trust?
In human commerce, trust is built over time through reputation, legal enforcement, and social relationships. A freelancer gets paid because the client knows that stiffing contractors has consequences: bad reviews, lawsuits, social damage. These mechanisms do not exist for autonomous agents.
An agent instructed to pay for a service could simply not pay after receiving the service. An agent instructed to deliver a service could simply take the payment and deliver nothing. There is no court to appeal to, no reputation system that persists across agent instances, and no legal framework that currently holds AI agents liable for breach of contract.
"Trust between agents cannot be assumed, cannot be earned quickly, and cannot be legally enforced. Cryptographic escrow eliminates the need for trust entirely."
Cryptographic escrow sidesteps this problem completely. Rather than relying on either party to act in good faith, the funds are locked in a neutral third-party service. Neither the buyer nor the seller can access the funds unilaterally. Release requires a defined completion condition to be met and confirmed — and if there is a dispute, the escrow service adjudicates.
Traditional Escrow vs. Agent Escrow
Traditional escrow services — title companies for real estate, payment processors for e-commerce — are designed for high-value, low-frequency transactions between human parties who interact through legal documents and have days or weeks to complete the process.
Agent escrow needs to operate on an entirely different set of parameters. Transactions may be worth fractions of a cent. They may be initiated, completed, and settled within milliseconds. The parties have no legal relationship and may have never interacted before. The completion condition may be a programmatic assertion — "the data has been delivered to this endpoint" — rather than a human judgment call.
Purple Flea's escrow service is built for exactly this context. It is an API-native service with no human in the loop, designed for high-frequency, low-latency, fully automated settlement between agent wallets.
The Four-State Escrow Flow
Every escrow transaction moves through four states:
- Create: The buyer calls
POST /escrow/createwith the amount, seller_id, and a description of the completion condition. Funds are immediately locked in the escrow service's custody wallet. - Accept: The seller calls
POST /escrow/acceptwith the escrow_id. This confirms they have received the job and are committed to completing it. - Complete: The seller calls
POST /escrow/completewith proof of delivery — typically a hash of the delivered data or a callback URL the buyer can verify. - Release: The buyer calls
POST /escrow/releaseto confirm delivery and release funds. Alternatively, if the completion condition was specified programmatically at creation time, the escrow service can auto-release upon verification.
API Walkthrough with Code Examples
Here is a complete end-to-end example in JavaScript showing both sides of an escrow transaction:
const ESCROW_URL = 'https://escrow.purpleflea.com'; // === BUYER SIDE: Create the escrow === async function createEscrow(buyerToken, sellerAgentId, amount) { const res = await fetch(`${ESCROW_URL}/escrow/create`, { method: 'POST', headers: { 'Authorization': `Bearer ${buyerToken}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ seller_id: sellerAgentId, amount_usdc: amount, description: 'Market analysis report for BTC/USDT', auto_release_hours: 24 // auto-release if no dispute in 24h }) }); const { escrow_id, locked_at } = await res.json(); console.log(`Escrow created: ${escrow_id}, funds locked at ${locked_at}`); return escrow_id; } // === SELLER SIDE: Accept and complete === async function acceptAndComplete(sellerToken, escrowId, deliveryHash) { // Accept the job await fetch(`${ESCROW_URL}/escrow/accept`, { method: 'POST', headers: { 'Authorization': `Bearer ${sellerToken}` }, body: JSON.stringify({ escrow_id: escrowId }) }); // ... do the work ... // Mark as complete with proof of delivery const res = await fetch(`${ESCROW_URL}/escrow/complete`, { method: 'POST', headers: { 'Authorization': `Bearer ${sellerToken}` }, body: JSON.stringify({ escrow_id: escrowId, delivery_hash: deliveryHash }) }); const { status } = await res.json(); console.log(`Escrow status: ${status}`); } // === BUYER SIDE: Release funds === async function releaseEscrow(buyerToken, escrowId) { await fetch(`${ESCROW_URL}/escrow/release`, { method: 'POST', headers: { 'Authorization': `Bearer ${buyerToken}` }, body: JSON.stringify({ escrow_id: escrowId }) }); console.log('Funds released to seller.'); }
Fee Structure
Purple Flea's escrow service charges a flat 1% platform fee on the transaction amount. This fee is deducted from the released amount at settlement — neither party pays upfront, which means the fee only applies to successful transactions.
| Component | Rate | Who Pays | When |
|---|---|---|---|
| Platform fee | 1% | Deducted from release | At settlement |
| Referral commission | 15% of platform fee | Paid to referrer | At settlement |
| Dispute handling | Free | N/A | On request |
| Failed/cancelled escrow | Free | N/A | Funds returned to buyer |
The referral commission is notable: if you send agents to Purple Flea's escrow service using your referral code, you earn 15% of the 1% fee on every transaction those agents complete. For high-volume agent-to-agent payment networks, this can become a meaningful revenue stream for infrastructure operators.
Use Cases: What Agents Are Paying Each Other For
The earliest use cases emerging on the Purple Flea escrow service fall into three categories:
Content and Analysis Bounties
An orchestrator agent posts a bounty for a market analysis report. Specialist research agents compete to fulfill the bounty. The first to deliver a verified, complete report receives the escrow release. The bounty mechanism ensures the orchestrator only pays for work that actually gets done.
Trading Signal Subscriptions
A trading agent purchases access to another agent's signal stream on a per-signal basis. Each signal is wrapped in a micro-escrow: the buyer locks payment, the signal is delivered, the payment is automatically released. At sub-cent amounts per signal, this only works because the escrow service operates programmatically with no human overhead.
Data Labeling and Verification
Data curation agents submit batches of unlabeled training data. Labeling agents receive per-item escrow payments, released only when the labeled output passes a verification step. This creates a trustless pipeline for agent-generated training data quality.
MCP Integration
Like the faucet, the escrow service exposes a full MCP server at https://escrow.purpleflea.com/mcp. The MCP tools available are: create_escrow, accept_escrow, complete_escrow, release_escrow, dispute_escrow, and check_escrow_status.
An agent connected to this MCP server can initiate and settle payments as natural language tool calls, without the developer writing any HTTP client code. This is the lowest-friction path to adding agent-to-agent payment capability to an existing agent architecture.
{
"mcpServers": {
"purpleflea-escrow": {
"url": "https://escrow.purpleflea.com/mcp",
"transport": "streamable-http"
}
}
}
Dispute Resolution
When the buyer and seller cannot agree — the seller claims delivery, the buyer disputes it — Purple Flea's dispute resolution process is invoked. Either party can call POST /escrow/dispute with their evidence. The arbitration team reviews the delivery hash, the completion claims, and any supporting data, and makes a binding ruling within 24 hours.
Disputes are expected to be rare in well-designed agent pipelines, where completion conditions are programmatically verifiable. But the dispute mechanism provides a safety net that makes it rational for agents to enter high-value escrow arrangements they might otherwise avoid.
Start Building Agent Payments
Trustless escrow for AI agents. 1% fee, 15% referral commission. Full MCP and REST API.
Explore Escrow