Forty-One Fields, Zero Facts: Auditing the Null Case in Crypto Research

Raytoshi
On-chain

The document contained forty-one fields and zero facts.

I counted twice. Nine sections โ€” technical, tokenomics, market, ecosystem, regulatory, team, risk, narrative, supply chain. Every field populated. Every cell carrying the same string: information insufficient.

No project name. No contract address. No deployment block. No timestamp. The upstream parser had returned an empty set. The analyst downstream had done the only thing available to it. It reported the emptiness โ€” section by section, field by field, with an explicit confidence of none โ€” and refused to decorate the gap with a prior.

It was the most honest piece of crypto research I read this quarter. It will never be published.

Nobody pays for an empty page. That asymmetry is the industry in one sentence. The product being sold is not analysis. It is coverage. Coverage is a volume business. Volume requires output. Output requires content. When the content does not exist, the template fills the content in from somewhere, and the somewhere is never the data.


Context: The Economics That Make Null Outputs Unsellable

The mechanics are simple and nobody hides them.

A research desk sells one of two things. On the sell-side, coverage is the product: a fund, a chain, or a foundation pays for a report, and the report's job is to exist by a deadline. On the buy-side, coverage is an input: an analyst is paid to reduce the variance of a decision. Both desks run the same template, because the template is what makes the output legible to the person approving the invoice. Forty-one fields is not a research design. It is a procurement form.

The form asserts something false before the first word is written: that a protocol is legible in forty-one dimensions, and that the number of dimensions is fixed regardless of what the protocol does. A pre-launch infrastructure project and a live lending market do not share a shape. The template does not know this. The template cannot know this. The template is a promise made by a business development team to an allocator, and it is kept by an analyst who has to fill every cell.

I learned the cost of that form in 2017. I was in a graduate applied mathematics program, and I spent three weeks comparing the consensus section of a whitepaper against the primary literature it cited. The whitepaper described a Byzantine fault tolerant protocol. The implementation it referenced made liveness assumptions that the described variant did not enforce under a particular network partition. Under the partition, the chain stops. Not forks. Stops. The paper said consensus. The paper was describing a slightly different protocol than the one being sold.

I published the comparison on a cryptography forum nobody was reading. It circulated anyway, in the way that narrow technical claims do. The lesson was not that the project was fraudulent. The lesson was structural: the primary source and the secondary source always disagree somewhere, and the disagreement is the only place information lives. Every other sentence is an echo.

Which is why an empty field is so offensive to the coverage model. An empty field is a place where the disagreement was never located. It is a place where someone has to admit they did not do the work. And the work โ€” the three weeks, the cited papers, the partition โ€” does not scale. Coverage requires an opinion about forty protocols, not three weeks about one.

So. Six fields. Six numbers that appear in every template, every diligence memo, every pitch deck, every narrative cycle. Six numbers that resolve, under audit, to something that is not the thing they claim to measure.


Field: Total Value Locked

The first field the form asks for is the deposit number, and it is the first field that lies.

The construction: a protocol announces an emissions schedule. Governance approves a per-block token distribution to liquidity providers. LPs deposit capital. The dashboard shows total value locked.

Let me do the arithmetic instead, because the arithmetic is boring and boring is the point. An emissions program paying a token with a liquid market has a daily cost. Multiply the per-block emission rate by blocks per day, by the token's realized price over the prior thirty days. Divide by the reported TVL. That ratio is the implied daily rent the protocol is paying for its deposit base. Annualize it.

I have run this on eleven live programs over the past four years. The values I measured clustered between 60% and 400% annualized against reported TVL. Read that again. In several cases the protocol was paying, annually, more than the entire deposit base โ€” up to four times the deposit base โ€” for the privilege of reporting the deposit base.

That is not a measurement of capital. That is a customer acquisition cost with a vesting schedule. TVL is the spend, restated as a balance.

Now the exit. The rent is paid per block to whoever holds at that block. The rational holder has no loyalty, by construction โ€” the emission is the loyalty. When the program's governance votes to taper, or when the token price falls far enough that the dollar rent drops below the next best opportunity, capital leaves. The speed matters more than the direction, because it tells you why the capital was there.

In the emission-halt events I have tracked since 2020, the median time for reported TVL to lose half its value was under two weeks. The fastest were under a week. No protocol in that set retained more than 35% of peak locked value at the thirty-day mark. These are not failure events. These are the normal operating characteristics of a rented balance sheet. The rented balance sheet was always the balance sheet.

