Heurist Logo
Back to Skill Marketplace
coinbase

trade

VerifiedCryptoaccess level:high

Swap or trade tokens on Base network. Use when you or the user want to trade, swap, exchange, buy, sell, or convert between tokens like USDC, ETH, and WETH. Covers phrases like "buy ETH", "sell ETH for USDC", "convert USDC to ETH", "get some ETH".

Install

npx @heurist-network/skills add trade

Installs

0

Stars

85

Timeline

Updated Mar 18, 2026

Created Mar 18, 2026

Verification

Reviewed and verified

SHA256: 67e326033190ea56...

Approved Mar 18, 2026 by admin

Access Level

high

Required Permissions

Signs TransactionsPortfolio Access

Files (1)

SKILL.md

Summary

allowed-tools
Bash(npx [email protected] status*)Bash(npx [email protected] trade *)Bash(npx [email protected] balance*)
user-invocable
Yes
disable-model-invocation
No

SKILL.md

Trading Tokens

Use the npx [email protected] 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 [email protected] status

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

Command Syntax

npx [email protected] trade <amount> <from> <to> [options]

Arguments

ArgumentDescription
amountAmount to swap (see Amount Formats below)
fromSource token: alias (usdc, eth, weth) or contract address (0x...)
toDestination 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, --chain <name>Blockchain network (default: base)
-s, --slippage <n>Slippage 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 [email protected] trade '$1' usdc eth

# Swap 0.50 USDC for ETH (decimal format)
npx [email protected] trade 0.50 usdc eth

# Swap 500000 atomic units of USDC for ETH
npx [email protected] trade 500000 usdc eth

# Swap 0.01 ETH for USDC
npx [email protected] trade 0.01 eth usdc

# Swap with custom slippage (2%)
npx [email protected] trade '$5' usdc eth --slippage 200

# Swap using contract addresses (decimals read from chain)
npx [email protected] trade 100 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 0x4200000000000000000000000000000000000006

# Get JSON output
npx [email protected] 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 <email> 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 places