mcpField
S
SunPump Meme Token Toolkit

SunPump Meme Token Toolkit

github.com/bofaiその他16366 回インストール6 日前に更新
リポジトリ

SunPump Meme Token Toolkit について

SunPump Meme Token Toolkitは、sun-cliでTRONのミームトークンローンチパッドSunPumpを照会・取引するスキルです。トークン発行、ボンディングカーブやSunSwapでの取引、保有状況、取引履歴、トークン情報を扱い、取引にはウォレット設定が必要です。

主な機能

  1. 01ウォレットなしでトークンを発行
  2. 02ボンディングカーブ上の発行前トークンを取引
  3. 03SunSwapで発行済みトークンを取引
  4. 04ウォレットの保有状況と取引履歴を確認
  5. 05トークン詳細、ランキング、保有者を照会
  6. 06dry-runで書き込み操作をプレビュー

活用シーン

  1. 01SunPumpでトークンを発行
  2. 02取引ルート選択前にトークン状態を確認
  3. 03ウォレット保有分とSunPump取引を確認
  4. 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つの基本的なフローを扱います。

  1. 新しいミームトークンを作成(ローンチ)する(sun sunpump launch)— サーバー側で作成されるため、ウォレットは不要です
  2. SunSwap を通じてローンチ後のトークンを取引する(sun swap)
  3. SunPump のボンディングカーブでローンチ前のトークンを取引する(sun sunpump buy / sun sunpump sell)
  4. ウォレットのポジションを確認する(sun sunpump portfolio)
  5. ウォレットの取引履歴を表示する(sun sunpump tx user)
  6. トークン情報を検索する(sun sunpump token get)
  7. トークンランキングを確認する(sun sunpump token ranking)
  8. トークンの上位保有者を一覧表示する(sun sunpump token holders)

ローンチ前とローンチ後の判断 — 適切な取引コマンドを選択します。

トークンの状態tokenLaunchedInstantswapPoolAddress使用する取引コマンド
ローンチ前(ボンディングカーブ)nullnullsun 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 プレビューには、ウォレット認証情報は不要です。

  1. このスキルをインストールする(一度だけ実行すれば、Claude Code / Cursor / Codex で利用できます):

    npx skills add BofAI/skills
    
  2. sun-cli を確認する:

    sun --version
    

    必要なバージョンは 1.2.2 です。このバージョンには sunpump launch、ボンディングカーブ取引、ウォレット不要の --dry-run プレビューが含まれています。インストールされていない場合、または別のバージョンがインストールされている場合は、グローバルパッケージを変更する前に承認を得てください。

    npm install -g @sun-protocol/[email protected]
    
  3. ウォレットを設定する(書き込みコマンドで必要 — sun swap、sun sunpump buy、sun sunpump sell):

    export TRON_PRIVATE_KEY="your_private_key_here"
    

    別のウォレットソースとして、TRON_MNEMONIC または AGENT_WALLET_PASSWORD を使用できます。

  4. 任意の環境変数:

    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出力を指定したカンマ区切りのフィールドに限定します
