mcpField
D
dex-pool-analysis

dex-pool-analysis

github.com/agiprolabsデータ・データベース456444 回インストール8 週間前に更新
リポジトリ

dex-pool-analysis について

dex-pool-analysisは、Solana DEXの調査担当者やトレーダー向けのスキルです。複数のAMMプールの仕組み、手数料、リスクを比較し、プールの健全性評価と執行先の選定方法も扱います。

主な機能

  1. 01Solana AMMプールの種類と手数料の比較
  2. 02TVL、取引量、手数料APRの評価
  3. 03新規プールと流動性リスクの特定
  4. 04執行品質に基づくプールの順位付け
  5. 05プール指標と流動性イベントの監視

活用シーン

  1. 01Raydium、Orca、Meteora、PumpSwapのプール比較
  2. 02トークンプールの健全性とリスクの確認
  3. 03取引規模に応じた執行プールの選定
  4. 04プール流動性の変化の追跡

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/agiprolabs/claude-trading-skills --skill dex-pool-analysis

インストール後、Claude Code で/dex-pool-analysisを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
pool_analysis_guide.md
pool_mechanics.md
scripts/
analyze_pools.py
pool_monitor.py

詳細

DEX プール分析 — Solana AMM のプールメカニズムと比較

Solana の DEX エコシステムには、複数の AMM 設計があります。定積プール(Raydium V4)、集中流動性(Raydium CLMM、Orca Whirlpool)、ビンベースの流動性(Meteora DLMM)です。各プールタイプには、異なる手数料体系、資本効率の特性、リスクプロファイルがあります。これらの違いを理解することは、最適な取引執行先の選定、流動性の質の評価、プールレベルのリスクの特定に不可欠です。

このスキルでは、以下を扱います。

  • Solana の DEX におけるプールタイプの仕組みと手数料体系
  • プールの健全性指標(TVL、出来高効率、手数料 APR、LP 数)
  • プール作成のパターン(PumpFun からの移行、手動作成)
  • 取引執行に最適なプールの選定
  • プールの経過時間とリスク評価

関連スキル:AMM の計算式については lp-math、深度の評価については liquidity-analysis、LP リスクについては impermanent-loss、執行コストについては slippage-modeling を参照してください。


1. Solana のプールタイプ

Raydium V4(定積)

新規ローンチトークンで最も一般的なプールタイプです。固定の 0.25% スワップ手数料を持つ、従来型の xy = k 不変式を使用します。OpenBook(旧 Serum)と統合され、AMM とオーダーブックの流動性を組み合わせています。

Program ID: 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8
Fee: 0.25% per swap (0.22% to LPs, 0.03% to RAY buyback)

主な特徴:

  • 全価格帯の流動性(無限の価格範囲)
  • LP への流動性提供が簡単 — 両方のトークンを同じ価値分だけ預け入れます
  • 集中流動性より資本効率が低い
  • プール作成には OpenBook のマーケット ID が必要
Raydium CLMM(集中流動性)

集中流動性マーケットメーカーのプールでは、LP が価格範囲を指定できます。これにより、V4 と比べて資本効率が 10~100 倍向上します。

Program ID: CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK
Fee tiers: 0.01%, 0.05%, 0.25%, 1%, 2%
Tick spacing: 1, 10, 60, 120, 240 (corresponding to fee tiers)

主な特徴:

  • LP はポジションの最小価格と最大価格を選択します
  • ポジションは NFT として表されます
  • 預け入れた金額あたりの手数料収入が高くなります(価格範囲内の場合)
  • 価格が範囲外になるリスクがあります(手数料を得られません)
  • ボラティリティプロファイルに応じた複数の手数料ティアがあります
Orca Whirlpool(集中流動性)

Orca の集中流動性実装で、主要なトークンペア(SOL/USDC、SOL/USDT)で優勢です。

Program ID: whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc
Fee tiers: 0.01%, 0.02%, 0.04%, 0.05%, 0.16%, 0.30%, 0.65%, 1%, 2%
Tick spacing: 1, 2, 4, 8, 16, 64, 128, 256, 512 (varies by fee)

