mcpField
S
send-usdc

send-usdc

github.com/coinbaseOther1273.0k installsUpdated 12w ago
Repository

About send-usdc

send-usdc is a CLI skill for transferring tokens from a wallet to an address on Base, Polygon, or Solana. It supports several token types and resolves ENS names before sending.

Key features

  1. 01Send tokens to wallet addresses
  2. 02Transfer to ENS names with resolution
  3. 03Choose a chain and token
  4. 04Return results as JSON

Use cases

  1. 01Send USDC to an Ethereum address
  2. 02Transfer tokens to an ENS name
  3. 03Send SOL on Solana

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/coinbase/agentic-wallet-skills --skill send-usdc

After installing, type/send-usdcin Claude Code to confirm it loaded.

Details

From the project README

Sending Tokens

Use the npx [email protected] send command to transfer tokens from the wallet to any address on Base, Polygon, or Solana.

Confirm wallet is initialized and authed

npx [email protected] status

If the wallet is not authenticated, refer to the authenticate-wallet skill.

Command Syntax

npx [email protected] send <amount> <recipient> [--chain <chain>] [--asset <asset>] [--json]

Arguments

ArgumentDescription
amountAmount 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
recipientEthereum address (0x...), ENS name (vitalik.eth), or Solana address (Base58)

Options

OptionDescription
--chain <name>Blockchain network: base, polygon, solana (default: base)
--asset <symbol>Token to send: usdc, eth, pol, sol (default: usdc)
--jsonOutput 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 [email protected] send 1 0x1234...abcd

# Send $0.50 USDC to an ENS name
npx [email protected] send 0.50 vitalik.eth

# Send with dollar sign prefix (note the single quotes)
npx [email protected] send '$5.00' 0x1234...abcd

# Send ETH on Base
npx [email protected] send 0.01 0x1234...abcd --asset eth

# Send USDC on Polygon
npx [email protected] send 1 0x1234...abcd --chain polygon

# Send USDC to a Solana address
npx [email protected] send 1 AxW7...5fGz --chain solana

# Get JSON output
npx [email protected] send 1 vitalik.eth --json

ENS Resolution

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

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

Prerequisites

  • Must be authenticated (npx [email protected] status to check, npx [email protected] 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

Comments

Markdown supported