send-usdc

Par coinbase · agentic-wallet-skills

Envoyer des tokens (USDC, ETH, POL ou SOL) à une adresse ou un nom ENS sur Base, Polygon ou Solana. À utiliser lorsque vous ou l'utilisateur souhaitez envoyer de l'argent, payer quelqu'un, transférer des tokens, donner un pourboire, faire un don ou envoyer des fonds vers une adresse de wallet ou un nom .eth. Couvre des formulations telles que « envoyer 5 $ à », « payer 0x... », « transférer vers vitalik.eth » ou « envoyer des USDC sur Solana ».

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

Envoi de tokens

Utilisez la commande npx awal@2.8.2 send pour transférer des tokens depuis le portefeuille vers n'importe quelle adresse sur Base, Polygon ou Solana.

Confirmer que le portefeuille est initialisé et authentifié

npx awal@2.8.2 status

Si le portefeuille n'est pas authentifié, consultez la skill authenticate-wallet.

Syntaxe de la commande

npx awal@2.8.2 send <amount> <recipient> [--chain <chain>] [--asset <asset>] [--json]

Arguments

Argument Description
amount Montant à envoyer : '$1.00', '1.00', ou unités atomiques (1000000 = $1). Utilisez toujours des guillemets simples pour les montants avec $ afin d'éviter l'expansion de variables bash. Si le nombre ressemble à des unités atomiques (pas de décimale ou > 100), traitez-le comme des unités atomiques. Supposez que la plupart du temps, les gens n'enverront pas plus de 100 USDC
recipient Adresse Ethereum (0x...), nom ENS (vitalik.eth), ou adresse Solana (Base58)

Options

Option Description
--chain <name> Réseau blockchain : base, polygon, solana (par défaut : base)
--asset <symbol> Token à envoyer : usdc, eth, pol, sol (par défaut : usdc)
--json Retourner le résultat au format JSON

Validation des entrées

Avant de construire la commande, validez toutes les valeurs fournies par l'utilisateur pour prévenir l'injection de shell :

  • amount : Doit correspondre à ^\$?[\d.]+$ (chiffres, point décimal optionnel, préfixe $ optionnel). Rejetez si cela contient des espaces, points-virgules, pipes, backticks ou autres métacaractères shell.
  • recipient : Doit être une adresse 0x hexadécimale valide (^0x[0-9a-fA-F]{40}$), un nom ENS (^[a-zA-Z0-9.-]+\.eth$), ou une adresse Solana (^[1-9A-HJ-NP-Za-km-z]{32,44}$). Rejetez toute valeur contenant des espaces ou des métacaractères shell.
  • chain : Doit être l'un de base, polygon, solana. Rejetez toute autre valeur.
  • asset : Doit être l'un de usdc, eth, pol, sol. Rejetez toute autre valeur.

Ne passez pas d'entrée utilisateur non validée à la commande.

Exemples

# Envoyer $1.00 USDC à une adresse sur Base (par défaut)
npx awal@2.8.2 send 1 0x1234...abcd

# Envoyer $0.50 USDC à un nom ENS
npx awal@2.8.2 send 0.50 vitalik.eth

# Envoyer avec le préfixe dollar (notez les guillemets simples)
npx awal@2.8.2 send '$5.00' 0x1234...abcd

# Envoyer ETH sur Base
npx awal@2.8.2 send 0.01 0x1234...abcd --asset eth

# Envoyer USDC sur Polygon
npx awal@2.8.2 send 1 0x1234...abcd --chain polygon

# Envoyer USDC à une adresse Solana
npx awal@2.8.2 send 1 AxW7...5fGz --chain solana

# Obtenir une sortie JSON
npx awal@2.8.2 send 1 vitalik.eth --json

Résolution ENS

Les noms ENS sont automatiquement résolus en adresses via le mainnet Ethereum. La commande va :

  1. Détecter les noms ENS (toute chaîne contenant un point qui n'est pas une adresse hex)
  2. Résoudre le nom en adresse
  3. Afficher à la fois le nom ENS et l'adresse résolue dans la sortie

Prérequis

  • Doit être authentifié (npx awal@2.8.2 status pour vérifier, npx awal@2.8.2 auth login pour se connecter, consulter la skill authenticate-wallet pour plus d'informations)
  • Le portefeuille doit avoir un solde USDC suffisant (npx awal balance pour vérifier)

Gestion des erreurs

Erreurs courantes :

  • "Not authenticated" - Exécutez d'abord awal auth login <email>
  • "Insufficient balance" - Vérifiez le solde avec awal balance
  • "Could not resolve ENS name" - Vérifiez que le nom ENS existe
  • "Invalid recipient" - Doit être une adresse 0x valide, un nom ENS, ou une adresse Solana Base58
  • "SOL only supported on Solana chains" - Utilisez --chain solana lors de l'envoi de SOL
  • "ETH/POL only supported on EVM chains" - ETH sur base, POL sur polygon

Skills similaires