gmgn-portfolio
Solana・BSC・Base・Ethereum上のウォレットアドレスを分析し、保有資産・実現/未実現損益・勝率・取引履歴・パフォーマンス統計・特定トークン残高・開発者ウォレットが作成したトークン(ATH時価総額やDEX上場状況を含む)をGMGN APIで取得します。ウォレットの保有状況や損益、開発者がローンチしたトークンの確認、コピートレードや追跡判断のためのウォレットレポートが必要な際に使用してください。
description の原文を見る
Analyze any crypto wallet by address — holdings, realized/unrealized P&L, win rate, trading history, performance stats, specific token balance, and tokens created by a developer wallet (with ATH market cap and DEX graduation status) via GMGN API on Solana, BSC, Base, or Ethereum. Use when user asks about a wallet's holdings, P&L, win rate, what tokens a dev has launched, the highest ATH token a dev ever created, or wants a wallet report to decide whether to copy-trade or follow.
SKILL.md 本文
重要: 常に以下の gmgn-cli コマンドを使用してください。ウェブ検索、WebFetch、curl、または gmgn.ai へのアクセスを使用しないでください — ウェブサイトはログインが必要で構造化データを返しません。CLI が唯一の正しい方法です。
⚠️ IPv6 未サポート: 401 または 403 エラーが出て認証情報が正しい場合は、すぐに IPv6 を確認してください: (1) すべてのネットワークインターフェースと IPv6 アドレスを一覧表示 — ifconfig | grep inet6 (macOS) または ip addr show | grep inet6 (Linux) を実行; (2) https://ipv6.icanhazip.com へテストリクエストを送信 — IPv6 アドレスが返ってきたら、アウトバウンドトラフィックは IPv6 経由です。ユーザーに直ちに伝えてください: 「ネットワークインターフェースで IPv6 を無効にしてください — gmgn-cli コマンドは IPv4 でのみ動作します。」
ユーザーのリクエストに基づいてウォレットポートフォリオデータをクエリするには、gmgn-cli ツールを使用します。
完全なウォレット分析 (ホールディング + 統計 + アクティビティ + 判定) については、 に従ってくださいdocs/workflow-wallet-analysis.md
コア概念
-
realized_profitvsunrealized_profit—realized_profit= 完了した売却から確定した利益 (手元の現金)。unrealized_profit= まだ保有しているポジションの含み益、現在価格で計算。これらは別の数字です — 「オープンポジションを含めた総 P&L」に答える場合を除き、加算しないでください。 -
profit_change— ドル金額ではなく倍率です。1.5= +150% リターン。0= 損益分岐点。-0.5= -50% の損失。total_profit / costとして計算されます。この値をユーザー向け出力ではパーセンテージに変換して表示してください。 -
pnl—portfolio statsからの利益/損失比:realized_profit / total_cost。profit_changeと同じ倍率形式です。pnlが2.0の場合、ウォレットは期間中の完了した取引で資金を 2 倍にしました。 -
winrate— 期間内の利益を得た取引の比率 (0–1)。0.6= 取引の 60% が利益でした。勝ちと負けのサイズを反映しません — ウォレットは高い勝率を持つことができますが、損失が大きい場合は純損失になる可能性があります。 -
costvsusd_value— ホールディングでは:costはこのトークンを購入するために費やされた歴史的金額 (原価);usd_valueはこのポジションの現在の市場価値です。その差は含み益です。 -
history_bought_costvscost—history_bought_costはこのトークンの累積購入支出 (すでに売却されたポジションを含む)。costはオープンポジションのみの原価です。 -
ページネーション (
cursor) — アクティビティ結果はページ分割されています。レスポンスにnextフィールドが含まれます; 次のページを取得するには--cursorとして渡します。空の或いは欠けているnextは最後のページにいることを意味します。
サブコマンド
| サブコマンド | 説明 |
|---|---|
portfolio info | API キーにバインドされたウォレットと主要通貨残高 |
portfolio holdings | P&L を含むウォレットトークンホールディング |
portfolio activity | トランザクション履歴 |
portfolio stats | 取引統計 (バッチサポート) |
portfolio token-balance | 特定トークンの残高 |
portfolio created-tokens | デベロッパーウォレットが作成したトークン、市場資本と ATH 情報付き |
サポートされているチェーン
sol / bsc / base / eth
前提条件
- グローバルにインストールされた
gmgn-cli— 見つからない場合は実行:npm install -g gmgn-cli ~/.config/gmgn/.envで設定されたGMGN_API_KEY
レート制限処理
このスキルで使用されているすべてのポートフォリオルートは、GMGN の漏出バケットリミッター (rate=20 と capacity=20) を通ります。持続的スループットは大約 20 ÷ weight リクエスト/秒、最大バーストはバケットが満杯の場合大約 floor(20 ÷ weight) です。
| コマンド | ルート | ウェイト |
|---|---|---|
portfolio info | GET /v1/user/info | 1 |
portfolio holdings | GET /v1/user/wallet_holdings | 2 |
portfolio activity | GET /v1/user/wallet_activity | 3 |
portfolio stats | GET /v1/user/wallet_stats | 3 |
portfolio token-balance | GET /v1/user/wallet_token_balance | 1 |
portfolio created-tokens | GET /v1/user/created_tokens | 2 |
リクエストが 429 を返した場合:
- レスポンスヘッダーから
X-RateLimit-Resetを読みます。リミットがリセットされると予想される Unix タイムスタンプ (秒単位) です。 - レスポンスボディに
reset_atが含まれている場合 (例:{"code":429,"error":"RATE_LIMIT_BANNED","message":"...","reset_at":1775184222})、reset_atを抽出 — これは禁止が解除される Unix タイムスタンプです (通常 5 分)。ローカル時刻に変換し、ユーザーに再試行できる正確な時間を伝えます。 - 残りのクールダウンが短い場合、CLI は自動的に待機して 1 回再試行する可能性があります。それでも失敗する場合は、さらにリクエストを送信する代わりにユーザーに正確な再試行時間を伝えます。
RATE_LIMIT_EXCEEDEDまたはRATE_LIMIT_BANNEDの場合、クールダウン中の繰り返されたリクエストは禁止を最大 5 分まで 1 回のリクエストごとに 5 秒延長できます。再試行をスパムしないでください。
初回セットアップ (GMGN_API_KEY が設定されていない場合):
-
キーペアを生成してユーザーに公開キーを表示します:
openssl genpkey -algorithm ed25519 -out /tmp/gmgn_private.pem 2>/dev/null && \ openssl pkey -in /tmp/gmgn_private.pem -pubout 2>/dev/nullユーザーに伝えます: 「これはあなたの Ed25519 公開キーです。https://gmgn.ai/ai に進み、API キー作成フォームに貼り付けてから、ページに表示される API キー値を送ってください。」
-
ユーザーの API キーを待ってから設定します:
mkdir -p ~/.config/gmgn echo 'GMGN_API_KEY=<key_from_user>' > ~/.config/gmgn/.env chmod 600 ~/.config/gmgn/.env
使用例
# API キーウォレット情報 (--chain または --wallet は不要)
gmgn-cli portfolio info
# ウォレットホールディング (デフォルトソート)
gmgn-cli portfolio holdings --chain sol --wallet <wallet_address>
# USD 値でソート、降順
gmgn-cli portfolio holdings \
--chain sol --wallet <wallet_address> \
--order-by usd_value --direction desc --limit 20
# 売却済みポジションを含める
gmgn-cli portfolio holdings --chain sol --wallet <wallet_address> --sell-out
# トランザクションアクティビティ
gmgn-cli portfolio activity --chain sol --wallet <wallet_address>
# タイプでフィルタリングしたアクティビティ
gmgn-cli portfolio activity --chain sol --wallet <wallet_address> \
--type buy --type sell
# 特定トークンのアクティビティ
gmgn-cli portfolio activity --chain sol --wallet <wallet_address> \
--token <token_address>
# 取引統計 (デフォルト 7d)
gmgn-cli portfolio stats --chain sol --wallet <wallet_address>
# 30 日間の取引統計
gmgn-cli portfolio stats --chain sol --wallet <wallet_address> --period 30d
# 複数ウォレットのバッチ統計
gmgn-cli portfolio stats --chain sol \
--wallet <wallet_1> --wallet <wallet_2>
# トークン残高
gmgn-cli portfolio token-balance \
--chain sol --wallet <wallet_address> --token <token_address>
# デベロッパーウォレットが作成したトークン
gmgn-cli portfolio created-tokens --chain sol --wallet <wallet_address>
# 作成トークンを ATH 市場資本でソート
gmgn-cli portfolio created-tokens \
--chain sol --wallet <wallet_address> \
--order-by token_ath_mc --direction desc
# マイグレーション済みトークンのみ
gmgn-cli portfolio created-tokens \
--chain sol --wallet <wallet_address> --migrate-state migrated
# ETH ウォレットホールディング
gmgn-cli portfolio holdings --chain eth --wallet <0x_wallet_address>
# ETH ウォレットトランザクションアクティビティ
gmgn-cli portfolio activity --chain eth --wallet <0x_wallet_address>
# ETH トークン残高
gmgn-cli portfolio token-balance \
--chain eth --wallet <0x_wallet_address> --token <0x_token_address>
portfolio created-tokens オプション
| オプション | 説明 |
|---|---|
--order-by <field> | ソートフィールド: market_cap / token_ath_mc |
--direction <asc|desc> | ソート方向 (デフォルト desc) |
--migrate-state <state> | マイグレーションステータスでフィルタ: migrated (DEX にグラデュエーション) / non_migrated (ボンディングカーブに残る) |
portfolio holdings オプション
| オプション | 説明 |
|---|---|
--limit <n> | ページサイズ (デフォルト 20、最大 50) |
--cursor <cursor> | ページネーションカーソル |
--order-by <field> | ソートフィールド: usd_value / last_active_timestamp / realized_profit / unrealized_profit / total_profit / history_bought_cost / history_sold_income (デフォルト usd_value) |
--direction <asc|desc> | ソート方向 (デフォルト desc) |
--hide-abnormal <bool> | 異常なポジションを隠す: true / false (デフォルト: false) |
--hide-airdrop <bool> | エアドロップポジションを隠す: true / false (デフォルト: true) |
--hide-closed <bool> | 閉じたポジションを隠す: true / false (デフォルト: true) |
--hide-open | オープンポジションを隠す |
portfolio activity オプション
| オプション | 説明 |
|---|---|
--token <address> | トークンでフィルタ |
--limit <n> | ページサイズ |
--cursor <cursor> | ページネーションカーソル (前のレスポンスの next 値を渡す) |
--type <type> | 繰り返し可能: buy / sell / add / remove / transfer |
アクティビティレスポンスは next フィールドを含みます。次のページを取得するには --cursor に渡します。
portfolio stats オプション
| オプション | 説明 |
|---|---|
--period <period> | 統計期間: 7d / 30d (デフォルト 7d) |
レスポンスフィールドリファレンス
portfolio holdings — キーフィールド
レスポンスは holdings 配列を持ちます。各項目は 1 つのトークンポジションです。
| フィールド | 説明 |
|---|---|
token.address | トークンコントラクトアドレス |
token.symbol / token.name | トークンティッカーと完全な名前 |
token.price | USD での現在のトークン価格 |
balance | 現在のトークン残高 (人間が読める単位) |
usd_value | このポジションの USD での現在値 |
cost | このトークン購入に費やされた総額 (USD) |
realized_profit | 完了した売却からの利益 (USD) |
unrealized_profit | 現在の未売却保有の現在価格での利益 (USD) |
total_profit | realized_profit + unrealized_profit (USD) |
profit_change | 総利益比 = total_profit / cost (例: 1.5 = +150%) |
avg_cost | トークンあたりの平均買値 (USD) |
buy_tx_count | 買いトランザクションの数 |
sell_tx_count | 売りトランザクションの数 |
last_active_timestamp | 最新トランザクションの Unix タイムスタンプ |
history_bought_cost | 購入に費やされた総 USD (全時代) |
history_sold_income | 売却から受け取られた総 USD (全時代) |
portfolio activity — キーフィールド
レスポンスは activities 配列とページネーション用の next カーソルフィールドを持ちます。
| フィールド | 説明 |
|---|---|
transaction_hash | オンチェーントランザクションハッシュ |
type | トランザクションタイプ: buy / sell / add / remove / transfer |
token.address | トークンコントラクトアドレス |
token.symbol | トークンティッカー |
token_amount | このトランザクションのトークン量 |
cost_usd | このトランザクションの USD 値 |
price | トランザクション時のトークン価格 (USD) |
timestamp | トランザクションの Unix タイムスタンプ |
next | ページネーションカーソル — --cursor に渡して次のページを取得 |
portfolio stats — キーフィールド
レスポンスはオブジェクト (またはバッチの配列)。キーフィールド:
| フィールド | 説明 |
|---|---|
realized_profit | 期間内の総実現利益 (USD) |
unrealized_profit | オープンポジションの総含み益 (USD) |
winrate | 勝率 — 利益取引の比率 (0–1) |
total_cost | 期間内の買いに費やされた総額 (USD) |
buy_count | 買いトランザクション数 |
sell_count | 売りトランザクション数 |
pnl | 利益/損失比 = realized_profit / total_cost |
レスポンスはまた、利用可能な場合は common オブジェクトを含みます (上流の身元確認サービスが利用不可の場合は不在):
| フィールド | 説明 |
|---|---|
common.avatar | ウォレットアバター URL |
common.name | 表示名 |
common.ens | ENS ドメイン (EVM チェーンのみ) |
common.tag | プライマリウォレットタグ |
common.tags | すべてのウォレットタグ (例: ["smart_money"]) |
common.twitter_username | Twitter ハンドル |
common.twitter_name | Twitter 表示名 |
common.followers_count | Twitter フォロワー数 |
common.is_blue_verified | Twitter ブルーベリファイバッジ |
common.follow_count | このウォレットをフォローしている GMGN ユーザー数 |
common.remark_count | このウォレットにコメントしている GMGN ユーザー数 |
common.created_token_count | このウォレットで作成されたトークン数 |
common.created_at | ウォレット作成時刻 (Unix 秒) — 最初の資金トランザクション到着時刻を記録します; ウォレットの年齢指標として使用します |
common.fund_from | 資金源ラベル |
common.fund_from_address | このウォレットに資金を提供したアドレス |
common.fund_amount | 資金額 |
ウォレットプロフィール叙述を構築するときは common.tags と common.twitter_username を使用します。レスポンスに common が欠けている場合は、エラーとして報告せずに身元フィールドを静かに省略します。
portfolio created-tokens — キーフィールド
レスポンス data オブジェクトは tokens 配列と集計統計を持ちます。
トップレベルフィールド:
| フィールド | 説明 |
|---|---|
last_create_timestamp | 最新のトークン作成の Unix タイムスタンプ |
inner_count | ボンディングカーブにまだある (グラデュエーション不可) トークン数 |
open_count | DEX にグラデュエーション済みトークン数 |
open_ratio | グラデュエーション率 (文字列、例: "0.25") |
作成済み合計 =
inner_count + open_count。len(tokens)を合計として使用しないでください —tokens配列は 100 エントリで上限で切り詰められる可能性があります。
| フィールド | 説明 |
|---|---|
creator_ath_info | このウォレットによって作成されたベストパフォーマンストークン (ATH 市場資本) |
tokens | 作成トークンの配列 — 以下を参照 |
creator_ath_info フィールド:
| フィールド | 説明 |
|---|---|
creator | ウォレットアドレス |
ath_token | 最高 ATH 市場資本のトークンアドレス |
ath_mc | ATH 市場資本 (USD 文字列) |
token_symbol / token_name | トークンティッカーと名前 |
token_logo | ロゴ URL |
トークンあたりのフィールド (tokens[*]):
| フィールド | 説明 |
|---|---|
token_address | トークンコントラクトアドレス |
symbol | トークンティッカー |
chain | チェーン名 |
create_timestamp | 作成の Unix タイムスタンプ |
is_open | true の場合 DEX にグラデュエーション済み |
market_cap | 現在の市場資本 (USD 文字列) |
token_ath_mc | 全時代最高市場資本 (USD 文字列) |
pool_liquidity | 現在の流動性 (USD 文字列) |
holders | 現在のホルダー数 |
swap_1h | 過去 1 時間のスワップ数 |
volume_1h | 過去 1 時間の取引高 (USD 文字列) |
launchpad_platform | ローンチプラットフォーム名 (例: Pump.fun) |
is_pump | true の場合 Pump.fun でローンチ |
bundler_rate | バンドラー参加率 (0–1) |
cto_flag | true の場合コミュニティテイクオーバートークン |
ここに記載されていないフィールド名を推測しないでください。 レスポンスに表示されるがこのテーブルにないフィールドは、まず生出力を読まずに解釈しないでください。
出力形式
生 JSON をダンプしないでください。 常に以下の構造化形式でデータを解析して提示します。--raw は jq へのパイプまたはさらなる処理が必要な場合のみ使用します。
portfolio holdings — ホールディング表
usd_value (降順) でソートされた表を提示します。上部にポートフォリオ総価値を表示します。
Wallet: {wallet} | Chain: {chain}
Total value: ~${sum of usd_value across all positions}
# | Token | Balance | USD Value | Total P&L | P&L% | Avg Cost | Buys / Sells
profit_change が大きく負 (例: < -50%) または正 (例: > 200%) であるポジションに簡潔なコメントを付けてください。
portfolio activity — アクティビティフィード
時系列リスト (最新順) で提示します。人間が読める形式のタイムスタンプを使用します。
{type} {token.symbol} | {token_amount} tokens | ${cost_usd} | {timestamp} | tx: {short hash}
ユーザーが特定のトークンについて尋ねた場合はトークンでグループ化します。
portfolio stats — 統計サマリー
Wallet: {wallet} | Period: {period}
Realized P&L: ${realized_profit}
Unrealized P&L: ${unrealized_profit}
Win Rate: {winrate × 100}%
Total Spent: ${total_cost}
Buys / Sells: {buy_count} / {sell_count}
PnL Ratio: {pnl}x
[Identity: {common.name or common.twitter_username} | Tags: {common.tags}]
レスポンスに common が存在する場合のみ [Identity: ...] 行を表示します。バッチクエリ (複数ウォレット) の場合、ウォレットごとに 1 つの概要ブロックを提示します。
注意
- すべてのポートフォリオコマンドは通常認証を使用 (API キーのみ、署名不要)
portfolio statsは複数の--walletフラグをサポート (バッチクエリ用)--rawを使用して単一行 JSON を取得してさらなる処理が可能- 入力検証 — ウォレットとトークンアドレスは、期待されるチェーン形式に対して実行時に検証されます (sol: base58 32–44 文字; bsc/base/eth:
0x+ 40 16 進数字)。CLI は無効な入力でエラー終了します。 - フォローウォレット、KOL、Smart Money 取引記録については、
gmgn-trackスキル (track follow-wallet/track kol/track smartmoney) を使用します
ワークフロー
取引履歴と上位ホールディングスのフォローを含む完全なウォレット分析については、 を参照docs/workflow-wallet-analysis.md
詳細な取引スタイル分析、コピートレード ROI 推定、smart money リーダーボード比較については、 を参照docs/workflow-smart-money-profile.md
どれをいつ使用するか:
- ユーザーが「このウォレットはフォローする価値があるか」と尋ねた →
docs/workflow-wallet-analysis.md - ユーザーが「このウォレットの取引スタイルは」、「利益確定のタイミングは」、「smart money プロフィール」、「このウォレットをコピーしたら何のリターンになるか」と尋ねた →
docs/workflow-smart-money-profile.md - ユーザーが複数の smart money ウォレットを勝率/P&L で比較したい →
Step 5 (リーダーボード)docs/workflow-smart-money-profile.md - ユーザーが「このデブが作成したトークンは」、「dev 發過哪些币」、「查一下这个 dev 的代币」、「dev 创建记录」と尋ねた →
portfolio created-tokens --chain <chain> --wallet <creator_address>を直接使用します。トークンアドレスのみが与えられた場合は、最初にtoken infoでクリエイターアドレスを取得します。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- gmgnai
- リポジトリ
- gmgnai/gmgn-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/gmgnai/gmgn-skills / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。