> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cdp.coinbase.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Trade Tokens

## 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

```bash theme={null}
npx awal@latest status
```

If the wallet is not authenticated, refer to the [authenticate-wallet](/agentic-wallet/cli/skills/authenticate) skill.

## Command syntax

```bash theme={null}
npx awal@latest trade <amount> <from> <to> [options]
```

## Arguments

| Argument | Description |
| - | - |
| `amount` | Amount to trade (see Amount Formats below) |
| `from` | Source token: alias (usdc, eth, weth) or contract address |
| `to` | Destination token: alias (usdc, eth, weth) or contract address |

## Amount formats

| Format | Example | Description |
| - | - | - |
| Dollar prefix | `$1.00`, `$0.50` | USD notation |
| Decimal | `1.0`, `0.50`, `0.001` | Human-readable with decimal point |
| Whole number | `5`, `100` | Interpreted as whole tokens |
| Atomic units | `500000` | Large integers treated as atomic units |

<Note>
  Large integers (>100) without a decimal point are treated as atomic units. For example, `500000` for USDC (6 decimals) = \$0.50.
</Note>

## Options

| Option | Description |
| - | - |
| `-s, --slippage <n>` | Slippage tolerance in basis points (100 = 1%) |
| `--json` | Output result as JSON |

<Note>
  Trading is only available on Base mainnet. Testnet trading is not currently supported.
</Note>

## Token aliases

| Alias | Token | Decimals | Address |
| - | - | - | - |
| usdc | USDC | 6 | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
| eth | ETH | 18 | 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE |
| weth | WETH | 18 | 0x4200000000000000000000000000000000000006 |

## Examples

```bash theme={null}
# 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

| Error | Resolution |
| - | - |
| "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 |
