At a Glance
exact
Immediate settlementPayment happens instantly when request is made. Simple, fast, minimal overhead.Best for trusted services and low-value transactions.
escrow
Deferred settlementFunds locked until conditions are met. Authorization separate from capture.Best for high-value, usage-based, or disputed transactions.
Feature Comparison
| Feature | exact | escrow |
|---|---|---|
| Settlement Timing | Immediate | Deferred (conditional) |
| Payer Protection | None (payment final) | Refund possible until capture |
| Receiver Risk | No risk (paid upfront) | Must wait for release |
| Gas Cost | Single transaction | Two transactions (auth + capture) |
| Complexity | Minimal (direct transfer) | Higher (operator logic) |
| Variable Pricing | Not supported | Supported (authorize max, capture actual) |
| Dispute Resolution | Not possible | Supported via operator |
| Multi-Request Sessions | Every request needs signature | One auth, multiple captures |
| Trust Required | High (payment irreversible) | Lower (escrow protects payer) |
When to Use Each
Use exact when:
Low-value transactions
Low-value transactions
For small purchases where the cost of a dispute exceeds the transaction value.Example: $0.01 API call - not worth the escrow overhead
Trusted relationships
Trusted relationships
When you trust the service provider and don’t need refund protection.Example: Paying your own infrastructure or established services
Immediate delivery
Immediate delivery
Service is delivered instantly and verifiable on the spot.Example: Static content, database lookups, instant responses
Minimizing gas costs
Minimizing gas costs
Single transaction is cheaper than two (auth + capture).Example: High-frequency micro-transactions where gas matters
Use escrow when:
High-value transactions
High-value transactions
Significant amounts where you need recourse if service fails.Example: $500 training job - you want protection if it fails
Unknown final cost
Unknown final cost
Usage-based billing where you don’t know the exact amount upfront.Example: LLM API calls charged by tokens (authorize 6.50, refund $3.50)
Long-running work
Long-running work
Tasks that take hours or days to complete.Example: Video rendering, data processing, training jobs
Dispute-prone services
Dispute-prone services
Services where quality is subjective or verification is needed.Example: Freelance work, custom deliverables, SLA-based services
Multi-request sessions
Multi-request sessions
Many small requests under one authorization.Example: 1,000 API calls at 10 auth, periodic captures
Cost Analysis
exact Scheme
Gas Cost: 1 transaction
- ERC-20 transfer: ~50k gas
- Total: ~50,000 gas
- Gas cost: ~$0.00005
- For $10 payment: 0.0005% overhead
escrow Scheme
Gas Cost: 2 transactions
- authorize(): ~150k gas
- capture(): ~80k gas
- Total: ~230,000 gas
- Gas cost: ~$0.00023
- For $10 payment: 0.0023% overhead
Amortization: For multi-request sessions, the auth cost is amortized across many captures. 1 auth + 10 captures is cheaper than 10 exact payments.
Security Comparison
exact Scheme
| Risk | Severity | Mitigation |
|---|---|---|
| Service non-delivery | High | None - payment is final |
| Overcharging | Medium | Verify amount before signing |
| Malicious server | High | Trust required |
escrow Scheme
| Risk | Severity | Mitigation |
|---|---|---|
| Service non-delivery | Low | Refund before capture |
| Overcharging | None | maxAmount enforced on-chain |
| Malicious operator | Medium | Choose trusted operators, set expiry |
| Operator disappeared | Low | Payer can reclaim after authorizationExpiry |
User Experience
exact Scheme Flow
escrow Scheme Flow
Example Scenarios
Scenario 1: Simple API Call
Service: Weather API lookup Cost: $0.01 Trust: High (established provider) Decision: ✅ Use exact Why: Low value, instant delivery, trusted service. Escrow overhead not worth it.Scenario 2: LLM Agent Session
Service: 100 GPT-4 calls Cost: 0.20 per call (variable) Trust: Medium (new provider) Decision: ✅ Use escrow Why: Variable pricing, multiple requests, moderate trust. Authorize $20 max, capture actual usage.Scenario 3: Training Job
Service: Train ML model on GPU cluster Cost: $500 Duration: 48 hours Decision: ✅ Use escrow Why: High value, long-running, need verification before payment. Release after job completes successfully.Scenario 4: Freelance Work
Service: Custom logo design Cost: $200 Dispute Risk: High (subjective quality) Decision: ✅ Use escrow with arbiter Why: Subjective deliverable, need dispute resolution. Arbiter operator releases on approval or mediates disputes.Scenario 5: Micro-Transaction Spam
Service: Rate-limited API (1000 req/sec) Cost: $0.0001 per request Volume: 100,000 requests/day Decision: ✅ Use escrow with batch captures Why: Too many requests to sign individually. Authorize $10 daily, server batches captures hourly.Performance Comparison
Throughput
| Metric | exact | escrow |
|---|---|---|
| Requests/second | 1000+ | 1000+ (auth), 100+ (capture) |
| On-chain TPS impact | High (every request) | Low (periodic captures) |
| Signature overhead | Per-request | Per-session |
Latency
| Phase | exact | escrow |
|---|---|---|
| Request latency | +50ms (sign + verify) | +50ms (sign + verify) |
| Settlement latency | Immediate | Async (seconds to days) |
| Finality | Instant | After capture |
Hybrid Approach
You can support both schemes and let clients choose:- Transaction value
- Trust level
- Gas price
- Urgency
Migration Strategy
From exact to escrow
Existingexact integrations can add escrow support:
- Deploy operator contract
- Add
escrowtoacceptsarray - Keep
exactas fallback - Clients upgrade when ready
From escrow to exact
If escrow proves unnecessary:- Add
exacttoacceptsarray - Monitor which scheme clients prefer
- Deprecate
escrowif unused
Decision Tree
Next Steps
Overview
Learn about x402 and why escrow matters.
Escrow Spec
Complete technical specification.
Smart Contracts
Understand operator implementations.
SDK Installation
Build your first payment flow.