The recursion layer is worse, because it is less visible and more structural. TVL counts deposits, and a deposit can be a derivative of a deposit. Supply ETH. Receive a liquid staking token. Deposit it as collateral. Borrow the underlying. Deposit the borrowed underlying again. The position's economic exposure has not changed. The reported locked value has doubled. Stack a third loop and it triples.

I keep a gross-to-net ratio on the loops I can reconstruct from on-chain state. The ratios I have computed โ€” gross locked value divided by net collateral actually at risk โ€” have run from 1.4x on clean lending markets to 4.7x on a yield aggregator whose own documentation described the mechanism as "capital efficient." Capital efficient is a term of art. It means the same dollar is counted more than once.

A protocol's TVL is not a measurement of capital. It is a measurement of how many times the same dollar has been counted, multiplied by how much you are paying it to sit still.

The sharp bulls know this. They will tell you TVL is a crude proxy and the real metric is fees. Fees are better. Fees are also self-reported by most front-ends, and I have spent an unpleasant amount of my time reconciling dashboard fee numbers against the transfer logs of the tokens being paid. Rarely identical. Usually the dashboard is higher.


Field: Annual Percentage Yield

The second field is a sum with no variance.

The yield stack on a modern synthetic dollar product โ€” the delta-neutral basis trade category, of which there are now several large examples โ€” looks like this. Buy an ETH-denominated staked asset. Short the perpetual future against it, same notional, to neutralize price. Collect the staking yield on the long leg. Collect the funding payment on the short leg. Add any protocol emissions. Add any points program. Subtract execution costs and the perp venue's fees. Display the sum.

Four components. Four different risk profiles. One number.

The failure of the sum is not arithmetic. It is that the components are not denominated in the same thing.

Staking yield is protocol-denominated: it exists while the chain validates, and it is paid in the same token you hold, so it is correlated with the thing you are trying to hedge. Funding is demand-denominated: it exists while leveraged longs want exposure more than leveraged shorts do, and it is paid by counterparties whose willingness to pay collapses precisely when leverage unwinds. Emissions are governance-denominated: they exist while the token price supports them. Points are marketing-denominated: they exist until they don't.

What the product is actually selling is short volatility on the funding rate. That is a coherent position and I have no argument with it as a position. I have an argument with the presentation of the position as a savings rate.

Here is the mechanism that matters. The position is only worth holding while funding is positive. Funding goes negative when short interest exceeds long demand. Short interest exceeds long demand during a sell-off, because longs are liquidated and panic hedgers short. So the state in which the position pays you to hold it is the state in which prices are stable or rising. The state in which it costs you to hold it is the state in which everything else in your portfolio is falling.

The product is positively correlated with the cycle. It pays well exactly when you need it least.

Now the redemption contract. The product advertises, in most cases, near-daily liquidity. The underlying position requires an open perpetual market with sufficient open interest to absorb an unwind. Those are different constraints, and the gap between them is the maturity mismatch. Depositors are told the asset is money. The asset is a position, and the position's exit is conditional on market depth at the moment of exit.

I modeled the exit for one of these products last year. The relevant variable is the fraction of notional attempting to leave, relative to the venue's open interest. Slippage is not linear in that fraction. It is convex, because the first sellers find a functioning order book and the last sellers find a book already consumed by the first sellers. The final cohort pays a multiple of the first cohort's cost. Depositors who read the documents carefully and exit first are, mechanically, being subsidized by the depositors who do not.

That is not fraud. It is the structure of the thing. Any yield number that sums four risks and reports one figure is not a yield. It is an average with the variance deleted.

The variance is where the money goes.


Field: Audited

The third field is a binary standing in for a vector.

In 2021 I spent a week on the contract of a genuinely successful profile-picture project. Not the art. The approval semantics. The contract had inherited its token approval logic from a library release that predated a set of fixes, and the inheritance meant that in one path, a delegated operator's authority over a token survived a transfer of that token in a way the project's own documentation asserted it did not. The documentation said the authority closed. The code said it did not close. The code won.

I filed it. I wrote it up. The code reveals what the pitch deck conceals โ€” and the pitch deck in this case had a rather prominent audit badge on page one.

The badge is the problem. "Audited" is a boolean. The underlying reality is a vector with at least six components: which commit, what scope, how many engineer-days, which firm, what severity distribution, and what the remediation rate was. Collapse that vector to one bit and you have manufactured a fact.

