trade について
CDP Swap API を通じて、`npx [email protected] trade` コマンドで Base または Polygon 上のトークンを交換するスキルです。認証、入力検証、トークンと金額の形式、コマンドオプションを扱います。
主な機能
- 01Base または Polygon でトークン交換
- 02トークンの別名やコントラクトアドレスを指定
- 03複数の金額形式に対応
- 04チェーンとスリッページを設定
- 05コマンド実行前に入力を検証
活用シーン
- 01Base で USDC を ETH に交換
- 02Polygon で POL を取引
- 03スリッページ許容値を指定した交換コマンドの準備
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ coinbase/ agentic-wallet-skills --skill tradeインストール後、Claude Code で/tradeを入力して読み込まれたか確認します。
詳細
トークンの取引
npx [email protected] trade コマンドを使用すると、CDP Swap API 経由で Base または Polygon 上のトークンをスワップできます。取引するには認証が必要です。
ウォレットが初期化され、認証済みであることを確認する
npx [email protected] status
ウォレットが認証されていない場合は、authenticate-wallet スキルを参照してください。
コマンド構文
npx [email protected] trade <amount> <from> <to> [options]
コマンドは npx [email protected] swap としても利用できます(エイリアス)。
引数
| 引数 | 説明 |
|---|---|
amount | スワップする数量(下記の「数量形式」を参照) |
from | 送信元トークン:エイリアス(usdc、eth、pol)またはコントラクトアドレス(0x...) |
to | 送信先トークン:エイリアス(usdc、eth、pol)またはコントラクトアドレス(0x...) |
数量形式
数量は複数の形式で指定できます。
| 形式 | 例 | 説明 |
|---|---|---|
| ドル記号の接頭辞 | '$1.00'、'$0.50' | USD 表記(小数桁数はトークンに基づきます) |
| 小数 | 1.0、0.50、0.001 | 小数点を使用した人が読みやすい形式 |
| 整数 | 5、100 | トークンの整数単位として扱われます |
| 最小単位 | 500000 | 大きな整数は最小単位として扱われます |
自動判定:小数点のない大きな整数は最小単位として扱われます。たとえば、USDC(小数桁数6)の 500000 は $0.50 に相当します。
小数桁数:既知のトークン(usdc=6、eth=18、pol=18)では、小数桁数が自動的に設定されます。任意のコントラクトアドレスの場合は、トークンコントラクトから小数桁数が読み取られます。
オプション
| オプション | 説明 |
|---|---|
-c, --chain <name> | ブロックチェーンネットワーク:base、polygon(デフォルト:base) |
-s, --slippage <n> | スリッページ許容範囲(ベーシスポイント単位、100 = 1%) |
--json | 結果を JSON 形式で出力 |
トークンエイリアス
| エイリアス | トークン | 小数桁数 | チェーン |
|---|---|---|---|
| usdc | USDC | 6 | base |
| eth | ETH | 18 | base |
| pol | POL | 18 | polygon |
重要:bash による変数展開を防ぐため、$ を含む数量は必ずシングルクォートで囲んでください(例:'$1.00'。$1.00 ではありません)。
入力の検証
シェルインジェクションを防ぐため、コマンドを組み立てる前に、ユーザーが指定したすべての値を検証してください。
- amount:
^\$?[\d.]+$に一致する必要があります(数字、任意の小数点、任意の$接頭辞)。スペース、セミコロン、パイプ、バッククォート、その他のシェルメタ文字が含まれている場合は拒否してください。 - from / to:既知のエイリアス(
usdc、eth、pol)または有効な0x形式の 16 進アドレス(^0x[0-9a-fA-F]{40}$)である必要があります。それ以外の値は拒否してください。 - slippage:正の整数(
^\d+$)である必要があります。
検証されていないユーザー入力をコマンドに渡さないでください。
例
# 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
# Swap USDC for POL on Polygon
npx [email protected] trade '$1' usdc pol --chain polygon
前提条件
- 認証済みであること(確認するには
awal statusを実行) - ウォレットに送信元トークンの残高が十分にあること
エラー処理
一般的なエラー:
- 「Not authenticated」- まず
awal auth login <email>を実行してください - 「Invalid token」- 有効なエイリアス(usdc、eth、pol)または 0x アドレスを使用してください
- 「POL only supported on polygon chain」- POL を取引する場合は
--chain polygonを使用してください - 「Cannot swap a token to itself」- 送信元と送信先には異なるトークンを指定してください
- 「Swap failed: TRANSFER_FROM_FAILED」- 残高不足または承認に関する問題です
- 「No liquidity」- 数量を減らすか、別のトークンペアを試してください
- 「Amount has X decimals but token only supports Y」- 小数桁数が多すぎます
コメント
Markdown 対応