💧 Spraay Solana Gateway
x402-powered batch payment infrastructure for AI agents on Solana.
Any AI agent can batch send SOL, USDC, BONK, or any SPL token to 1,000+ wallets via the x402 payment protocol. No API keys. No accounts. Pay per request.
🏗️ Architecture
AI Agent (any framework)
│
├── HTTP Request
│
▼
┌──────────────────────────────────────────┐
│ Spraay Solana Gateway │
│ gateway-solana.spraay.app │
│ │
│ @x402/express + @x402/svm │
│ ┌─────────────┐ ┌──────────────┐ │
│ │ x402 Payment│ │ Solana Batch │ │
│ │ Middleware │ │ Engine │ │
│ └──────┬──────┘ └──────┬───────┘ │
│ │ │ │
│ ▼ ▼ │
│ USDC payment Execute batch │
│ verified via SOL/SPL transfers │
│ facilitator │
└──────────────────────────────────────────┘
│
▼
Solana Network
📡 Endpoints
| Endpoint | Method | Price | Description |
|---|---|---|---|
/solana/batch-send-sol | POST | $0.01 | Batch send SOL to multiple wallets |
/solana/batch-send-token | POST | $0.01 | Batch send any SPL token |
/solana/quote | GET | $0.001 | Get cost estimate |
/solana/status/:txid | GET | $0.001 | Check transaction status |
/health | GET | Free | Health check |
/.well-known/x402 | GET | Free | x402 discovery manifest |
🚀 Quick Start
1. Clone & Install
git clone https://github.com/plagtech/spraay-solana-gateway.git
cd spraay-solana-gateway
npm install
2. Configure
cp .env.example .env
# Edit .env with your treasury wallet and private key
3. Run
npm run dev # development (auto-reload)
npm start # production
📖 API Usage
Batch Send SOL
curl -X POST https://gateway-solana.spraay.app/solana/batch-send-sol \
-H "Content-Type: application/json" \
-H "X-PAYMENT: <base64 payment proof>" \
-d '{
"recipients": [
{ "address": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM", "amount": 0.01 },
{ "address": "7S3P4HxJpyyigGzodYwHtCxZyUQe9JiBMHyLWP9SfKFJ", "amount": 0.02 }
]
}'
Batch Send SPL Token
curl -X POST https://gateway-solana.spraay.app/solana/batch-send-token \
-H "Content-Type: application/json" \
-H "X-PAYMENT: <base64 payment proof>" \
-d '{
"mint": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
"recipients": [
{ "address": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM", "amount": 1000 },
{ "address": "7S3P4HxJpyyigGzodYwHtCxZyUQe9JiBMHyLWP9SfKFJ", "amount": 500 }
]
}'
Get Quote
curl "https://gateway-solana.spraay.app/solana/quote?recipients=100&token=BONK"
🔐 x402 Payment Flow
- Agent sends request without payment header
- Gateway returns
402 Payment Requiredwith Solana USDC payment instructions - Agent sends USDC on Solana to the treasury address
- Agent retries request with payment proof in
X-PAYMENTheader - Gateway verifies payment via facilitator, executes batch transfer
Supported facilitators:
- Devnet:
https://x402.org/facilitator - Mainnet:
https://facilitator.payai.network(PayAI — free tx fees)
🤖 MCP Server
The gateway includes an MCP server for AI agent framework integration:
# Install MCP SDK
npm install @modelcontextprotocol/sdk
# Run MCP server
node mcp/spraay-solana-mcp.js
Tools available:
spraay_solana_batch_send_sol— Batch send SOLspraay_solana_batch_send_token— Batch send SPL tokensspraay_solana_quote— Cost estimationspraay_solana_tx_status— Transaction lookup
🌐 Deployment
Railway
- Create new service in Railway project
- Connect GitHub repo:
plagtech/spraay-solana-gateway - Set environment variables in Railway dashboard
- Deploy → configure custom domain
DNS (GoDaddy)
Type: CNAME
Name: gateway-solana
Value: <railway-app-url>.railway.app
TTL: 600
🔗 Spraay Ecosystem
| Service | URL |
|---|---|
| Spraay App | spraay.app |
| Base Gateway | gateway.spraay.app |
| Solana Gateway | gateway-solana.spraay.app |
| GitHub | github.com/plagtech |
| @Spraay_app |
📄 License
MIT