🧾 DefiLlama Protocol Fees & Revenue Tracker
Pricing
Pay per event
🧾 DefiLlama Protocol Fees & Revenue Tracker
DeFi protocol fees and revenue (DefiLlama): 24h/7d/30d fees, annualized run-rate, and changes — by protocol, category, and chain. For crypto fundamental analysts and investors.
Pricing
Pay per event
Rating
0.0
(0)
Developer
NexGenData
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Real cash flows for every DeFi protocol DefiLlama tracks — 24h / 7d / 30d fees, annualized run-rate, 24h revenue, and percent-change momentum — delivered as clean, filterable JSON for cents per record. No Nansen seat, no Messari Pro contract, no DeFiLlama Pro API tier.
What this actor does
The DefiLlama Protocol Fees & Revenue Tracker turns DefiLlama's fees-and-revenue dataset into a structured, append-ready feed. For every protocol DefiLlama covers — DEXes, lending markets, perpetual exchanges, liquid-staking providers, stablecoin issuers, yield aggregators, and more — you get the actual money the protocol generates: fees paid by users over the trailing 24 hours, 7 days, and 30 days; an annualized fee run-rate; the slice that accrues as protocol revenue over the last day; and the directional momentum of each protocol via 1-day, 7-day, and 30-day percent change.
TVL has long been the headline number in DeFi, but it only tells you how much capital is parked. Fees and revenue tell you something far more important for any serious thesis: whether anyone is actually paying to use the protocol. A lending market with billions in TVL but negligible fees is a different investment than one earning seven figures a day. This actor puts that cash-flow lens on the entire DeFi universe in a single run, without an analytics-platform subscription or a multi-call integration project.
DefiLlama is the canonical open source for DeFi fee and revenue data, and it is genuinely free. The friction is everything around it. The fees and revenue endpoints are split across protocol-level and overview-level shapes, the field names and adapter coverage shift as new protocols are onboarded, and there is no turnkey export that drops a ranked, filtered table into your warehouse or notebook. This actor handles that plumbing for you. You give it a filter and a sort field; it returns a normalized row per protocol with consistent field names, ready to load into pandas, a spreadsheet, a BI tool, or a database.
Why use this
- Cash flow, not vanity metrics. Fees and revenue are the closest thing DeFi has to an income statement. This actor surfaces them directly, ranked and filterable.
- No subscription, no seat license. Pay per result. There is no minimum, no annual contract, and no per-analyst pricing — a fundamental difference from Token Terminal, Messari, and Nansen.
- Normalized, stable field names. You get one flat record per protocol with predictable keys, so you do not have to reconcile DefiLlama's protocol-level and overview-level response shapes yourself.
- Filter to exactly your universe. Restrict by protocol name, category, or chain, and sort by the time window your thesis cares about.
- Pipeline-ready output. JSON that loads straight into pandas, Postgres, BigQuery, Snowflake, Sheets, or any BI tool — and appends cleanly on a schedule.
- Momentum built in. The 1d / 7d / 30d percent-change fields let you spot accelerating and decelerating protocols without computing deltas yourself.
What you get
Every record describes one protocol's fee and revenue profile. The fields returned are:
name— the protocol name as DefiLlama labels it (for example,Tether,Uniswap,Aave).category— the protocol's category, such asStablecoin Issuer,Dexes, orLending. Useful for grouping and for comparing like with like.chains— an array of the chains the protocol operates on. Some entries are off-chain or cross-chain, in which case you may see values likeOff Chain.fees24h— total fees paid by users over the trailing 24 hours, in USD.fees7d— total fees over the trailing 7 days, in USD.fees30d— total fees over the trailing 30 days, in USD.feesAnnualized— an annualized fee run-rate in USD, extrapolating recent activity to a full-year basis. This is the figure most analysts reach for when modeling a protocol's earning power.revenue24h— the slice of the last 24 hours' fees that accrues to the protocol as revenue, in USD. This can benullwhen DefiLlama does not break out a separate revenue figure for the protocol (for example, when fees and revenue are not distinguished by the underlying adapter).change1d— percent change in the relevant fee metric over the last day.change7d— percent change over the last 7 days.change30d— percent change over the last 30 days.defillamaUrl— a direct link to the protocol's fees page on DefiLlama, so you can verify any figure at the source.
Monetary fields are plain numbers in USD; percent-change fields are plain numbers expressed as percentages (for example, 1.5 means +1.5%). chains is always an array.
Use cases
- Token analysts screening for protocols where fee generation is rising or falling, and ranking a watchlist by real cash flow rather than TVL.
- DeFi funds and crypto-native asset managers building a cross-protocol comparison sheet of trailing and annualized fees to size positions and monitor portfolio holdings.
- Fundamental and valuation research — using
feesAnnualizedandrevenue24has the top line for protocol-level income models. - P/S and P/E ratio modeling — pairing annualized fees or revenue with a protocol's market cap (sourced separately) to compute price-to-sales and price-to-revenue multiples across the sector.
- Dashboards and internal BI — feeding a scheduled run into a warehouse table to power a live "DeFi income leaderboard" or category-level fee dashboards.
- Journalists and researchers needing a defensible, sourced snapshot of which protocols earn the most, with a
defillamaUrlcitation for every number. - Category and chain analysis — filtering to a single category (
Dexes,Lending) or chain to study competitive dynamics and fee-share concentration. - Momentum and trend alerts — monitoring
change7d/change30dto flag protocols whose fee revenue is accelerating or collapsing.
Sample output
{"name": "Tether","category": "Stablecoin Issuer","chains": ["Off Chain"],"fees24h": 16137839,"fees7d": 112543803,"fees30d": 488644576,"feesAnnualized": 5944067795,"revenue24h": null,"change1d": 0,"change7d": 1.5,"change30d": -1.58,"defillamaUrl": "https://defillama.com/fees/tether"}
Each run returns an array of records in this shape, one per protocol, ordered by your chosen sort field.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
nameContains | string | — | Filter by protocol name (substring match). |
category | string | — | Filter by category, e.g. Dexes, Lending. |
chain | string | — | Restrict results to a single chain. |
sortBy | string (enum) | total24h | Sort field. One of total24h, total7d, total30d. |
maxResults | integer | 1000 | Maximum number of protocols to return. |
All parameters are optional. With no input, the actor returns up to 1000 protocols sorted by trailing-24h fees.
How to use it
Python (apify-client)
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run_input = {"category": "Dexes","sortBy": "total7d","maxResults": 50,}run = client.actor("nexgendata/defillama-fees-revenue").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["name"], item["fees7d"], item["feesAnnualized"])
cURL
curl -X POST "https://api.apify.com/v2/acts/nexgendata~defillama-fees-revenue/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"category": "Dexes","sortBy": "total7d","maxResults": 50}'
Replace YOUR_APIFY_TOKEN with your token from the Apify console. The run-sync endpoint returns dataset items directly in the HTTP response, which is convenient for ad-hoc pulls and lightweight integrations.
Pricing
This actor is priced at $0.10 per result (per protocol record returned). You pay only for the rows you actually receive — there is no monthly subscription, no platform fee, and no per-seat license.
Worked examples:
- A focused pull of the top 50 DEXes by 7-day fees → 50 results × $0.10 = $5.00.
- A full-sector snapshot of 300 protocols → 300 × $0.10 = $30.00.
- A daily scheduled run of your 100-protocol watchlist, every day for a month → 100 × $0.10 × 30 = $300.00/month.
Use maxResults, category, and chain to scope each run to exactly the universe you need and keep costs predictable.
How this compares to Token Terminal / DefiLlama Pro
Commercial DeFi analytics platforms — Token Terminal, Messari Pro, Nansen, and the DefiLlama Pro API tier — bundle fee and revenue data behind annual contracts, per-seat licensing, or rate-limited API plans that often start in the hundreds to thousands of dollars a year.
This actor takes the opposite approach. It is pay-per-use: no seat license, no annual commitment, no minimum spend. You run it when you need fresh data, pay for the rows you pull, and own the output as plain JSON in your own warehouse or notebook. The underlying numbers come from DefiLlama, the same canonical open source those platforms also draw on, so you are getting the source data without the subscription wrapper. If you need a programmatic feed for modeling, dashboards, or alerts — rather than a polished web UI — paying cents per record is dramatically more cost-effective than a platform seat.
FAQ
What is the difference between fees and revenue?
Fees are the total amount users pay to use a protocol — for example, the swap fees a DEX collects or the interest borrowers pay a lending market. Revenue is the portion of those fees that the protocol itself keeps (the rest typically flows to liquidity providers, lenders, or other stakeholders). In this actor, the fees* fields capture total fees, and revenue24h captures the protocol's revenue slice for the last 24 hours. revenue24h can be null when DefiLlama's adapter for that protocol does not break out a separate revenue figure.
How fresh is the data? Each run pulls the current state of DefiLlama's fees-and-revenue dataset at the moment you execute it. Trailing windows (24h / 7d / 30d) reflect DefiLlama's latest computed values. For a continuously updated feed, schedule the actor to run on the cadence you need (for example, daily) and append results to a table.
Which protocols and categories are covered?
Coverage matches DefiLlama's fee-adapter universe — DEXes, lending markets, perpetual exchanges, liquid-staking providers, stablecoin issuers, yield aggregators, and more. The exact set evolves as DefiLlama adds adapters. Use the category and chain filters to narrow to your target segment, and nameContains to pull a specific protocol.
What is the annualized figure based on?
feesAnnualized is a run-rate that extrapolates recent fee activity to a full-year basis, as computed by DefiLlama. It is a forward-looking estimate of earning power, not a record of trailing-twelve-month actuals, so treat it as a run-rate indicator rather than realized annual fees.
Why is revenue24h sometimes null?
Not every protocol has a distinct fees-versus-revenue split in DefiLlama's data. When the underlying adapter does not separate revenue from fees, revenue24h is returned as null rather than a fabricated number. The stablecoin issuer in the sample output above is one such case.
Can I compute price-to-sales ratios with this?
Yes — feesAnnualized (or annualized revenue) is the standard input for P/S and P/E-style multiples. Pair it with a protocol's market capitalization, which you would source separately, to compute valuation multiples across the sector.
How do I verify a number?
Every record includes a defillamaUrl linking directly to that protocol's fees page on DefiLlama, so any figure can be checked against the source.
Schema stability & versioning
The output fields documented above — name, category, chains, fees24h, fees7d, fees30d, feesAnnualized, revenue24h, change1d, change7d, change30d, and defillamaUrl — form the stable contract of this actor. New fields may be added over time, but existing field names and types are kept consistent so your downstream parsers and warehouse schemas do not break. Where the upstream source provides no value for a field (such as revenue24h for some protocols), the field is returned as null rather than omitted, so every record has a consistent shape. Any breaking change to the schema would be released as a new actor version with notice.
Compliance & legal
This actor surfaces publicly available DeFi market data aggregated from DefiLlama. It does not access private, gated, or authenticated data. The output is provided for informational and research purposes only and is not investment advice, a solicitation, or a recommendation to buy or sell any asset. Figures are estimates derived from on-chain and adapter-reported data and may contain inaccuracies or omissions; always verify critical numbers against the linked defillamaUrl source before relying on them. You are responsible for complying with DefiLlama's terms and any applicable laws and regulations in your jurisdiction.
Related actors
If you are building a broader DeFi data pipeline, these companion NexGenData actors pair naturally with this one:
- DeFi Yields & Lending Rates — APYs and lending rates across pools and markets, for yield screening and rate comparison.
- DefiLlama Chain TVL Rankings — total value locked by chain, to pair capital footprint with the cash-flow data here.
- Crypto & DeFi MCP — a Model Context Protocol server that exposes crypto and DeFi data directly to AI agents and assistants.
Combine fees and revenue (this actor) with TVL rankings and yields to build a complete fundamental view of any protocol: capital parked, yield offered, and cash actually earned.