DeFi TVL, protocol TVL
Total value locked of DeFi protocols from DefiLlama: name one protocol (Aave, Lido, Uniswap, a slug) for its TVL, 1h/1d/7d change, market cap to TVL and top chains; or list the top protocols by TVL, filtered by category (Lending, Dexs, Liquid Staking…) or chain, sorted by TVL or 1d/7d change. CEXs are left out unless asked for. Use to size a protocol, compare competitors or track where liquidity moves.
Inputs
| Name | Type | Description |
|---|---|---|
protocol | string | One protocol by name or slug (aave, lido, uniswap-v3); leave out for a ranking |
category | string | Only this category: Lending, Dexs, Liquid Staking, Bridge, CDP, Yield, Derivatives, CEX… |
chain | string | Rank by TVL on this chain: Ethereum, Base, Arbitrum, Solana… |
sort | string | tvl (default), change_1d or change_7d |
limit | integer | Number of protocols (1-50, default 20) |
Request
Over HTTP, with a card key from /credits:
curl -H "Authorization: Bearer adt_…" "https://agent-data-tools.revmesh2074.workers.dev/defi/tvl?protocol=aave"
Or one of your 25 free calls, no key:
curl "https://agent-data-tools.revmesh2074.workers.dev/defi/tvl?protocol=aave&trial=1"
Without a key, the same URL answers 402 Payment Required with x402 and MPP terms, so an agent with a wallet pays per call in USDC (Base, Polygon, Arbitrum or Solana over x402; Base or Tempo over MPP) and retries.
Example result
{
"count": 1,
"matched": 1,
"protocols": [
{
"name": "Aave V3",
"slug": "aave-v3",
"category": "Lending",
"symbol": "AAVE",
"tvlUsd": 34512000000,
"change": {
"h1": 0.1,
"d1": -1.2,
"d7": 2.4
},
"mcapUsd": null,
"mcapToTvl": null,
"chainCount": 18,
"topChains": [
{
"chain": "Ethereum",
"tvlUsd": 25100000000
}
],
"url": "https://defillama.com/protocol/aave-v3"
}
],
"source": "DefiLlama (api.llama.fi)"
}
From an AI agent (MCP)
Add the MCP server to Claude, Cursor or any MCP client. This tool is defi_tvl, and the first 25 successful calls are free:
https://agent-data-tools.revmesh2074.workers.dev/mcp