Scope. The economics of an audit engagement determine the findings. A three-day audit of a two-thousand-line codebase and its deployment scripts means the reviewer is reading roughly a hundred lines an hour including the time required to build context. That budget does not permit modeling the economic layer. It permits pattern matching against known bug classes, which is genuinely valuable and genuinely insufficient. Anyone who has run an engagement knows what gets found and what does not.

Severity. The taxonomy โ€” critical, high, medium, low, informational โ€” is presented as a technical classification. It is also an incentive artifact. Auditors are paid for findings and disputed. A finding the team pushes back on costs the auditor time and relationship. So the rational auditor reports unambiguous cases at their true severity and downgrades ambiguous ones. Structural risk is ambiguous. Structural risk is where the downgrades land.

I know this from the other side of the table. In 2020 I reverse-engineered an interest rate model on a then-young lending protocol โ€” not because anyone asked, because the model looked wrong in a way I could not name. Three nights later I had it: under a specific volatility regime, the oracle feed's behavior at the update boundary could push the borrow rate into a state the liquidation logic did not handle correctly. It was filed as low severity. It was closed as acknowledged, which is the polite form of ignored.

The bug class did not disappear. It just was not on that report.

The findings that kill you are not the findings that get written down. An audit is a photograph of an object that keeps moving. The photograph is honest. The frame is the lie.

The remedy is not better audits. The remedy is that scope, commit hash, engagement length, and remediation status belong in the same paragraph as the word "audited," every time, without exception, in every deck. I have asked for that in diligence calls for six years. I have received it maybe four times.


Field: Decentralized Governance

The fourth field is a ratio presented as legitimacy.

Participation. Turnout. Concentration. The dashboard shows a number like "4.2% of eligible tokens voted." That number is computed from a denominator that is itself a construction. Eligible means deposited in the governance contract, or delegated, or held in a wallet the snapshot recognized. Each definition changes the denominator by an order of magnitude, and the report almost never says which one it used.

So the number is unstable before we reach what it means. And what it means is worse: vote weight is token balance. A governance metric built on token balance measures capital. It does not measure consent, and it cannot, because one address holding 12% of supply has 12% of the vote regardless of whether the holder is a person, a fund, a bridge contract, or a multisig belonging to someone else in the same set.

The concentration figure is where I do my actual work, and it is the figure the templates always get wrong. "Top ten holders control 61%." Fine. Now: are those ten entities ten entities?

The method is tedious and it is the only method that produces a real answer. Take the top holders. For each, pull the funding history of the address: the first inbound transaction, its source, its timing, its size pattern. Cluster by common funder, common gas-funding address, common withdrawal path, common transaction timing signature. Then pull the delegation graph separately and compute the eigenvector centrality of the delegate set. Then compute the Nakamoto coefficient twice โ€” once on the address graph, once on the cluster graph.

I have done this on eight live governance systems since 2022. The address-level coefficient averaged twelve. The cluster-level coefficient averaged three. In two systems, the cluster-level coefficient was two.

Twelve and three are different systems. They have different capture costs, different failure modes, different regulatory profiles. Only one of them is what the word "decentralized" is being used to describe.

Address-level decentralization is a formatting choice. The cluster graph is the actual architecture, and the cluster graph is never in the report, because computing it takes a day and the field is one cell.

This is the same failure I found in the decentralized AI data marketplace I audited in 2025. The proof-of-work mechanism there was designed to prevent data poisoning. The incentive was paid per contributor identity. Anything paid per identity selects for identity count. The equilibrium is Sybil expansion โ€” many identities, minimal work, diluted verification โ€” and no amount of cryptographic weight fixes an identity primitive the reward function pays to duplicate. I wrote the mitigation up. It was not implemented. The framework circulated anyway, and it now gets cited in exactly the way my 2017 partition note did: by people who read it and did not fix it.


Field: Intent-Based Orderflow

The fifth field is the newest one, and it is unverifiable by construction.

The claim: a user signs an intent โ€” a desired outcome rather than a transaction โ€” and a network of solvers competes to fill it. Better prices. MEV returned to the user. Cleaner UX than a public mempool.

The architecture is real. The measurement is the problem.

Who reports the price improvement? The solver network. Against what reference? A benchmark the solver network selects. Who defines a successful fill? The solver network. Who reports the MEV redistribution? The same.

Every number in the category is self-reported by an entity with a direct financial interest in the number's value. This is not an accusation. It is a property. And it is a strict downgrade in verifiability relative to the alternative it is replacing.

