メインコンテンツへスキップ
ChainStreamは現在、Solanasol)、Ethereumeth)、BSCbsc)をサポートしています。対応DEXは Jupiter、Raydium、PumpFun、Moonshot、Candy(Solana)、KyberSwap(Ethereum/BSC)です。以下の一部の例は概念的な説明のために追加のプロトコルを参照しています。現在のカバレッジは対応チェーンをご確認ください。
Coming Soon - この機能は現在開発中です。お楽しみに!
本ドキュメントでは、ChainStreamを使用してDeFiプロトコルのアクティビティを監視する方法を紹介します。流動性の変化、大口取引、利回り追跡、リスクアラートを含みます。

対応DeFiプロトコル

DEX(分散型取引所)

プロトコルチェーン対応機能
JupiterSolanaアグリゲート取引
RaydiumSolana取引、LP、プールデータ
PumpFunSolanaローンチ/ボンディング、取引
MoonshotSolana取引
CandySolana取引
KyberSwapEthereum, BSC取引、クオート

その他のDeFi分野

レンディング、イールドアグリゲーター、リキッドステーキングは一般的なDeFiモニタリング対象です。ChainStreamのインデックスされたスワップおよびDEX分析は、SolanaEthereumBSC上の上記プロトコルに焦点を当てています。レンディングやVault固有のアラートを構築する前に、APIリファレンスと対応チェーンでデプロイメントが公開している内容を確認してください。

モニタリング次元

1. 流動性モニタリング

監視イベント

イベント説明重要性
pool_created新規プール作成新たな機会の発見
liquidity_add流動性追加信頼性の指標
liquidity_remove流動性削除⚠️ ラグプル警告
pool_updateプールパラメータ変更プロトコルガバナンス

主要指標

指標説明健全性基準
TVL総ロック価値安定的または成長
TVL変動率24h/7d TVL変化> -10%/日
LPホルダー数LPトークンホルダー分布分散しているほど良い
流動性深度±2%価格帯内の流動性深いほど良い

ラグプルリスクシグナル

  • 単一引き出し > プールの30%
  • 24h累積引き出し > 50%
  • LPが少数アドレスに集中(< 5)

2. 取引モニタリング

リアルタイム取引フロー

WebSocket経由でリアルタイム取引を購読:
イベントタイプ説明データフィールド
swapDEX取引token_in, token_out, amount, price
large_trade大口取引threshold, trade_details
arbitrageアービトラージ取引profit, path
mevMEV関連取引type, extracted_value
// DEX取引フローを購読
ws.subscribe('defi_trades', {
  protocol: 'kyberswap',
  chain: 'eth',
  min_amount_usd: 10000
}, (trade) => {
  console.log(`${trade.type}: ${trade.token_in}${trade.token_out}`);
});

取引分析の次元

分析次元指標意味
買い/売り圧力買い出来高/売り出来高比率> 1 は強気
出来高トレンド出来高移動平均活性度
クジラ行動大口取引の割合市場への影響
ペアの人気度取引頻度ランキング市場の注目度

3. 利回り追跡

追跡内容

利回りタイプ説明計算方法
LPマイニング流動性提供による取引手数料手数料 × シェア割合
レンディング利息預入/借入利息元本 × APY
ステーキング報酬プロトコルトークン報酬ステーキング量 × 報酬率
エアドロップ利回りプロトコルエアドロップスナップショット保有量

利回り指標

指標説明注記
APY年間複利利回り実質利回りの参考
APR年間単利利回り基本利回り
インパーマネントロス単純保有と比較したLP損失重要なリスク要因
純利回り利回り - ガス代 - インパーマネントロス最終利回り

インパーマネントロスの推定

インパーマネントロスの計算式
インパーマネントロス = 2 × √(価格比率) / (1 + 価格比率) - 1
価格変動インパーマネントロス
±10%-0.11%
±25%-0.64%
±50%-2.02%
±100%-5.72%
±200%-13.4%

4. リスクアラート

プロトコルレベルのリスク

リスクタイプ説明アラートトリガー
大口引き出し大幅な流動性の減少単一 > プールの5%
TVL急落プロトコルTVLの急速な低下1hで > 20%低下
フラッシュローン攻撃フラッシュローンパターン検出自動検出
ガバナンス攻撃異常な提案や投票自動検出
オラクル異常異常な価格データ乖離 > 5%

