Multi-chain batch crypto payments, payroll, swaps, price feeds, invoices, and AI inference — all through one API.
Spraay is a protocol for sending crypto to multiple wallets in a single transaction. The x402 gateway exposes 57 paid endpoints and 5 free endpoints. Every paid call costs a micropayment via the x402 HTTP payment protocol. Free endpoints require no payment.
The gateway is live at https://gateway.spraay.app. Set your env:
export SPRAAY_GATEWAY_URL="https://gateway.spraay.app"
No API key needed. Payments are made per-request via x402 (HTTP 402 → pay → retry). Your agent's wallet handles this automatically if you have a Coinbase CDP wallet or any x402-compatible facilitator.
Base, Ethereum, Arbitrum, Polygon, BNB Chain, Avalanche, Solana, Unichain, Plasma, BOB, Bittensor.
Payment contract (Base): 0x1646452F98E36A3c9Cfc3eDD8868221E207B5eEC
Send tokens to multiple wallets in one transaction.
curl -X POST "$SPRAAY_GATEWAY_URL/api/batch-payment" \
-H "Content-Type: application/json" \
-d '{
"recipients": [
{"address": "0xABC...123", "amount": "10"},
{"address": "0xDEF...456", "amount": "25"},
{"address": "0xGHI...789", "amount": "15"}
],
"token": "USDC",
"chain": "base"
}'
If you get HTTP 402, the response contains payment instructions. Pay the facilitator, then retry with the payment proof header.
# Free endpoint — no x402 payment needed
curl "$SPRAAY_GATEWAY_URL/api/price?symbol=ETH"
Returns current USD price. Works for any major token symbol.
curl "$SPRAAY_GATEWAY_URL/api/balance?address=0xABC...&chain=base"
curl -X POST "$SPRAAY_GATEWAY_URL/api/swap-quote" \
-H "Content-Type: application/json" \
-d '{
"tokenIn": "ETH",
"tokenOut": "USDC",
"amount": "1.0",
"chain": "base"
}'
# Free endpoint
curl "$SPRAAY_GATEWAY_URL/api/resolve?name=vitalik.eth"
Resolves ENS names and Base names to addresses.
curl -X POST "$SPRAAY_GATEWAY_URL/api/create-invoice" \
-H "Content-Type: application/json" \
-d '{
"recipient": "0xABC...123",
"amount": "500",
"token": "USDC",
"chain": "base",
"memo": "March consulting invoice"
}'
curl -X POST "$SPRAAY_GATEWAY_URL/api/ai/chat" \
-H "Content-Type: application/json" \
-d '{
"message": "Explain DeFi yield farming",
"model": "openrouter/auto"
}'
Powered by OpenRouter. Pay-per-query via x402.
curl -X POST "$SPRAAY_GATEWAY_URL/api/batch-payment" \
-H "Content-Type: application/json" \
-d '{
"recipients": [
{"address": "alice.eth", "amount": "3000"},
{"address": "bob.base", "amount": "2500"},
{"address": "0xCCC...999", "amount": "4000"}
],
"token": "USDC",
"chain": "base",
"memo": "March 2026 payroll"
}'
ENS and Basename addresses resolve automatically.
curl -X POST "$SPRAAY_GATEWAY_URL/api/email/send" \
-H "Content-Type: application/json" \
-d '{
"to": "team@company.com",
"subject": "Payment Confirmation",
"body": "Batch payment of 50,000 USDC sent to 12 recipients on Base."
}'
curl -X POST "$SPRAAY_GATEWAY_URL/api/xmtp/send" \
-H "Content-Type: application/json" \
-d '{
"to": "0xRecipient...",
"message": "Your payment of 500 USDC has been sent via Spraay."
}'
curl -X POST "$SPRAAY_GATEWAY_URL/api/webhook/send" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-app.com/webhook",
"payload": {"event": "payment_complete", "txHash": "0x..."}
}'
curl -X POST "$SPRAAY_GATEWAY_URL/api/rpc/relay" \
-H "Content-Type: application/json" \
-d '{
"chain": "base",
"method": "eth_blockNumber",
"params": []
}'
curl -X POST "$SPRAAY_GATEWAY_URL/api/ipfs/pin" \
-H "Content-Type: application/json" \
-d '{
"content": "Hello from Spraay!",
"name": "my-file.txt"
}'
These 5 endpoints work without x402 payment:
GET /api/price?symbol=ETH — Token pricesGET /api/resolve?name=vitalik.eth — ENS/Basename resolutionGET /api/health — Gateway health checkGET /api/chains — List supported chainsGET /api/endpoints — List all available endpointsX-PAYMENT header containing payment proofTypical cost per call: fractions of a cent in USDC on Base.
402 — Payment required. Follow the payment instructions in the response body.400 — Bad request. Check your parameters.404 — Endpoint not found.500 — Server error. Retry after a moment.Always check the HTTP status code before processing the response body.
/api/price endpoint to calculate USD values before sending.共 1 个版本