TradingStale

Price to fees across DeFi: what the market pays per dollar of protocol fees

Circulating market cap divided by annualized fees, for every protocol that earns real fees and has a listed token. The number to read is not the ratio but the column beside it: the same multiple can be ordinary in one category and low in another, so each row is compared to the median of its own category rather than to the market.

TL;DR. As of , Pons posts the lowest P/F ratio at 0.202x (latest value) across 67 ranked protocols. Source: OpenChainBench, https://openchainbench.com/benchmarks/protocol-pf-ratio.

Read this carefully

A screen, not a verdict, and not advice. P/F = circulating market cap (CoinGecko) / annualized fees (DeFiLlama, trailing 30d x 365/30) summed across every fee adapter that accrues to the token. Fees include the share paid to liquidity providers. A low multiple can mean the market expects fees to fall, that the fees were incentivised, or that the token has no claim on them. Read it with the float, the category median and the monthly fee trend, then do your own work.

Price to fees is the on-chain cousin of a price to sales multiple: market cap on top, a year of fees at the bottom. Published on its own it invites a false comparison, because the multiple a category trades at is itself a fact about the category. The category medians published beside the board span more than an order of magnitude, so the same multiple is high in one column of the market and low in another. Every row here therefore carries its own category median next to it, and the ratio of the two is what says whether a protocol is priced low against the protocols it actually competes with. Float sits beside both, because a multiple on a token with most of its supply unvested is a multiple on a market cap that does not yet exist.

Methodology

The protocol-valuation harness joins three DeFiLlama reads and one from CoinGecko, hourly. /overview/fees gives one row per fee adapter with its trailing 30d, prior 30d and 1y totals; /protocols gives the child protocols, some carrying a CoinGecko id; /config gives the 849 parent protocols, 451 of them with one. The third read is what makes the board possible: a fee adapter is per product (GMX V1 Perps, GMX V2 Perps, GMX Solana) and the token belongs to the parent, which has no row in /protocols at all. Resolving only through the adapter's own row finds 90 tokens; adding the parent table finds 259. Adapters that resolve to the same token are summed rather than ranked apart, because one market cap divided by the fees of one product would price the token several times over. CoinGecko /coins/markets supplies market cap, fully diluted valuation, circulating and total supply, and the 30-day price change. The same /overview/fees read with dataType=dailyRevenue gives revenue per adapter, /protocols gives TVL per row, and CoinGecko /market_chart gives 91 days of daily market cap and price per token, whose ratio is the circulating supply each day. Gauges are protocol_pf_ratio, protocol_pf_fdv_ratio, protocol_float_pct, protocol_fees_30d_usd, protocol_fee_growth_30d_pct, protocol_price_change_30d_pct, protocol_category_pf_median, protocol_pf_vs_category_ratio, protocol_diverging, protocol_revenue_30d_usd, protocol_ps_ratio, protocol_tvl_usd, protocol_supply_change_30d_pct and protocol_supply_change_90d_pct.

Results: 67 protocols ranked by P/F ratio (latest value)