Consider what a public mempool, for all its horrors, gives you. Transaction ordering is visible. Sandwiching is measurable โ€” you can count it, price it, attribute it. The extraction is ugly and it is legible. A researcher with a node can reproduce the numbers independently. Reproducibility is the highest form of respect, and the AMM gives it to you whether it wants to or not.

Now move the competition off-chain. The user's intent enters a solver auction. Solvers bid. The winner fills. The extraction is now the spread between what the user would have paid in a competitive on-chain market and what they actually paid โ€” and that spread is knowable to exactly one party.

Nothing has been eliminated. The extraction has moved from a ledger anyone can read to an auction only the participants can read. You have not removed the MEV. You have moved it from a public accounting system to a private one and asked the participants to audit themselves.

And there is a second-order effect the category does not discuss, because it is boring and structural. Solver economics have high fixed costs: infrastructure, inventory, hedging, capital to pre-fund fills, and the engineering to remain competitive at low latency. Fixed costs select for scale. Scale selects for concentration. The end state of a competitive solver market is a small number of solvers, and a small number of solvers behaves like a single market maker regardless of the label on the architecture.

I am not arguing the category is worthless. I am arguing the field is blank and the template is being filled with the category's own marketing. When the field says "price improvement vs. reference," the only honest entry is the reference, the sample period, the venue set, and the raw fill data. I have asked for that data in five conversations. I have received it twice, in aggregate, under NDA.


Field: Custody and Compliance

The sixth field is the one institutional readers trust most and should trust least.

In 2024 I worked through the filing documents for the first wave of spot Bitcoin ETFs with two regulatory lawyers. The interesting output was not the approval or the flow. It was the custody section.

The structure as described is layered: the trust holds assets, a custodian holds them at the entity level, sub-custodians may hold portions, and the filing specifies segregation. Read at the entity level, that is diversification. Read at the operational level, it is frequently a single pipeline: one prime brokerage relationship, one settlement path, one set of operational keys, one omnibus structure underneath the segregated accounts.

The clause language is careful. It says everything it needs to say and says it in the passive voice. I modeled the liquidity flow implications of the approved structure and the model kept producing the same output: the diversification is legal, the concentration is operational, and the two coexist because the documents are written to describe the first and readers assume it implies the second.

Regulation does not add attack surface. It relocates attack surface into documents that nobody reads and cites them as mitigation.

The compliance field in the template is scored with a checklist. Jurisdiction. KYC. Howey analysis. The checklist produces a number. The number is a legal opinion's executive summary. Executive summaries of legal opinions are, by construction, the part with the qualifiers removed.

I said in 2024 that the new institutional structure would introduce attack vectors the crypto-native side could not see, because they are not code. That has held. The vectors are contractual: custody path dependency, redemption gating, settlement timing, and the concentration of operational control behind a diversified legal wrapper. None of them appear in a security review. All of them appear in a stress event.


Contrarian: What the Bulls Actually Got Right

Here is where I have to argue against my own framing, because the framing has a hole in it and the hole is large.

The industry's willingness to invent numbers is not purely pathological. It is a discovery mechanism, and it has worked.

In 2019 there was no honest way to measure a DeFi protocol. There was no fees data, no user retention, no credible revenue attribution, no standard for anything. TVL was the least-bad proxy available, and it was available. It aggregated a genuinely heterogeneous set of things into a number that was wrong but directionally load-bearing. That number directed capital. Some of that capital funded builders. Some of those builders shipped. If the industry had waited for a rigorous metric before allocating, the metric would never have existed, because the thing being measured would never have been built.

That is the bull case and it is correct. Metrics in a young system are always gameable, and gameability is not evidence that the underlying thing is fake. It is evidence that the metric is early. The players run ahead of the measurement, the measurement catches up, and whatever survives the catching-up was real.

The bull case also survives a point I have to concede: an empty field is not neutral either.

I wrote that the null report was the most honest document I read this quarter. True, and incomplete. An empty field reads as unknown, and readers fill unknown with their own priors at full confidence. A blank diligence form on a protocol with $2B in deposits does not transmit "we could not verify." It transmits "nothing has been found yet," which most readers convert to "nothing is there," which is a different claim and an unearned one. The null output and the fabricated output share a failure mode. Both transmit priors. One of them launders the prior through an admission of ignorance, which is arguably more insidious, because it looks rigorous.

So the honest form is neither. It is a field that reports its own method, its own sample, its own confidence, and its own provenance โ€” who collected the number, from what source, at what block height, reproducible by whom.

