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