主な特徴:

  • NFT としてのポジション(Uniswap V3 と同様)
  • 細かな調整が可能な幅広い手数料ティア
  • 強力な SDK と開発者向けツール
  • Solana の優良銘柄ペアで優勢です
Meteora DLMM(ダイナミック流動性マーケットメーカー)

各ビンが固定価格を持つ、ビンベースの流動性です。LP は戦略モードを使って、複数のビンに流動性を配分します。

Program ID: LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo
Fee: Dynamic (base fee + variable fee based on volatility)
Bin step: 1-100 basis points per bin

主な特徴:

  • 連続したティックではなく、離散的な価格ビンを使用
  • 高ボラティリティ時に上昇するダイナミック手数料
  • 戦略モード:Spot、Curve、Bid-Ask
  • 単一のビン内ではスリッページがゼロ
  • ステーブルコインペアで極めて高い資本効率
Meteora Dynamic Pools

片側のみの預け入れが可能で、ボラティリティに応じて手数料が調整されるマルチトークンプールです。

Program ID: Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB
Fee: Volatility-based dynamic fee

主な特徴:

  • 片側のみの預け入れが可能
  • 最近の価格ボラティリティに基づくダイナミック手数料
  • マルチトークンプールに対応
  • 集中流動性より LP にとって扱いやすい仕組み
PumpSwap(PumpFun AMM)

ボンディングカーブから移行したトークン向けの、PumpFun 独自の AMM です。

Program ID: PSwapMdSai8tjrEXcxFeQth87xC4rRsa4VA5mhGhXkP
Fee: 0.25% per swap (0.20% to LPs, 0.05% protocol)
Migration fee: 0 SOL (post-March 2025)

主な特徴:

  • 定積(xy = k)の仕組み
  • 時価総額が約 $69K に達すると、PumpFun のボンディングカーブから自動的に移行
  • クリエイターコイン報酬(プロトコル手数料の 10% がコインのクリエイターに支払われます)

2. 手数料体系の比較

DEXプールタイプ手数料の範囲LP の取り分プロトコルの取り分
Raydium V4定積型0.25% 固定0.22%0.03% (RAY)
Raydium CLMM集中流動性型0.01%–2%~84%~16%
Orca Whirlpool集中流動性型0.01%–2%87%13%
Meteora DLMMビンベース動的80%20%
Meteora Dynamic動的可変~80%~20%
PumpSwap定積型0.25% 固定0.20%0.05%

手数料ティアの選択ガイド:

  • 0.01%:ステーブルコインのペア(USDC/USDT)— 価格変動が最小
  • 0.05%:相関性の高い資産(mSOL/SOL、jitoSOL/SOL)— ボラティリティが低い
  • 0.25%–0.30%:標準的なペア(SOL/USDC)— ボラティリティが中程度
  • 1%–2%:ボラティリティの高いトークン/ミームトークン — インパーマネントロスのリスクが高い

3. プール作成のパターン

PumpFun の卒業フロー

新しい Solana ミームトークンの大半は、次のライフサイクルをたどります。

PumpFun Bonding Curve → ~$69K market cap → Migration → Raydium V4 or PumpSwap
  1. トークンが PumpFun のボンディングカーブでローンチされる
  2. 買いによって時価総額が約 $69K に達すると、ボンディングカーブが完了する
  3. 流動性が Raydium V4 または PumpSwap に自動的に移行する
  4. 2025 年 3 月以降、PumpFun はデフォルトで PumpSwap(独自の AMM)に移行する
  5. 移行後、ほかの DEX に追加のプールが作成される場合がある

分析上の留意点:

  • PumpFun の卒業によって作成されたプールの初期流動性は既知(約 $12K)です
  • 卒業直後のプールはラグプルのリスクが高くなります
  • 作成者の LP トークンがロックされているか、バーン可能かを確認してください
手動でのプール作成

PumpFun 経由でローンチされていないトークンのプールは、手動で作成されます。

  • Raydium V4 では OpenBook マーケットとプールの初期化が必要です
  • Raydium CLMM、Orca、Meteora ではプールを直接作成できます
  • 手動作成では、任意の初期流動性量を設定できます