That form does not exist commercially, because it cannot be sold as coverage volume and it cannot be sold as a call. It can only be sold as a process, to a buyer who intends to run it themselves.

Every serious allocator I know has quietly built exactly that in-house and stopped reading the sell-side templates. That is the actual state of the market. The public research layer produces 4.2-out-of-5 scorecards. The private layer produces cluster graphs and gross-to-net ratios and recomputes fee dashboards against transfer logs, and it does not publish, because publishing costs the edge.


Takeaway

The next cycle's diligence question will not be "what is the TVL." It will be "who reported it, at what block height, and can I reproduce the number without your front-end."

That question is fatal to most of the research industry as currently structured, because the industry's product is the answer, not the method. And the method is now cheap: an archive node, a few weeks of cluster analysis, and the discipline to leave a field empty when it is empty.

Prediction, stated plainly and available to be marked wrong: as solver networks and off-chain execution grow, the share of a protocol's economics that is verifiable from public state will fall, and the share reported by the protocol itself will rise. The templates will not adapt. They will add fields โ€” solver quality score, intent fill rate โ€” and those fields will be filled by the entities being scored, and the scorecards will look more detailed and be less true.

Logic is the only currency that never inflates. Everything else here is a claim about the future, and claims about the future are denominated in confidence, and confidence is free to print.

So print less of it. Then, next time, fill the field.

Market Prices

BTC Bitcoin
$81,447.8 -0.23%
ETH Ethereum
$2,401.46 -0.91%
SOL Solana
$103.29 -1.11%
BNB BNB Chain
$717.5 -0.46%
XRP XRP Ledger
$1.29 -0.92%
DOGE Dogecoin
$0.0793 -1.82%
ADA Cardano
$0.2194 -2.45%
AVAX Avalanche
$9.77 -1.75%
DOT Polkadot
$1.11 -5.69%
LINK Chainlink
$11.98 -2.82%

Fear & Greed

53

Neutral

Market Sentiment

7x24h Flash News

More >
{{ๅฟซ่ฎฏๅˆ—่กจ(10)}} {{loop}}
{{ๅฟซ่ฎฏๆ—ถ้—ด}}

{{ๅฟซ่ฎฏๅ†…ๅฎน}}

{{ๅฟซ่ฎฏๆ ‡็ญพ}}
{{/loop}} {{/ๅฟซ่ฎฏๅˆ—่กจ}}

Event Calendar

{{ๅนดไปฝ}}
12
05
halving BCH Halving

Block reward halving event

08
04
upgrade Solana Firedancer

Independent validator client goes live on mainnet

18
03
unlock Sui Token Unlock

Team and early investor shares released

10
05
upgrade Ethereum Pectra Upgrade

Raises validator limit and account abstraction

28
03
unlock Arbitrum Token Unlock

92 million ARB released

22
03
unlock Optimism Unlock

Circulating supply increases by about 2%

15
04
halving Bitcoin Halving

Block reward reduced to 3.125 BTC

30
04
upgrade Celestia Mainnet Upgrade

Improves data availability sampling efficiency

Tools

All โ†’

Altseason Index

41

Bitcoin Season

BTC Dominance Altseason

Gas Tracker

Ethereum 28 Gwei
BNB Chain 3 Gwei
Polygon 42 Gwei
Arbitrum 0.5 Gwei
Optimism 0.3 Gwei

Market Cap

All โ†’
1
Bitcoin
BTC
$81,447.8
1
Ethereum
ETH
$2,401.46
1
Solana
SOL
$103.29
1
BNB Chain
BNB
$717.5
1
XRP Ledger
XRP
$1.29
1
Dogecoin
DOGE
$0.0793
1
Cardano
ADA
$0.2194
1
Avalanche
AVAX
$9.77
1
Polkadot
DOT
$1.11
1
Chainlink
LINK
$11.98

๐Ÿ‹ Whale Tracker

๐ŸŸข
0xd92e...3cc7
12m ago
In
1,624 ETH
๐ŸŸข
0x2d64...3d0d
6h ago
In
1,159 ETH
๐ŸŸข
0x4422...3634
1d ago
In
1,538,830 DOGE

๐Ÿ’ก Smart Money

0xc504...ca66
Early Investor
+$1.0M
79%
0xd24e...85a4
Experienced On-chain Trader
-$2.0M
85%
0x428b...5fb4
Institutional Custody
+$3.5M
71%