Quality of Revenue in Crypto: A Practical Methodology

Building a framework for identifying token holders revenue worth investing

Traditional private‑equity deals begin with a Quality of Earnings (QoE) review: are the profits real, repeatable, and owned by shareholders? Crypto projects deserve the same scrutiny, but the accounting is on‑chain, the balance sheet is a token, and revenue often flows back to holders, not to a parent company.

A clean, P/E‑style sanity check is

MCHR = Market Cap ÷ Holders’ Revenue (30 d)

Think of it as “how many dollars do I pay for every dollar that actually lands in wallets.” On its own MCHR misleads—air‑dropped ghost chains and whale‑held governance tokens can look absurdly cheap—so we adjust it with three modifiers:

  1. Dilution Drag (DD)mcap / FDV rewards projects close to fully diluted.
  2. Holder Dispersion (HD) – penalises whale concentration.
  3. Wallet Liveness (WL) – favors projects whose addresses were active in the same 30‑day window.

The stack: pull protocol‑side fees from DefiLlama and holder‑side behaviour from Glassnode; patch long‑tail gaps with block‑explorer queries. By the end of this guide you can script the pipeline, score any token, and layer on fundamental unlock analysis—exactly the way a PE shop would run QoE, minus the dusty dataroom. 

1. From QoE to QoR: Framing the Problem

Tradfi investors focus on free cashflow - recurring, attributable profit after accounting for expenses, interest, taxes, and various adjustments. In DeFi, fees accrued at the protocol level are only valuable when they:

  • Reach token holders (buy‑backs)
  • Repeat across market cycles, ie aren’t token inflation-dependent.
  • Avoid extraction by insiders (MEV, team wallets).

Ignoring those filters yields zombie metrics: TVL inflated by mercenary liquidity or FDV inflated by locked team tokens. QoR flips the lens from total activity to net cash flow per real participant. Investors use it to:

  • Compare Layer‑2s with wildly different emission schedules.
  • Triage token VC decks (“cheap on TVL” no longer cuts it).
  • Monitor treasury positions for risk of dilution or supply overhang.

2. Defining the Core Metric—MCHR

Holders’ Revenue: every distribution that lands in holder wallets over 30 days—swap‑fee rebates, staking inflation paid in‑kind, buy‑back burns recorded on‑chain. DefiLlama’s /fees and /revenue endpoints expose most majors in USD terms [1][2].

Market Capitalization: circulating supply × spot price. We subtract treasury and escrow wallets if they don’t receive revenue.

Baseline MCHR = Circulating Mcap / Holders’ Revenue (30 d)

Interpretation: an MCHR of 12 means you pay $12 in equity for each $1 that flows to holders annually (assuming flat run‑rate). Values < 5 are rare outside bear capitulations; values > 40 suggest fee capture is illusory or dilution looms.

3. The Three Corrective Modifiers

3.1 Dilution Drag (DD)

DD = Circulating Mcap ÷ FDV            0 – 1 range

Near 1: supply mostly emitted—little future dilution.
Near 0: large cliff unlocks ahead; treat fee yield as borrowing from tomorrow. FDV data comes from tokenomics dashboards such as Messari Token Unlocks [5].

3.2 Holder Dispersion (HD)

Pure Gini coefficients are overkill—and Glassnode doesn’t publish them for every ERC‑20—so we use a haircut rule:

Start at 100 %.
Subtract 0.5 pp for each wallet holding ≥ 1 % of supply (cap 30 pp).

Whale addresses pulled via block explorer† or Glassnode’s entity‑adjusted clustering [4]. The method captures obvious “one‑address DAOs” without punishing healthy treasuries.

3.3 Wallet Liveness (WL)

WL = Active Addresses (30 d) ÷ Total Holder Addresses

Active addresses come from Glassnode’s addresses.ActiveCount endpoint [3]. We floor inactive dust (< $10) to curb airdrop spam. A value of 0.25 means one in four wallets touched the chain in the month.

3.4 Optional Overlay: Cost‑Basis Health

Glassnode’s realised price and NUPL series indicate whether the average holder is in profit. Low MCHR plus deeply negative NUPL is a trap—cheap because everyone is waiting to exit.

4. Rolling It Up: A Single QoR Score

The composite Quality‑of‑Revenue score is nothing more exotic than a weighted average of four numbers you already trust:

Each sub‑metric is min‑max‑normalised on a rolling‑year window so a 0.8 always means “top quintile,” whether you’re looking at Curve or a micro‑cap on Blast. We keep MCHR (market‑cap‑to‑holders‑revenue) at forty percent because, ultimately, cash is the thing you can wire to custody. The remaining sixty percent is equally split across dilution drag, holder dispersion, and wallet liveness because those three modifiers answer the same question from different angles: will the next distribution actually reach a healthy, awake holder base?