4. 出来高効率(出来高/TVL 比率)

出来高効率は、プールの流動性がどれだけ活発に利用されているかを測定します。

volume_efficiency = volume_24h / tvl
V/TVL 比率解釈
> 5.0回転率が非常に高い — ウォッシュトレードまたはボット活動の可能性
1.0–5.0取引が活発 — 健全で、プールが十分に活用されている
0.1–1.0活動が中程度 — 中型トークンでは通常の範囲
< 0.1活動が低い — 停滞または放棄されたプール
0.0取引なし — 使われていないプール

出来高効率に基づく手数料 APR の推定:

fee_apr = volume_efficiency * fee_rate * 365
# Example: V/TVL of 2.0 at 0.25% fee = 2.0 * 0.0025 * 365 = 182.5% APR

これは理論上の最大値です。実際の LP リターンは、インパーマネントロス、ポジション範囲(集中流動性の場合)、手数料の取り分によって異なります。


5. プールの健全性指標

主な指標
pool_health = {
    "tvl_usd": 150_000,          # Total value locked
    "volume_24h_usd": 300_000,   # 24-hour trading volume
    "volume_tvl_ratio": 2.0,     # Volume efficiency
    "fee_apr_estimate": 182.5,   # Annualized fee rate (%)
    "pool_age_hours": 720,       # Time since creation
    "lp_count_estimate": 45,     # Number of LP positions
    "tvl_trend_24h": -0.05,      # TVL change (-5%)
    "price_change_24h": 0.12,    # Price change (+12%)
}
危険信号

プールを評価する際は、次の警告サインに注意してください。

危険信号しきい値リスク
作成から間もないプール作成から 24 時間未満ラグプル、審査されていないトークン
LP が 1 つのみLP 数 = 1作成者が流動性をすべて引き出せる
TVL の減少24 時間で 20% 超の減少流動性の流出
出来高ゼロ6 時間以上取引なし使われていない、または放棄されたプール
V/TVL が極端に高い10 倍超ウォッシュトレード、ボットによる操作
TVL がごくわずか$1,000 未満どの取引でも大きなスリッページが発生
健全性スコアのアルゴリズム
def compute_health_score(
    tvl_usd: float,
    volume_24h: float,
    pool_age_hours: float,
    lp_count: int,
    tvl_change_24h: float,
) -> float:
    """Score from 0-100 indicating pool health.

    Components (each 0-20):
    - TVL adequacy: Is there enough liquidity?
    - Volume efficiency: Is the pool actively traded?
    - Maturity: How long has the pool existed?
    - LP diversity: How many independent LPs?
    - TVL stability: Is liquidity growing or shrinking?
    """
    # TVL score (0-20): logarithmic scale, peaks at $1M+
    tvl_score = min(20, max(0, 5 * math.log10(max(tvl_usd, 1)) - 10))

    # Volume score (0-20): V/TVL ratio, sweet spot 0.5-3.0
    v_tvl = volume_24h / max(tvl_usd, 1)
    volume_score = min(20, max(0, v_tvl * 10)) if v_tvl < 5 else max(0, 20 - (v_tvl - 5) * 4)

    # Age score (0-20): older = more trusted
    age_score = min(20, pool_age_hours / 72 * 20)  # Max at 72h

    # LP diversity score (0-20)
    lp_score = min(20, lp_count * 2)  # Max at 10 LPs

    # Stability score (0-20): penalize large negative TVL changes
    stability_score = max(0, 20 + tvl_change_24h * 40)  # -50% → 0, 0% → 20

    return tvl_score + volume_score + age_score + lp_score + stability_score

6. 取引執行に最適なプールの選択

トークンペアに複数のプールがある場合は、取引執行に最適なものを選択します。

