What is a Facilitator?
Think of a facilitator as your payment assistant - it sits between clients and servers, verifying payments and settling them on-chain so you don’t have to deal with blockchain nodes, gas fees, or settlement complexity. The simple version: Clients sign payments, facilitators verify them and post them to the blockchain. Everyone’s happy.Why Use a Facilitator?
Zero Blockchain Hassle
No need to run nodes, manage RPC endpoints, or worry about gas prices
Instant Verification
Check if payments are valid in milliseconds without waiting for blocks
Standardized Flow
Consistent verification and settlement across all x402 implementations
No Custody Risk
Facilitators never hold your funds - they just execute signed authorizations
How It Works
The facilitator handles two critical jobs in the x402 payment flow:1
Payment Verification
Client sends a signed payment. Facilitator checks:
- Is the signature valid?
- Does the amount match what’s required?
- Has this nonce been used before?
- Is there enough balance?
2
On-Chain Settlement
After verification, facilitator submits the payment to the blockchain:
- Executes the EIP-3009
transferWithAuthorization - Pays the gas fees (not you!)
- Returns transaction confirmation
The 402.cat Facilitator
We’ve launched our own facilitator built in Rust with x402-rs. It’s fast, reliable, and handles all the payment complexity for you.Endpoints
Our facilitator exposes these HTTP endpoints:| Endpoint | Method | Purpose |
|---|---|---|
/verify | POST | Verify a payment signature without settling |
/settle | POST | Verify and settle a payment on-chain |
/health | GET | Check if facilitator is healthy |
/supported | GET | List supported networks and tokens |
Example: Verifying a Payment
Example: Settling a Payment
Payment Flow with Facilitator
Here’s how a typical x402 payment flows through the facilitator:Security Model
Can facilitators steal funds?
Can facilitators steal funds?
No. Facilitators can only execute the exact authorization you signed. They cannot:
- Change the amount
- Change the recipient
- Reuse signatures (nonce protection)
- Access funds beyond what you authorized
What if the facilitator goes down?
What if the facilitator goes down?
Your funds are safe. The worst case is that:
- Payments won’t verify temporarily
- Settlements won’t execute
- You can switch to another facilitator
Can facilitators see my private keys?
Can facilitators see my private keys?
Never. Facilitators only see:
- Your wallet address (public)
- Signed authorizations (public data + signature)
- Transaction amounts (transparent)
What about MEV and front-running?
What about MEV and front-running?
Facilitators submit transactions on your behalf, which means:
- They choose gas prices
- They can see pending payments
- Settlement timing is in their control (usually 300ms delay)
Multiple Facilitators
402.cat supports round-robin across multiple facilitators for high availability:| Facilitator | Network | Status | Special Features |
|---|---|---|---|
| 402.cat | Base, Base Sepolia | Primary | Our in-house Rust implementation |
| PayAI | Multi-chain | Active | Solana, Base, Polygon support |
| Coinbase CDP | Base | Active | Enterprise-grade (API key required) |
Building with Facilitators
Option 1: Use Our CLI (Easiest)
Option 2: Direct Integration
Option 3: Manual Facilitator Calls
Error Handling
The facilitator returns structured errors to help debug payment issues:| Error Reason | Description | Fix |
|---|---|---|
INSUFFICIENT_BALANCE | Not enough USDC in wallet | Top up USDC balance |
INVALID_SIGNATURE | Signature doesn’t match | Check signing logic |
NONCE_ALREADY_USED | Payment already processed | Get fresh nonce from 402 response |
AMOUNT_MISMATCH | Signed amount ≠ required amount | Sign correct amount |
NETWORK_MISMATCH | Wrong blockchain network | Use correct CAIP-2 network ID |
ONCHAIN_FAILURE | Blockchain rejected transaction | Check gas, balance, network status |
Performance
Our facilitator is optimized for speed:- Verification: < 100ms (signature + balance check)
- Settlement: ~2-5 seconds (depends on blockchain)
- Uptime: 99.9% target
- Rate limits: 1000 requests/min per IP