
Market Data
defillama-api
DeFiLlama API provides free, no-auth DeFi macro analytics across chains—TVL, historical protocol data, multi-chain token prices, DEX volumes, fees/revenue, stablecoin metrics, and bridge listings. It exposes REST endpoints (e.g.
總覽
DeFiLlama API provides free, no-auth DeFi macro analytics across chains—TVL, historical protocol data, multi-chain token prices, DEX volumes, fees/revenue, stablecoin metrics, and bridge listings.
DeFiLlama API provides free, no-auth DeFi macro analytics across chains—TVL, historical protocol data, multi-chain token prices, DEX volumes, fees/revenue, stablecoin metrics, and bridge listings. It exposes REST endpoints (e.g., /protocols, /protocol/{slug}, /tvl/{slug}, /v2/chains, /v2/historicalChainTvl and coins.prices) plus specialized bases (coins.llama.fi, stablecoins.llama.fi, yields.llama.fi). Coin IDs use chain:address format for cross-chain pricing. Typical uses include building dashboards, portfolio and risk monitoring, research and backtesting, alerts, and aggregating TVL and revenue trends. Core advantages are broad chain coverage, historical time series, simple HTTP access with generous free rate limits (~500 requests/5 minutes), and an optional Pro tier for higher quotas and advanced endpoints (yields, detailed bridge data).
Skill.md
這個 Skill 如何運作
DeFiLlama API provides free, no-auth DeFi macro analytics across chains—TVL, historical protocol data, multi-chain token prices, DEX volumes, fees/revenue, stablecoin metrics, and bridge listings. It exposes REST endpoints (e.g.
DeFiLlama API — DeFi Macro Analytics
DeFiLlama is the largest DeFi TVL aggregator. Its API is free with no authentication for most endpoints — covering TVL, token prices, DEX volumes, fees/revenue, stablecoins, and bridges across all chains.
Quick Start
import httpx
# No auth required for free endpoints
BASE = "https://api.llama.fi"
COINS = "https://coins.llama.fi"
# Current TVL for a protocol
tvl = httpx.get(f"{BASE}/tvl/raydium").json()
print(f"Raydium TVL: ${tvl:,.0f}")
# Token prices (multi-chain)
resp = httpx.get(f"{COINS}/prices/current/solana:So11111111111111111111111111111111111111112")
sol_price = resp.json()["coins"]["solana:So11111111111111111111111111111111111111112"]["price"]
Base URLs
| Service | Base URL | Auth |
|---|---|---|
| TVL / Protocols | https://api.llama.fi | Free |
| Coin Prices | https://coins.llama.fi | Free |
| Stablecoins | https://stablecoins.llama.fi | Free |
| Yields | https://yields.llama.fi | Pro ($300/mo) |
| Bridges | https://bridges.llama.fi | Free (list) / Pro (detail) |
| Pro API | https://pro-api.llama.fi/{KEY}/api/... | Pro key in URL path |
Rate limits: ~500 requests per 5 minutes (free). Pro: 1,000 req/min, 1M calls/mo.
TVL & Protocol Data
# List all protocols with TVL
GET /protocols
# Returns: [{name, slug, tvl, chainTvls, change_1h, change_1d, change_7d, category, chains, ...}]
# Detailed protocol data with historical TVL
GET /protocol/{slug}
# Returns: Full object with tvl[], tokensInUsd{}, currentChainTvls{}, ...
# Simple current TVL number
GET /tvl/{slug}
# Returns: plain number (e.g., 150977324562.40)
# TVL for all chains
GET /v2/chains
# Returns: [{name, tvl, tokenSymbol, chainId, gecko_id}]
# Historical chain TVL
GET /v2/historicalChainTvl/{chain}
# chain: "Ethereum", "Solana", "Arbitrum", etc.
# Returns: [{date, tvl}] — date is unix timestamp (seconds)
Token Prices
Coin identifiers use {chain}:{address} format:
solana:So11111111111111111111111111111111111111112(SOL)ethereum:0xdac17f958d2ee523a2206206994597c13d831ec7(USDT)coingecko:bitcoin(non-chain lookups)
# Current prices (batch)
GET /prices/current/{coins}
# coins: comma-separated identifiers
# Optional: searchWidth (default 4h)
# Returns: {coins: {id: {price, decimals, symbol, timestamp, confidence}}}
# Historical price at timestamp
GET /prices/historical/{timestamp}/{coins}
# timestamp: unix seconds
# Price chart
GET /chart/{coins}?period=1d&span=30
# period: 1d, 4h, 1h
# Returns: {coins: {id: {prices: [{timestamp, price}]}}}
# Price change percentage
GET /percentage/{coins}
# First recorded price
GET /prices/first/{coins}
# Block number at timestamp
GET /block/{chain}/{timestamp}
Batch Historical Prices
# POST for multiple timestamps per coin
POST /batchHistorical
Body: {"coins": {"solana:So11...": [1709251200, 1709337600]}}
DEX Volumes
# All DEXes aggregated
GET /overview/dexs
# Optional: excludeTotalDataChart=true, dataType=dailyVolume
# Chain-specific
GET /overview/dexs/{chain}
# chain: "Solana", "Ethereum", etc.
# Specific DEX
GET /summary/dexs/{protocol}
# Returns: {total24h, total7d, total30d, totalAllTime, totalDataChart, ...}
Fees & Revenue
# All protocols
GET /overview/fees
# Optional: dataType=dailyFees|dailyRevenue|dailyUserFees
# Chain-specific
GET /overview/fees/{chain}
# Specific protocol
GET /summary/fees/{protocol}
# Returns: {total24h, total7d, methodology{}, totalDataChart[], ...}
Stablecoins
# All stablecoins with supply data
GET https://stablecoins.llama.fi/stablecoins
# Returns: [{name, symbol, pegType, circulating, chainCirculating, price}]
# Historical market cap
GET https://stablecoins.llama.fi/stablecoincharts/all
# Chain-specific stablecoin data
GET https://stablecoins.llama.fi/stablecoincharts/{chain}
# Stablecoin prices (deviation tracking)
GET https://stablecoins.llama.fi/stablecoinprices
Bridges
# List all bridges
GET https://bridges.llama.fi/bridges
# Optional: includeChains=true
# Returns: {bridges: [{name, volume stats, chains, ...}]}
Common Patterns
Protocol TVL Comparison
def compare_protocol_tvl(slugs: list[str]) -> list[dict]:
"""Compare TVL across protocols."""
results = []
for slug in slugs:
resp = httpx.get(f"https://api.llama.fi/tvl/{slug}", timeout=15.0)
if resp.status_code == 200:
results.append({"protocol": slug, "tvl": resp.json()})
return sorted(results, key=lambda x: x["tvl"], reverse=True)
Multi-Token Price Lookup
def get_solana_prices(mints: list[str]) -> dict[str, float]:
"""Get USD prices for Solana tokens via DeFiLlama."""
coins = ",".join(f"solana:{m}" for m in mints)
resp = httpx.get(f"https://coins.llama.fi/prices/current/{coins}")
data = resp.json().get("coins", {})
return {
mint: data[f"solana:{mint}"]["price"]
for mint in mints
if f"solana:{mint}" in data
}
Solana DeFi Overview
def solana_defi_snapshot() -> dict:
"""Get a snapshot of Solana DeFi activity."""
chain_tvl = httpx.get("https://api.llama.fi/v2/chains").json()
sol_tvl = next((c["tvl"] for c in chain_tvl if c["name"] == "Solana"), 0)
dex_vol = httpx.get("https://api.llama.fi/overview/dexs/Solana").json()
fees = httpx.get("https://api.llama.fi/overview/fees/Solana").json()
return {
"tvl": sol_tvl,
"dex_volume_24h": dex_vol.get("total24h", 0),
"fees_24h": fees.get("total24h", 0),
}
Historical Price Analysis
def price_at_date(coin: str, date_str: str) -> float:
"""Get token price at a specific date.
Args:
coin: DeFiLlama coin ID (e.g., 'solana:So11...')
date_str: Date string 'YYYY-MM-DD'
"""
from datetime import datetime, timezone
dt = datetime.strptime(date_str, "%Y-%m-%d").replace(tzinfo=timezone.utc)
ts = int(dt.timestamp())
resp = httpx.get(f"https://coins.llama.fi/prices/historical/{ts}/{coin}")
data = resp.json().get("coins", {})
return data.get(coin, {}).get("price", 0)
Free vs Pro Endpoints
| Category | Free | Pro ($300/mo) |
|---|---|---|
| TVL / Protocols | Yes | Yes |
| Coin Prices | Yes | Yes |
| DEX Volumes (overview) | Yes | Yes |
| Fees/Revenue (overview) | Yes | Yes |
| Stablecoins | Yes | Yes |
| Bridges (list) | Yes | Yes |
| Yields / Pools | No | Yes |
| Bridge detail | No | Yes |
| Derivatives | No | Yes |
| Emissions/Unlocks | No | Yes |
| Treasuries | No | Yes |
| Hacks database | No | Yes |
When to Use DeFiLlama vs Alternatives
| Need | Use |
|---|---|
| Protocol TVL comparison | DeFiLlama |
| Multi-chain token prices | DeFiLlama (free batch) |
| Historical prices at specific timestamps | DeFiLlama |
| DeFi macro analysis | DeFiLlama |
| Solana token OHLCV | Birdeye or SolanaTracker |
| Real-time token data | DexScreener or Birdeye |
| Wallet PnL | SolanaTracker |
| On-chain transaction data | Helius |
Files
References
references/endpoints.md— Complete endpoint listing with parameters and response schemasreferences/coin_identifiers.md— Chain prefixes, address formats, and batch lookup patternsreferences/error_handling.md— Rate limits, error codes, retry strategies, large response handling
Scripts
scripts/defi_snapshot.py— Solana DeFi overview: TVL, volumes, fees, top protocolsscripts/price_lookup.py— Multi-token price lookup with historical comparison
最適合用於
何時使用
DeFiLlama API provides free, no-auth DeFi macro analytics across chains—TVL, historical protocol data, multi-chain token prices, DEX volumes, fees/revenue, stablecoin metrics, and bridge listings. It exposes REST endpoints (e.g.

01 · 會前準備
準備決策簡報
在投資委員會開會前,把零散證據整理成結構化的論據。

02 · 團隊協作
統一交接標準
讓分析師、投資組合經理與 Agent 產出一致的研究結果。

03 · 即時更新
更新投資邏輯
出現新催化劑、KPI 發布或財報結果後,更新情境假設。
社群回饋
越用越好用。
隨著 Skill 被使用與評審,回饋將顯示在這裡。
探索更多
相關 Skills
查看全部gmgn-market
gmgn-market is a CLI-driven Skill for retrieving crypto and meme-token market data: K-line (candlestick/OHLCV) charts, trending token rankings by USD volume, Trenches token lists, and newly launched…
crypto-price
This Skill retrieves cryptocurrency prices and generates dark-themed candlestick charts via a simple CLI. Invoke the script with a token symbol and optional duration (e.g., 30m, 3h, 12h, 2d) to…
cmc-api-crypto
This skill documents the CoinMarketCap (CMC) Cryptocurrency REST API for programmatic access to market and token data. It details authentication (API key via X-CMC_PRO_API_KEY), base URL, and…