SunSwap DEX Trading について
SunSwap DEX Tradingは、`sun-cli`を使ってTRONのDEXであるSunSwapを検索・取引するAIエージェント向けスキルです。読み取り専用の市場・プール照会に加え、スワップとV2、V3、V4の流動性操作を扱います。
主な機能
- 01トークン価格とスワップ見積もりの照会
- 02スリッページを指定したトークンスワップ
- 03V2流動性の追加と削除
- 04V3・V4ポジションの作成と管理
- 05プールの検索とデータ確認
- 06`--dry-run`による書き込み操作のプレビュー
活用シーン
- 01取引前にスワップ見積もりを比較
- 02TRONトークンのスワップ実行
- 03プールへの流動性追加や引き出し
- 04プールの確認と集中流動性ポジションの管理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ bofai/ skills --skill sunswap-dex-tradingインストール後、Claude Code で/sunswap-dex-tradingを入力して読み込まれたか確認します。
同梱ファイルCHANGELOG.mdREADME.md
詳細
SunSwap DEX 取引スキル
クイックスタート
このスキルを使うと、AI エージェントは sun-cli を介して、TRON ブロックチェーン上の SunSwap DEX を操作できます。sun-cli は、スワップの見積もりや取引の実行、流動性の管理(V2/V3/V4)、プール、価格、ポジションなどの照会に対応する統合 CLI です。
前提条件
実際に書き込みを行う場合のみウォレットが必要です: スワップ、流動性の変更、または
contract sendを実行する前に、サポートされている sun-cli ウォレットソースを設定し、sun wallet addressで公開アドレスを確認してください。読み取り専用の照会と--dry-runによるプレビューにはウォレットは必要ありません。廃止されたウォレットおよびオンボーディングのスキルは前提条件ではありません。wallet-cli のアカウントは sun-cli から自動的に利用できません。チャットで秘密情報の値を要求したり、表示したりしないでください。
-
sun-cli を確認します:
sun --version必要なバージョンは
1.2.2です。インストールされていない場合、または別のバージョンがインストールされている場合は、グローバルパッケージを変更する前に承認を得てください:npm install -g @sun-protocol/[email protected] -
ウォレットを設定します(書き込み操作の場合のみ必要):
export TRON_PRIVATE_KEY="your_private_key_here"代替のウォレットソース:
TRON_MNEMONICまたはAGENT_WALLET_PASSWORD。 -
任意の環境変数:
export TRON_NETWORK=mainnet export TRONGRID_API_KEY=your_key
読み取り専用コマンド(価格、見積もり、プール一覧など)と --dry-run によるプレビューは、ウォレット認証情報なしで実行できます。
AI エージェント用フラグ
AI エージェントから sun を呼び出すときは、常に次のフラグを使用してください。
| フラグ | 用途 |
|---|---|
--json | 標準出力に機械可読な JSON を出力します |
--yes | 対話形式の確認プロンプトをスキップします |
--dry-run | トランザクションを送信せずに書き込み操作をシミュレートします |
--fields | 出力するフィールドをカンマ区切りで指定します |
--network | ネットワークを上書きします:mainnet、nile、shasta |
エージェントの標準的な呼び出しパターン:
sun --json price TRX
書き込み操作では、プロンプトをスキップするために --yes を追加します:
sun --json --yes swap TRX USDT 100000000
警告:
--networkで指定できるのはmainnet、nile、shastaのみです。 無効なネットワーク名を指定すると、エラーを表示せずに mainnet にフォールバックします。 AI エージェントは、値を渡す前にネットワーク名が有効であることを確認する必要があります。
警告:
--dry-runではトランザクションのプレビューを作成するだけです。 残高の確認、手数料ティアの検証、ティックの整合性の確認、同一トークン間のスワップの拒否は行いません。エージェントは実行前にこれらを検証する必要があります。 詳細は、以下のエージェントによる事前検証チェックリストを参照してください。
エージェントによる事前検証チェックリスト
書き込み操作(swap、liquidity、contract send)を実行する前に、AI エージェントは以下のチェックを必ず実施してください。CLI の --dry-run はこれらを検証せず、トランザクションのプレビューを作成するだけです。
スワップの前
-
残高が十分であることを確認します:
sun --json wallet balancesトークン残高を
amountInと比較します。不足している場合は中止してください。 -
tokenIn ≠ tokenOut であることを確認します: 同一トークン間のスワップ(例:TRX → TRX)は
--dry-runでは拒否されません。実行前に2つのトークンが異なることをエージェントが確認する必要があります。 -
スリッページが妥当であることを検証します: 推奨範囲:0.001(0.1%)から0.05(5%)。この範囲外の場合はユーザーに警告してください。
V3 流動性の追加(ミント)の前
-
有効な手数料ティアのみを使用します:
100、500、3000、または10000。 無効な手数料の値(例:9999)は--dry-runでは拒否されません。 -
ティックがティック間隔に揃っていることを確認します:
手数料の値 ティック間隔 有効なティックの例 100 1 任意の整数 500 10 -10, 0, 10, 20 3000 60 -120, -60, 0, 60 10000 200 -400, -200, 0, 200 --tick-lowerと--tick-upperは、どちらもティック間隔の正確な倍数でなければなりません。 整合していないティックは--dry-runでは拒否されませんが、オンチェーンで失敗します。 -
token0 と token1 の両方について、残高が十分であることを確認します。
V3/V4 のポジション操作(増額/減額/回収)の前に
- トークン ID の存在を確認する: まずユーザーのポジションを照会します。
対象のsun --json position list --owner TMgYX7m37cyyTSgVbtCoDUAQcFZ9RoYxJW --protocol V3--token-idが結果に含まれていることを確認してください。存在しないトークン ID を渡すと、誤解を招くエラー(例:「ポジションが見つからない」ではなく「金額が必要」)が発生することがあります。
V2 流動性の追加前
- token-a と token-b の両方について、残高が十分であることを確認します。
全般
--networkがmainnet、nile、shastaのいずれかであることを確認してください。無効な値を指定すると、エラーなしで mainnet にフォールバックします。tx scanの--typeがswap、add、withdrawのいずれかであることを確認してください。無効な値を指定すると、エラーではなく空の結果が返されます。
コマンドリファレンス
1. ウォレット
ウォレットアドレスとトークン残高を確認します。
sun --json wallet address
sun --json wallet balances
特定の所有者アドレスの残高を確認します。
sun --json wallet balances --owner TDqSquXBgUCLYvYC4XZgrprLK589dkhSCf
特定のトークンで絞り込みます(コントラクトアドレスのみ対応。TRX/USDT などのシンボルはサポートされていません)。
sun --json wallet balances --tokens TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t,TNUC9Qb1rRpS5CbWLmNMxXBjyFoydXjWFR
警告:
--tokensにはコントラクトアドレスのみ指定できます。シンボル(例:TRX,USDT)を渡すと、Invalid contract address providedが返されます。まず サポート対象のトークンシンボル のアドレス一覧で、シンボルをアドレスに変換してください。
2. トークン価格
SUN.IO からトークン価格を取得します。
sun --json price TRX
sun --json price USDT
コントラクトアドレスで照会します。
sun --json price --address TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t
3. スワップ見積もり(読み取り専用)
実行せずに価格の見積もりを取得します。ウォレットは不要です。
パラメーター: tokenIn と tokenOut には、トークンシンボル(TRX、USDT)または TRC20 アドレスを指定できます。amountIn の単位は sun です(最小単位。例:1000000 = 1 TRX)。
sun --json swap:quote TRX USDT 100000000
すべてのルート詳細を含めて見積もります。
sun --json swap:quote TRX USDT 100000000 --all
特定のネットワークで見積もります。
sun --json swap:quote TRX USDT 100000000 --network nile
逆方向を見積もります。
sun --json swap:quote USDT TRX 1000000
4. スワップの実行
SunSwap Universal Router を通じてトークンのスワップを実行します。
パラメーター: tokenIn と tokenOut にはシンボルまたはアドレスを指定できます。amountIn の単位は sun です。--slippage は小数で指定します(デフォルト:0.005 = 0.5%)。
sun --json --yes swap TRX USDT 100000000
スリッページをカスタム設定してスワップします(1%)。
sun --json --yes swap TRX USDT 100000000 --slippage 0.01
ドライラン(送信せずにシミュレーションします)。
sun --json --yes --dry-run swap TRX USDT 100000000
シンボルの代わりにコントラクトアドレスを使用します。
sun --json --yes swap T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t 100000000
nile テストネットでスワップします。
sun --json --yes swap TRX USDT 1000000 --network nile
5. V2 流動性
SunSwap V2 AMM プールで流動性を追加または削除します。
追加のパラメーター: --token-a と --token-b にはシンボルまたはアドレスを指定できます。--amount-a と --amount-b の単位は sun です。オプション:--min-a、--min-b、--to、--deadline。
削除のパラメーター: --token-a、--token-b、--liquidity(LP の生の数量)。オプション:--min-a、--min-b、--to、--deadline。
流動性の追加
片側のみ(もう一方を自動計算):
sun --json --yes liquidity v2:add --token-a TRX --token-b USDT --amount-a 1000000
両側:
sun --json --yes liquidity v2:add --token-a TRX --token-b USDT --amount-a 1000000 --amount-b 290000
ドライラン:
sun --json --yes --dry-run liquidity v2:add --token-a TRX --token-b USDT --amount-a 1000000
最小数量と受取人を指定:
sun --json --yes liquidity v2:add --token-a TRX --token-b USDT --amount-a 1000000 --amount-b 290000 --min-a 950000 --min-b 275000
流動性の削除
sun --json --yes liquidity v2:remove --token-a TRX --token-b USDT --liquidity 500000
ドライラン:
sun --json --yes --dry-run liquidity v2:remove --token-a TRX --token-b USDT --liquidity 500000
6. V3 流動性(集中流動性)
SunSwap V3 で集中流動性ポジションを管理します。
手数料ティア(以下の値のみ有効):
| 手数料率 | 手数料値 | ティック間隔 | フルレンジのティック |
|---|---|---|---|
| 0.01% | 100 | 1 | -887272 / 887272 |
| 0.05% | 500 | 10 | -887270 / 887270 |
| 0.3% | 3000 | 60 | -887220 / 887220 |
| 1% | 10000 | 200 | -887200 / 887200 |
重要:
--feeは100、500、3000、10000のいずれかを正確に指定する必要があります。 その他の値は--dry-runでは拒否されませんが、オンチェーンで失敗します。
--tick-lowerと--tick-upperは、ティック間隔の正確な倍数である必要があります。 整列していないティックは--dry-runでは拒否されませんが、オンチェーンで失敗します。
ミントのパラメーター: --token0、--token1(シンボルまたはアドレス)、--fee、--tick-lower、--tick-upper、--amount0、--amount1。オプション:--recipient、--deadline。
新しいポジションのミント
デフォルト設定でフルレンジ:
sun --json --yes liquidity v3:mint --token0 TRX --token1 USDT --amount0 1000000
手数料とティック範囲を指定(fee=3000、ティック間隔=60):
sun --json --yes liquidity v3:mint --token0 TRX --token1 USDT --fee 3000 --tick-lower -887220 --tick-upper 887220 --amount0 1000000
ドライラン:
sun --json --yes --dry-run liquidity v3:mint --token0 TRX --token1 USDT --amount0 1000000
手数料ティアを指定(fee=500、ティック間隔=10):
sun --json --yes liquidity v3:mint --token0 TRX --token1 USDT --fee 500 --tick-lower -887270 --tick-upper 887270 --amount0 1000000
受取人を指定:
sun --json --yes liquidity v3:mint --token0 TRX --token1 USDT --fee 3000 --tick-lower -60 --tick-upper 60 --amount0 1000000 --recipient TMgYX7m37cyyTSgVbtCoDUAQcFZ9RoYxJW
ポジションの増額
sun --json --yes liquidity v3:increase --token-id 123 --amount0 500000
ポジションの減少
sun --json --yes liquidity v3:decrease --token-id 123 --liquidity 1000
手数料の徴収
sun --json --yes liquidity v3:collect --token-id 123
7. V4 流動性
SunSwap V4 プールの流動性を管理します(フックをサポート)。
ミント時のパラメーター: --token0、--token1、--fee、--tick-lower、--tick-upper、--amount0、--amount1。オプション:--slippage、--recipient、--create-pool。
新しいポジションのミント
sun --json --yes liquidity v4:mint --token0 TRX --token1 USDT --amount0 1000000
プールが存在しない場合は作成します:
sun --json --yes liquidity v4:mint --token0 TRX --token1 USDT --amount0 1000000 --create-pool
スリッページを指定する場合:
sun --json --yes liquidity v4:mint --token0 TRX --token1 USDT --amount0 1000000 --slippage 0.01
ドライラン:
sun --json --yes --dry-run liquidity v4:mint --token0 TRX --token1 USDT --amount0 1000000
ポジションの増加
sun --json --yes liquidity v4:increase --token-id 123 --token0 TRX --token1 USDT --amount0 500000
ポジションの減少
sun --json --yes liquidity v4:decrease --token-id 123 --liquidity 1000 --token0 TRX --token1 USDT
手数料の徴収
sun --json --yes liquidity v4:collect --token-id 123
ポジション情報の照会
sun --json liquidity v4:info --pm TLSWrv7eC1AZCXkRjpqMZUmvgd99cj7pPF --token-id 123
8. プールの検索
流動性プールを検索、確認します。
トークンアドレスでプールを一覧表示します:
sun --json pool list --token TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t
キーワードで検索します:
sun --json pool search "TRX USDT"
APY 上位のプール:
sun --json pool top-apy --page-size 10
プールの取引量履歴(プールアドレスが必要です):
sun --json pool vol-history TSUUVjysXV8YqHytSNjfkNXnnB49QDvZpx --start 2026-01-01 --end 2026-03-15
プールの流動性履歴:
sun --json pool liq-history TSUUVjysXV8YqHytSNjfkNXnnB49QDvZpx --start 2026-01-01 --end 2026-03-15
プールのフック(V4):
sun --json pool hooks
9. トークンの検索
トークンのメタデータを検索、一覧表示します。
sun --json token list
プロトコルで絞り込みます:
sun --json token list --protocol V3
キーワードで検索します:
sun --json token search USDT
10. ポジション管理
ユーザーの流動性ポジションを照会します。
所有者のすべてのポジションを一覧表示します:
sun --json position list --owner TMgYX7m37cyyTSgVbtCoDUAQcFZ9RoYxJW
プロトコルで絞り込みます:
sun --json position list --owner TMgYX7m37cyyTSgVbtCoDUAQcFZ9RoYxJW --protocol V3
プールのティック情報:
sun --json position tick TSUUVjysXV8YqHytSNjfkNXnnB49QDvZpx
11. ペア情報
取引ペアの情報を解決します。
警告:
pair info --tokenはコントラクトアドレスのみを受け付けます。シンボル (例:USDT)を渡すと、API エラーが発生するか、予期しない結果が返されます。 まず、対応するトークンシンボルの表またはtoken searchを使って、 シンボルをコントラクトアドレスに解決してください。
USDT のコントラクトアドレスで照会します:
sun --json pair info --token TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t
WTRX のコントラクトアドレスで照会します:
sun --json pair info --token T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb
12. プロトコル分析
プロトコルレベルの指標を取得します。
sun --json protocol info
sun --json protocol vol-history --start 2026-01-01 --end 2026-03-15
sun --json protocol users-history --start 2026-01-01 --end 2026-03-15
sun --json protocol tx-history --start 2026-01-01 --end 2026-03-15
sun --json protocol pools-history --start 2026-01-01 --end 2026-03-15
sun --json protocol liq-history --start 2026-01-01 --end 2026-03-15
13. ファーム
SUN.IO ファームを確認します。
sun --json farm list
特定の所有者のファーム取引:
sun --json farm tx --owner TMgYX7m37cyyTSgVbtCoDUAQcFZ9RoYxJW --type stake
ユーザーのファームポジション:
sun --json farm positions --owner TMgYX7m37cyyTSgVbtCoDUAQcFZ9RoYxJW
14. トランザクションのスキャン
DEX の取引アクティビティをスキャンします。
重要:
--typeはswap、add、withdrawのいずれかを正確に指定する必要があります。 無効なタイプを指定した場合、エラーではなく空の結果が返されます。
sun --json tx scan --type swap --token TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t --start 2026-01-01 --end 2026-03-15
sun --json tx scan --type add --start 2026-01-01 --end 2026-03-15
sun --json tx scan --type withdraw --start 2026-01-01 --end 2026-03-15
15. 汎用コントラクト呼び出し
上位レベルのコマンドでは不十分な場合に、任意の TRON コントラクト呼び出しを読み取るか送信します。
コントラクトを読み取ります(ウォレット不要):
sun --json contract read TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t name
sun --json contract read TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t balanceOf --args '["TMgYX7m37cyyTSgVbtCoDUAQcFZ9RoYxJW"]'
コントラクト呼び出しを送信します(ウォレットが必要です。シミュレーションには --dry-run を使用します):
sun --json --yes --dry-run contract send TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t approve --args '["TKzxdSv2FZKQrEqkKVgp5DcwEXBEKMg2Ax","1000000"]' --value 0
AI エージェントに推奨されるワークフロー
パターン 1:クイックスワップ(検証を含む 3 ステップ)
最適な用途: ユーザー向けのスワップ操作。
ステップ 1 — 入力を検証します(エージェント側、CLI 呼び出しなし):
- tokenIn ≠ tokenOut であることを確認します(TRX→TRX のような同一トークンのスワップは CLI で拒否されません)
--networkが有効(mainnet、nile、shastaのいずれか)であることを確認します
ステップ 2 — 残高を確認し、見積もりを取得します:
sun --json wallet balances
sun --json swap:quote TRX USDT 100000000
残高が amountIn 以上であることを確認します。予想される出力量、価格への影響、ルートをユーザーに表示します。
ステップ 3 — ユーザーの確認後に実行します:
sun --json --yes swap TRX USDT 100000000 --slippage 0.005
パターン 2:安全な実行(最初にドライラン)
最適な用途: 大口の取引や慎重を要する操作。
注:
--dry-runでプレビューできるのはトランザクションの構造のみです。残高の確認、手数料ティアの検証、無効なパラメーターの拒否は行いません。
まず残高を確認します:
sun --json wallet balances
シミュレーションします(トランザクションの構造をプレビューします):
sun --json --yes --dry-run swap TRX USDT 100000000
ドライランの結果を確認し、残高を確認してから実行します:
sun --json --yes swap TRX USDT 100000000
パターン 3:流動性管理(V3 の例)
最適な用途: 集中流動性の追加。
ステップ 1 — パラメーターを検証します(エージェント側):
--feeが100、500、3000、10000のいずれかであることを確認します--tick-lowerと--tick-upperがティック間隔の倍数であることを確認します(例:fee=3000 の場合は 60)- token0 ≠ token1 であることを確認します
ステップ 2 — 残高とプール情報を確認します:
sun --json wallet balances
sun --json pool search "TRX USDT"
amount0 と amount1 の両方に十分な残高があることを確認します。
ステップ 3 — ミントをドライランします(プレビューのみ。残高やパラメーターの検証は行いません):
sun --json --yes --dry-run liquidity v3:mint --token0 TRX --token1 USDT --fee 3000 --tick-lower -887220 --tick-upper 887220 --amount0 1000000
ステップ 4 — ユーザーの確認後に実行します:
sun --json --yes liquidity v3:mint --token0 TRX --token1 USDT --fee 3000 --tick-lower -887220 --tick-upper 887220 --amount0 1000000
パターン 4:情報収集
最適な用途: トークン、プール、価格に関するユーザーの質問への回答。
トークン価格を照会します。
sun --json price TRX
APY 上位のプール:
sun --json pool top-apy --page-size 10
ユーザーのポジション:
sun --json position list --owner TMgYX7m37cyyTSgVbtCoDUAQcFZ9RoYxJW
ペア情報(シンボルではなくコントラクトアドレスが必要です):
sun --json pair info --token TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t
出力フィールドを制限して、レスポンスサイズを削減します。
sun --json --fields address,network wallet address
対応トークンシンボル
sun-cli にはシンボル解決機能が組み込まれています。一般的なシンボル:
| シンボル | メインネットアドレス | 小数桁数 |
|---|---|---|
| TRX | T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb | 6 |
| WTRX | TNUC9Qb1rRpS5CbWLmNMxXBjyFoydXjWFR | 6 |
| USDT | TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t | 6 |
| USDC | TEkxiTehnzSmSe2XqrBj4w32RUN966rdz8 | 6 |
| USDD | TPYmHEhy5n8TCEfYGqW2rPxsghSfzghPDn | 18 |
| SUN | TSSMHYeV2uE9qYH95DqyoCuNCzEL1NvU3S | 18 |
| JST | TCFLL5dx5ZJdKnWuesXxi1VPwjLVmWZZy9 | 18 |
| BTT | TAFjULxiVgT4qWk6UZwjqwZXTSaGaqnVp4 | 18 |
| WIN | TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7 | 6 |
任意の TRC20 トークンは、コントラクトアドレスを直接指定することもできます。
セキュリティルール
重大:秘密鍵を決して表示しないでください
禁止事項: 秘密鍵、シードフレーズ、ニーモニック、シークレットを含む環境変数の値、エージェントウォレットのパスワード。
許可事項: 公開ウォレットアドレス、トランザクションハッシュ、トークン残高、価格。
出力に秘密情報が漏れていないことを確認するには:
sun --json wallet address
出力に秘密鍵の情報が含まれていてはなりません。
重大:トランザクションの重複を防ぐ
- ユーザーコマンド 1 件につきトランザクションは 1 件です
- トランザクションが成功したら、完了として記録します
- 成功したトランザクションを再試行してはいけません
重大:実行前に入力を検証する
CLI は --dry-run モードではすべての入力を検証するわけではありません。エージェントは次の操作を行う必要があります。
- スワップの前に tokenIn ≠ tokenOut であることを確認します
- V3 mint の前に、
--feeが 100、500、3000、10000 のいずれかであることを確認します - V3 mint の前に、ティック値がティック間隔に揃っていることを確認します
--networkが mainnet、nile、shasta のいずれかであることを確認します- 書き込み操作の前に
wallet balancesを実行して、十分な資金があることを確認します
重大:高額な操作では見積もりと残高確認を行う
sun --json wallet balances
sun --json swap:quote TRX USDT 1000000000
実行前に必ず残高を確認し、見積もりを取得してください。--dry-run で表示されるのはトランザクションの構造のみで、残高やパラメーターは検証されません。
重大:書き込み操作の前に必ずプレビューする
AI エージェントは、事前にユーザーへプレビューを提示せずに書き込み操作(swap、liquidity add/remove/mint、contract send)を決して実行してはいけません。正しい手順は次のとおりです。
- 見積もりを取得するか、ドライランを実行して、処理内容を提示します
- プレビューをユーザーに表示します(数量、ルート、価格への影響、手数料)
- ユーザーに明示的な確認を求めます
- その後に限り、
--yesを付けて実行します
警告: 1 回目の呼び出しでは
--yesを指定しないでください。ユーザーがプレビューを確認して承認した後にのみ--yesを使用してください。プレビューを省略すると、セキュリティプロトコルに違反します。
正しいパターン:
sun --json swap:quote TRX USDT 100000000
結果をユーザーに表示します。ユーザーの確認後:
sun --json --yes swap TRX USDT 100000000
高額な操作(大きな金額)の場合: 見積もりに加えて、必ず最初に --dry-run を使用してください。
sun --json --yes --dry-run swap TRX USDT 1000000000
見積もりとドライランの結果の両方をユーザーが確認した後に限り、実行します。
ユーザーとのコミュニケーションプロトコル
取引や流動性操作を実行する際は、明確に伝えてください。
実行前:
Getting quote for 100 TRX → USDT...
Quote received:
100 TRX → 15.234 USDT
Price Impact: 0.12%
Route: TRX → WTRX → USDT
Proceed with swap?
成功後:
Swap completed!
Transaction: abc123def456...
Explorer: https://tronscan.org/#/transaction/abc123def456...
Swapped: 100 TRX → 15.234 USDT
既知の制限事項
以下は、AI エージェントが回避する必要のある CLI レベルの動作です。
| 問題 | 影響を受けるコマンド | 動作 | エージェントによる回避策 |
|---|---|---|---|
--dry-run は残高を確認しません | swap、liquidity v2:add、すべての V3/V4 操作 | 残高が不足していてもプレビューを返します | 実行前に wallet balances を確認します |
--dry-run は V3 の手数料ティアを検証しません | liquidity v3:mint | 9999 などの無効な手数料を受け付けます | 100、500、3000、10000 のみを渡します |
--dry-run はティックのアラインメントを検証しません | liquidity v3:mint | アラインメントされていないティックを受け付けます | ティックがティック間隔の倍数であることを確認します |
| 同一トークンのスワップが拒否されません | swap | ドライランで TRX→TRX を受け付けます | 呼び出し前に tokenIn ≠ tokenOut であることを確認します |
無効な --network は警告なくフォールバックします | すべてのコマンド | 不明なネットワーク名は mainnet を使用します | mainnet、nile、shasta のみを渡します |
無効な --type は空の結果を返します | tx scan | 不明なタイプはエラーを出さず、空のリストを返します | swap、add、withdraw のみを渡します |
pair info --token にはアドレスが必要です | pair info | シンボルを指定すると API エラーまたは不正な結果が発生します | シンボルではなくコントラクトアドレスを使用します |
--tokens フィルターにはアドレスが必要です | wallet balances | TRX,USDT などのシンボルを指定すると Invalid contract address provided が発生します | 呼び出し前にシンボルをアドレスに解決します |
| JSON 出力での BigInt のシリアライズ | contract read | 大きな整数を返す関数(例:totalSupply)は、Do not know how to serialize a BigInt でクラッシュする場合があります | クライアント側で結果を .toString() でラップするか、これらの呼び出しでは --json を避けます |
V3 の無効な --token-id に関するエラーが誤解を招きます | v3:increase、v3:decrease、v3:collect | 存在しない token-id に対して、「ポジションが見つかりません」ではなく「amount が必要です」と報告される場合があります | 操作前に position list で token-id の存在を確認します |
AGENT_WALLET_PASSWORD にはウォレットストアが必要です | wallet address | ~/.agent-wallet ディレクトリが初期化されていない場合、失敗します | 代わりに TRON_PRIVATE_KEY または TRON_MNEMONIC を使用するか、先にウォレットストアを初期化します |
| テストネットのトランザクションには帯域幅/エネルギーが必要です | nile/shasta 上のすべての書き込みコマンド | ドライランが成功しても、実際の実行はリソースエラーで失敗する場合があります | テスト用ウォレットに、帯域幅とエネルギー用に十分な TRX がステーキングされていることを確認します |
トラブルシューティング
「sun: command not found」
npm install -g @sun-protocol/[email protected]
実際の書き込み時に「Wallet not configured」と表示される
次のいずれかを設定してください:TRON_PRIVATE_KEY、TRON_MNEMONIC、または AGENT_WALLET_PASSWORD。
@sun-protocol/[email protected] では、--dry-run はウォレット認証情報なしでプレビューを返すはずです。
AGENT_WALLET_PASSWORD に関する注意: このモードでは、初期化済みのウォレットストアが
~/.agent-walletに必要です。ディレクトリが存在しない場合、CLI はSecrets directory not foundで失敗します。より簡単に設定するには、TRON_PRIVATE_KEYまたはTRON_MNEMONICを使用してください。一度に設定するウォレットソースは 1 つだけにしてください。
「Network error」または「Timeout」
- インターネット接続を確認します
- mainnet の場合は、
TRONGRID_API_KEYを設定します - 再試行します(ネットワークが混雑している可能性があります)
トランザクションが失敗する
- ガス代として十分な TRX があることを確認します(100 TRX 以上を推奨)
- スリッページを増やします:
--slippage 0.01 sun --json wallet balancesでトークン残高を確認します
テストネットのトランザクションが帯域幅/エネルギーエラーで失敗する
- Nile および Shasta のテストネットでは、帯域幅とエネルギー用に TRX のステーキングが必要です
- ドライランは成功しても、ウォレットのリソースが不足していると実際の実行は失敗します
- テスト用ウォレットにテストネット TRX を入金し、テスト前にリソース用のステーキングを行います
- リソースが不足している場合でも、
--dry-runを使ってトランザクションの構造を確認します
- スキルのバージョン:2.0.0
- ランタイム依存関係:
@sun-protocol/[email protected]最終更新日:2026-07-09 メンテナー:Bank of AI Team