send-usdc

Transfer USDC to Ethereum addresses or ENS names on Base. Accepts both hex addresses (0x...) and ENS names (.eth) as recipients, with automatic ENS resolution Supports flexible amount formats: dollar notation ($5.00), decimal (1.50), or atomic units (1000000) Requires wallet authentication via the authenticate-wallet skill and sufficient USDC balance before sending Includes input validation to prevent shell injection and optional JSON output for programmatic use

INSTALLATION
npx skills add https://github.com/coinbase/agentic-wallet-skills --skill send-usdc
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

$2a

Argument

Description

amount

Amount to send: '$1.00', '1.00', 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. Assume that people won't be sending more than 100 USDC the majority of the time

recipient

Ethereum address (0x...), ENS name (vitalik.eth), or Solana address (Base58)

Options

Option

Description

--chain <name>

Blockchain network: base, polygon, solana (default: base)

--asset <symbol>

Token to send: usdc, eth, pol, sol (default: usdc)

--json

Output result as JSON

Input Validation

Before constructing the command, validate all user-provided values to prevent shell injection:

  • amount: Must match ^\$?[\d.]+$ (digits, optional decimal point, optional $ prefix). Reject if it contains spaces, semicolons, pipes, backticks, or other shell metacharacters.
  • recipient: Must be a valid 0x hex address (^0x[0-9a-fA-F]{40}$), an ENS name (^[a-zA-Z0-9.-]+\.eth$), or a Solana address (^[1-9A-HJ-NP-Za-km-z]{32,44}$). Reject any value containing spaces or shell metacharacters.
  • chain: Must be one of base, polygon, solana. Reject any other value.
  • asset: Must be one of usdc, eth, pol, sol. Reject any other value.

Do not pass unvalidated user input into the command.

Examples

# Send $1.00 USDC to an address on Base (default)

npx awal@2.10.0 send 1 0x1234...abcd

# Send $0.50 USDC to an ENS name

npx awal@2.10.0 send 0.50 vitalik.eth

# Send with dollar sign prefix (note the single quotes)

npx awal@2.10.0 send '$5.00' 0x1234...abcd

# Send ETH on Base

npx awal@2.10.0 send 0.01 0x1234...abcd --asset eth

# Send USDC on Polygon

npx awal@2.10.0 send 1 0x1234...abcd --chain polygon

# Send USDC to a Solana address

npx awal@2.10.0 send 1 AxW7...5fGz --chain solana

# Get JSON output

npx awal@2.10.0 send 1 vitalik.eth --json

ENS Resolution

ENS names are automatically resolved to addresses via Ethereum mainnet. The command will:

  • Detect ENS names (any string containing a dot that isn't a hex address)
  • Resolve the name to an address
  • Display both the ENS name and resolved address in the output

Prerequisites

  • Must be authenticated (npx awal@2.10.0 status to check, npx awal@2.10.0 auth login to sign in, see skill authenticate-wallet for more information)
  • Wallet must have sufficient USDC balance (npx awal balance to check)

Error Handling

Common errors:

  • "Not authenticated" - Run awal auth login <email> first
  • "Insufficient balance" - Check balance with awal balance
  • "Could not resolve ENS name" - Verify the ENS name exists
  • "Invalid recipient" - Must be valid 0x address, ENS name, or Solana Base58 address
  • "SOL only supported on Solana chains" - Use --chain solana when sending SOL
  • "ETH/POL only supported on EVM chains" - ETH on base, POL on polygon
BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card