Price to fees across DeFi: what the market pays per dollar of protocol fees: P/F ratio per protocol (latest value).
№ProtocolsLatestvs categoryFees MoMToken 30dSuccess
1Pons0.202x0.092x562.7%119.3%100.00%
2Sanctum0.329x0.158x33.9%171.4%100.00%
3HyperLend0.340x0.081x37.9%4.17%100.00%
4Securitize0.450x0.110x-11.3%164.4%100.00%
5Meteora0.468x0.118x95.1%54.7%100.00%
6Quickswap0.547x0.138x-19.0%11.3%100.00%
7Graphite Protocol0.567x0.257x4559.5%353.3%100.00%
8Lido0.579x0.278x26.8%21.7%100.00%
9StonkFun0.616x0.279x2021.4%890.8%100.00%
10Orca0.780x0.197x157.1%27.8%100.00%
11Raydium0.949x0.239x396.2%134.5%100.00%
12Centrifuge1.007x0.245x-20.5%26.0%100.00%
13Dolomite1.010x0.240x18.4%16.7%100.00%
14Gains Network1.032x0.114x124.2%-9.41%100.00%
15Pump1.104x0.278x19.1%-4.30%100.00%
16o1.exchange1.329x0.602x113.9%-1.26%100.00%
17Rocket Pool1.334x0.642x-12.3%19.1%100.00%
18GMX1.460x0.162x-8.97%-0.69%100.00%
19Chainflip1.562x0.394x18.1%-26.5%100.00%
20Moonwell1.661x0.394x263.0%-20.5%100.00%
21Stader1.722x0.828x24.8%2.10%100.00%
22NAVI Protocol1.749x0.415x6.05%21.1%100.00%
23Euler1.769x0.420x-10.5%-0.24%100.00%
24Uniswap2.07x0.522x113.6%85.4%100.00%
25Lista DAO2.07x0.998x32.1%12.6%100.00%
26Benqi2.08x1.000x38.5%151.3%100.00%
27Maple Finance2.32x0.550x1.37%26.8%100.00%
28stake.link2.45x1.179x32.7%36.2%100.00%
29Fluid2.62x0.623x2.36%5.61%100.00%
30Ekubo Protocol2.65x0.668x112.4%145.0%100.00%
31Cetus2.73x0.687x97.7%16.0%100.00%
32PancakeSwap2.86x0.722x38.8%48.4%100.00%
33BONK.fun3.09x1.398x2125.9%14.3%100.00%
34HumidiFi3.10x0.780x662.8%4.35%100.00%
35Definitive3.27x0.801x162.2%67.5%100.00%
36Kinetiq3.32x1.599x12.9%62.8%100.00%
37edgeX3.40x0.377x10.7%43.2%100.00%
38Aerodrome3.60x0.907x180.7%64.7%100.00%
39Venus3.60x0.855x23.5%4.33%100.00%
40Frax Finance3.68x0.896x-6.29%0.65%100.00%
41Re3.73x0.908x34.6%-6.54%100.00%
42Rhea Finance3.97x1.000x263.0%768.0%100.00%
43CoWSwap3.98x1.087x17.9%26.8%100.00%
44ether.fi3.99x1.920x7.20%25.9%100.00%
45USD AI4.11x1.000x32.4%6.42%100.00%
46Kamino4.21x1.000x11.1%62.5%100.00%
47KyberSwap4.45x1.000x-20.1%13.0%100.00%
48Jupiter4.61x0.511x12.0%49.1%100.00%
49Aave5.03x1.195x16.8%17.7%100.00%
50THORChain DEX6.44x1.622x81.2%65.9%100.00%
51Convex Finance7.05x0.357x92.2%-1.85%100.00%
52Morpho7.19x1.706x8.79%1.26%100.00%
53Compound Finance7.68x1.822x20.8%27.2%100.00%
54ApeX Protocol8.20x0.908x21.3%6.04%100.00%
55Sushi9.18x2.31x-53.2%31.0%100.00%
56Velodrome9.35x2.36x32.3%54.0%100.00%
57World Liberty Financial12.6x2.99x12.3%-1.84%100.00%
58Curve Finance14.1x3.55x-16.7%24.5%100.00%
59cap14.7x3.50x17.0%-16.2%100.00%
60Lighter16.9x1.876x27.7%22.8%100.00%
61Hyperliquid21.6x2.39x12.0%3.80%100.00%
62Aster25.9x2.87x18.7%-0.042%100.00%
63Ansem.io28.6x12.9x-90.9%-58.3%100.00%
64Ondo Finance29.1x7.09x0.68%43.3%100.00%
65SUN31.5x7.93x38.7%1.71%100.00%
66JustLend53.7x12.7x-4.94%32.6%100.00%
67Pendle58.9x3.30x-19.9%37.1%100.00%

Frequently asked

What does a P/F of 2 mean?

That the market values the token at two years of its current fee run rate. It is the same idea as a price to sales multiple, with annualized protocol fees in place of revenue. Low means the market pays little per dollar of fees; it does not mean the token is underpriced.

Why compare to a category median instead of the whole market?

Because the multiple a category trades at is itself a fact about the category, and it varies by more than an order of magnitude across the board. A single market-wide median would rank the categories and call it a ranking of protocols.

Why is there a market cap floor?

Because a multiple is a price divided by something, and a token worth a few hundred thousand dollars is not a price the market agreed on. Its ratio reads near zero and leads an ascending board, where it looks like the cheapest protocol in DeFi rather than an abandoned token. The floor is 5 million USD of circulating market cap, and a row under it publishes no series at all, the same as the float floor.

Why are tokens with a small float excluded?

Because their market cap is a fraction of what the token will be once supply vests, so the ratio reads near zero and takes the top of an ascending board. The FDV column is the honest view for those tokens, and the float floor is 10 percent of total supply.

Are Uniswap V2, V3 and V4 three rows?

No. They accrue to one token, so their fees are summed into one row. Ranking them apart would divide one market cap by a fraction of its own revenue three times.

Is a diverging row a buy signal?

No. It says fees grew while the token fell and the protocol trades at a lower multiple than its peers, which is a place to start work, not a conclusion. Fees can be incentivised, a token can have no claim on them, and a market can be right to re-rate a protocol down.

How is the token found for each protocol?

Through DeFiLlama's own links rather than by matching names. The fee adapter's defillamaId joins to the protocol catalogue, and where that row carries no CoinGecko id the parent protocol supplies it. A protocol with no listed token has no row here; most of the fee universe is in that state.

Source code github.com/ChainBench/OpenChainBench/tree/main/harnesses/protocol-valuation