DefiLlama
App · Cryptocurrency · 26 actions
Read DeFi's open dataset from DefiLlama: the TVL of every protocol and chain it tracks, with the history behind it; token prices by contract address, including tokens too small to be listed elsewhere, with historical, first-recorded and interval-sampled series and the block nearest any moment; stablecoin supply, prices and peg drift, per asset and per chain; 16,000+ yield pools searchable by chain, project, token and APY, with each pool's history; and the volume, open interest, fees and revenue of DEXs, options venues and perpetual exchanges. No account or API key is required.
Actions
| Action | What it does |
|---|---|
| Find yield pools | Search 16,000+ yield pools by chain, project, token, APY and size. |
| Get block at a moment | The block closest to a moment in time on a given chain: the block number to run an archive query or a historical balance lookup against. |
| Get DEX volume overview | Trading volume across every decentralised exchange, ranked by the last 24 hours, with the 7-day, 30-day and all-time totals and the changes behind the ranking. |
| Get DEX volume summary | One exchange's trading volume, broken down by the chains it runs on, with its day-by-day history on request. |
| Get fees and revenue overview | What every protocol earns, ranked by the last 24 hours. |
| Get fees and revenue summary | One protocol's fees or revenue, broken down by the chains it runs on, with its day-by-day history on request. |
| Get first recorded prices | The earliest price DefiLlama holds for each token, and when it was recorded. |
| Get historical token prices | What tokens were worth at a moment in the past. |
| Get open interest overview | Open interest across the perpetual exchanges DefiLlama tracks, largest first. |
| Get options volume overview | Volume across every on-chain options venue, ranked by the last 24 hours. |
| Get options volume summary | One options venue's volume, in notional or premium terms, broken down by chain, with its day-by-day history on request. |
| Get pool history | One yield pool's APY and TVL over time: whether a rate that looks good today has held, and whether money has been arriving or leaving. |
| Get prices at several moments | Price a basket of tokens at the same set of past moments, in one call: the shape a comparison table or a period-over-period report wants. |
| Get protocol | Everything DefiLlama holds on one protocol: what it is, its current TVL and how that splits across chains, the funding rounds behind it and any exploits on record. |
| Get protocol TVL | One protocol's current total value locked, as a single number. |
| Get stablecoin | Everything DefiLlama holds on one stablecoin: what backs it, how it is minted and redeemed, its audits, and how much of it sits on each chain right now. |
| Get stablecoin market cap history | Daily stablecoin market cap over time. |
| Get stablecoin price history | Daily prices for stablecoins: how well each one has actually held its peg, which is the only way to see a depeg after it has recovered. |
| Get token price change | How much each token's price moved over a period, as a percentage. |
| Get token price chart | A token's price sampled at regular intervals: the series behind a chart, a moving average, or a volatility check. |
| Get token prices | The latest price of any token DefiLlama prices, by chain and contract address (including tokens too small or too new to be listed anywhere). |
| Get TVL history | Daily total value locked over time: across all of DeFi, or on one chain if you name one. |
| List chains | Every chain DefiLlama tracks, with the TVL on it, largest first, which chains hold the most DeFi value right now, and the exact chain names the other actions filter by. |
| List protocols | Search the 8,000+ DeFi protocols DefiLlama tracks by name, chain, category or minimum TVL, and rank them by TVL, by how much that TVL moved, or by market cap. |
| List stablecoin totals by chain | How much stablecoin value sits on each chain right now, largest first, where the dollars actually are, which is a different ranking from where the DeFi TVL is. |
| List stablecoins | Every stablecoin DefiLlama tracks, with its circulating supply, its current price and how far that has drifted from the peg. |
Find yield pools
Search 16,000+ yield pools by chain, project, token, APY and size. Each result separates the base APY from the reward APY (rewards are paid in incentive tokens and can stop) and carries the 30-day mean, so a spot rate can be checked against a steadier one. Setting a minimum TVL is worth doing on any search: the highest raw APYs belong to pools holding a few hundred dollars.
Inputs
- Chain
chaintext - Only include pools on this chain.
- Project
projecttext - Only include pools run by this protocol.
- Token
symboltext - Only include pools whose token symbol contains this text.
- Stablecoin pools only
stablecoin_onlytrue/false - Only include pools that hold nothing but stablecoins.Default:
false. - Exposure
exposuretext - Whether the pool holds one asset or several. Leave empty for both.One of:
single(Single asset),multi(Multiple assets). - Impermanent loss risk
il_risktext - Whether the pool is exposed to impermanent loss. Leave empty for both.One of:
no(No impermanent loss risk),yes(Exposed to impermanent loss). - Minimum TVL (USD)
min_tvl_usdnumber - Only include pools holding at least this much. Worth setting: without it the top of an APY ranking is dust.At least 0.
- Minimum APY (%)
min_apynumber - Only include pools yielding at least this much, as a percentage.From 0 to 10000000.
- Maximum APY (%)
max_apynumber - Only include pools yielding at most this much. Useful for excluding the implausible rates that come from a mis-priced reward token.From 0 to 10000000.
- Sort by
sort_bytext - How to order the results. Leave empty to sort by total APY.One of:
apy(Total APY, highest first),apy_base(Base APY, highest first),apy_reward(Reward APY, highest first),apy_mean_30d(30-day mean APY, highest first),tvl_usd(TVL, largest first). - Maximum results
limitnumber - How many pools to return, at most 500. Leave empty for 25.From 1 to 500.
Outputs
countnumber- How many rows this result holds.
matchednumber- How many rows matched the filters before the limit was applied.
poolslist- The matching pools, ordered by the chosen sort.
sorted_bytext- The field the results were ordered by.
total_trackednumber- How many pools DefiLlama tracks in total.
truncatedtrue/false- True when the limit held rows back.
Example output
{
"count": 1,
"matched": 181,
"pools": [
{
"apy": 2.185,
"apy_base": 2.185,
"apy_change_1d": 0.005,
"apy_change_30d": -0.022,
"apy_change_7d": 0.011,
"apy_mean_30d": 2.1884,
"apy_reward": null,
"binned_confidence": 2.0,
"chain": "Ethereum",
"exposure": "single",
"il_risk": "no",
"outlier": false,
"pool": "747c1d2a-c668-4682-b9f9-296708a3dd90",
"pool_meta": null,
"predicted_class": "Stable/Up",
"predicted_probability": 71.0,
"project": "lido",
"reward_tokens": [],
"stablecoin": false,
"symbol": "STETH",
"tvl_usd": 21541836747.0,
"underlying_tokens": [
"0x0000000000000000000000000000000000000000"
],
"volume_usd_1d": null,
"volume_usd_7d": null
}
],
"sorted_by": "apy",
"total_tracked": 16092,
"truncated": true
}Get block at a moment
The block closest to a moment in time on a given chain: the block number to run an archive query or a historical balance lookup against. The block's own timestamp comes back too, since it is near but rarely equal to the one you asked for.
Inputs
- Chain
chaintextRequired - The chain to find the block on. These are DefiLlama's lower-case coin slugs ('avax', 'bsc'), which are not the same list as the chain names the TVL actions use.
- At this moment
timestampdate and timeRequired - The date and time to find the nearest block to.
Outputs
chaintext- The chain the block is on.
heightnumber- The block number.
requested_timestampnumber- The moment that was asked for, as Unix seconds.
requested_timestamp_isotext- The moment that was asked for, as an ISO-8601 UTC string.
timestampnumber- The block's own timestamp, as Unix seconds.
timestamp_isotext- The block's own timestamp as an ISO-8601 UTC string.
Example output
{
"chain": "ethereum",
"height": 19008565,
"requested_timestamp": 1705276800,
"requested_timestamp_iso": "2024-01-15T00:00:00Z",
"timestamp": 1705276811,
"timestamp_iso": "2024-01-15T00:00:11Z"
}Get DEX volume overview
Trading volume across every decentralised exchange, ranked by the last 24 hours, with the 7-day, 30-day and all-time totals and the changes behind the ranking. Name a chain to see only the venues trading on it.
Inputs
- Chain
chaintext - Only count volume traded on this chain. Leave empty for every chain.
- Include the history chart
include_charttrue/false - Also return the day-by-day history behind these totals. Off by default, because it is by far the largest part of the response.Default:
false. - From date
start_datedate - Only include data from this date onwards. Leave empty for no lower bound.
- To date
end_datedate - Only include data up to this date. Leave empty for no upper bound.
- Maximum results
limitnumber - How many protocols to return, at most 500. Leave empty for 25.From 1 to 500.
- Maximum chart points
chart_limitnumber - How many days of chart history to return, at most 5000. The most recent are kept. Leave empty for 90. Only used when the chart is included.From 1 to 5000.
Outputs
all_chainslist- Every chain this dataset can be filtered by.
chaintext- The chain the figures are for, or empty for every chain.
change_1dnumber- Percent change against the previous day.
change_1mnumber- Percent change against the previous month.
change_7dnumber- Percent change against the previous week.
chartlist- Day-by-day history, most recent last. Only present when the chart was requested.
chart_matchednumber- How many chart points fell inside the date range before the limit was applied.
countnumber- How many rows this result holds.
data_typetext- Which measure the figures are, when the action offers a choice.
matchednumber- How many rows matched the filters before the limit was applied.
protocolslist- The protocols, ranked by their last 24 hours.
total_1ynumber- The figure over the last year.
total_24hnumber- The figure over the last 24 hours, in US dollars.
total_30dnumber- The figure over the last 30 days.
total_48h_to_24hnumber- The same figure for the 24 hours before that, for comparison.
total_7dnumber- The figure over the last 7 days.
total_all_timenumber- The figure since DefiLlama began tracking it.
truncatedtrue/false- True when the limit held rows back.
Example output
{
"all_chains": [
"Ethereum",
"Solana",
"Base",
"BSC"
],
"chain": null,
"change_1d": 180.16,
"change_1m": -6.02,
"change_7d": 12.4,
"count": 1,
"data_type": null,
"matched": 1318,
"protocols": [
{
"category": "Dexs",
"chains": [
"Ethereum",
"Arbitrum",
"Base"
],
"change_1d": 180.16,
"change_1m": -6.02,
"change_7d": 12.4,
"defillama_id": "2196",
"display_name": "Uniswap V3",
"logo": "https://icons.llamao.fi/icons/protocols/uniswap-v3",
"name": "Uniswap V3",
"parent_protocol": "parent#uniswap",
"slug": "uniswap-v3",
"total_1y": 766735302276.56,
"total_24h": 3031015047.0,
"total_30d": 43909422692.97,
"total_48h_to_24h": 1082080637.01,
"total_7d": 9581784849.01,
"total_all_time": 3801933433276.56
}
],
"total_1y": 766735302276.56,
"total_24h": 3031015047.0,
"total_30d": 43909422692.97,
"total_48h_to_24h": 1082080637.01,
"total_7d": 9581784849.01,
"total_all_time": 3801933433276.56,
"truncated": true
}Get DEX volume summary
One exchange's trading volume, broken down by the chains it runs on, with its day-by-day history on request.
Inputs
- Exchange
protocoltextRequired - The exchange to summarise.
- Include the history chart
include_charttrue/false - Also return the day-by-day history behind these totals. Off by default, because it is by far the largest part of the response.Default:
false. - From date
start_datedate - Only include data from this date onwards. Leave empty for no lower bound.
- To date
end_datedate - Only include data up to this date. Leave empty for no upper bound.
- Maximum chart points
chart_limitnumber - How many days of chart history to return, at most 5000. The most recent are kept. Leave empty for 90. Only used when the chart is included.From 1 to 5000.
Outputs
by_chainobject- The same set of totals for each chain separately.
categorytext- What kind of protocol it is.
chainslist- The chains it operates on.
change_1dnumber- Percent change against the previous day.
change_1mnumber- Percent change against the previous month.
change_7dnumber- Percent change against the previous week.
chartlist- Day-by-day history, most recent last. Only present when the chart was requested.
chart_matchednumber- How many chart points fell inside the date range before the limit was applied.
child_protocolslist- The deployments rolled up into this figure.
data_typetext- Which measure the figures are, when the action offers a choice.
descriptiontext- DefiLlama's description of it.
display_nametext- The name DefiLlama shows for it.
idtext- DefiLlama's internal id for it.
linked_protocolslist- Protocols DefiLlama links to this one.
logotext- URL of its logo.
methodologyobject- How DefiLlama calculates these figures.
nametext- The protocol's name.
slugtext- The protocol's slug in this dataset.
total_1ynumber- The figure over the last year.
total_24hnumber- The figure over the last 24 hours, in US dollars.
total_30dnumber- The figure over the last 30 days.
total_48h_to_24hnumber- The same figure for the 24 hours before that, for comparison.
total_7dnumber- The figure over the last 7 days.
total_all_timenumber- The figure since DefiLlama began tracking it.
urltext- Its own website.
Example output
{
"by_chain": {
"Ethereum": {
"change_1d": 180.16,
"change_1m": -6.02,
"change_7d": 12.4,
"total_1y": 766735302276.56,
"total_24h": 3031015047.0,
"total_30d": 43909422692.97,
"total_48h_to_24h": 1082080637.01,
"total_7d": 9581784849.01,
"total_all_time": 3801933433276.56
}
},
"category": "Dexs",
"chains": [
"Ethereum",
"Arbitrum",
"Base"
],
"change_1d": 180.16,
"change_1m": -6.02,
"change_7d": 12.4,
"chart": [
{
"date": 1787097600,
"date_iso": "2026-08-19T00:00:00Z",
"value": 3031015047.0
},
{
"date": 1787184000,
"date_iso": "2026-08-20T00:00:00Z",
"value": 3104715691.0
}
],
"chart_matched": 2849,
"child_protocols": [
"Uniswap V2",
"Uniswap V3",
"Uniswap V4"
],
"data_type": null,
"description": "Swap, earn, and build on the leading decentralized crypto trading protocol.",
"display_name": "Uniswap",
"id": "parent#uniswap",
"linked_protocols": [
"Uniswap V2",
"Uniswap V3"
],
"logo": "https://icons.llamao.fi/icons/protocols/uniswap",
"methodology": {
"Fees": "Swap fees paid by users."
},
"name": "Uniswap",
"slug": "uniswap",
"total_1y": 766735302276.56,
"total_24h": 3031015047.0,
"total_30d": 43909422692.97,
"total_48h_to_24h": 1082080637.01,
"total_7d": 9581784849.01,
"total_all_time": 3801933433276.56,
"url": "https://app.uniswap.org/"
}Get fees and revenue overview
What every protocol earns, ranked by the last 24 hours. Choose which figure you mean: fees are everything users paid, revenue is the share the protocol keeps, and holders' revenue is the share that reaches token holders. Name a chain to see only what is earned on it.
Inputs
- Chain
chaintext - Only count fees earned on this chain. Leave empty for every chain.
- Measure
data_typetext - Which figure the totals should be. Leave empty for fees: everything users paid.One of:
dailyFees(Fees: everything users paid),dailyRevenue(Revenue: the share the protocol keeps),dailyHoldersRevenue(Holders' revenue: the share that reaches token holders). - Include the history chart
include_charttrue/false - Also return the day-by-day history behind these totals. Off by default, because it is by far the largest part of the response.Default:
false. - From date
start_datedate - Only include data from this date onwards. Leave empty for no lower bound.
- To date
end_datedate - Only include data up to this date. Leave empty for no upper bound.
- Maximum results
limitnumber - How many protocols to return, at most 500. Leave empty for 25.From 1 to 500.
- Maximum chart points
chart_limitnumber - How many days of chart history to return, at most 5000. The most recent are kept. Leave empty for 90. Only used when the chart is included.From 1 to 5000.
Outputs
all_chainslist- Every chain this dataset can be filtered by.
chaintext- The chain the figures are for, or empty for every chain.
change_1dnumber- Percent change against the previous day.
change_1mnumber- Percent change against the previous month.
change_7dnumber- Percent change against the previous week.
chartlist- Day-by-day history, most recent last. Only present when the chart was requested.
chart_matchednumber- How many chart points fell inside the date range before the limit was applied.
countnumber- How many rows this result holds.
data_typetext- Which measure the figures are, when the action offers a choice.
matchednumber- How many rows matched the filters before the limit was applied.
protocolslist- The protocols, ranked by their last 24 hours.
total_1ynumber- The figure over the last year.
total_24hnumber- The figure over the last 24 hours, in US dollars.
total_30dnumber- The figure over the last 30 days.
total_48h_to_24hnumber- The same figure for the 24 hours before that, for comparison.
total_7dnumber- The figure over the last 7 days.
total_all_timenumber- The figure since DefiLlama began tracking it.
truncatedtrue/false- True when the limit held rows back.
Example output
{
"all_chains": [
"Ethereum",
"Solana",
"Base",
"BSC"
],
"chain": null,
"change_1d": 180.16,
"change_1m": -6.02,
"change_7d": 12.4,
"count": 1,
"data_type": "dailyRevenue",
"matched": 2589,
"protocols": [
{
"category": "Stablecoin Issuer",
"chains": [
"Ethereum",
"Arbitrum",
"Base"
],
"change_1d": 180.16,
"change_1m": -6.02,
"change_7d": 12.4,
"defillama_id": "2196",
"display_name": "Tether",
"logo": "https://icons.llamao.fi/icons/protocols/uniswap-v3",
"name": "Tether",
"parent_protocol": "parent#uniswap",
"slug": "tether",
"total_1y": 766735302276.56,
"total_24h": 15945621.0,
"total_30d": 43909422692.97,
"total_48h_to_24h": 1082080637.01,
"total_7d": 9581784849.01,
"total_all_time": 3801933433276.56
}
],
"total_1y": 766735302276.56,
"total_24h": 35674245.78,
"total_30d": 43909422692.97,
"total_48h_to_24h": 1082080637.01,
"total_7d": 9581784849.01,
"total_all_time": 3801933433276.56,
"truncated": true
}Get fees and revenue summary
One protocol's fees or revenue, broken down by the chains it runs on, with its day-by-day history on request.
Inputs
- Protocol
protocoltextRequired - The protocol to summarise.
- Measure
data_typetext - Which figure the totals should be. Leave empty for fees: everything users paid.One of:
dailyFees(Fees: everything users paid),dailyRevenue(Revenue: the share the protocol keeps),dailyHoldersRevenue(Holders' revenue: the share that reaches token holders). - Include the history chart
include_charttrue/false - Also return the day-by-day history behind these totals. Off by default, because it is by far the largest part of the response.Default:
false. - From date
start_datedate - Only include data from this date onwards. Leave empty for no lower bound.
- To date
end_datedate - Only include data up to this date. Leave empty for no upper bound.
- Maximum chart points
chart_limitnumber - How many days of chart history to return, at most 5000. The most recent are kept. Leave empty for 90. Only used when the chart is included.From 1 to 5000.
Outputs
by_chainobject- The same set of totals for each chain separately.
categorytext- What kind of protocol it is.
chainslist- The chains it operates on.
change_1dnumber- Percent change against the previous day.
change_1mnumber- Percent change against the previous month.
change_7dnumber- Percent change against the previous week.
chartlist- Day-by-day history, most recent last. Only present when the chart was requested.
chart_matchednumber- How many chart points fell inside the date range before the limit was applied.
child_protocolslist- The deployments rolled up into this figure.
data_typetext- Which measure the figures are, when the action offers a choice.
descriptiontext- DefiLlama's description of it.
display_nametext- The name DefiLlama shows for it.
idtext- DefiLlama's internal id for it.
linked_protocolslist- Protocols DefiLlama links to this one.
logotext- URL of its logo.
methodologyobject- How DefiLlama calculates these figures.
nametext- The protocol's name.
slugtext- The protocol's slug in this dataset.
total_1ynumber- The figure over the last year.
total_24hnumber- The figure over the last 24 hours, in US dollars.
total_30dnumber- The figure over the last 30 days.
total_48h_to_24hnumber- The same figure for the 24 hours before that, for comparison.
total_7dnumber- The figure over the last 7 days.
total_all_timenumber- The figure since DefiLlama began tracking it.
urltext- Its own website.
Example output
{
"by_chain": {
"Ethereum": {
"change_1d": 180.16,
"change_1m": -6.02,
"change_7d": 12.4,
"total_1y": 766735302276.56,
"total_24h": 3031015047.0,
"total_30d": 43909422692.97,
"total_48h_to_24h": 1082080637.01,
"total_7d": 9581784849.01,
"total_all_time": 3801933433276.56
}
},
"category": "Dexs",
"chains": [
"Ethereum",
"Arbitrum",
"Base"
],
"change_1d": 180.16,
"change_1m": -6.02,
"change_7d": 12.4,
"chart": [
{
"date": 1787097600,
"date_iso": "2026-08-19T00:00:00Z",
"value": 3031015047.0
},
{
"date": 1787184000,
"date_iso": "2026-08-20T00:00:00Z",
"value": 3104715691.0
}
],
"chart_matched": 2849,
"child_protocols": [
"Uniswap V2",
"Uniswap V3",
"Uniswap V4"
],
"data_type": "dailyFees",
"description": "Swap, earn, and build on the leading decentralized crypto trading protocol.",
"display_name": "Uniswap",
"id": "parent#uniswap",
"linked_protocols": [
"Uniswap V2",
"Uniswap V3"
],
"logo": "https://icons.llamao.fi/icons/protocols/uniswap",
"methodology": {
"Fees": "Swap fees paid by users."
},
"name": "Uniswap",
"slug": "uniswap",
"total_1y": 766735302276.56,
"total_24h": 2400741.0,
"total_30d": 43909422692.97,
"total_48h_to_24h": 1082080637.01,
"total_7d": 9581784849.01,
"total_all_time": 3801933433276.56,
"url": "https://app.uniswap.org/"
}Get first recorded prices
The earliest price DefiLlama holds for each token, and when it was recorded. Use it to find how far back a token's data goes before charting it, or as the starting point for a return since inception.
Inputs
- Tokens
coinslistRequired - The tokens to look up, as DefiLlama coin ids, separated by commas. An on-chain token is {chain}:{contract address}; a listed coin can also be written coingecko:{id}.
Outputs
countnumber- How many tokens came back with a price.
not_foundlist- Coin ids DefiLlama had no data for. An unrecognised id is silently absent from its answer, so this is how you tell.
priceslist- The earliest price on record for each token, with when it was recorded.
requestedlist- The coin ids that were asked for.
Example output
{
"count": 1,
"not_found": [],
"prices": [
{
"coin": "coingecko:ethereum",
"confidence": null,
"decimals": null,
"price_usd": 2.83162,
"symbol": "ETH",
"timestamp": 1438905600,
"timestamp_iso": "2015-08-07T00:00:00Z"
}
],
"requested": [
"coingecko:ethereum"
]
}Get historical token prices
What tokens were worth at a moment in the past. DefiLlama answers with the closest price it recorded to the moment you pick, and each result says which moment that actually was.
Inputs
- Tokens
coinslistRequired - The tokens to look up, as DefiLlama coin ids, separated by commas. An on-chain token is {chain}:{contract address}; a listed coin can also be written coingecko:{id}.
- At this moment
timestampdate and timeRequired - The date and time to price the tokens at.
Outputs
countnumber- How many tokens came back with a price.
not_foundlist- Coin ids DefiLlama had no data for. An unrecognised id is silently absent from its answer, so this is how you tell.
priceslist- Each token's price at the moment asked for, with the moment it actually came from.
requestedlist- The coin ids that were asked for.
timestampnumber- The moment that was asked for, as a Unix timestamp.
timestamp_isotext- The same moment as an ISO-8601 UTC string.
Example output
{
"count": 1,
"not_found": [],
"prices": [
{
"coin": "coingecko:ethereum",
"confidence": 0.99,
"decimals": null,
"price_usd": 2475.12,
"symbol": "ETH",
"timestamp": 1705276816,
"timestamp_iso": "2024-01-15T00:00:16Z"
}
],
"requested": [
"coingecko:ethereum"
],
"timestamp": 1705276800,
"timestamp_iso": "2024-01-15T00:00:00Z"
}Get open interest overview
Open interest across the perpetual exchanges DefiLlama tracks, largest first. Open interest is a position rather than a flow (the value of contracts still open right now), so it measures how much leverage is in the market, not how much was traded.
Inputs
- Include the history chart
include_charttrue/false - Also return the day-by-day history behind these totals. Off by default, because it is by far the largest part of the response.Default:
false. - From date
start_datedate - Only include data from this date onwards. Leave empty for no lower bound.
- To date
end_datedate - Only include data up to this date. Leave empty for no upper bound.
- Maximum results
limitnumber - How many protocols to return, at most 500. Leave empty for 25.From 1 to 500.
- Maximum chart points
chart_limitnumber - How many days of chart history to return, at most 5000. The most recent are kept. Leave empty for 90. Only used when the chart is included.From 1 to 5000.
Outputs
all_chainslist- Every chain this dataset can be filtered by.
chaintext- The chain the figures are for, or empty for every chain.
change_1dnumber- Percent change against the previous day.
change_1mnumber- Percent change against the previous month.
change_7dnumber- Percent change against the previous week.
chartlist- Day-by-day history, most recent last. Only present when the chart was requested.
chart_matchednumber- How many chart points fell inside the date range before the limit was applied.
countnumber- How many rows this result holds.
data_typetext- Which measure the figures are, when the action offers a choice.
matchednumber- How many rows matched the filters before the limit was applied.
protocolslist- The protocols, ranked by their last 24 hours.
total_1ynumber- The figure over the last year.
total_24hnumber- The figure over the last 24 hours, in US dollars.
total_30dnumber- The figure over the last 30 days.
total_48h_to_24hnumber- The same figure for the 24 hours before that, for comparison.
total_7dnumber- The figure over the last 7 days.
total_all_timenumber- The figure since DefiLlama began tracking it.
truncatedtrue/false- True when the limit held rows back.
Example output
{
"all_chains": [
"Ethereum",
"Solana",
"Base",
"BSC"
],
"chain": null,
"change_1d": 180.16,
"change_1m": -6.02,
"change_7d": 12.4,
"count": 1,
"data_type": null,
"matched": 39,
"protocols": [
{
"category": "Derivatives",
"chains": [
"Ethereum",
"Arbitrum",
"Base"
],
"change_1d": 180.16,
"change_1m": -6.02,
"change_7d": 12.4,
"defillama_id": "2196",
"display_name": "Hyperliquid Perps",
"logo": "https://icons.llamao.fi/icons/protocols/uniswap-v3",
"name": "Hyperliquid Perps",
"parent_protocol": "parent#uniswap",
"slug": "hyperliquid-perps",
"total_1y": 766735302276.56,
"total_24h": 11716122664.0,
"total_30d": 43909422692.97,
"total_48h_to_24h": 1082080637.01,
"total_7d": 9581784849.01,
"total_all_time": 3801933433276.56
}
],
"total_1y": 766735302276.56,
"total_24h": 20181522039.0,
"total_30d": 43909422692.97,
"total_48h_to_24h": 1082080637.01,
"total_7d": 9581784849.01,
"total_all_time": 3801933433276.56,
"truncated": true
}Get options volume overview
Volume across every on-chain options venue, ranked by the last 24 hours. Choose whether the figures are notional volume (the face value of the contracts) or premium volume, what buyers actually paid; the two differ by orders of magnitude.
Inputs
- Chain
chaintext - Only count volume traded on this chain. Leave empty for every chain.
- Volume basis
data_typetext - How the volume is counted. Leave empty for notional volume. The two differ by orders of magnitude, so this decides what the numbers mean.One of:
dailyNotionalVolume(Notional volume: the face value of the contracts),dailyPremiumVolume(Premium volume: what buyers actually paid). - Include the history chart
include_charttrue/false - Also return the day-by-day history behind these totals. Off by default, because it is by far the largest part of the response.Default:
false. - From date
start_datedate - Only include data from this date onwards. Leave empty for no lower bound.
- To date
end_datedate - Only include data up to this date. Leave empty for no upper bound.
- Maximum results
limitnumber - How many protocols to return, at most 500. Leave empty for 25.From 1 to 500.
- Maximum chart points
chart_limitnumber - How many days of chart history to return, at most 5000. The most recent are kept. Leave empty for 90. Only used when the chart is included.From 1 to 5000.
Outputs
all_chainslist- Every chain this dataset can be filtered by.
chaintext- The chain the figures are for, or empty for every chain.
change_1dnumber- Percent change against the previous day.
change_1mnumber- Percent change against the previous month.
change_7dnumber- Percent change against the previous week.
chartlist- Day-by-day history, most recent last. Only present when the chart was requested.
chart_matchednumber- How many chart points fell inside the date range before the limit was applied.
countnumber- How many rows this result holds.
data_typetext- Which measure the figures are, when the action offers a choice.
matchednumber- How many rows matched the filters before the limit was applied.
protocolslist- The protocols, ranked by their last 24 hours.
total_1ynumber- The figure over the last year.
total_24hnumber- The figure over the last 24 hours, in US dollars.
total_30dnumber- The figure over the last 30 days.
total_48h_to_24hnumber- The same figure for the 24 hours before that, for comparison.
total_7dnumber- The figure over the last 7 days.
total_all_timenumber- The figure since DefiLlama began tracking it.
truncatedtrue/false- True when the limit held rows back.
Example output
{
"all_chains": [
"Arbitrum",
"Ethereum",
"Optimism"
],
"chain": null,
"change_1d": 180.16,
"change_1m": -6.02,
"change_7d": 12.4,
"count": 1,
"data_type": "dailyPremiumVolume",
"matched": 28,
"protocols": [
{
"category": "Dexs",
"chains": [
"Ethereum",
"Arbitrum",
"Base"
],
"change_1d": 180.16,
"change_1m": -6.02,
"change_7d": 12.4,
"defillama_id": "2196",
"display_name": "Uniswap V3",
"logo": "https://icons.llamao.fi/icons/protocols/uniswap-v3",
"name": "Uniswap V3",
"parent_protocol": "parent#uniswap",
"slug": "uniswap-v3",
"total_1y": 766735302276.56,
"total_24h": 3031015047.0,
"total_30d": 43909422692.97,
"total_48h_to_24h": 1082080637.01,
"total_7d": 9581784849.01,
"total_all_time": 3801933433276.56
}
],
"total_1y": 766735302276.56,
"total_24h": 3031015047.0,
"total_30d": 43909422692.97,
"total_48h_to_24h": 1082080637.01,
"total_7d": 9581784849.01,
"total_all_time": 3801933433276.56,
"truncated": true
}Get options volume summary
One options venue's volume, in notional or premium terms, broken down by chain, with its day-by-day history on request.
Inputs
- Options venue
protocoltextRequired - The options venue to summarise.
- Volume basis
data_typetext - How the volume is counted. Leave empty for notional volume. The two differ by orders of magnitude, so this decides what the numbers mean.One of:
dailyNotionalVolume(Notional volume: the face value of the contracts),dailyPremiumVolume(Premium volume: what buyers actually paid). - Include the history chart
include_charttrue/false - Also return the day-by-day history behind these totals. Off by default, because it is by far the largest part of the response.Default:
false. - From date
start_datedate - Only include data from this date onwards. Leave empty for no lower bound.
- To date
end_datedate - Only include data up to this date. Leave empty for no upper bound.
- Maximum chart points
chart_limitnumber - How many days of chart history to return, at most 5000. The most recent are kept. Leave empty for 90. Only used when the chart is included.From 1 to 5000.
Outputs
by_chainobject- The same set of totals for each chain separately.
categorytext- What kind of protocol it is.
chainslist- The chains it operates on.
change_1dnumber- Percent change against the previous day.
change_1mnumber- Percent change against the previous month.
change_7dnumber- Percent change against the previous week.
chartlist- Day-by-day history, most recent last. Only present when the chart was requested.
chart_matchednumber- How many chart points fell inside the date range before the limit was applied.
child_protocolslist- The deployments rolled up into this figure.
data_typetext- Which measure the figures are, when the action offers a choice.
descriptiontext- DefiLlama's description of it.
display_nametext- The name DefiLlama shows for it.
idtext- DefiLlama's internal id for it.
linked_protocolslist- Protocols DefiLlama links to this one.
logotext- URL of its logo.
methodologyobject- How DefiLlama calculates these figures.
nametext- The protocol's name.
slugtext- The protocol's slug in this dataset.
total_1ynumber- The figure over the last year.
total_24hnumber- The figure over the last 24 hours, in US dollars.
total_30dnumber- The figure over the last 30 days.
total_48h_to_24hnumber- The same figure for the 24 hours before that, for comparison.
total_7dnumber- The figure over the last 7 days.
total_all_timenumber- The figure since DefiLlama began tracking it.
urltext- Its own website.
Example output
{
"by_chain": {
"Ethereum": {
"change_1d": 180.16,
"change_1m": -6.02,
"change_7d": 12.4,
"total_1y": 766735302276.56,
"total_24h": 3031015047.0,
"total_30d": 43909422692.97,
"total_48h_to_24h": 1082080637.01,
"total_7d": 9581784849.01,
"total_all_time": 3801933433276.56
}
},
"category": "Options",
"chains": [
"Ethereum",
"Arbitrum",
"Base"
],
"change_1d": 180.16,
"change_1m": -6.02,
"change_7d": 12.4,
"chart": [
{
"date": 1787097600,
"date_iso": "2026-08-19T00:00:00Z",
"value": 3031015047.0
},
{
"date": 1787184000,
"date_iso": "2026-08-20T00:00:00Z",
"value": 3104715691.0
}
],
"chart_matched": 2849,
"child_protocols": [
"Uniswap V2",
"Uniswap V3",
"Uniswap V4"
],
"data_type": "dailyNotionalVolume",
"description": "Swap, earn, and build on the leading decentralized crypto trading protocol.",
"display_name": "Derive Options",
"id": "parent#uniswap",
"linked_protocols": [
"Uniswap V2",
"Uniswap V3"
],
"logo": "https://icons.llamao.fi/icons/protocols/uniswap",
"methodology": {
"Fees": "Swap fees paid by users."
},
"name": "Derive",
"slug": "derive-options",
"total_1y": 766735302276.56,
"total_24h": 3031015047.0,
"total_30d": 43909422692.97,
"total_48h_to_24h": 1082080637.01,
"total_7d": 9581784849.01,
"total_all_time": 3801933433276.56,
"url": "https://app.uniswap.org/"
}Get pool history
One yield pool's APY and TVL over time: whether a rate that looks good today has held, and whether money has been arriving or leaving. Takes the pool id that 'Find yield pools' returns.
Inputs
- Pool ID
pooltextRequired - The pool's id, as returned in the 'pool' field of 'Find yield pools'.
- From date
start_datedate - Only include data from this date onwards. Leave empty for no lower bound.
- To date
end_datedate - Only include data up to this date. Leave empty for no upper bound.
- Maximum history points
limitnumber - How many history points to return per series, at most 5000. The most recent are kept. Leave empty for 90.From 1 to 5000.
Outputs
countnumber- How many points this result holds.
latest_apynumber- APY at the most recent point.
latest_date_isotext- When that most recent point was recorded.
latest_tvl_usdnumber- TVL at the most recent point.
matchednumber- How many points fell inside the date range.
pointslist- The pool's history, oldest first.
pooltext- The pool id this history is for.
total_availablenumber- How many points the endpoint holds in total.
truncatedtrue/false- True when the limit held points back.
Example output
{
"count": 1,
"latest_apy": 2.185,
"latest_date_iso": "2026-08-20T02:02:26Z",
"latest_tvl_usd": 21541836747.0,
"matched": 1541,
"points": [
{
"apy": 2.185,
"apy_base": 2.185,
"apy_base_7d": null,
"apy_reward": null,
"date": 1787191346,
"date_iso": "2026-08-20T02:02:26Z",
"il_7d": null,
"tvl_usd": 21541836747.0
}
],
"pool": "747c1d2a-c668-4682-b9f9-296708a3dd90",
"total_available": 1541,
"truncated": true
}Get prices at several moments
Price a basket of tokens at the same set of past moments, in one call: the shape a comparison table or a period-over-period report wants. Every token is priced at every moment you list.
Inputs
- Tokens
coinslistRequired - The tokens to look up, as DefiLlama coin ids, separated by commas. An on-chain token is {chain}:{contract address}; a listed coin can also be written coingecko:{id}.
- Moments
timestampslistRequired - The moments to price the tokens at, separated by commas. A date on its own is read as midnight UTC.
Outputs
countnumber- How many tokens came back with prices.
not_foundlist- Coin ids DefiLlama had no data for. An unrecognised id is silently absent from its answer, so this is how you tell.
requestedlist- The coin ids that were asked for.
resultslist- One entry per token, each holding its price at every moment asked for.
timestampslist- The moments asked for, as Unix timestamps.
timestamps_isolist- The same moments as ISO-8601 UTC strings.
Example output
{
"count": 1,
"not_found": [],
"requested": [
"coingecko:ethereum"
],
"results": [
{
"coin": "coingecko:ethereum",
"count": 2,
"prices": [
{
"confidence": 0.99,
"price_usd": 2475.12,
"timestamp": 1705276816,
"timestamp_iso": "2024-01-15T00:00:16Z"
},
{
"confidence": 0.99,
"price_usd": 3474.61,
"timestamp": 1718409611,
"timestamp_iso": "2024-06-15T00:00:11Z"
}
],
"symbol": "ETH"
}
],
"timestamps": [
1705276800,
1718409600
],
"timestamps_iso": [
"2024-01-15T00:00:00Z",
"2024-06-15T00:00:00Z"
]
}Get protocol
Everything DefiLlama holds on one protocol: what it is, its current TVL and how that splits across chains, the funding rounds behind it and any exploits on record. Its day-by-day TVL history, and the same history per chain, are available on request; they are left out by default because they are the bulk of a response that reaches 28 MB.
Inputs
- Protocol
protocoltextRequired - The protocol to look up.
- Include TVL history
include_tvl_historytrue/false - Also return the protocol's day-by-day TVL.Default:
false. - Include per-chain TVL history
include_chain_breakdowntrue/false - Also return the day-by-day TVL for each chain separately. A large protocol has 40 or more.Default:
false. - From date
start_datedate - Only include data from this date onwards. Leave empty for no lower bound.
- To date
end_datedate - Only include data up to this date. Leave empty for no upper bound.
- Maximum history points
limitnumber - How many history points to return per series, at most 5000. The most recent are kept. Leave empty for 90.From 1 to 5000.
Outputs
addresstext- Its token's contract address.
audit_linkslist- Links to its audits.
categorytext- What kind of protocol it is.
chain_tvl_historyobject- Day-by-day TVL per chain. Only present when requested.
chainslist- The chains it is deployed on.
current_chain_tvlsobject- TVL per chain now. Suffixed keys ('Ethereum-borrowed', '-staking', '-pool2') are separate balances, not part of the headline TVL.
current_tvl_attext- When that TVL was recorded, as an ISO-8601 UTC string.
current_tvl_usdnumber- Current TVL in US dollars: the last point of the series, which is the figure DefiLlama shows.
descriptiontext- DefiLlama's description of it.
gecko_idtext- Its CoinGecko id.
githublist- Its GitHub organisations.
hackslist- Exploits on record.
history_points_availablenumber- How many TVL history points exist in total.
idtext- Its internal numeric id.
is_parent_protocoltrue/false- True when this is a family (e.g. 'aave') rather than one deployment.
logotext- URL of its logo.
mcap_usdnumber- Token market cap in US dollars.
methodologytext- How DefiLlama calculates its TVL.
nametext- The protocol's display name.
raiseslist- Funding rounds on record.
related_protocolslist- The other protocols in the same family.
slugtext- DefiLlama's id for the protocol.
symboltext- Its token's ticker.
tvl_historylist- Day-by-day TVL, oldest first. Only present when requested.
tvl_history_matchednumber- How many history points fell inside the date range.
twittertext- Its X/Twitter handle.
urltext- Its own website.
Example output
{
"address": "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9",
"audit_links": [
"https://github.com/aave/aave-v3-core/tree/master/audits"
],
"category": "Lending",
"chains": [
"Ethereum",
"Arbitrum",
"Base"
],
"current_chain_tvls": {
"Ethereum": 13990877636.0,
"Ethereum-borrowed": 4210441885.0
},
"current_tvl_at": "2026-08-20T00:57:35Z",
"current_tvl_usd": 16006955395.42,
"description": "Aave is an Open Source Protocol to create Non-Custodial Liquidity Markets.",
"gecko_id": "aave",
"github": [
"aave"
],
"hacks": [],
"history_points_available": 1483,
"id": "1599",
"is_parent_protocol": false,
"logo": "https://icons.llamao.fi/icons/protocols/aave-v3",
"mcap_usd": 2410000000.0,
"methodology": "Counts the tokens deposited in the protocol's markets.",
"name": "AAVE V3",
"raises": [],
"related_protocols": [
"Aave",
"Aave V3",
"Aave V2"
],
"slug": "aave-v3",
"symbol": "AAVE",
"tvl_history": [
{
"date": 1787097600,
"date_iso": "2026-08-19T00:00:00Z",
"tvl_usd": 15804112900.0
},
{
"date": 1787184000,
"date_iso": "2026-08-20T00:00:00Z",
"tvl_usd": 16006955395.0
}
],
"tvl_history_matched": 1483,
"twitter": "aave",
"url": "https://aave.com"
}Get protocol TVL
One protocol's current total value locked, as a single number. The quickest possible check: for a threshold alert, a dashboard tile, or a figure to drop into a message.
Inputs
- Protocol
protocoltextRequired - The protocol to look up.
Outputs
protocoltext- The slug that was looked up.
tvl_usdnumber- Current total value locked, in US dollars.
Example output
{
"protocol": "aave-v3",
"tvl_usd": 16006955395.42
}Get stablecoin
Everything DefiLlama holds on one stablecoin: what backs it, how it is minted and redeemed, its audits, and how much of it sits on each chain right now. Its day-by-day supply history is available on request, for one chain or for all of them.
Inputs
- Stablecoin
stablecointextRequired - The stablecoin to look up.
- Chain
chaintext - Narrow the supply history to one chain. Leave empty for every chain it circulates on.
- Include supply history
include_historytrue/false - Also return the day-by-day supply. Off by default; it is the bulk of a response that reaches 20 MB.Default:
false. - From date
start_datedate - Only include data from this date onwards. Leave empty for no lower bound.
- To date
end_datedate - Only include data up to this date. Leave empty for no upper bound.
- Maximum history points
limitnumber - How many history points to return per series, at most 5000. The most recent are kept. Leave empty for 90.From 1 to 5000.
Outputs
addresstext- Its main contract address.
audit_linkslist- Links to reserve attestations or audits.
chain_balance_historyobject- Day-by-day supply per chain. Only present when requested.
chainslist- The chains it circulates on.
current_chain_balancesobject- Supply per chain now, in the asset's own peg units.
descriptiontext- DefiLlama's description of it.
gecko_idtext- Its CoinGecko id.
idtext- DefiLlama's id for the stablecoin.
mint_redeem_descriptiontext- How it is minted and redeemed.
nametext- Its name.
peg_mechanismtext- How it holds the peg.
peg_typetext- The currency it tracks.
pricenumber- Current price in US dollars.
symboltext- Its ticker.
total_circulatingnumber- Total supply across every chain, in the asset's own peg units.
twittertext- The issuer's X/Twitter handle.
urltext- The issuer's website.
wikitext- A wiki page about it, where one exists.
Example output
{
"address": null,
"audit_links": [
"https://tether.to/en/transparency/#reports"
],
"chain_balance_history": {
"Ethereum": [
{
"bridged_to": 234542.07,
"circulating": 74267166322.63,
"date": 1787184000,
"date_iso": "2026-08-20T00:00:00Z",
"minted": 90306400739.09,
"unreleased": 3114781730.61
}
]
},
"chains": [
"Ethereum",
"Tron"
],
"current_chain_balances": {
"Ethereum": 74267166322.63,
"Tron": 91875596093.75
},
"description": "Tether converts cash into digital currency.",
"gecko_id": "tether",
"id": "1",
"mint_redeem_description": "Users can mint and redeem with Tether directly, subject to a minimum.",
"name": "Tether",
"peg_mechanism": "fiat-backed",
"peg_type": "peggedUSD",
"price": 0.9995,
"symbol": "USDT",
"total_circulating": 183069204367.17,
"twitter": "Tether_to",
"url": "https://tether.to/",
"wiki": null
}Get stablecoin market cap history
Daily stablecoin market cap over time. Leave both filters empty for every stablecoin everywhere; name a chain, a stablecoin, or both, to narrow it ('USDC on Arbitrum over the last quarter' is one call). Each point also breaks the total down by the currency each stablecoin tracks.
Inputs
- Chain
chaintext - Narrow to one chain. Leave empty for every chain.
- Stablecoin
stablecointext - Narrow to one stablecoin. Leave empty for all of them summed.
- From date
start_datedate - Only include data from this date onwards. Leave empty for no lower bound.
- To date
end_datedate - Only include data up to this date. Leave empty for no upper bound.
- Maximum days
limitnumber - How many days of history to return, at most 5000. The most recent are kept. Leave empty for 90.From 1 to 5000.
Outputs
chaintext- The chain the history is for, or empty for every chain.
countnumber- How many points this result holds.
latest_circulating_usdnumber- Market cap at the most recent point.
latest_date_isotext- When that most recent point was recorded.
matchednumber- How many points fell inside the date range.
pointslist- Daily market cap, oldest first.
stablecointext- The stablecoin id the history is for, or empty for all of them.
total_availablenumber- How many points the endpoint holds in total.
truncatedtrue/false- True when the limit held points back.
Example output
{
"chain": "Ethereum",
"count": 1,
"latest_circulating_usd": 74232082891.02,
"latest_date_iso": "2026-08-20T00:00:00Z",
"matched": 3187,
"points": [
{
"by_peg_type": {
"peggedUSD": 74232082891.02
},
"date": 1787184000,
"date_iso": "2026-08-20T00:00:00Z",
"total_bridged_to_usd": 234431.28,
"total_circulating_usd": 74232082891.02,
"total_minted_usd": 87150430131.16
}
],
"stablecoin": "1",
"total_available": 3187,
"truncated": true
}Get stablecoin price history
Daily prices for stablecoins: how well each one has actually held its peg, which is the only way to see a depeg after it has recovered. Pick the ones you care about: the endpoint otherwise returns every stablecoin for every day.
Inputs
- Stablecoins
stablecoinslist - Which stablecoins to return prices for. Pick as many as you like; leave empty for all of them, which is a very large result.
- From date
start_datedate - Only include data from this date onwards. Leave empty for no lower bound.
- To date
end_datedate - Only include data up to this date. Leave empty for no upper bound.
- Maximum days
limitnumber - How many days of history to return, at most 5000. The most recent are kept. Leave empty for 90.From 1 to 5000.
Outputs
countnumber- How many points this result holds.
matchednumber- How many points fell inside the date range.
not_foundlist- Ids that appear in no day of the history.
pointslist- Daily prices, oldest first.
stablecoinslist- The CoinGecko ids that were asked for.
total_availablenumber- How many points the endpoint holds in total.
truncatedtrue/false- True when the limit held points back.
Example output
{
"count": 1,
"matched": 2055,
"not_found": [],
"points": [
{
"date": 1787184000,
"date_iso": "2026-08-20T00:00:00Z",
"prices": {
"tether": 0.9995,
"usd-coin": 0.9997
}
}
],
"stablecoins": [
"tether",
"usd-coin"
],
"total_available": 2055,
"truncated": true
}Get token price change
How much each token's price moved over a period, as a percentage. Measured backwards from now by default; switch it to look forward from a moment you pick to ask what happened in the week after an event.
Inputs
- Tokens
coinslistRequired - The tokens to look up, as DefiLlama coin ids, separated by commas. An on-chain token is {chain}:{contract address}; a listed coin can also be written coingecko:{id}.
- Measure from
timestampdate and time - The moment the period is measured from. Leave empty for now.
- Interval
periodtext - How far apart the data points are. Leave empty for one day.One of:
1h(1 hour),4h(4 hours),12h(12 hours),1d(1 day),2d(2 days),1w(1 week),2w(2 weeks),3w(3 weeks),1m(1 month). - Look forward instead of back
look_forwardtrue/false - Measure the period after the moment above rather than before it. Off by default.Default:
false.
Outputs
changeslist- The move each token made over the period.
countnumber- How many tokens came back with a change.
look_forwardtrue/false- True when the period was measured forwards.
not_foundlist- Coin ids DefiLlama had no data for. An unrecognised id is silently absent from its answer, so this is how you tell.
periodtext- The period that was measured.
requestedlist- The coin ids that were asked for.
timestampnumber- The moment the period was measured from, as a Unix timestamp.
timestamp_isotext- The same moment as an ISO-8601 UTC string.
Example output
{
"changes": [
{
"coin": "coingecko:ethereum",
"percent_change": 19.87
}
],
"count": 1,
"look_forward": false,
"not_found": [],
"period": "1w",
"requested": [
"coingecko:ethereum"
],
"timestamp": null,
"timestamp_iso": null
}Get token price chart
A token's price sampled at regular intervals: the series behind a chart, a moving average, or a volatility check. Set the window with the dates, and how fine it is with the interval.
Inputs
- Tokens
coinslistRequired - The tokens to look up, as DefiLlama coin ids, separated by commas. An on-chain token is {chain}:{contract address}; a listed coin can also be written coingecko:{id}.
- From
start_datedate and time - Sample forwards from this moment. Set this or 'To', not both; DefiLlama samples in one direction from one edge, and how far it goes is set by the number of points and the interval.
- To
end_datedate and time - Sample backwards from this moment. Set this or 'From', not both. Leave both empty to sample backwards from now.
- Number of points
spannumber - How many data points to return. Leave empty for 10.From 1 to 5000.
- Interval
periodtext - How far apart the data points are. Leave empty for one day.One of:
1h(1 hour),4h(4 hours),12h(12 hours),1d(1 day),2d(2 days),1w(1 week),2w(2 weeks),3w(3 weeks),1m(1 month).
Outputs
chartslist- One chart per token, each a series of dated prices.
countnumber- How many tokens came back with a chart.
not_foundlist- Coin ids DefiLlama had no data for. An unrecognised id is silently absent from its answer, so this is how you tell.
periodtext- The interval the points are spaced at.
requestedlist- The coin ids that were asked for.
Example output
{
"charts": [
{
"coin": "coingecko:ethereum",
"confidence": 0.99,
"count": 2,
"points": [
{
"price_usd": 1908.8,
"timestamp": 1787107070,
"timestamp_iso": "2026-08-19T02:37:50Z"
},
{
"price_usd": 2257.37,
"timestamp": 1787193340,
"timestamp_iso": "2026-08-20T02:35:40Z"
}
],
"symbol": "ETH"
}
],
"count": 1,
"not_found": [],
"period": "1d",
"requested": [
"coingecko:ethereum"
]
}Get token prices
The latest price of any token DefiLlama prices, by chain and contract address (including tokens too small or too new to be listed anywhere). Each price comes with a confidence score, so a thin-liquidity quote can be told apart from a solid one.
Inputs
- Tokens
coinslistRequired - The tokens to look up, as DefiLlama coin ids, separated by commas. An on-chain token is {chain}:{contract address}; a listed coin can also be written coingecko:{id}.
Outputs
countnumber- How many tokens came back with a price.
not_foundlist- Coin ids DefiLlama had no data for. An unrecognised id is silently absent from its answer, so this is how you tell.
priceslist- The latest price of each token that DefiLlama could price.
requestedlist- The coin ids that were asked for.
Example output
{
"count": 1,
"not_found": [],
"prices": [
{
"coin": "coingecko:ethereum",
"confidence": 0.99,
"decimals": null,
"price_usd": 2251.71,
"symbol": "ETH",
"timestamp": 1787194370,
"timestamp_iso": "2026-08-20T02:52:50Z"
}
],
"requested": [
"coingecko:ethereum"
]
}Get TVL history
Daily total value locked over time: across all of DeFi, or on one chain if you name one. Liquid staking and double-counted TVL are excluded, so the all-chains figure is a true total rather than a sum of overlaps.
Inputs
- Chain
chaintext - Narrow the history to one chain. Leave empty for all of DeFi.
- From date
start_datedate - Only include data from this date onwards. Leave empty for no lower bound.
- To date
end_datedate - Only include data up to this date. Leave empty for no upper bound.
- Maximum days
limitnumber - How many days of history to return, at most 5000. The most recent are kept. Leave empty for 90.From 1 to 5000.
Outputs
chaintext- The chain the history is for, or empty for all of DeFi.
countnumber- How many points this result holds.
latest_date_isotext- When that most recent point was recorded.
latest_tvl_usdnumber- TVL at the most recent point.
matchednumber- How many points fell inside the date range.
pointslist- Daily TVL, oldest first.
total_availablenumber- How many points the endpoint holds in total.
truncatedtrue/false- True when the limit held points back.
Example output
{
"chain": "Ethereum",
"count": 2,
"latest_date_iso": "2026-08-20T00:00:00Z",
"latest_tvl_usd": 16006955395.0,
"matched": 3250,
"points": [
{
"date": 1787097600,
"date_iso": "2026-08-19T00:00:00Z",
"tvl_usd": 15804112900.0
},
{
"date": 1787184000,
"date_iso": "2026-08-20T00:00:00Z",
"tvl_usd": 16006955395.0
}
],
"total_available": 3250,
"truncated": true
}List chains
Every chain DefiLlama tracks, with the TVL on it, largest first, which chains hold the most DeFi value right now, and the exact chain names the other actions filter by.
Inputs
- Search
searchtext - Only include chains whose name or native token ticker contains this text.
- Maximum results
limitnumber - How many chains to return, at most 500. Leave empty for 25.From 1 to 500.
Outputs
chainslist- The matching chains, largest TVL first.
countnumber- How many rows this result holds.
matchednumber- How many rows matched the filters before the limit was applied.
total_trackednumber- How many chains DefiLlama tracks in total.
truncatedtrue/false- True when the limit held rows back.
Example output
{
"chains": [
{
"chain_id": 1,
"cmc_id": "1027",
"gecko_id": "ethereum",
"name": "Ethereum",
"token_symbol": "ETH",
"tvl_usd": 45834616243.93
}
],
"count": 1,
"matched": 461,
"total_tracked": 461,
"truncated": true
}List protocols
Search the 8,000+ DeFi protocols DefiLlama tracks by name, chain, category or minimum TVL, and rank them by TVL, by how much that TVL moved, or by market cap. This is also where you find a protocol's slug, which every other TVL action takes.
Inputs
- Search
searchtext - Only include protocols whose name, slug or ticker contains this text.
- Chain
chaintext - Only include protocols deployed on this chain.
- Category
categorytext - Only include protocols in this category, such as Lending or Dexs.
- Minimum TVL (USD)
min_tvl_usdnumber - Only include protocols holding at least this much. Most of the 8,000 hold almost nothing, so a floor is usually what makes the answer readable.At least 0.
- Sort by
sort_bytext - How to order the results. Leave empty to sort by TVL.One of:
tvl_usd(TVL, largest first),change_1d(24-hour TVL change, biggest gain first),change_7d(7-day TVL change, biggest gain first),mcap_usd(Market cap, largest first),name(Name, A to Z). - Maximum results
limitnumber - How many protocols to return, at most 500. Leave empty for 25.From 1 to 500.
Outputs
countnumber- How many rows this result holds.
matchednumber- How many rows matched the filters before the limit was applied.
protocolslist- The matching protocols, ordered by the chosen sort.
sorted_bytext- The field the results were ordered by.
total_trackednumber- How many protocols DefiLlama tracks in total.
truncatedtrue/false- True when the limit held rows back.
Example output
{
"count": 1,
"matched": 163,
"protocols": [
{
"category": "Lending",
"chains": [
"Ethereum",
"Arbitrum",
"Base",
"Polygon"
],
"change_1d": 1.84,
"change_1h": 0.11,
"change_7d": -2.31,
"description": "Aave is an Open Source Protocol to create Non-Custodial Liquidity Markets.",
"logo": "https://icons.llamao.fi/icons/protocols/aave-v3",
"mcap_usd": 2410000000.0,
"name": "AAVE V3",
"parent_protocol": "aave",
"slug": "aave-v3",
"symbol": "AAVE",
"tvl_usd": 16006955395.42,
"url": "https://aave.com"
}
],
"sorted_by": "tvl_usd",
"total_tracked": 8088,
"truncated": true
}List stablecoin totals by chain
How much stablecoin value sits on each chain right now, largest first, where the dollars actually are, which is a different ranking from where the DeFi TVL is. Each chain's total is also split by the currency the stablecoins track.
Inputs
- Search
searchtext - Only include chains whose name contains this text.
- Maximum results
limitnumber - How many chains to return, at most 500. Leave empty for 25.From 1 to 500.
Outputs
chainslist- Every chain that carries stablecoins, largest total first.
countnumber- How many rows this result holds.
matchednumber- How many rows matched the filters before the limit was applied.
total_trackednumber- How many chains carry stablecoins.
truncatedtrue/false- True when the limit held rows back.
Example output
{
"chains": [
{
"by_peg_type": {
"peggedEUR": 556980887.57,
"peggedUSD": 146808909061.62
},
"name": "Ethereum",
"total_circulating_usd": 147603677125.45
}
],
"count": 1,
"matched": 207,
"total_tracked": 207,
"truncated": true
}List stablecoins
Every stablecoin DefiLlama tracks, with its circulating supply, its current price and how far that has drifted from the peg. Each row carries the 1-day, 7-day and 30-day change in supply, so you can see which are growing and which are being redeemed. Filter by the currency they track, how they are backed, or the chain they circulate on.
Inputs
- Search
searchtext - Only include stablecoins whose name or ticker contains this text.
- Pegged to
peg_typetext - Only include stablecoins tracking this currency.
- Backed by
peg_mechanismtext - Only include stablecoins that hold their peg this way.One of:
fiat-backed(Fiat-backed: reserves held off-chain),crypto-backed(Crypto-backed: over-collateralised on-chain),algorithmic(Algorithmic: held by protocol mechanics). - Chain
chaintext - Only include stablecoins that circulate on this chain.
- Include current prices
include_pricestrue/false - Return each stablecoin's price, which is what shows a depeg. On by default.Default:
true. - Include supply per chain
include_chain_breakdowntrue/false - Also return how much of each stablecoin sits on each chain. Off by default; it is several times the size of the rest of the row.Default:
false. - Maximum results
limitnumber - How many stablecoins to return, at most 500. Leave empty for 25.From 1 to 500.
Outputs
countnumber- How many rows this result holds.
matchednumber- How many rows matched the filters before the limit was applied.
stablecoinslist- The matching stablecoins, largest dollar supply first.
total_trackednumber- How many stablecoins DefiLlama tracks in total.
truncatedtrue/false- True when the limit held rows back.
Example output
{
"count": 1,
"matched": 141,
"stablecoins": [
{
"chains": [
"Tron",
"Ethereum",
"BSC",
"Solana"
],
"change_1d_percent": 0.01,
"change_30d_percent": -0.61,
"change_7d_percent": -0.04,
"circulating": 182982723406.22,
"circulating_prev_day": 182970489869.94,
"circulating_prev_month": 184101766911.79,
"circulating_prev_week": 183061314394.84,
"circulating_usd": 182891232044.51,
"gecko_id": "tether",
"id": "1",
"name": "Tether",
"peg_mechanism": "fiat-backed",
"peg_type": "peggedUSD",
"price": 0.9995,
"symbol": "USDT"
}
],
"total_tracked": 418,
"truncated": true
}