A healthy protocol tends to live in the 0.5–0.8 band. Anything below 0.3 is usually a decimal error or an airdrop day; anything above 0.9 means you’ve probably discovered either a gem or a glitch. Don’t decide which until you eyeball the data.

5.  Data Pipeline and Code Validation

Think of the ETL job as a nightly pit‑stop for your portfolio. A short Python script pulls 30‑day fee curves and supply stats from DefiLlama, holder activity from Glassnode, then snaps everything to UTC midnight before joining on token address [1][3]. Two defensive checks protect you from self‑inflicted wounds:

  1. Revenue‑versus‑price plot. Legitimate protocols see fees and token price move in the same direction over multi‑week windows; an inverse relationship is a giant, flashing “wash‑trade” sign.
  2. Top‑holder audit. If two of the five biggest wallets on the block explorer are labelled “Team Vesting” your dispersion penalty needs manual help.

When something looks off—say MCHR = 0.004—start with token decimals. Crypto has many mysteries, but eighteen misplaced zeroes remain the most common.

6. Fundamental Overlays That Still Matter

Numbers tell you where to look; fundamentals tell you whether to stay. Three overlays turn the spreadsheet into a decision:

  • Unlock calendar. A dilution drag of 0.9 can drop to 0.4 overnight if a cliff dumps 20 % of supply.
  • Exchange inflow history. Glassnode’s net‑flow series shows whether insiders historically sell on vest dates or simply move tokens to cold storage [3].
  • Governance proposals. More than one “fee switch” vote has yanked revenue from holders two weeks after the quant screen crowned a protocol “value.”

Skipping the overlays is how you end up buying a high‑score token whose fees will belong to the DAO treasury tomorrow.

7.  What the Numbers Say Right Now (July 2025)

[calculations ongoing - tbd]

Pharaoh Exchange tops the table with a QoR of 0.72: cheap fees, low dilution, but a mild whale penalty because three wallets command 18 % of float. 

Shadow Exchange earns its 0.66 almost entirely through liveness—nearly half its addresses moved funds in the last month, rare for a brand‑new perp DEX. 

PancakeSwap remains a cash machine, yet its 0.25 dilution drag keeps the composite at 0.58 until emissions taper. Velodrome, sitting mid‑pack at 0.62, demonstrates that a protocol with no standout metric can still be investable when everything is merely good. 

Rankings will shuffle next week—and that, not the exact order, is the point.

 8.  A Five‑Step Operating Loop

  1. Define the universe. DEXs, L2s, ve‑style tokens—whatever matches your mandate.
  2. Run the ETL job nightly. Automate; manual refreshes die the first weekend you take off.
  3. Sort on QoR and delta. Absolute score shows value; week‑over‑week change shows momentum in fundamentals, not just price.
  4. Layer the overlays. Unlocks, exchange flows, governance chatter—thirty minutes on Discord often saves thirty days of drawdown.
  5. Decide or debug. When quant and qual agree, size the position; when they conflict, assume the script—or your understanding—is wrong and dig.

The whole cycle fits between morning coffee and market open; anything longer invites analysis paralysis.

9.  Limitations and Pitfalls

A few booby traps remain. Curve’s gauge fees can be toggled off by governance, turning yesterday’s high‑yield farm into a desert. Small‑cap tokens outside Glassnode coverage force you into CSV drudgery. Spam airdrops inflate liveness unless you strip addresses with balances under ten dollars. And because most fees are denominated in volatile native tokens, a red market can halve “revenue” in USD overnight without touching usage. The QoR score is a filter, not a verdict.

10.  What Comes Next

Messari’s disclosure registry is inching toward standardised on‑chain P&L statements, and several roll‑ups are experimenting with zero‑knowledge proofs that attest to revenue without doxxing users. 

When those tools mature, today’s 200‑line notebook compresses to one GraphQL call. Until then, the discipline of checking concentration, dilution, and liveness by hand remains your best moat—and yes, that moat is still wider than “number of Discord emojis,” which should stay in meme land where it belongs.

11.  Resources

Weekly QoR league tables drop every Friday on X (@kk_capital). First issue is free; later issues fund the cloud bill—and the coffee that chases decimal bugs at 2 a.m.

Citations

[1] https://api-docs.defillama.com/
[2] https://defillama.com/fees
[3] https://docs.glassnode.com/basic-api/endpoints/addresses
[4] https://docs.glassnode.com/guides-and-tutorials/on-chain-concepts/entity-adjusted-metrics
[5] https://docs.messari.io/docs/token-unlocks
[6] https://en.wikipedia.org/wiki/Gini_coefficient