snackmoney
v1.2.0
Published
CLI tool for sending USDC payments via Snack Money API using x402 protocol
Maintainers
Readme
🍪 Snack Money CLI
A command-line tool for sending USDC payments via the Snack Money API to any X, Github or Farcaster user on Solana or Base — no wallet address required, thanks to the x402 protocol.
📦 Installation
Via npx (Recommended - No Installation Required)
npx snackmoney --helpVia npm (Global Installation)
npm install -g snackmoneyVia Homebrew (macOS/Linux)
brew tap snack-money/tap
brew install snackmoney🚀 Quick Start
Set up your private key:
For Solana payments:
export SVM_PRIVATE_KEY="your_solana_private_key"For Base payments:
export EVM_PRIVATE_KEY="your_evm_private_key"Send your first payment:
On Solana:
npx snackmoney send x/aeyakovenko 1¢On Base:
npx snackmoney send x/jessepollak $0.5
📖 Commands
send - Send Single Payment
snackmoney send <platform/username> <amount> [--network <base|solana>]Examples:
# Send to X users
snackmoney send x/aeyakovenko 1¢
snackmoney send x.com/jessepollak $0.5
snackmoney send twitter.com/0xmesuthere 50¢
# Send to Farcaster user
snackmoney send farcaster.xyz/toly $1
# Send to GitHub user
snackmoney send github.com/0xsnackbaker 0.01
# Send to email
snackmoney send email/[email protected] $0.25
# Send to web domain
snackmoney send web/snack.money 0.5Supported platforms:
x,x.com,twitter,twitter.com- X/Twitterfarcaster,farcaster.xyz- Farcastergithub,github.com- GitHubemail- Email addressesweb- Web domains
Amount formats:
1¢,50¢- Cents notation$0.5,$1- Dollar notation0.5,0.01- Decimal notation
batch-send - Send Batch Payments
Send payments to multiple users at once using comma-separated format, JSON file, or URL.
Format 1: Comma-separated
snackmoney batch-send <platform/user1:amount1,user2:amount2,...> [--network <base|solana>]Examples:
# Solana
snackmoney batch-send x/aeyakovenko:7¢,0xMert_:3¢,0xmesuthere:5¢ --network solana
# Base
snackmoney batch-send x/MurrLincoln:2¢,kleffew94:9¢,jessepollak:4¢,0xmesuthere:6¢ --network base
# With domain extensions
snackmoney batch-send twitter.com/user1:1¢,user2:$0.5
snackmoney batch-send farcaster.xyz/toly:50¢,mesut:25¢Format 2: From file
snackmoney batch-send ./examples/payments-solana.json
snackmoney batch-send ./examples/payments-base.json
snackmoney batch-send file:./payments.jsonFormat 3: From URL
snackmoney batch-send https://example.com/payments.json
snackmoney batch-send http://localhost:3000/payments.jsonFormat 4: JSON string
snackmoney batch-send '{"platform":"x","payments":[{"receiver":"aeyakovenko","amount":"1¢"}]}'JSON file format:
{
"platform": "x",
"payments": [
{ "receiver": "aeyakovenko", "amount": "7¢" },
{ "receiver": "0xMert_", "amount": "3¢" },
{ "receiver": "0xmesuthere", "amount": "5¢" }
]
}See example files:
ai-agent - AI-Powered Payment Agent
snackmoney ai-agent --prompt "<natural language request>"Examples:
# Single payment on Solana
snackmoney ai-agent --prompt "Send 0.5 USDC to @0xmesuthere on X via Solana"
# Single payment on Base
snackmoney ai-agent --prompt "Send 0.5 USDC to @0xmesuthere on X via Base"
# Multiple payments across platforms
snackmoney ai-agent --prompt "Send 1 USDC to @toly on Farcaster and 0.5 USDC to @aeyakovenko on X via Solana"🤖 AI Features (Optional)
For natural language payments, set up an AI API key:
export ANTHROPIC_API_KEY="your_key_here"
# OR
export OPENAI_API_KEY="your_key_here"Then use the AI agent:
snackmoney ai-agent --prompt "Send 1 USDC to @mesut on Farcaster and 0.5 USDC to @0xmesuthere on X"🌐 Supported Platforms
- x, x.com, twitter, twitter.com - X (formerly Twitter)
- farcaster, farcaster.xyz - Farcaster social network
- github, github.com - GitHub
- email - Email addresses
- web - Web domains
🛠️ Development
Prerequisites
- Node.js v20+ (Install via nvm)
- Yarn
- Private key:
SVM_PRIVATE_KEY(for Solana) orEVM_PRIVATE_KEY(for Base)
Setup
Clone the repository:
git clone https://github.com/snack-money/snackmoney-cli.git cd snackmoney-cliInstall dependencies:
yarn installConfigure environment variables:
cp .env-local .envEdit
.envand add your private key(s):# For Solana payments SVM_PRIVATE_KEY=your_solana_private_key # For Base payments EVM_PRIVATE_KEY=your_evm_private_key
Usage
Single Payment
# X user on Solana
yarn send x/aeyakovenko 1¢ --network solana
# X user on Base
yarn send x/jessepollak $0.5 --network base
# Farcaster user
yarn send farcaster.xyz/toly 0.01
# GitHub user
yarn send github.com/0xsnackbaker $1Batch Payments
# Solana - Comma-separated
yarn batch-send x/aeyakovenko:7¢,0xMert_:3¢,0xmesuthere:5¢ --network solana
# Base - Comma-separated
yarn batch-send x/MurrLincoln:2¢,kleffew94:9¢,jessepollak:4¢,0xmesuthere:6¢ --network base
# From file
yarn batch-send ./examples/payments-solana.json
# From URL
yarn batch-send https://example.com/payments.jsonAI Agent
yarn ai-agent --prompt "Send 1 USDC to @mesut on Farcaster and 0.5 USDC to @aeyakovenko on X"📝 Notes
- Payments can be processed on Solana or Base networks
- Use platform identifiers:
x,farcaster,github,email, orweb(with optional domain extensions) - All amount formats supported: cents (
1¢), dollars ($0.5), or decimal (0.5) - For Solana payments: Ensure your
SVM_PRIVATE_KEYis secure and your address is funded with sufficient USDC on Solana - For Base payments: Ensure your
EVM_PRIVATE_KEYis secure and your address is funded with sufficient USDC on Base - Network is auto-detected based on which private key is set (or specify with
--networkflag)
📚 Documentation
- API Documentation: https://docs.snack.money
- GitHub Repository: https://github.com/snack-money/snackmoney-cli
📄 License
MIT
Happy sending! 🍪💸