--networkSunPump では 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 で取引可能か
0NOT_EXISTいいえ(SunPump が認識していないトークン)
1TRADINGはい
2READY_TO_LAUNCHはい(ボンディングカーブが満杯で、まもなく移行します)
3LAUNCHEDいいえ — 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)
priceChange24Hr24 時間の価格変動(小数。例:0.18 = +18%)
holders、totalSupply分配状況の統計
tokenCreatedInstantボンディングカーブの作成時刻
tokenLaunchedInstantSunSwap でのローンチ時刻(未ローンチの場合は 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_24H24 時間の取引量が多いトークン
PRICE_CHANGE_24H24 時間の価格上昇率が高いトークン

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 の前(ローンチ前の経路)
  1. --trx とガス用の予備分(1 TRX 以上を推奨)をまかなえるだけのTRX残高があることを確認します。

    sun --json wallet balances
    
  2. 売却の場合は、トークン残高が --amount 以上であることを確認します。 SunPumpのポートフォリオAPIにまだトークンが含まれていない場合は、TRC20残高を直接照会します。

    sun --json contract read <tokenAddress> balanceOf --args "[\"<walletAddress>\"]"
    
  3. 売却の --amount を渡す前に、トークンの小数桁数を確認します。 小数桁数のデフォルトは18ですが、異なる場合があります。

    sun --json sunpump token get <memeTokenAddress>  # read decimals
    sun --json --yes sunpump sell <token> --amount 1000 --decimals <n>
    
  4. スリッページが0.005~0.10(0.5%~10%)の範囲内であることを確認します。 デフォルトは5%で、ミームトークンに適しています。この範囲外の値は、ユーザーの確認なしに拒否してください。

  5. --network は mainnet である必要があります。 それ以外の値を指定すると、CLIはただちにエラーを返します。

sun swap の前(ローンチ後の経路)
  1. 残高が十分であることを確認します。

    sun --json wallet balances
    

    トークン残高と amountIn を比較します。残高が不足している場合は中止してください。

  2. トークンがローンチ済みであることを確認します。

    sun --json sunpump token get <memeTokenAddress>
    

    tokenLaunchedInstant がnull以外で、swapPoolAddress が設定されている必要があります。ローンチ前の場合は、代わりに sun sunpump buy/sell の経路を使用してください。

  3. tokenIn ≠ tokenOut であることを確認します。 同一トークン間のスワップは --dry-run では拒否されません。

  4. スリッページが妥当であることを確認します。 ミームトークンでは、スリッページを1~5%にする必要がある場合がよくあります。0.001(0.1%)~0.10(10%)の範囲外の値は、確認のためにフラグを立ててください。

  5. --network を確認します。 sun swap は一般的なTRC20ペアで mainnet/nile/shasta を受け付けますが、SunPumpから移行したトークンは引き続きmainnetのみです。mainnet以外のネットワークで見積もりを取得する前に、移行先を確認してください。

sun sunpump launch の前(トークンの作成)
  1. 必須の3項目(--name、--symbol、--description)をすべてユーザーに確認します。 これらはオンチェーンメタデータとして永続するため、決して作り出したり、自動入力したりしないでください。

  2. ロゴ画像を必須にします。 画像なしでローンチすると、Invoke third part error が発生することがよくあります。続行する前に、画像ファイルのパス(またはbase64データ)をユーザーに尋ね、ファイルが存在し、妥当な画像(PNG/JPG、1 MB未満を推奨)であることを確認してください。

  3. 紛らわしい重複を避けるため、同じシンボルのトークンがすでに存在しないか確認します。

    sun --json sunpump token search <symbol>
    

    類似するものがある場合はユーザーに提示し、実行する意図を確認してください。

  4. 実際に呼び出す前にドライランを行い、正確なペイロードをユーザーに提示します。

    sun --json --yes --dry-run sunpump launch --name "..." --symbol ... --description "..." --image ./logo.png
    
  5. --network は mainnet である必要があります。 SunPumpのローンチはmainnetのみです。sunpump グループの preAction ガードは、--dry-run の場合も含め、ほかの値を指定するとエラーを返します。--network を省略するか、--network mainnet を指定してください。

  6. ユーザーから明示的な確認を得てから、一度だけローンチします。 トークンの作成は取り消せません。成功した可能性があるローンチを決して再試行せず、まず 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 を絶対に実行してはいけません。正しい手順は、どちらの経路でも次のとおりです。

  1. sun --json sunpump state <address> — 取引経路(起動前/起動後)を判定します
  2. sun --json sunpump token get <address> — メタデータ、保有者の集中度、小数点以下の桁数を表示します
  3. 見積もり — sun --json swap:quote ... または sun --json sunpump quote-buy/sell ... — 予想出力、手数料、価格への影響を表示します
  4. sun --json wallet balances — 資金が十分か確認します
  5. ユーザーに確認を求めます
  6. --yes を付けて実行します:sun --json --yes swap ... または sun --json --yes sunpump buy/sell ...

警告: 最初の呼び出しに --yes を付けないでください。ユーザーがプレビューを確認して承認した後にのみ、--yes を使用してください。

重大:トークンを起動する前に必ずプレビューする

sun sunpump launch は、オンチェーンに永続するトークンを作成します。正しい手順は次のとおりです。

  1. ユーザーから --name/--symbol/--description/ロゴを収集します。内容を決して独自に作成してはいけません
  2. sun --json sunpump token search <symbol> — シンボルの重複をユーザーに知らせます
  3. sun --json --yes --dry-run sunpump launch ... — 正確なペイロードをユーザーに表示します
  4. ユーザーに確認を求めます
  5. --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 で確認する
同一トークンのスワップが拒否されないswapdry-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 ホストには一般公開でアクセスできません
ランキングで無効な --typetoken rankingAPI が分かりにくいエラーで拒否するMARKET_CAP、VOLUME_24H、PRICE_CHANGE_24H のみを渡す
--start-time / --end-time はミリ秒ではなく秒tx user、tx tokenミリ秒の値では結果が空になるエポック秒を使用する
percent フィールドの値の大きさはエンドポイントごとに異なるtoken holders と token listholders エンドポイントは 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

コメント