def rank_pools_for_execution(pools: list[dict], trade_size_usd: float) -> list[dict]:
    """Rank pools by execution quality for a given trade size.

    Factors:
    1. Sufficient TVL (trade size < 2% of TVL for acceptable slippage)
    2. Active volume (recent trades confirm the pool is live)
    3. Lowest fee tier (when liquidity is sufficient)
    4. Pool type efficiency (concentrated > constant product for same TVL)
    5. Pool health score (age, LP count, stability)
    """
    for pool in pools:
        size_ratio = trade_size_usd / max(pool["tvl_usd"], 1)
        pool["estimated_slippage"] = size_ratio * 100  # Rough % estimate

        # Prefer pools where trade is < 2% of TVL
        pool["size_ok"] = size_ratio < 0.02

        # Concentrated liquidity is more efficient
        efficiency_mult = 1.0
        if pool["pool_type"] in ("clmm", "whirlpool", "dlmm"):
            efficiency_mult = 0.3  # ~3x less slippage per TVL dollar

        pool["adjusted_slippage"] = pool["estimated_slippage"] * efficiency_mult
        pool["execution_score"] = (
            (1.0 / max(pool["adjusted_slippage"], 0.001)) * 0.5
            + pool.get("health_score", 50) * 0.3
            + (1.0 / max(pool["fee_rate"], 0.0001)) * 0.2
        )

    return sorted(pools, key=lambda p: p["execution_score"], reverse=True)

7. プログラム ID クイックリファレンス

PROGRAM_IDS = {
    "raydium_v4": "675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8",
    "raydium_clmm": "CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK",
    "orca_whirlpool": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc",
    "meteora_dlmm": "LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo",
    "meteora_dynamic": "Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB",
    "pumpswap": "PSwapMdSai8tjrEXcxFeQth87xC4rRsa4VA5mhGhXkP",
    "pumpfun_bonding": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P",
}

8. 統合ポイント

liquidity-analysis との連携

プール分析を流動性の深さの評価に活用します。プールタイプによって、適用する流動性モデル(定積型、集中流動性型、ビンベース)が決まります。

lp-math との連携

適用する数式はプールタイプによって異なります。Raydium V4 では xy = k を使用し、CLMM/Whirlpool ではティックベースの計算を、DLMM ではビン計算を使用します。詳しい導出については lp-math を参照してください。

slippage-modeling との連携

最適なプールの選択は、スリッページの推定に直接反映されます。集中流動性プールのスリッページ曲線は、定積型プールとは異なります。

jupiter-api との連携

Jupiter はすべてのプールタイプを自動的に集約します。プール分析は、Jupiter が特定のプールを経由する理由を理解し、ルートの品質を検証するのに役立ちます。


9. ワークフローの例

import httpx

# Step 1: Fetch all pools for a token from DexScreener
async def analyze_token_pools(token_mint: str) -> dict:
    url = f"https://api.dexscreener.com/tokens/v1/solana/{token_mint}"
    async with httpx.AsyncClient() as client:
        resp = await client.get(url)
        pools = resp.json()

    results = []
    for pool in pools:
        dex = pool.get("dexId", "unknown")
        pool_info = {
            "dex": dex,
            "pool_address": pool.get("pairAddress"),
            "tvl_usd": pool.get("liquidity", {}).get("usd", 0),
            "volume_24h": pool.get("volume", {}).get("h24", 0),
            "age_hours": pool.get("pairCreatedAt", 0),
            "fee_rate": estimate_fee_rate(dex),
            "pool_type": classify_pool_type(dex),
        }
        pool_info["volume_efficiency"] = (
            pool_info["volume_24h"] / max(pool_info["tvl_usd"], 1)
        )
        results.append(pool_info)

    return {"token": token_mint, "pool_count": len(results), "pools": results}

ファイル

参考資料
  • references/pool_mechanics.md — 各プールタイプの詳細な仕組み、プログラム ID、計算式
  • references/pool_analysis_guide.md — プールの健全性指標、危険信号、出来高効率、最適なプールの選び方
スクリプト
  • scripts/analyze_pools.py — トークンのすべてのプールを取得・分析し、約定品質の順に並べます
  • scripts/pool_monitor.py — プール指標を継続的に監視し、流動性イベントを検出します

このスキルは、DEX プールの特性を評価するための分析ツールと情報を提供します。金融上の助言や取引の推奨は行いません。

コメント