Skip to main content

Overview

Trade tokens on Base network. Use when you or the user want to trade, exchange, buy, sell, or convert between tokens.

Prerequisites

  • Must be authenticated (npx awal@latest status to check)
  • Wallet must have sufficient balance of the source token

Confirming wallet status

npx awal@latest status
If the wallet is not authenticated, refer to the authenticate-wallet skill.

Command syntax

npx awal@latest trade <amount> <from> <to> [options]

Arguments

ArgumentDescription
amountAmount to trade (see Amount Formats below)
fromSource token: alias (usdc, eth, weth) or contract address
toDestination token: alias (usdc, eth, weth) or contract address

Amount formats

FormatExampleDescription
Dollar prefix$1.00, $0.50USD notation
Decimal1.0, 0.50, 0.001Human-readable with decimal point
Whole number5, 100Interpreted as whole tokens
Atomic units500000Large integers treated as atomic units
Large integers (>100) without a decimal point are treated as atomic units. For example, 500000 for USDC (6 decimals) = $0.50.

Options

OptionDescription
-s, --slippage <n>Slippage tolerance in basis points (100 = 1%)
--jsonOutput result as JSON
Trading is only available on Base mainnet. Testnet trading is not currently supported.

Token aliases

AliasTokenDecimalsAddress
usdcUSDC60x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
ethETH180xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE
wethWETH180x4200000000000000000000000000000000000006

Examples

# Trade $1 USDC for ETH
npx awal@latest trade $1 usdc eth

# Trade 0.50 USDC for ETH
npx awal@latest trade 0.50 usdc eth

# Trade 0.01 ETH for USDC
npx awal@latest trade 0.01 eth usdc

# Trade with custom slippage (2%)
npx awal@latest trade $5 usdc eth --slippage 200

# Trade using contract addresses
npx awal@latest trade 100 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 0x4200000000000000000000000000000000000006

# Get JSON output
npx awal@latest trade $1 usdc eth --json

Error handling

ErrorResolution
”Not authenticated”Run npx awal@latest auth login <email> first
”Invalid token”Use a valid alias (usdc, eth, weth) or 0x address
”Cannot trade a token to itself”From and to must be different
”Trade failed: TRANSFER_FROM_FAILED”Insufficient balance or approval issue
”No liquidity”Try a smaller amount or different token pair
”Amount has X decimals but token only supports Y”Too many decimal places