DEV Community

Cover image for How to Send Batch Crypto Payments Across 11 Chains With One Protocol
Mr Hamlin
Mr Hamlin

Posted on

How to Send Batch Crypto Payments Across 11 Chains With One Protocol

If you've ever had to pay 20 contributors, split revenue across wallets, or run payroll in crypto — you know the pain. One chain, one transaction at a time. Multiply that across multiple networks and it becomes a full-time job.

That's why I built Spraay — a batch payment protocol that lets you send tokens to multiple recipients in a single transaction. Today it's live on 11 chains, and in this post I'll walk you through how the multi-chain architecture works, what's deployed where, and how to start using it.


What Spraay Actually Does

At its core, Spraay is a smart contract that accepts:

  • A token address (or native currency)
  • An array of recipient addresses
  • An array of amounts

It loops through and distributes everything in one transaction. One gas fee. One signature. Done.

This is useful for:

  • Payroll — pay your whole team in USDC on Base
  • Airdrops — distribute tokens to hundreds of wallets
  • Revenue splits — automate creator or DAO payouts
  • Bounties — pay multiple contributors at once

The 11 Chains

Here's where Spraay is deployed and verified today:

EVM Chains

Chain Contract Address
Base 0x1646452F98E36A3c9Cfc3eDD8868221E207B5eEC
Ethereum 0x15E7aEDa45094DD2E9E746FcA1C726cAd7aE58b3
Arbitrum 0x5be43aA67804aD84fcb890d0AE5F257fb1674302
Polygon Deployed & verified
BNB Chain Deployed & verified
Avalanche Deployed & verified
Unichain 0x08fA5D1c16CD6E2a16FC0E4839f262429959E073
Plasma 0x08fA5D1c16CD6E2a16FC0E4839f262429959E073
BOB 0xEc8599026AE70898391a71c96AA82d4840C2e973
Bittensor Deployed & verified

All EVM contracts share the same Solidity codebase. The deployment process is identical across chains — you just switch the RPC endpoint and you're live.

Solana

Solana is a different beast. There's no shared EVM contract here — Spraay uses a dedicated TypeScript SDK that constructs batch transfer instructions natively on Solana.

The Solana integration is open source: plagtech/spraay-solana

It also has its own gateway endpoint at gateway-solana.spraay.app.


How to Deploy Spraay to a New EVM Chain

If you want to understand how a protocol like this expands across chains, here's the general pattern.

Step 1: Verify RPC Access

Before deploying anything, make sure you have a reliable RPC endpoint for the target chain. Services like Alchemy, Infura, or the chain's public RPC all work.

# Quick check — does the RPC respond?
curl -X POST https://your-rpc-url \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'
Enter fullscreen mode Exit fullscreen mode

Step 2: Configure Your Deployment Script

Using Hardhat or Foundry, point your config at the new chain:

// hardhat.config.js
module.exports = {
  networks: {
    newchain: {
      url: "https://your-rpc-url",
      accounts: [process.env.DEPLOYER_PRIVATE_KEY],
      chainId: 12345
    }
  }
};
Enter fullscreen mode Exit fullscreen mode

Step 3: Deploy

npx hardhat run scripts/deploy.js --network newchain
Enter fullscreen mode Exit fullscreen mode

The batch payment contract is lightweight — it doesn't depend on chain-specific features like oracles or bridges. If the chain is EVM-compatible, it works.

Step 4: Verify

npx hardhat verify --network newchain DEPLOYED_CONTRACT_ADDRESS
Enter fullscreen mode Exit fullscreen mode

Verification lets anyone read the contract source on the block explorer, which builds trust.

Step 5: Register in Your Gateway

If you're running an x402 gateway (like Spraay does at gateway.spraay.app), add the new chain's contract address and RPC to your config. Now every API consumer and AI agent that hits your gateway can use the new chain automatically.


Why Multi-Chain Matters for Batch Payments

Different teams live on different chains. A DAO on Arbitrum shouldn't have to bridge to Base just to run payroll. A Solana-native project shouldn't need an EVM wallet.

By deploying the same contract across 11 chains, Spraay meets users where they already are. And because the x402 gateway abstracts chain selection behind a simple API, agents and apps don't need to care about which chain is under the hood — they just specify it in the request.

# Example: batch payment via x402 gateway
curl -X POST https://gateway.spraay.app/payments/batch \
  -H "Content-Type: application/json" \
  -d '{
    "chain": "base",
    "token": "USDC",
    "recipients": [
      {"address": "0xABC...", "amount": "100"},
      {"address": "0xDEF...", "amount": "50"}
    ]
  }'
Enter fullscreen mode Exit fullscreen mode

Switch "chain": "base" to "arbitrum" or "polygon" and the same request works.


What's Next

Spraay is also live as:

  • An MCP server on Smithery — 60 capabilities for AI agents (@plagtech/spraay-x402-mcp)
  • A Virtuals Protocol ACP agent — registered on agdp.io with 5 Tier 1 job offerings
  • An ERC-8004 registered agent — on-chain agent identity (#26346)

If you're building AI agents that need to move money, or you're running a team/DAO that pays people across chains, Spraay is built for exactly that.


Links:


If this was useful, drop a follow and I'll keep shipping these. Next up: how the x402 gateway routes AI agent payments with zero API keys.

Top comments (0)