Skip to main content
The batch-send command allows you to send USDC to multiple users in a single operation. This is ideal for airdrops, bulk payments, or rewarding multiple contributors.

Syntax

snackmoney batch-send <input> [options]

Input Formats

The batch-send command supports multiple input formats for flexibility:

1. Comma-Separated Format

snackmoney batch-send <platform/user1:amount1,user2:amount2,...>

2. JSON File

snackmoney batch-send ./payments.json
snackmoney batch-send file:./payments.json

3. URL

snackmoney batch-send https://example.com/payments.json

4. Inline JSON

snackmoney batch-send '{"platform":"x","payments":[...]}'

Options

—network

Specify which blockchain network to use:
snackmoney batch-send input --network base
snackmoney batch-send input --network solana

Examples

Comma-Separated Format

Send to multiple users on the same platform:
# Solana network
snackmoney batch-send x/aeyakovenko:7¢,0xMert_:3¢,0xmesuthere:5¢ --network solana

# Base network
snackmoney batch-send x/MurrLincoln:2¢,kleffew94:9¢,jessepollak:4¢ --network base

# With domain extensions
snackmoney batch-send twitter.com/user1:1¢,user2:$0.5

# Farcaster users
snackmoney batch-send farcaster.xyz/toly:50¢,mesut:25¢

# GitHub users
snackmoney batch-send github/user1:$1,user2:$2,user3:$3

# Email addresses
snackmoney batch-send email/[email protected]:$0.25,[email protected]:$0.50

# Web domains
snackmoney batch-send web/site1.com:0.5,site2.com:1

JSON File Format

Create a payments.json file:
{
  "platform": "x",
  "payments": [
    { "receiver": "aeyakovenko", "amount": "7¢" },
    { "receiver": "0xMert_", "amount": "3¢" },
    { "receiver": "0xmesuthere", "amount": "5¢" }
  ]
}
Then run:
snackmoney batch-send ./payments.json
Platform-specific examples: X (Twitter) - payments-x.json:
{
  "platform": "x",
  "payments": [
    { "receiver": "user1", "amount": "1¢" },
    { "receiver": "user2", "amount": "$0.50" },
    { "receiver": "user3", "amount": "0.25" }
  ]
}
Farcaster - payments-farcaster.json:
{
  "platform": "farcaster",
  "payments": [
    { "receiver": "toly", "amount": "$1" },
    { "receiver": "mesut", "amount": "50¢" }
  ]
}
GitHub - payments-github.json:
{
  "platform": "github",
  "payments": [
    { "receiver": "octocat", "amount": "$5" },
    { "receiver": "torvalds", "amount": "$10" }
  ]
}
Email - payments-email.json:
{
  "platform": "email",
  "payments": [
    { "receiver": "[email protected]", "amount": "$0.25" },
    { "receiver": "[email protected]", "amount": "$0.50" }
  ]
}
Web - payments-web.json:
{
  "platform": "web",
  "payments": [
    { "receiver": "site1.com", "amount": "$0.50" },
    { "receiver": "site2.com", "amount": "$1" }
  ]
}

From URL

Host your payment file and reference it by URL:
snackmoney batch-send https://example.com/payments.json
snackmoney batch-send http://localhost:3000/team-rewards.json

Inline JSON

Pass JSON directly as a command argument:
snackmoney batch-send '{"platform":"x","payments":[{"receiver":"aeyakovenko","amount":"1¢"}]}'

Supported Platforms

PlatformFormat in JSONComma-separated Format
X (Twitter)"platform": "x"x/username:amount
Farcaster"platform": "farcaster"farcaster/username:amount
GitHub"platform": "github"github/username:amount
Email"platform": "email"email/address:amount
Web"platform": "web"web/domain:amount

Amount Formats

All the same amount formats from the send command work:
  • Cents: , 50¢, 99¢
  • Dollars: $0.01, $0.50, $1
  • Decimal: 0.01, 0.50, 1

Output

The command processes payments sequentially and shows progress:
🚀 Processing batch payment...

[1/3] Sending 0.07 USDC to @aeyakovenko on X...
✅ Success - txn: 0xabc...

[2/3] Sending 0.03 USDC to @0xMert_ on X...
✅ Success - txn: 0xdef...

[3/3] Sending 0.05 USDC to @0xmesuthere on X...
✅ Success - txn: 0xghi...

📊 Batch Summary:
   Total payments: 3
   Successful: 3
   Failed: 0
   Total sent: 0.15 USDC
   Network: Solana

🧾 All receipts:
   https://snack.money/x/aeyakovenko?txn=...
   https://snack.money/x/0xMert_?txn=...
   https://snack.money/x/0xmesuthere?txn=...

Use Cases

Airdrop Rewards

Distribute tokens to community members:
{
  "platform": "x",
  "payments": [
    { "receiver": "community_member1", "amount": "$5" },
    { "receiver": "community_member2", "amount": "$5" },
    { "receiver": "community_member3", "amount": "$5" }
  ]
}

Team Payments

Pay multiple team members:
{
  "platform": "farcaster",
  "payments": [
    { "receiver": "designer", "amount": "$100" },
    { "receiver": "developer", "amount": "$150" },
    { "receiver": "marketer", "amount": "$75" }
  ]
}

Open Source Contributions

Reward GitHub contributors:
{
  "platform": "github",
  "payments": [
    { "receiver": "contributor1", "amount": "$25" },
    { "receiver": "contributor2", "amount": "$50" },
    { "receiver": "contributor3", "amount": "$25" }
  ]
}

Contest Winners

Distribute prizes:
snackmoney batch-send x/winner1:$100,winner2:$50,winner3:$25

Prerequisites

  1. Set private key:
    export EVM_PRIVATE_KEY="0x..."  # For Base
    # OR
    export SVM_PRIVATE_KEY="..."    # For Solana
    
  2. Sufficient USDC balance: Ensure your wallet has enough USDC for all payments plus network fees.
  3. Valid recipients: All usernames must exist on the specified platform.

Error Handling

If a payment fails, the command continues with remaining payments:
[2/5] Sending 0.05 USDC to @invalid_user on X...
❌ Failed - User not found

[3/5] Sending 0.10 USDC to @valid_user on X...
✅ Success - txn: 0xabc...
The final summary shows success/failure counts.

Limits

  • Minimum per payment: 0.01 USDC (1¢)
  • Recommended batch size: Up to 100 payments per batch
  • Rate limits: May apply for very large batches

Tips

  1. Test first: Start with a small batch to test your setup
  2. Check balance: Calculate total amount + fees before running
  3. Validate JSON: Ensure JSON files are properly formatted
  4. Save receipts: Keep the receipt URLs for records
  5. Use files: For large batches, JSON files are more manageable than comma-separated
  • send - Send to a single user
  • ai-agent - Use natural language for batch payments

Getting Help

snackmoney batch-send --help

Example Files

View example payment files on GitHub:

Additional Resources