PromptShop

Trade

This skill allows users to trade tokens on the Base network via the CDP Swap API. It uses the npx awal@2.0.3 trade command and requires the wallet to be.

Install

npx promptshop add trade

Details

What This Skill Does

  • This skill allows users to trade tokens on the Base network via the CDP Swap API.
  • It uses the npx awal@2.0.3 trade command and requires the wallet to be authenticated.
  • This is useful for swapping tokens like USDC, ETH, and WETH.

When to Use

  • Swap USDC for ETH.
  • Trade ETH for WETH.
  • Convert tokens on the Base network.
  • Use dollar notation for the amount.
  • Specify slippage tolerance.
  • Trade using token contract addresses.

Key Features

  • Trades tokens on the Base network via CDP Swap API.
  • Supports multiple amount formats (USD, decimal, whole number, atomic units).
  • Auto-detects decimals for known tokens.
  • Uses the npx awal@2.0.3 trade command.
  • Requires wallet authentication.
  • Allows specifying slippage tolerance.

Manual Installation

Confirm wallet is initialized and authed

npx awal@2.0.3 status

If the wallet is not authenticated, refer to the authenticate-wallet skill.

Command Syntax

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

Arguments

ArgumentDescription
amountAmount to swap (see

Amount Formats

below) | | from | Source token: alias (usdc, eth, weth) or contract address (0x...) | | to | Destination token: alias (usdc, eth, weth) or contract address (0x...) |

Amount Formats

The amount can be specified in multiple formats:

FormatExampleDescription
Dollar prefix'$1.00', '$0.50'USD notation (decimals based on token)
Decimal1.0, 0.50, 0.001Human-readable with decimal point
Whole number5, 100Interpreted as whole tokens
Atomic units500000Large 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, weth=18), decimals are automatic. For arbitrary contract addresses, decimals are read from the token contract.

Options

OptionDescription
-c, --chainBlockchain network (default: base)
-s, --slippageSlippage tolerance in basis points (100 = 1%)
--jsonOutput result as JSON

Token Aliases

AliasTokenDecimalsAddress
usdcUSDC60x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
ethETH180xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE
wethWETH180x4200000000000000000000000000000000000006

IMPORTANT: Always single-quote amounts that use $ to prevent bash variable expansion (e.g. '$1.00' not $1.00).

Input Validation

Before constructing the command, validate all user-provided values to prevent shell injection:

amount: Must match ^$?[\d.]+$ (digits, optional decimal point, optional $ prefix). Reject if it contains spaces, semicolons, pipes, backticks, or other shell metacharacters. from / to: Must be a known alias (usdc, eth, weth) or a valid 0x hex address (^0x[0-9a-fA-F]{40}$). Reject any other value. slippage: Must be a positive integer (^\d+$).

Do not pass unvalidated user input into the command.

Examples

Swap $1 USDC for ETH (dollar prefix — note the single quotes)

npx awal@2.0.3 trade '$1' usdc eth

Swap 0.50 USDC for ETH (decimal format) npx awal@2.0.3 trade 0.50 usdc eth

Swap 500000 atomic units of USDC for ETH npx awal@2.0.3 trade 500000 usdc eth

Swap 0.01 ETH for USDC npx awal@2.0.3 trade 0.01 eth usdc

Swap with custom slippage (2%) npx awal@2.0.3 trade '$5' usdc eth --slippage 200

Swap using contract addresses (decimals read from chain) npx awal@2.0.3 trade 100 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 0x4200000000000000000000000000000000000006

Get JSON output npx awal@2.0.3 trade '$1' usdc eth --json

Prerequisites

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

Error Handling

Common errors:

"Not authenticated" - Run awal auth login first "Invalid token" - Use a valid alias (usdc, eth, weth) or 0x address "Cannot swap a token to itself" - From and to must be different "Swap 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 placesTrading Tokens

Use the npx awal@2.0.3 trade command to swap tokens on Base network via the CDP Swap API. You must be authenticated to trade.

Confirm wallet is initialized and authed

npx awal@2.0.3 status

If the wallet is not authenticated, refer to the authenticate-wallet skill.

Command Syntax

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

Arguments

ArgumentDescription
amountAmount to swap (see

Amount Formats

below) | | from | Source token: alias (usdc, eth, weth) or contract address (0x...) | | to | Destination token: alias (usdc, eth, weth) or contract address (0x...) |

Amount Formats

The amount can be specified in multiple formats:

FormatExampleDescription
Dollar prefix'$1.00', '$0.50'USD notation (decimals based on token)
Decimal1.0, 0.50, 0.001Human-readable with decimal point
Whole number5, 100Interpreted as whole tokens
Atomic units500000Large 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, weth=18), decimals are automatic. For arbitrary contract addresses, decimals are read from the token contract.

Options

OptionDescription
-c, --chainBlockchain network (default: base)
-s, --slippageSlippage tolerance in basis points (100 = 1%)
--jsonOutput result as JSON

Token Aliases

AliasTokenDecimalsAddress
usdcUSDC60x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
ethETH180xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE
wethWETH180x4200000000000000000000000000000000000006

IMPORTANT: Always single-quote amounts that use $ to prevent bash variable expansion (e.g. '$1.00' not $1.00).

Input Validation

Before constructing the command, validate all user-provided values to prevent shell injection:

amount: Must match ^$?[\d.]+$ (digits, optional decimal point, optional $ prefix). Reject if it contains spaces, semicolons, pipes, backticks, or other shell metacharacters. from / to: Must be a known alias (usdc, eth, weth) or a valid 0x hex address (^0x[0-9a-fA-F]{40}$). Reject any other value.