x402 Protocol
Facilitator Discovery
Find and connect to P402's production facilitator network.
Facilitator Endpoint
Production facilitator deployed on Cloudflare Workers
https://p402.io/api/v1/facilitator
Discovery Protocol
x402 facilitators expose capabilities via /.well-known/agent.json
// Discover facilitator capabilities
const response = await fetch('https://p402.io/.well-known/agent.json');
const capabilities = await response.json();
console.log('Facilitator:', capabilities.name);
console.log('Payment Schemes:', capabilities.payment_schemes);
console.log('Supported Networks:', capabilities.networks);
console.log('Fee Structure:', capabilities.fee_structure);
// Expected response:
{
"type": "x402-facilitator",
"name": "P402 Cloudflare Facilitator",
"version": "1.0.0",
"operator": "P402.io",
"description": "Production x402 facilitator on Cloudflare Edge",
"payment_schemes": ["exact", "onchain", "receipt"],
"supported_tokens": ["USDC"],
"networks": ["eip155:8453"],
"fee_structure": {
"percentage": 1.0,
"minimum_usd": 0.01,
"maximum_usd": 10000.00
},
"endpoints": {
"verify": "/verify",
"settle": "/settle",
"receipt": "/receipt",
"health": "/health"
},
"locations": [
"IAD", "DFW", "ORD", "ATL", "MIA", // US
"LHR", "CDG", "FRA", "AMS", // Europe
"NRT", "ICN", "SIN", "HKG", // Asia
"SYD", "MEL" // Oceania
],
"sla": {
"uptime": 99.9,
"verify_latency_p95": 50, // 50ms
"settle_latency_p95": 2000 // 2 seconds
}
}Health Monitoring
Monitor facilitator status and performance
// Check facilitator health
const health = await fetch('https://p402.io/api/v1/facilitator/health');
const status = await health.json();
console.log('Status:', status.status);
console.log('Uptime:', status.uptime);
console.log('Response Time:', status.checks.response_time.duration_ms);
// Health check response:
{
"status": "healthy",
"timestamp": "2024-01-15T10:30:00Z",
"uptime": 1705321800,
"version": "1.0.0",
"checks": {
"kv_storage": {
"healthy": true,
"message": "KV storage accessible",
"latency_ms": 50
},
"base_rpc": {
"healthy": true,
"message": "Base RPC accessible",
"chain_id": 8453,
"latency_ms": 120,
"endpoint": "https://mainnet.base.org"
},
"treasury": {
"healthy": true,
"message": "Treasury wallet configured",
"address": "0xb23f146251e3816a011e800bcbae704baa5619ec"
},
"facilitator": {
"healthy": true,
"message": "Facilitator wallet configured",
"key_format": "valid"
},
"response_time": {
"healthy": true,
"duration_ms": 45,
"threshold_ms": 1000
}
}
}Network Architecture
Global Edge Deployment
- • 15 regions worldwide
- • Cloudflare Workers runtime
- • Sub-50ms P95 verification latency
- • 99.9% uptime SLA
Security Features
- • Rate limiting (100 req/min per IP)
- • API key authentication
- • Treasury address validation
- • Replay protection via nonce checking
Integration Example
Complete payment flow using facilitator discovery
// 1. Discover facilitator
const discovery = await fetch('https://p402.io/.well-known/agent.json');
const facilitator = await discovery.json();
// 2. Verify payment capability
if (!facilitator.payment_schemes.includes('exact')) {
throw new Error('Facilitator does not support EIP-3009 exact payments');
}
// 3. Check facilitator health
const health = await fetch('https://p402.io/api/v1/facilitator/health');
const healthStatus = await health.json();
if (healthStatus.status !== 'healthy') {
throw new Error('Facilitator is not healthy');
}
// 4. Verify payment (x402 wire format)
const verification = await fetch('https://p402.io/api/v1/facilitator/verify', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
paymentPayload: {
x402Version: 2, scheme: 'exact', network: 'eip155:8453',
payload: { signature: '0x...', authorization: eip3009Authorization }
},
paymentRequirements: {
scheme: 'exact', network: 'eip155:8453',
maxAmountRequired: '1000000',
resource: 'https://example.com/api',
description: 'AI inference',
payTo: '0xb23f...', asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
}
})
});
const verifyResult = await verification.json();
// 5. Execute settlement if verified
if (verifyResult.isValid) {
const settlement = await fetch('https://p402.io/api/v1/facilitator/settle', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
paymentPayload: {
x402Version: 2, scheme: 'exact', network: 'eip155:8453',
payload: { signature: '0x...', authorization: eip3009Authorization }
},
paymentRequirements: {
scheme: 'exact', network: 'eip155:8453',
maxAmountRequired: '1000000',
resource: 'https://example.com/api',
description: 'AI inference',
payTo: '0xb23f...', asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
}
})
});
const settleResult = await settlement.json();
console.log('Transaction:', settleResult.transaction); // "0x..."
console.log('Network:', settleResult.network); // "eip155:8453"
}
// 6. Create receipt for reuse
const receipt = await fetch('https://p402.io/api/v1/receipts', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
txHash: settleResult.txHash,
sessionId: 'session_123',
amount: 1.0
})
});
console.log('Receipt created for future sessions');Production Configuration
Base Network (Chain ID: 8453)
Ethereum L2 optimized for low-cost transactions
RPC: https://mainnet.base.org
Explorer: https://basescan.org
Explorer: https://basescan.org
USDC Contract
Native USDC on Base with EIP-3009 support
Address: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
Decimals: 6
Decimals: 6
P402 Treasury
Multi-signature treasury with on-chain governance
Address: 0xb23f146251e3816a011e800bcbae704baa5619ec
Multisig: 3-of-5 signatures required
Multisig: 3-of-5 signatures required