SunPump Meme Token Toolkit について
SunPump Meme Token Toolkitは、sun-cliでTRONのミームトークンローンチパッドSunPumpを照会・取引するスキルです。トークン発行、ボンディングカーブやSunSwapでの取引、保有状況、取引履歴、トークン情報を扱い、取引にはウォレット設定が必要です。
主な機能
- 01ウォレットなしでトークンを発行
- 02ボンディングカーブ上の発行前トークンを取引
- 03SunSwapで発行済みトークンを取引
- 04ウォレットの保有状況と取引履歴を確認
- 05トークン詳細、ランキング、保有者を照会
- 06dry-runで書き込み操作をプレビュー
活用シーン
- 01SunPumpでトークンを発行
- 02取引ルート選択前にトークン状態を確認
- 03ウォレット保有分とSunPump取引を確認
- 04トークン情報と保有者ランキングを調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ bofai/ skills --skill sunpump-meme-token-toolkitインストール後、Claude Code で/sunpump-meme-token-toolkitを入力して読み込まれたか確認します。
同梱ファイルREADME.mdRELEASE_NOTES.md
詳細
SunPump ミームトークンスキル
クイックスタート
このスキルを使うと、AI エージェントは sun-cli を通じて、TRON ブロックチェーン上のミームトークンローンチパッドである SunPump を操作できます。エンドユーザーに必要な8つの基本的なフローを扱います。
- 新しいミームトークンを作成(ローンチ)する(
sun sunpump launch)— サーバー側で作成されるため、ウォレットは不要です - SunSwap を通じてローンチ後のトークンを取引する(
sun swap) - SunPump のボンディングカーブでローンチ前のトークンを取引する(
sun sunpump buy/sun sunpump sell) - ウォレットのポジションを確認する(
sun sunpump portfolio) - ウォレットの取引履歴を表示する(
sun sunpump tx user) - トークン情報を検索する(
sun sunpump token get) - トークンランキングを確認する(
sun sunpump token ranking) - トークンの上位保有者を一覧表示する(
sun sunpump token holders)
ローンチ前とローンチ後の判断 — 適切な取引コマンドを選択します。
| トークンの状態 | tokenLaunchedInstant | swapPoolAddress | 使用する取引コマンド |
|---|---|---|---|
| ローンチ前(ボンディングカーブ) | null | null | sun sunpump buy / sun sunpump sell |
| ローンチ後(DEX に移行済み) | null 以外 | null 以外 | sun swap |
使用する取引方法を判断するため、必ず最初に sun sunpump state <addr> または sun sunpump token get <addr> を実行してください。
前提条件
取引にはウォレットが必要です。 対応している sun-cli ウォレットソースをローカルで設定し、取引前に
sun wallet addressで公開アドレスを確認してください。廃止されたウォレットスキルやオンボーディングスキルは前提条件ではありません。wallet-cli のアカウントは sun-cli では自動的に利用できません。チャットで秘密情報を要求したり表示したりしないでください。 SunPump の読み取り専用クエリ(ポートフォリオ、取引履歴、トークン情報、ランキング、保有者)は、ウォレットなしで実行できます。 トークンの作成(sun sunpump launch)はサーバー側で行われるため、こちらもウォレットは不要です。@sun-protocol/[email protected]の--dry-runプレビューには、ウォレット認証情報は不要です。
-
このスキルをインストールする(一度だけ実行すれば、Claude Code / Cursor / Codex で利用できます):
npx skills add BofAI/skills -
sun-cli を確認する:
sun --version必要なバージョンは
1.2.2です。このバージョンにはsunpump launch、ボンディングカーブ取引、ウォレット不要の--dry-runプレビューが含まれています。インストールされていない場合、または別のバージョンがインストールされている場合は、グローバルパッケージを変更する前に承認を得てください。npm install -g @sun-protocol/[email protected] -
ウォレットを設定する(書き込みコマンドで必要 —
sun swap、sun sunpump buy、sun sunpump sell):export TRON_PRIVATE_KEY="your_private_key_here"別のウォレットソースとして、
TRON_MNEMONICまたはAGENT_WALLET_PASSWORDを使用できます。 -
任意の環境変数:
export TRON_NETWORK=mainnet # SunPump is mainnet only export TRONGRID_API_KEY=your_key export SUNPUMP_API_BASE_URL=... # override the API host if needed
AI エージェントのフラグ
AI エージェントから sun を呼び出す際は、必ず次のフラグを使用してください。
| フラグ | 用途 |
|---|---|
--json | 標準出力に機械可読な JSON を出力します |
--yes | 対話形式の確認プロンプトをスキップします(書き込みコマンドのみ) |
--dry-run | トランザクションを送信せずに書き込み操作をシミュレートします |
--fields | 出力を指定したカンマ区切りのフィールドに限定します |
--network | SunPump では mainnet を指定する必要があります。それ以外の値はすぐに拒否されます |
エージェントの標準的な呼び出しパターン(読み取り専用):
sun --json sunpump token get TXYZ...
書き込み操作(スワップ)で確認を明示的にスキップする場合:
sun --json --yes swap TRX TXYZ... 100000000
警告:SunPump は mainnet 専用です。 エンドポイント:
https://api-v2.sunpump.meme/pump-api。--networkにそれ以外の値を指定すると、CLI はSunPump is only available on mainnet (got "...")を出力します (nileとshastaも含みます)。--networkを省略するか、--network mainnetを指定してください。
コマンドリファレンス
1. ローンチ後の取引 — sun swap
SunPump のトークンが SunSwap に移行すると(tokenLaunchedInstant が null 以外で、swapPoolAddress が設定済み)、SunSwap Universal Router を通じて取引できます。任意の TRC20 ペアと同じ sun swap および sun swap:quote コマンドを使用してください。
パラメーター: tokenIn と tokenOut には、シンボル(TRX、USDT)または TRC20 コントラクトアドレスを指定できます。amountIn の単位は sun(最小単位 — TRX の場合、1 TRX = 1_000_000)です。--slippage は小数で指定します(デフォルトは 0.005 = 0.5%)。
ステップ A — 見積もりを取得する(読み取り専用、ウォレット不要)
sun --json swap:quote TRX TXYZ1234567890abcdefghijklmnopqrstuv 100000000
ユーザーに amountOut、価格への影響、ルートを表示します。
ステップ B — 購入(TRX → ミームトークン)
sun --json --yes swap TRX TXYZ1234567890abcdefghijklmnopqrstuv 100000000 --slippage 0.01
ステップ C — 売却(ミームトークン → TRX)
sun --json --yes swap TXYZ1234567890abcdefghijklmnopqrstuv TRX 1000000000000000000 --slippage 0.01
注記: ミームトークンの小数桁数はトークンによって異なります。
amountInを計算する前に、sun sunpump token get <address>でトークンのdecimalsを確認してください。
大口取引では、まずドライランを実行してください
sun --json --yes --dry-run swap TRX TXYZ... 1000000000
警告:
--dry-runではトランザクションの構造をプレビューするだけです。 残高の確認、プールの存在の検証、同じトークン間のスワップの拒否は行いません。 エージェントの事前検証チェックリストを参照してください。
ローンチ前のトークン(ボンディングカーブ上にあり、まだ SunSwap にないトークン)
tokenLaunchedInstant が null のトークンは、まだ SunPump のボンディングカーブ上にあるため、sun swap では取引できません。代わりに、セクション 2のローンチ前取引コマンドを使用してください。流動性の低いミームプールでは、より高いスリッページ(1~5%)が必要になることがよくあります。
2. ローンチ前取引 — sun sunpump buy / sun sunpump sell
SunPump のボンディングカーブ上にあるトークン(tokenLaunchedInstant == null、またはオンチェーン状態が TRADING/READY_TO_LAUNCH)は、SunPump ルーターコントラクトを通じて直接取引します。これらのコマンドは、初回売却時に TRC20 の承認を自動的に処理し、人間が読みやすい小数表記の値を受け付けます(コントラクトの呼び出し前に、CLI が TRX × 1e6、トークン × 10^decimals でスケーリングします)。
ステップ A — トークンがまだボンディングカーブ上にあることを確認する
sun --json sunpump state TXYZ1234567890abcdefghijklmnopqrstuv
{state, info: {tokenAddress, launched, price, trxReserve, tokenReserve}} を返します。state は次のいずれかです。
| 値 | ラベル | sun sunpump buy/sell で取引可能か |
|---|---|---|
0 | NOT_EXIST | いいえ(SunPump が認識していないトークン) |
1 | TRADING | はい |
2 | READY_TO_LAUNCH | はい(ボンディングカーブが満杯で、まもなく移行します) |
3 | LAUNCHED | いいえ — sun swap を使用してください |
重要:
sun-kitの TypeScript enum に含まれるのは 0~2 だけですが、オンチェーンコントラクトはローンチ済みトークンに対して 3 を返します。CLI は 3 をLAUNCHEDに対応付けるため、数値ではなく表示されたラベルを信頼してください。
ステップ B — 見積もりを取得する(読み取り専用、ウォレット不要)
sun --json sunpump quote-buy TXYZ... --trx 10
sun --json sunpump quote-sell TXYZ... --amount 1000
購入では、基本単位で {tokenAmount, fee} を返します。売却では、Sun 単位で {trxAmount, fee} を返します。どちらもオンチェーンの状態を考慮しません。見積もりが成功しても、取引が成功するとは限りません。必ず最初に state を確認してください。
ステップ C — 購入(TRX → ミームトークン)
sun --json --yes sunpump buy TXYZ... --trx 10
sun --json --yes sunpump buy TXYZ... --trx 10 --slippage 0.1 # 10% slippage
sun --json --yes sunpump buy TXYZ... --trx 10 --min-out 27955000000000000000000 # exact floor in raw units
| フラグ | 説明 |
|---|---|
--trx <amount> | 使用する TRX。小数表記(例:10 または 1.5)。CLI が内部で Sun にスケーリングします |
--slippage <n> | スリッページ許容値を小数で指定します(デフォルトは 0.05 = 5%。ミームトークンは価格変動が大きいです) |
--min-out <raw> | 出力されるトークンの最小量を基本単位の生値で指定し、スリッページ設定を上書きします |
戻り値:{txResult, tokenAddress, trxSpent, expectedTokens, minTokenOut, tronscanUrl}。
ステップ D — 売却(ミームトークン → TRX)
sun --json --yes sunpump sell TXYZ... --amount 1000
sun --json --yes sunpump sell TXYZ... --amount 1000 --decimals 6 # non-18-decimal token
sun --json --yes sunpump sell TXYZ... --amount 1000 --slippage 0.1
| フラグ | 説明 |
|---|---|
--amount <amount> | 売却するトークン数。小数表記(例:1000 または 12.5) |
--decimals <n> | トークンの小数桁数(デフォルトは 18。不明な場合は sun sunpump token get で確認してください) |
--slippage <n> | スリッページ許容値を小数で指定します(デフォルトは 0.05 = 5%) |
--min-out <raw> | 出力される TRX の最小量を Sun 単位で指定し、スリッページ設定を上書きします |
戻り値:{txResult, tokenAddress, tokensSold, expectedTrx, minTrxOut, tronscanUrl}。
初回の売却:承認量が不足している場合、SDK は実際の売却トランザクションの前に TRC20 の approve(SunPump, 2^256-1) を自動送信します。tronscanUrl に返されるのは、最後の売却トランザクションのハッシュだけです。
実行前にドライランを行う
sun --json --yes --dry-run sunpump buy TXYZ... --trx 10
sun --json --yes --dry-run sunpump sell TXYZ... --amount 1000
トランザクションをブロードキャストせずに、解決済みのパラメーター(TRX/Sun のスケーリング、計算された minOut、スリッページ、ネットワーク)を表示します。送信される内容をユーザーに正確に示す場合に便利です。
ネットワーク
SunPump はメインネット専用です。CLI は、メインネット以外の --network 値を次のメッセージとともに拒否します。
SunPump is only available on mainnet (got "...")。ルーターコントラクト:
TTfvyrAz86hbZk5iDpKD78pqLGgi8C7AAw。
3. ユーザーの保有状況を確認 — sun sunpump portfolio
ウォレットが保有する、SunPump が追跡しているすべてのトークンを、TRX 換算額とポートフォリオに占める割合とともに一覧表示します。
sun --json sunpump portfolio TMgYX7m37cyyTSgVbtCoDUAQcFZ9RoYxJW
オプション:
| フラグ | 説明 |
|---|---|
--include-zero | 残高がゼロのトークンも含めます |
--min-trx <amount> | 含めるための最低 TRX 換算額 |
--page <n> / --size <n> | ページネーション |
--sort <field> | 並べ替えフィールド(例:valueInTrx,desc) |
よくあるパターン
100 TRX 以上の保有額がある上位 20 件:
sun --json sunpump portfolio TMgYX7m37cyyTSgVbtCoDUAQcFZ9RoYxJW --min-trx 100 --size 20 --sort valueInTrx,desc
デフォルトのテーブル列:Symbol | Address | Balance | Price (TRX) | Value (TRX) | Percent。
4. 取引履歴 — sun sunpump tx user
ウォレットの SunPump でのスワップ履歴を一覧表示します。各行は、SunPump のボンディングカーブまたは SunSwap プールでの買いまたは売りを表します。
sun --json sunpump tx user TMgYX7m37cyyTSgVbtCoDUAQcFZ9RoYxJW --size 20
フィルターオプション:
| フラグ | 説明 |
|---|---|
--swap-type <BUY|SELL> | 取引方向のフィルター |
--pool <address> | 特定のスワッププール |
--tx-hash <hash> | 単一のトランザクションを検索 |
--block <n> | ブロック番号でフィルター |
--start-time <epoch> / --end-time <epoch> | 時間範囲(エポック 秒) |
--page <n> / --size <n> | ページネーション |
--sort <field> | 並べ替えフィールド(例:txDateTime,desc) |
よくあるパターン
直近 20 件の買いのみ:
sun --json sunpump tx user TMgYX7m37cyyTSgVbtCoDUAQcFZ9RoYxJW --swap-type BUY --size 20
指定した期間内の、あるウォレットの取引:
sun --json sunpump tx user TMgYX7m37cyyTSgVbtCoDUAQcFZ9RoYxJW --start-time 1747699200 --end-time 1747785600 --size 50
NOTE:
--start-time/--end-timeはエポック 秒であり、ミリ秒ではありません。ISO 日付はdate -j -f "%Y-%m-%d" "2026-05-20" +%s(macOS)またはdate -d "2026-05-20" +%s(Linux)で変換してください。
デフォルトのテーブル列:Time | Type | From → To | Volume | TxHash。
5. トークン情報 — sun sunpump token get
コントラクトアドレスを指定して、SunPump トークンのすべてのメタデータを取得します。価格、時価総額、24 時間の取引量、保有者数、総供給量、所有者、スワッププールのアドレス、ソーシャルリンク、ローンチ状況が返されます。
sun --json sunpump token get TXYZ1234567890abcdefghijklmnopqrstuv
人間が読みやすい形式(--json を指定しない場合)では、CLI はラベル付きの詳細情報を表示します。JSON 形式では、生のトークンオブジェクトを返します。
確認するフィールド
| フィールド | 意味 |
|---|---|
contractAddress | ミームトークンの TRC20 アドレス |
symbol、name、description | 表示用メタデータ |
priceInTrx、priceInUsd | 現在の価格 |
marketCap、volume24Hr | 市場指標(USD) |
priceChange24Hr | 24 時間の価格変動(小数。例:0.18 = +18%) |
holders、totalSupply | 分配状況の統計 |
tokenCreatedInstant | ボンディングカーブの作成時刻 |
tokenLaunchedInstant | SunSwap でのローンチ時刻(未ローンチの場合は null) |
swapPoolAddress | 取引に使用するプール(ローンチ前は null) |
pumpPercentage | ボンディングカーブの充填率(ローンチ前のみ) |
ownerAddress | 作成者のウォレット |
websiteUrl、twitterUrl、telegramUrl、listOn | ソーシャルリンクと CEX 上場情報 |
コンテキスト量が少ない応答では出力を制限する
sun --json --fields symbol,priceInUsd,marketCap,volume24Hr,priceChange24Hr sunpump token get TXYZ...
6. ランキング — sun sunpump token ranking
指定した指標に基づいて、SunPump トークンの上位を取得します。--type は必須です。
sun --json sunpump token ranking --type MARKET_CAP --size 10
有効な --type の値(大文字と小文字を区別):
| 値 | 意味 |
|---|---|
MARKET_CAP | 時価総額が大きいトークン |
VOLUME_24H | 24 時間の取引量が多いトークン |
PRICE_CHANGE_24H | 24 時間の価格上昇率が高いトークン |
IMPORTANT: それ以外の値は API に拒否されます。呼び出す前に必ず
--typeを検証してください。
オプション:
| フラグ | 説明 |
|---|---|
--size <n> | エントリー数(デフォルトはサーバーによって異なり、通常の最大値は 50) |
よくあるパターン
時価総額上位 10 件:
sun --json sunpump token ranking --type MARKET_CAP --size 10
24 時間の取引量上位 10 件:
sun --json sunpump token ranking --type VOLUME_24H --size 10
24 時間の上昇率上位 10 件:
sun --json sunpump token ranking --type PRICE_CHANGE_24H --size 10
デフォルトのテーブル列:Symbol | Name | Address | Price | MCap | Volume24h。
7. 上位保有者 — sun sunpump token holders
指定した SunPump トークンを保有する上位ウォレットを、残高と割合とともに一覧表示します。
sun --json sunpump token holders TXYZ1234567890abcdefghijklmnopqrstuv --size 20
オプション:
| フラグ | 説明 |
|---|---|
--include-zero | 残高がゼロのウォレットを含めます |
--page <n> / --size <n> | ページネーション |
--sort <field> | 並べ替えフィールド(デフォルト:残高の降順) |
デフォルトのテーブル列:Holder | Type | Balance | Percent。
NOTE: holders エンドポイントの
percentフィールドはすでにパーセント値です(例:38.51= 38.51%)。一方、token-list エンドポイントでは小数値として返されます(例:0.3851= 38.51%)。CLI はどちらの形式かを自動判定しますが、生の JSON を読む場合は、値の大きさを確認してから解釈してください。
holders の結果が少ない場合は、sunpump token get <address> も呼び出して、総数を示す holders フィールドを確認してください。
8. トークンの作成 — sun sunpump launch
エージェントエンドポイント(POST /ai/agentTokenLaunch)を通じて、SunPump 上に新しいミームトークンを作成します。作成処理はサーバー側で行われます。プラットフォームが作成トランザクションに署名してブロードキャストするため、ウォレットは不要です。新しいトークンはボンディングカーブ上(状態 1 TRADING)で開始し、すぐに sun sunpump buy で購入できます。
sun --json --yes sunpump launch \
--name "My Meme" \
--symbol MEME \
--description "The dankest meme on TRON" \
--image ./logo.png \
--twitter-url https://x.com/mymeme \
--telegram-url https://t.me/mymeme \
--website-url https://mymeme.example
| フラグ | 必須 | 説明 |
|---|---|---|
--name <name> | ✓ | トークン名 |
--symbol <symbol> | ✓ | トークンシンボル(ティッカー) |
--description <text> | ✓ | トークンの説明 |
--image <path> | 強く推奨 | ロゴ画像ファイル — ローカルで読み込み、base64 として送信します |
--image-base64 <data> | base64 文字列のロゴ(data-URI のプレフィックスなし。--image より優先されます) | |
--twitter-url <url> | Twitter/X の URL | |
--telegram-url <url> | Telegram の URL | |
--website-url <url> | ウェブサイトの URL | |
--tweet-username <name> | ローンチに関連付けるツイートのユーザー名 |
contractAddress、createTxHash、logoUrl を含む完全なトークンオブジェクトを返します。
WARNING: ロゴを指定してください。
--image/--image-base64を指定せずにローンチすると、不明瞭なサーバーエラーInvoke third part errorが発生することがあります。必ずロゴ画像を添付してください。このエラーが発生した場合は、--image <path>を指定して再試行してください。
NOTE:
--jsonモードのタイムスタンプに関する注意点。 GET エンドポイント(エポック秒)とは異なり、ローンチエンドポイントはtokenCreatedInstant/tokenLaunchedInstant/firstReachHillInstantをエポックミリ秒 ÷ 1e6 としてシリアライズします(例:1780476.327)。CLI は人が読みやすい表示の場合に限り、これらを正規化します。--jsonモードでは生の値が返されます。エポック秒にするには 1000 を掛けてください。
WARNING: メインネット専用です。 すべての
sunpumpサブコマンドと同様に、launchはメインネット専用です。sunpumpコマンドグループはpreActionガードを実行し、メインネット以外の--networkが指定されるとSunPump is only available on mainnet (got "...")をスローします。これはアクションの実行前に発生するため、--dry-runの場合も同様です。--networkを省略するか、--network mainnetを指定してください。
まずドライランを実行する
sun --json --yes --dry-run sunpump launch --name "My Meme" --symbol MEME --description "..." --image ./logo.png
API を呼び出さずに、画像サイズを含む解決済みパラメーターを表示します。これを使って、作成される内容をユーザーに正確に示してください。メインネットガードは引き続き適用されます(--dry-run --network nile は、プレビュー前にエラーになります)。
作成後に確認する
sun --json sunpump token get <contractAddress> # metadata is live
sun --json sunpump state <contractAddress> # expect state 1 (TRADING)
エージェントの事前検証チェックリスト
書き込み操作(sun swap、sun sunpump buy、sun sunpump sell、sun sunpump launch)を実行する前に、AI エージェントは次の確認を必ず行ってください。
ステップ 0 — 使用する取引経路を決める
sun --json sunpump state <memeTokenAddress>
state == 0(NOT_EXIST)→ 中止:SunPump でトークンが認識されませんstate == 1(TRADING)または2(READY_TO_LAUNCH)→sun sunpump buy/sellを使用しますstate == 3(LAUNCHED)→sun swapを使用します
sun sunpump buy/sun sunpump sell の前(ローンチ前の経路)
-
--trxとガス用の予備分(1 TRX 以上を推奨)をまかなえるだけのTRX残高があることを確認します。sun --json wallet balances -
売却の場合は、トークン残高が
--amount以上であることを確認します。 SunPumpのポートフォリオAPIにまだトークンが含まれていない場合は、TRC20残高を直接照会します。sun --json contract read <tokenAddress> balanceOf --args "[\"<walletAddress>\"]" -
売却の
--amountを渡す前に、トークンの小数桁数を確認します。 小数桁数のデフォルトは18ですが、異なる場合があります。sun --json sunpump token get <memeTokenAddress> # read decimals sun --json --yes sunpump sell <token> --amount 1000 --decimals <n> -
スリッページが0.005~0.10(0.5%~10%)の範囲内であることを確認します。 デフォルトは5%で、ミームトークンに適しています。この範囲外の値は、ユーザーの確認なしに拒否してください。
-
--networkはmainnetである必要があります。 それ以外の値を指定すると、CLIはただちにエラーを返します。
sun swap の前(ローンチ後の経路)
-
残高が十分であることを確認します。
sun --json wallet balancesトークン残高と
amountInを比較します。残高が不足している場合は中止してください。 -
トークンがローンチ済みであることを確認します。
sun --json sunpump token get <memeTokenAddress>tokenLaunchedInstantがnull以外で、swapPoolAddressが設定されている必要があります。ローンチ前の場合は、代わりにsun sunpump buy/sellの経路を使用してください。 -
tokenIn ≠ tokenOut であることを確認します。 同一トークン間のスワップは
--dry-runでは拒否されません。 -
スリッページが妥当であることを確認します。 ミームトークンでは、スリッページを1~5%にする必要がある場合がよくあります。0.001(0.1%)~0.10(10%)の範囲外の値は、確認のためにフラグを立ててください。
-
--networkを確認します。sun swapは一般的なTRC20ペアでmainnet/nile/shastaを受け付けますが、SunPumpから移行したトークンは引き続きmainnetのみです。mainnet以外のネットワークで見積もりを取得する前に、移行先を確認してください。
sun sunpump launch の前(トークンの作成)
-
必須の3項目(
--name、--symbol、--description)をすべてユーザーに確認します。 これらはオンチェーンメタデータとして永続するため、決して作り出したり、自動入力したりしないでください。 -
ロゴ画像を必須にします。 画像なしでローンチすると、
Invoke third part errorが発生することがよくあります。続行する前に、画像ファイルのパス(またはbase64データ)をユーザーに尋ね、ファイルが存在し、妥当な画像(PNG/JPG、1 MB未満を推奨)であることを確認してください。 -
紛らわしい重複を避けるため、同じシンボルのトークンがすでに存在しないか確認します。
sun --json sunpump token search <symbol>類似するものがある場合はユーザーに提示し、実行する意図を確認してください。
-
実際に呼び出す前にドライランを行い、正確なペイロードをユーザーに提示します。
sun --json --yes --dry-run sunpump launch --name "..." --symbol ... --description "..." --image ./logo.png -
--networkはmainnetである必要があります。 SunPumpのローンチはmainnetのみです。sunpumpグループのpreActionガードは、--dry-runの場合も含め、ほかの値を指定するとエラーを返します。--networkを省略するか、--network mainnetを指定してください。 -
ユーザーから明示的な確認を得てから、一度だけローンチします。 トークンの作成は取り消せません。成功した可能性があるローンチを決して再試行せず、まず
sun sunpump token search <symbol>で確認してください。
読み取り専用の呼び出しを行う前に
token rankingの--typeがMARKET_CAP、VOLUME_24H、またはPRICE_CHANGE_24Hであることを確認します。- ユーザーが指定した日付は、
tx user --start-time / --end-timeに渡す前に、エポック秒(ミリ秒ではありません)に変換します。 - アドレスがTRONのbase58形式(
T...、34文字)であることを確認します。不正なアドレスを指定すると、空の結果または内容の分からないAPIエラーが返されます。
推奨ワークフロー
パターン1 — ミームトークンを購入する(ローンチ前/後の経路を自動で選択)
ステップ1 — 取引経路を判断します。
sun --json sunpump state TXYZ...
state == 3(LAUNCHED)→ パターン1aに従いますstate == 1または2(ボンディング中)→ パターン1bに従いますstate == 0(NOT_EXIST)→ 中止します
ユーザー向けのプレビューに必要なメタデータも取得します。
sun --json sunpump token get TXYZ...
価格、24時間の変動率、時価総額、保有者数をユーザーに表示します。該当する場合は、上位5人の保有者への集中に関する警告も表示します。
パターン1a — sun swap を使ったローンチ後の購入
sun --json swap:quote TRX TXYZ... 100000000 # quote (no wallet)
sun --json wallet balances # check funds
sun --json --yes swap TRX TXYZ... 100000000 --slippage 0.01
パターン1b — sun sunpump buy を使ったローンチ前の購入
sun --json sunpump quote-buy TXYZ... --trx 10 # quote (no wallet)
sun --json wallet balances # check funds
sun --json --yes sunpump buy TXYZ... --trx 10 # default 5% slippage
入力値は小数表記です。--trx 10 は10 Sunではなく、10 TRXを意味します。デフォルトのスリッページは 0.05(5%)です。ミームトークンのボンディングカーブ取引は急速に変動します。スリッページを小さくするには --slippage 0.005 を、基準数量単位で下限を固定するには --min-out <raw> を使用してください。
パターン 2 — ポジションを売却する(起動前後を自動で振り分け)
ステップ 1 — ユーザーのポジションを一覧表示します:
sun --json sunpump portfolio TMgYX7m37cyyTSgVbtCoDUAQcFZ9RoYxJW --min-trx 1 --size 50
ステップ 2 — ユーザーがトークンを選択します。処理経路を判定します:
sun --json sunpump state TXYZ...
sun --json sunpump token get TXYZ... # also read `decimals` for sell amount scaling
パターン 2a — 起動後の sun swap による売却
sun --json swap:quote TXYZ... TRX <amountInSmallestUnits>
sun --json --yes swap TXYZ... TRX <amount> --slippage 0.02
パターン 2b — 起動前の sun sunpump sell による売却
sun --json sunpump quote-sell TXYZ... --amount 1000 --decimals 18
sun --json --yes sunpump sell TXYZ... --amount 1000 --decimals 18
対象のトークンを初めて売却する際は、TRC20 の approve トランザクションが自動的に実行されます。返されるのは、最後の売却トランザクションのハッシュのみです。
パターン 3 — トークンを見つけて調査する
現在の値上がり率上位:
sun --json sunpump token ranking --type PRICE_CHANGE_24H --size 10
1 つを調べる:
sun --json sunpump token get TXYZ...
保有者の集中度を確認する:
sun --json sunpump token holders TXYZ... --size 20
少数のウォレットが合計で 50% を超えて保有している場合は危険信号です。ユーザーに知らせてください。
パターン 4 — ウォレットを監査する
現在の保有状況:
sun --json sunpump portfolio T... --min-trx 1 --sort valueInTrx,desc --size 50
最近の取引:
sun --json sunpump tx user T... --size 20 --sort txDateTime,desc
買いのみを絞り込む:
sun --json sunpump tx user T... --swap-type BUY --size 20
パターン 5 — 新しいトークンを起動する
ステップ 1 — ユーザーからメタデータを収集し、内容を確認します: 名前、シンボル、説明、ロゴ画像、任意のソーシャルリンク。
ステップ 2 — シンボルの重複を確認します:
sun --json sunpump token search MEME
ステップ 3 — ドライランを実行し、ペイロードをユーザーに表示します:
sun --json --yes --dry-run sunpump launch --name "My Meme" --symbol MEME --description "..." --image ./logo.png
ステップ 4 — ユーザーが確認したら起動します(一度だけ):
sun --json --yes sunpump launch --name "My Meme" --symbol MEME --description "..." --image ./logo.png \
--twitter-url https://x.com/mymeme --telegram-url https://t.me/mymeme --website-url https://mymeme.example
ステップ 5 — 検証して結果をユーザーに返します:
sun --json sunpump token get <contractAddress>
sun --json sunpump state <contractAddress> # expect 1 (TRADING)
ユーザーには、コントラクトアドレス、作成トランザクションのハッシュ(createTxHash)、ロゴ URL、Tronscan のリンク(https://tronscan.org/#/transaction/<createTxHash>)を提示します。トークンはボンディングカーブ上で公開され、パターン 1b で購入できる状態です。
セキュリティルール
重大:秘密鍵を絶対に表示しない
禁止事項: 秘密鍵、シードフレーズ、ニーモニック、秘密情報を含む環境変数の値、エージェントウォレットのパスワード。
許可される情報: 公開ウォレットアドレス、トランザクションハッシュ、トークン残高、価格。
重大:取引の前に必ずプレビューする
AI エージェントは、最初にユーザーにプレビューを表示せずに sun swap または sun sunpump buy/sell を絶対に実行してはいけません。正しい手順は、どちらの経路でも次のとおりです。
sun --json sunpump state <address>— 取引経路(起動前/起動後)を判定しますsun --json sunpump token get <address>— メタデータ、保有者の集中度、小数点以下の桁数を表示します- 見積もり —
sun --json swap:quote ...またはsun --json sunpump quote-buy/sell ...— 予想出力、手数料、価格への影響を表示します sun --json wallet balances— 資金が十分か確認します- ユーザーに確認を求めます
--yesを付けて実行します:sun --json --yes swap ...またはsun --json --yes sunpump buy/sell ...
警告: 最初の呼び出しに
--yesを付けないでください。ユーザーがプレビューを確認して承認した後にのみ、--yesを使用してください。
重大:トークンを起動する前に必ずプレビューする
sun sunpump launch は、オンチェーンに永続するトークンを作成します。正しい手順は次のとおりです。
- ユーザーから
--name/--symbol/--description/ロゴを収集します。内容を決して独自に作成してはいけません sun --json sunpump token search <symbol>— シンボルの重複をユーザーに知らせますsun --json --yes --dry-run sunpump launch ...— 正確なペイロードをユーザーに表示します- ユーザーに確認を求めます
--yesを付けて一度だけ実行します
重大:トランザクションの重複を防ぐ
- ユーザーのコマンド 1 つにつき、トランザクションは 1 つだけです
- スワップまたは起動が成功したら、完了済みとして記録します
- 成功したトランザクションを、ユーザーに知らせずに再試行してはいけません
launchの呼び出しで曖昧なエラー(タイムアウト、詳細不明のサーバーエラー)が発生した場合、再試行する前にsun sunpump token search <symbol>を確認してください。トークンはすでに存在している可能性があります
重大:保有者の集中度を明示する
ミームトークンはラグプルの被害を受けやすいです。トークン情報をユーザーに提示する際は、保有者の集中度も併せて提示してください。上位 5 人の保有者が合計で供給量の 40% を超えて保有している場合は、ユーザーに明確に警告してください。
ユーザーとのコミュニケーション手順
スワップの前:
Token: PEPE (TXYZ...)
Price: $0.000123 • 24h: +18.4% • MCap: $2.4M • Holders: 1,420
Top 5 hold: 31.2%
Quote: 100 TRX → 812,344 PEPE
Route: TRX → WTRX → PEPE
Price Impact: 0.42%
Slippage tolerance: 1%
Proceed with buy?
成功後:
Swap completed.
Transaction: abc123...
Explorer: https://tronscan.org/#/transaction/abc123...
Bought: 100 TRX → 812,344 PEPE
トークンの起動前:
About to create a new SunPump token (irreversible):
Name: My Meme
Symbol: MEME
Description: The dankest meme on TRON
Logo: ./logo.png (24,310 bytes)
Socials: x.com/mymeme • t.me/mymeme • mymeme.example
No similarly-named token found on SunPump.
Proceed with launch?
トークンの起動が成功した後:
Token created.
Contract: TXYZ...
Create Tx: abc123...
Explorer: https://tronscan.org/#/transaction/abc123...
Logo: https://.../logo.png
State: TRADING (bonding curve) — buyable via `sun sunpump buy`
既知の制限事項
| 問題 | 影響を受けるコマンド | 動作 | エージェント側の回避策 |
|---|---|---|---|
--dry-run では残高がチェックされない | swap | 残高が不足していてもプレビューが返される | 先に wallet balances で確認する |
| 同一トークンのスワップが拒否されない | swap | dry-run で TRX→TRX を受け付ける | 呼び出す前に tokenIn ≠ tokenOut を確認する |
| SunSwap にローンチ前のトークンが存在しない | SunPump トークンに対する swap | プールが存在せず、スワップはオンチェーンで失敗する | 代わりに sun sunpump buy/sell を使用する — sunpump state で確認する |
sunpump quote-buy/sell は状態を無視する | sunpump quote-* | LAUNCHED 状態のトークンでも価格を返す(quote-sell はリバートする場合がある) | 見積もりの前に必ず sunpump state を呼び出す |
| sun-kit の列挙型では状態 2 と 3 のラベルが誤っている | sunpump.buyToken/sellToken 内部チェック | TS の列挙型では LAUNCHED=2 ですが、コントラクトはローンチ済みの場合に 3 を返す | CLI のラベルを信頼し、実際の整数値ではなく表示された LAUNCHED (3) を参照する |
| 初回の売却には TRC20 の approve が必要 | sunpump sell | オンチェーン tx が 2 件(approve + sell)発生し、返されるのは sell の tx ハッシュのみ | 想定どおりです。2 回目以降の売却では、キャッシュされた MaxUint256 の allowance が使用されます |
| SunPump はメインネット専用 | すべての sunpump サブコマンド | 他の --network では CLI が SunPump is only available on mainnet をスローする | --network を省略するか、--network mainnet を渡す。nile/shasta の API ホストには一般公開でアクセスできません |
ランキングで無効な --type | token ranking | API が分かりにくいエラーで拒否する | MARKET_CAP、VOLUME_24H、PRICE_CHANGE_24H のみを渡す |
--start-time / --end-time はミリ秒ではなく秒 | tx user、tx token | ミリ秒の値では結果が空になる | エポック秒を使用する |
percent フィールドの値の大きさはエンドポイントごとに異なる | token holders と token list | holders エンドポイントは 38.51 を返し、list エンドポイントは 0.3851 を返す | CLI で正規化されますが、生の JSON を使用する場合は値の大きさを確認する |
| ロゴなしでのローンチは分かりにくいエラーで失敗する | sunpump launch | ローンチ時に画像が指定されていないと、サーバーは Invoke third part error を返す | 必ず --image <path>(または --image-base64)を渡す |
ローンチの *Instant フィールドは標準外の単位を使用する | sunpump launch(--json モード) | tokenCreatedInstant などは、エポックミリ秒を 1e6 で割った値(例:1780476.327)で返され、エポック秒ではない | エポック秒にするには 1000 を掛ける。CLI が正規化するのは人間が読みやすい形式の場合のみ |
トラブルシューティング
"sun: command not found"
npm install -g @sun-protocol/[email protected]
SunPump クエリで結果が空になる
- アドレスが有効な TRON base58(
T...、34 文字)であることを確認します - どのオプションがすべての結果を除外しているか特定するため、フィルターなしで同じコマンドを試します
tx userの時間範囲では、タイムスタンプがエポックの秒であることを確認します
SunPump トークンのスワップが失敗する
- 最初に
sun sunpump state <address>を実行します。状態が1(TRADING)または2(READY_TO_LAUNCH)の場合は、sun swapではなくsun sunpump buy/sellを使用します。 - 状態が
3(LAUNCHED)で、それでもswapが失敗する場合は、--slippageを大きくしてみます(ミームプールでは 1~5% が必要な場合があります)。 - ウォレットにガス代として 100 TRX 以上あることを確認します。
sun sunpump buy/sell が SUNPUMP_LAUNCHED で失敗する
トークンはすでに SunSwap に移行しています。sun swap に切り替えてください。
sun sunpump sell の quote-sell がリバートする
トークンの状態は 3(LAUNCHED)です。ボンディングカーブのコントラクトは、トークンの移行後は売却を拒否します。代わりに sun swap を使用してください。
sun sunpump launch が Invoke third part error で失敗する
ローンチ時にロゴ画像が不足していた可能性が高いです。--image <path>(または --image-base64 <data>)を指定して再試行します。それでも失敗する場合は、画像が有効な PNG/JPG であることを確認し、より小さなファイルを試してください。
sun sunpump launch がタイムアウトする、または曖昧なエラーを返す
サーバー側ではトークンが作成されている可能性があります。再試行する前に、次を確認してください。
sun --json sunpump token search <symbol>
トークンが存在する場合は、ローンチは成功したものとして扱い、再度ローンチしないでください。
書き込みコマンドでのみ "Wallet not configured" が表示される
TRON_PRIVATE_KEY、TRON_MNEMONIC、AGENT_WALLET_PASSWORD のいずれかを設定します。読み取り専用の sunpump コマンド、sunpump launch、--dry-run プレビューでは、ウォレットは必要ありません。
ネットワークエラー/タイムアウト
- インターネット接続を確認してください
- メインネットでは、
TRONGRID_API_KEYを設定してください - SunPump 自体はメインネット専用です。テストネットの API ホストは内部専用であり、一般にはアクセスできません
- スキルのバージョン: 2.0.0
- ランタイム依存関係:
@sun-protocol/[email protected]最終更新日: 2026-07-09 メンテナー: Bank of AI Team