trade

Par coinbase · agentic-wallet-skills

Échangez ou tradez des tokens sur Base ou Polygon. À utiliser lorsque vous ou l'utilisateur souhaitez trader, échanger, acheter, vendre ou convertir des tokens comme USDC, ETH et POL. Couvre des formulations telles que « acheter de l'ETH », « vendre de l'ETH contre des USDC », « convertir des USDC en ETH », « obtenir de l'ETH », « acheter des POL ».

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

Trading Tokens

Utilisez la commande npx awal@2.8.2 trade pour échanger des tokens sur Base ou Polygon via l'API CDP Swap. Vous devez être authentifié pour trader.

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 trade <amount> <from> <to> [options]

Arguments

Argument Description
amount Montant à échanger (voir Formats de montant ci-dessous)
from Token source : alias (usdc, eth, pol) ou adresse de contrat (0x...)
to Token destination : alias (usdc, eth, pol) ou adresse de contrat (0x...)

Formats de montant

Le montant peut être spécifié dans plusieurs formats :

Format Exemple Description
Préfixe dollar '$1.00', '$0.50' Notation USD (décimales selon le token)
Décimal 1.0, 0.50, 0.001 Lisible avec point décimal
Nombre entier 5, 100 Interprété comme des tokens entiers
Unités atomiques 500000 Les grands entiers sont traités comme unités atomiques

Détection automatique : Les grands entiers sans point décimal sont traités comme unités atomiques. Par exemple, 500000 pour USDC (6 décimales) = $0,50.

Décimales : Pour les tokens connus (usdc=6, eth=18, pol=18), les décimales sont automatiques. Pour les adresses de contrat arbitraires, les décimales sont lues à partir du contrat token.

Options

Option Description
-c, --chain <name> Réseau blockchain : base, polygon (défaut : base)
-s, --slippage <n> Tolérance de slippage en basis points (100 = 1%)
--json Afficher le résultat en JSON

Alias de tokens

Alias Token Décimales Chaîne
usdc USDC 6 base
eth ETH 18 base
pol POL 18 polygon

IMPORTANT : Toujours mettre entre guillemets simples les montants utilisant $ pour éviter l'expansion de variables bash (par ex. '$1.00' et non $1.00).

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 s'il contient des espaces, points-virgules, pipes, backticks ou autres métacaractères shell.
  • from / to : Doit être un alias connu (usdc, eth, pol) ou une adresse hex 0x valide (^0x[0-9a-fA-F]{40}$). Rejetez toute autre valeur.
  • slippage : Doit être un entier positif (^\d+$).

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

Exemples

# Échanger $1 USDC pour ETH (préfixe dollar — notez les guillemets simples)
npx awal@2.8.2 trade '$1' usdc eth

# Échanger 0,50 USDC pour ETH (format décimal)
npx awal@2.8.2 trade 0.50 usdc eth

# Échanger 500000 unités atomiques de USDC pour ETH
npx awal@2.8.2 trade 500000 usdc eth

# Échanger 0.01 ETH pour USDC
npx awal@2.8.2 trade 0.01 eth usdc

# Échanger avec slippage personnalisé (2%)
npx awal@2.8.2 trade '$5' usdc eth --slippage 200

# Échanger en utilisant des adresses de contrat (décimales lues depuis la chaîne)
npx awal@2.8.2 trade 100 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 0x4200000000000000000000000000000000000006

# Obtenir une sortie JSON
npx awal@2.8.2 trade '$1' usdc eth --json

# Échanger USDC pour POL sur Polygon
npx awal@2.8.2 trade '$1' usdc pol --chain polygon

Prérequis

  • Doit être authentifié (awal status pour vérifier)
  • Le portefeuille doit avoir un solde suffisant du token source

Gestion des erreurs

Erreurs courantes :

  • "Not authenticated" - Exécutez d'abord awal auth login <email>
  • "Invalid token" - Utilisez un alias valide (usdc, eth, pol) ou une adresse 0x
  • "POL only supported on polygon chain" - Utilisez --chain polygon lors du trading de POL
  • "Cannot swap a token to itself" - From et to doivent être différents
  • "Swap failed: TRANSFER_FROM_FAILED" - Solde insuffisant ou problème d'approbation
  • "No liquidity" - Essayez un montant plus petit ou une autre paire de tokens
  • "Amount has X decimals but token only supports Y" - Trop de décimales

Skills similaires