defi-data について
defi-dataは、DeFiLlamaのMCPデータツールを使うためのリファレンスです。利用可能な指標、エンティティの命名と解決、クエリパラメーター、データ規則、分析時の注意点を解説します。
主な機能
- 01データツールのクイックリファレンス
- 02エンティティ命名と解決の指針
- 03期間と日付範囲のパラメーター
- 04ストックとフローの指標規則
- 05指標の定義と検証に関する注意
- 06エラーからの復旧方法
活用シーン
- 01DeFiの質問に合うツールの選定
- 02プロトコル、チェーン、トークンの比較
- 03指標値の解釈ミスの回避
MCP 対応
このリファレンスは、MCP経由で利用できるDeFiLlamaのツールと、そのパラメーター、対応エンティティ、データ規則を説明します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ defillama/ defillama-skills --skill defi-dataインストール後、Claude Code で/defi-dataを入力して読み込まれたか確認します。
詳細
DefiLlama MCP データリファレンス
ツール早見表
| 質問 | ツール | 主なパラメーター |
|---|---|---|
| DeFi 全体の TVL、グローバル取引量 | defillama:get_market_totals | metrics(tvl_base、volume_dexs_1d など) |
| プロトコルの TVL、手数料、収益 | defillama:get_protocol_metrics | protocol、metrics |
| チェーンの TVL、ガス手数料、REV | defillama:get_chain_metrics | chain、metrics |
| トークン価格、時価総額、ATH | defillama:get_token_prices | token |
| カテゴリー別ランキング | defillama:get_category_metrics | category |
| プールの APY、レンディング金利 | defillama:get_yield_pools | token、chain、category |
| ステーブルコイン供給量 | defillama:get_stablecoin_supply | stablecoin、chain |
| ETF の資金流入・流出 | defillama:get_etf_flows | token(bitcoin/ethereum) |
| ブリッジ取引量 | defillama:get_bridge_flows | bridge、chain |
| CEX 取引量 | defillama:get_cex_volumes | cex |
| 未決済建玉 | defillama:get_open_interest | protocol、chain |
| ハッキング/エクスプロイト | defillama:get_events | event_type: "hacks" |
| 資金調達 | defillama:get_events | event_type: "raises" |
| プロトコルイベント | defillama:get_events | event_type: "protocol_events" |
| プロトコルのトレジャリー | defillama:get_treasury | treasury |
| 機関投資家の保有資産 | defillama:get_dat_holdings | institution、token |
| トークンのロック解除 | defillama:get_token_unlocks | token、query_type(chart、window、day、window_all、ratio、market_window) |
| プロトコル内のトークン TVL | defillama:get_token_tvl | token、protocol |
| オラクルの対応状況 | defillama:get_oracle_metrics | oracle |
| ユーザーアクティビティ | defillama:get_user_activity | protocol、chain |
| 損益計算書 | defillama:get_income_statement | protocol |
| プロトコルのメタデータ、URL、監査情報 | defillama:get_protocol_info | protocol、category、tag、has_token、chain |
| チェーンのメタデータ、種類、L2 の親チェーン | defillama:get_chain_info | chain、chain_type |
| 有効なカテゴリーの一覧 | defillama:list_categories | type(protocol、token、chain) |
| 不明なエンティティのスラッグ | defillama:resolve_entity | name |
エンティティの表記規則
- プロトコル:小文字とハイフンで構成されたスラッグ(
aave、uniswap、compound-v3) - チェーン:小文字(
ethereum、solana、arbitrum) - トークン:
coingecko:プレフィックス(coingecko:ethereum、coingecko:bitcoin、coingecko:usd-coin) - CEX:スラッグに接尾辞を含む(
binance-cex、coinbase-cex、htx、gate-io) - カテゴリー:タイトルケース(
Lending、DEX、Derivatives)
プロトコルとサブプロトコル
多くのプロトコルには複数のバージョンがあります。データベースでは両方を追跡しています。
- 親プロトコル(例:
aave)—get_protocol_metricsで使用し、すべてのバージョンを集計します - サブプロトコル(例:
aave-v3)— 個別のバージョンで、sub_protocol ビューで使用します
resolve_entity は slug(サブプロトコル)と parent_protocol の両方を返します。get_protocol_metrics には parent_protocol を使用してください。特定のバージョンが必要な場合は slug を使用してください。
例:resolve_entity({name: "compound"}) は次を返します。
- slug: compound-v2, parent_protocol: compound
- slug: compound-v3, parent_protocol: compound
→ 集計値を取得するには、get_protocol_metrics で
protocol: "compound"を使用してください。
配列のサポート
すべてのエンティティパラメーターでは、比較のために単一の値または配列を指定できます。
protocol: "aave"またはprotocol: ["aave", "lido", "compound"]chain: "ethereum"またはchain: ["ethereum", "solana"]token: "coingecko:ethereum"またはtoken: ["coingecko:ethereum", "coingecko:bitcoin"]
エンティティの解決
よく知られたエンティティは、まずツールに直接指定してみてください。80% 以上の確率で機能します。次の場合にのみ defillama:resolve_entity を使用してください。
- 正確なスラッグがわからない
- ツールが 0 行を返す
- 区別が必要(例:「compound」→ compound-v2、compound-v3)
- parent_protocol のスラッグを確認する必要がある
期間パラメーター
すべてのツールはperiodを受け付けます(time_rangeではありません)。
current(デフォルト)-- 最新のスナップショット7d、30d、90d、180d、365d-- ローリング期間
カスタムの日付範囲を指定する場合は、periodではなくstart_dateとend_date(YYYY-MM-DD形式)を使用します。start_dateのみを設定した場合、end_dateは今日になります。
重要な規則
ストックとフロー
集計ルールが異なります。間違えると、意味のない結果になります。
- ストック(特定時点のスナップショット):
tvl、price、mcap-- 日付をまたいで合計しないでください - フロー(期間内の累積値):
fees_1d、revenue_1d、volume-- 日付をまたいで合計できます
パーセンテージの形式
データには、異なる2つの規則があります。
*_pct_change列 = 小数(例:-0.13 = -13%、0.35 = +35%)。表示するには100を掛けます。apy列 = すでにパーセンテージ(例:2.32 = 2.32%)。100を掛けないでください。
TVLの構成要素
各構成要素は相互排他的です。二重に加算しないでください。
tvl_base= デフォルトのTVL(リキッドステーキング分と二重計上分を除く)tvl_ls_only=tvl_baseに含まれないリキッドステーキング分tvl_dc_only=tvl_baseに含まれない二重計上分tvl_ls_and_dc= LSとDCの両方- LSとDCを含む合計 =
tvl_base + tvl_ls_only + tvl_dc_only + tvl_ls_and_dc
手数料と収益
fees= ユーザーによる総支払額revenue= プロトコルの取り分(fees - LPやステーカーへの支払額)holder_revenue= トークン保有者への買い戻しと配当- チェーンレベル:
chain_fees(ガス)、chain_revenue、chain_mev、app_fees(チェーン上のプロトコル手数料)、app_revenue
メトリクス名のパターン
プロトコルのメトリクスは、次のパターンに従います。
- TVL:
tvl_base、tvl_staking、tvl_borrowed、tvl_pool2、tvl_treasury、tvl_vesting - フロー(接尾辞
_1d/_7d/_30d/_90d/_180d/_365d/_ytd/_alltime/_annualised付き):fees、revenue、holder_revenue、incentive - ボリューム(同じ接尾辞):
volume_dexs、volume_aggregators、volume_derivatives、volume_aggr_derivatives、volume_options - マーケット:
price、mcap、fdv、fdv_outstanding、token_volume、ps_ratio、pf_ratio pct_changeのバリエーションは_currentビューでのみ利用できます
チェーンのメトリクスでは、fees、revenueの代わりにchain_fees、chain_revenue、chain_mev、app_fees、app_revenueを使用します。
日次ビューでフロー/ボリュームに付く接尾辞は_1dのみです。
重要な注意点
- Category列:
get_protocol_metricsにはCategory列がありません。カテゴリーレベルのデータにはget_category_metricsを使用します。 - FDV:
total_supplyデータの信頼性が低く、ランキングが無意味になるため、FDVでソートしないでください。代わりにmcapでソートします。 - バリュエーション:
ps_ratio= mcap / 年率換算したrevenue。pf_ratio= mcap / 年率換算したfees。値が低いほど、割安の可能性があります。 - メトリクスの検証:プロトコル/チェーン/カテゴリーのメトリクスは、実際のDB列と照合して検証されます。無効なメトリクスを指定すると、最も近い候補が提示されます。
- NULL値:NULLはデータがないことを示し、$0を意味しません。NULLをゼロとして報告しないでください。
- パラメーターは文字列または配列を受け付けます:
protocol: "aave"またはprotocol: ["aave", "lido"]。パラメーター名は単数形です(protocolであり、protocolsではありません)。 - sort_byの形式:
"tvl_base desc"や"fees_1d desc"のような文字列です。
例
例 1:
ユーザー:「Aave の TVL は?」
ツール呼び出し:defillama:get_protocol_metrics(protocol: "aave", metrics: ["tvl_base"])
例 2:
ユーザー:「手数料が多いチェーンのトップ 5」
ツール呼び出し:defillama:get_chain_metrics(sort_by: "chain_fees_1d desc", limit: 5)
例 3:
ユーザー:「過去 90 日間の ETH 価格履歴」
ツール呼び出し:defillama:get_token_prices(token: "coingecko:ethereum", period: "90d")
例 4: ユーザー:「ETH の価格と Ethereum チェーンの TVL を比較して」 並列でツールを呼び出します:
defillama:get_token_prices(token: "coingecko:ethereum")defillama:get_chain_metrics(chain: "ethereum")
例 5:
ユーザー:「今年最大の DeFi ハッキング」
ツール呼び出し:defillama:get_events(event_type: "hacks", sort_by: "amount desc", limit: 10, period: "365d")
例 6:
ユーザー:「2025 年 1 月から 3 月までの Aave の TVL」
ツール呼び出し:defillama:get_protocol_metrics(protocol: "aave", metrics: ["tvl_base"], start_date: "2025-01-01", end_date: "2025-03-31")
エラーからの復旧
- 返された行数が 0 件 ->
defillama:resolve_entity(name: "...")を呼び出す -> 正しいスラッグで再試行する - データが間違っている -> 正しいツール(プロトコル、チェーン、カテゴリー)を使用しているか確認する
- エンティティが曖昧 ->
resolve_entityを呼び出して一致するすべてのスラッグを確認し、適切なものを選ぶ