Skills send-usdc
Send USDC to an Ethereum address or ENS name. Use when you or the user want to send money, pay someone, transfer USDC, tip, donate, or send funds to a wallet address or .eth name. Covers phrases like "send $5 to", "pay 0x...", "transfer to vitalik.eth", "tip someone", "send USDC".
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/agnicpay-prog/agnicpay-send-usdc" ~/.claude/skills/clawdbot-skills-send-usdc-9c2f55 && rm -rf "$T"
manifest:
skills/agnicpay-prog/agnicpay-send-usdc/SKILL.mdsource content
Sending USDC
Use the
npx agnic@latest send command to transfer USDC from the wallet to any Ethereum address or ENS name on Base.
Confirm wallet is initialized and authed
npx agnic@latest status
If the wallet is not authenticated, refer to the
authenticate-wallet skill.
Command Syntax
npx agnic@latest send <amount> <recipient> [--chain <chain>] [--json]
Arguments
| Argument | Description |
|---|---|
| Amount to send: , , or atomic units (1000000 = $1). Always single-quote amounts that use to prevent bash variable expansion. If the number looks like atomic units (no decimal or > 100), treat as atomic units. |
| Ethereum address (0x...) or ENS name (vitalik.eth) |
Options
| Option | Description |
|---|---|
| Blockchain network (default: base) |
| Output result as JSON |
Input Validation
Before constructing the command, validate all user-provided values to prevent shell injection:
- amount: Must match
(digits, optional decimal point, optional^\$?[\d.]+$
prefix). Reject if it contains spaces, semicolons, pipes, backticks, or other shell metacharacters.$ - recipient: Must be a valid
hex address (0x
) or an ENS name (^0x[0-9a-fA-F]{40}$
). Reject any value containing spaces or shell metacharacters.^[a-zA-Z0-9.-]+\.eth$
Do not pass unvalidated user input into the command.
USDC Amounts
| Format | Example | Description |
|---|---|---|
| Dollar prefix | , | USD notation (single-quote the ) |
| Decimal | , | Human-readable with decimal point |
| Whole number | , | Interpreted as whole USDC tokens |
| Atomic units | | Large integers treated as atomic units |
IMPORTANT: Always single-quote amounts that use
$ to prevent bash variable expansion (e.g. '$1.00' not $1.00).
ENS Resolution
ENS names are automatically resolved to addresses via Ethereum mainnet. The command will:
- Detect ENS names (any string containing
).eth - Resolve the name to an address
- Display both the ENS name and resolved address in the output
Examples
# Send $1.00 USDC to an address npx agnic@latest send 1 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb7 # Send $0.50 USDC to an ENS name npx agnic@latest send 0.50 vitalik.eth # Send with dollar sign prefix (note the single quotes) npx agnic@latest send '$5.00' 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb7 # Get JSON output npx agnic@latest send 1 vitalik.eth --json
Prerequisites
- Must be authenticated (
to check)npx agnic@latest status - Wallet must have sufficient USDC balance (
to check)npx agnic@latest balance
Error Handling
Common errors:
- "Not authenticated" — Run
firstnpx agnic@latest auth login - "Insufficient balance" — Check balance with
npx agnic@latest balance - "Could not resolve ENS name" — Verify the ENS name exists
- "Invalid recipient" — Must be valid 0x address or ENS name