Subchapter 1.6
references/trade.mdMarkdown4 KBView on GitHub
Use the npx awal@2.12.1 trade command to swap tokens on Base or Polygon via the CDP Swap API. You must be authenticated to trade.
If the wallet is not authenticated, see references/auth.md.
npx awal@2.12.1 trade <amount> <from> <to> [options]The command is also available as npx awal@2.12.1 swap (alias).
| Argument | Description |
|---|---|
amount | Amount to swap (see Amount Formats below) |
from | Source token: alias (usdc, eth, pol) or contract address (0x…) |
to | Destination token: alias (usdc, eth, pol) or contract address (0x…) |
The amount can be specified in multiple formats:
| Format | Example | Description |
|---|---|---|
| Dollar prefix | '$1.00', '$0.50' | USD notation (decimals based on token) |
| 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 |
Auto-detection: Large integers without a decimal point are treated as atomic units. For example, 500000 for USDC (6 decimals) = $0.50.
Decimals: For known tokens (usdc=6, eth=18, pol=18), decimals are automatic. For arbitrary contract addresses, decimals are read from the token contract.
| Option | Description |
|---|---|
-c, --chain <name> | Blockchain network: base, polygon (default: base) |
-s, --slippage <n> | Slippage tolerance in basis points (100 = 1%) |
--json | Output result as JSON |
| Alias | Token | Decimals | Chain |
|---|---|---|---|
| usdc | USDC | 6 | base |
| eth | ETH | 18 | base |
| pol | POL | 18 | polygon |
IMPORTANT: Always single-quote amounts that use $ to prevent bash variable expansion (e.g. '$1.00' not $1.00).
Before constructing the command, validate all user-provided values to prevent shell injection:
^\$?[\d.]+$ (digits, optional decimal point, optional $ prefix). Reject if it contains spaces, semicolons, pipes, backticks, or other shell metacharacters.usdc, eth, pol) or a valid 0x hex address (^0x[0-9a-fA-F]{40}$). Reject any other value.^\d+$).Do not pass unvalidated user input into the command.
# Swap $1 USDC for ETH (dollar prefix — note the single quotes)
npx awal@2.12.1 trade '$1' usdc eth
# Swap 0.50 USDC for ETH (decimal format)
npx awal@2.12.1 trade 0.50 usdc eth
# Swap 500000 atomic units of USDC for ETH
npx awal@2.12.1 trade 500000 usdc eth
# Swap 0.01 ETH for USDC
npx awal@2.12.1 trade 0.01 eth usdc
# Swap with custom slippage (2%)
npx awal@2.12.1 trade '$5' usdc eth --slippage 200
# Swap using contract addresses (decimals read from chain)
npx awal@2.12.1 trade 100 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 0x4200000000000000000000000000000000000006
# Get JSON output
npx awal@2.12.1 trade '$1' usdc eth --json
# Swap USDC for POL on Polygon
npx awal@2.12.1 trade '$1' usdc pol --chain polygonnpx awal@2.12.1 status to check; see references/auth.md)Common errors:
references/auth.md--chain polygon when trading POL