ポジションレベルのリスク

リスクタイプ説明アラートトリガー
清算リスクレンディングポジションが清算に近いヘルスファクター < 1.2
インパーマネントロスLPのインパーマネントロス拡大損失 > 5%
利回り低下APYの大幅低下低下 > 50%

アラート設定例

{
  "alert_type": "liquidity_remove",
  "protocol": "kyberswap",
  "pool": "0x...",
  "threshold": {
    "type": "percentage",
    "value": 10
  },
  "notification": {
    "webhook": "https://your-server.com/webhook",
    "email": "alert@example.com"
  }
}

モニタリングシナリオ

シナリオ1:新規プール発見

目標:新しく作成されたトレーディングプールをできるだけ早く発見する
ws.subscribe('pool_created', {
  chain: 'sol',
  min_liquidity_usd: 10000
}, async (pool) => {
  // トークンの安全性を確認
  const risk = await checkTokenRisk(pool.token_address);
  if (risk.score > 60) {
    notify(`新規プール発見: ${pool.pair_name}, 流動性: $${pool.liquidity_usd}`);
  }
});

シナリオ2:ラグプル警告

目標:保有するプールのラグプルリスクを監視する
1

モニタリング追加

対象プールをモニタリングリストに追加
2

閾値設定

引き出し閾値を設定(例:単一 > 10%)
3

アラート受信

リアルタイムでアラートを受信
4

ポジション調整

速やかにポジションを調整
ws.subscribe('liquidity_remove', {
  pool: '0x...',
  threshold_percentage: 10
}, (event) => {
  alert(`⚠️ ラグプル警告: ${event.percentage}%の流動性が削除されました`);
});

シナリオ3:アービトラージ機会の発見

目標:DEX間の価格差を発見する
1

価格フィード購読

複数のDEXの価格フィードを購読
2

スプレッド計算

スプレッド率を計算
3

コスト評価

ガス代とスリッページコストを考慮
4

アラート送信

純利益 > 閾値のときアラート
// 複数DEXの価格を監視
const prices = {};

ws.subscribe('token_price', { 
  token: 'SOL',
  dex: ['jupiter', 'raydium', 'pumpfun']
}, (data) => {
  prices[data.dex] = data.price;
  checkArbitrage(prices);
});

function checkArbitrage(prices) {
  const maxPrice = Math.max(...Object.values(prices));
  const minPrice = Math.min(...Object.values(prices));
  const spread = (maxPrice - minPrice) / minPrice;
  
  if (spread > 0.005) {  // 0.5%のスプレッド
    notify(`アービトラージ機会: ${spread * 100}%のスプレッド`);
  }
}

シナリオ4:清算モニタリング

目標:レンディングポジションのヘルスを監視する
1

ポジション取得

対象アドレスのレンディングポジションを取得
2

ヘルスファクター計算

リアルタイムのヘルスファクターを計算
3

警告

ヘルスファクター < 1.5のとき警告
4

緊急アラート

ヘルスファクター < 1.2のとき緊急アラート
async function monitorLiquidationRisk(address: string) {
  // デプロイメントが公開しているレンディングAPIに接続(DEX固有ではない)
  const position = await getLendingPosition(address);

  if (position.health_factor < 1.2) {
    urgentAlert(`🚨 清算リスク!ヘルスファクター: ${position.health_factor}`);
  } else if (position.health_factor < 1.5) {
    warnAlert(`⚠️ 低ヘルスファクター: ${position.health_factor}`);
  }
}

データレイテンシー

データタイプレイテンシー説明
リアルタイム取引< 3秒ブロック確認後にプッシュ
TVLデータ< 1分分単位で更新
APYデータ< 5分直近の取引から計算
ホルダーデータ< 1時間時間ごとのスナップショット

APIエンドポイント

機能エンドポイント
プロトコルTVL取得GET /v1/defi/{protocol}/tvl
プール情報取得GET /v1/defi/{protocol}/pools/{pool_id}
ユーザーポジション取得GET /v1/defi/{protocol}/positions/{address}
利回りデータ取得GET /v1/defi/{protocol}/yields

関連ドキュメント

アービトラージスキャナー

アービトラージスキャニングツールの構築

価格アラートBot

価格アラートシステムの構築