💧 OpenClaw skill for multi-chain batch crypto payments, payroll, swaps, invoices & more via Spraay x402 gateway
SaferSkills independently audited spraay-payments (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Batch crypto payments and payroll via the Spraay x402 gateway.
All requests in this skill go exclusively to the user's configured SPRAAY_GATEWAY_URL. No data is sent to any other external endpoint.
Blockchain transactions are irreversible. Once a batch payment or transfer is executed on-chain, it cannot be undone. Always confirm the following with the user before executing any payment:
Real funds are involved. Every paid endpoint costs a small USDC micropayment via the x402 protocol. Batch payments move real tokens on real blockchains. Do not execute payments without explicit user confirmation.
The gateway URL must be set in your environment or openclaw.json:
SPRAAY_GATEWAY_URL=https://gateway.spraay.appNo API key is needed. Payments are made per-request via the x402 HTTP payment protocol (HTTP 402 → pay → retry). An x402-compatible wallet (Coinbase CDP or similar) handles this automatically.
Base, Ethereum, Arbitrum, Polygon, BNB Chain, Avalanche, Unichain, Plasma, BOB.
Payment contract (Base): 0x1646452F98E36A3c9Cfc3eDD8868221E207B5eEC
Send tokens to multiple wallets in one transaction. Saves 60-80% on gas compared to individual transfers.
Always confirm recipients, amounts, token, and chain with the user before executing.
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"}
],
"token": "USDC",
"chain": "base"
}'If you receive HTTP 402, the response body contains payment instructions. Pay the facilitator, then retry with the X-PAYMENT header containing the proof.
Payroll uses the same batch payment endpoint. ENS and Basename addresses resolve automatically.
Always confirm the payroll roster with the user before sending.
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"}
],
"token": "USDC",
"chain": "base",
"memo": "March 2026 payroll"
}'curl "$SPRAAY_GATEWAY_URL/api/balance?address=0xABC...&chain=base"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"
}'curl "$SPRAAY_GATEWAY_URL/api/resolve?name=vitalik.eth"curl "$SPRAAY_GATEWAY_URL/api/price?symbol=ETH"Use this to show users the USD value of their payment before executing.
These require no 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 chainsX-PAYMENT proof header.Typical cost: fractions of a cent in USDC on Base.
402 — Payment required. Follow instructions in response body.400 — Bad request. Check parameters.404 — Endpoint not found.500 — Server error. Retry after a moment./api/price to show USD values before executing.base if not specified.USDC if not specified.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.