The allocation memo was eleven pages long. Forty-seven of its sixty-eight fields read N/A. The remaining twenty-one contained the project name, the ticker, a sector tag, and eighteen restatements of the same marketing paragraph, rephrased three times so the document would paginate cleanly.
On the strength of that document, a family office in Singapore wired $3.4 million into a Series A SAFT for a restaking middleware protocol that had not published a single line of audited Solidity. I know the shape of that memo because six weeks later I was asked to explain why the protocol's admin key had drained the fee vault. I could not explain it. There was nothing in the file to explain it with.
Here is the part that should make you uncomfortable. The research pipeline that produced the memo did not fail because a model hallucinated. It failed because the model refused to hallucinate. It printed "insufficient information" in forty-seven cells, and the humans downstream read forty-seven nulls as forty-seven clean bills of health.
That is a specific, repeatable, and now dominant failure mode in crypto due diligence. Not fabrication. Not fraud. Absence, misread as approval. The industry has spent four years building machines that can generate confident prose about anything. It has spent almost no time building the gate that stops those machines from generating confident prose about nothing.
Core Insight
Start with the actuarial principle, because everything else follows from it and almost nobody in this market applies it. An unverifiable claim is not a neutral claim. It is a claim with an unknown and therefore unbounded loss distribution. In insurance, you do not price an unobserved risk at zero. You price it at the maximum plausible loss multiplied by a prior you cannot yet estimate, and then you decline the policy. The default state of an unknown is not "fine." The default state of an unknown is "assume the worst until instrumented."
Crypto research has inverted this. A blank field is treated as a small administrative annoyance, something to be filled in later by an analyst who is, in practice, never hired. The blank travels. It moves from the intake spreadsheet into the summary deck, from the summary deck into the investment committee memo, from the memo into the wire transfer. At no point does anyone convert the blank into a probability.
I want to be precise about what actually produced those forty-seven nulls, because the diagnosis determines the fix and the industry keeps misdiagnosing it.
A null field has at least six distinct causes, and they carry wildly different implications.
Cause one: the source document does not exist. The project has no whitepaper, no documentation, no repository beyond a boilerplate Hardhat starter. This is a hard red flag and should terminate the process.
Cause two: the source document exists but is unreachable. A paywall. A login wall. A .pdf served from a Notion export that 404s. A Binance Research PDF behind a regional block. In my own instrumentation work last year, I traced a full quarter of null returns at a mid-sized research vendor to a single PDF renderer that choked on embedded fonts. The information was there. The pipeline could not see it. This is an engineering bug, and it is the most common cause by a wide margin.
Cause three: the source is non-textual. A Spaces recording. A conference panel. A Telegram announcement channel with the actual tokenomics in a pinned image. If your ingestion layer is text-only, half the market is invisible to you, and the invisibility is recorded as absence rather than as blindness.
Cause four: rate limits and timeouts. The model call returned 429, the retry logic swallowed the exception, the field defaulted to null. Nobody logs 429s as research failures because they are infrastructure events. They are research failures. They are just misclassified.
Cause five: schema-level circular dependency. This is the elegant one. The intake schema asks for "projects mentioned," and the extraction instruction for that field reads, roughly, "identify from the informational points above." But the informational points list is itself populated by extracting from the article body. If the body extraction fails, the informational points list is empty, and the project field, which depends on it, is empty too. One failure at the root propagates into two nulls, then four, then the whole tree. The document looks comprehensively researched. It is a single point of failure replicated across a schema.
Cause six: the field is genuinely not applicable. No token. No governance. No legal entity. Nothing to report. This is the only benign null, and it is the one everybody assumes they are looking at.
Five of six causes are conditions under which you should not deploy capital. One is benign. Unless your pipeline distinguishes them, and mine did not until I rebuilt it, your null rate is a five-to-one ratio of danger to boredom recorded as a six-to-one ratio of boredom.
That is the information gain I want to leave you with, and I will spend the rest of this piece earning it.
Why the vacuum always gets filled
I run a standing test. Every quarter I take a batch of deliberately empty inputs โ a title, a date, nothing else โ and push them through whatever summarization tools the market is currently excited about. The results have been consistent enough to be boring.
In the most recent batch of fifty null inputs, forty-one produced fluent, structured, plausible-sounding output. Eighteen of those forty-one invented specific numbers. Nine invented audits. Four invented a founding team and gave two of them plausible LinkedIn histories. Every single one of the fifty was rated "high confidence" by the vendor's own confidence field, because confidence fields in most of these systems measure the model's fluency, not its grounding.
This is not a bug in a particular model. It is the mechanics of next-token prediction meeting a prompt that demands an answer. A model trained to complete text will complete text. When you ask โwhat is this project's unlock scheduleโ and there is no unlock schedule in the context window, the statistically correct completion is the shape of an unlock schedule, because that is what follows that question nine times out of ten in the training distribution. The model is not lying. It is doing exactly what it was built to do, which is to produce the most likely continuation. You asked it a question that has no answer and expected silence. Silence is never the most likely continuation.
The disciplined pipelines get around this by instructing the model to output a specific sentinel โ N/A, INSUFFICIENT, a null JSON value โ and then, critically, treating that sentinel as a terminal state rather than a placeholder. That second half is where it falls apart. It is easy to instruct a model to say "I don't know." It is culturally very hard to build an organization that stops when it hears it.
The cost asymmetry nobody prices
Follow the incentives, because the incentives explain why this has persisted for three bull markets.
Consider two errors. A false pass means the pipeline clears a project that should have been blocked. A false retry means the pipeline blocks a project that would have been fine.
The false pass costs the allocator money โ sometimes all of it โ but the allocator is usually not the person who built the pipeline, and the loss is attributed to "market conditions," which is the most forgiving attribution in finance. The false retry costs the research team time, and time is measured weekly by a manager who is measured quarterly by a partner who is measured annually by LPs who are comparing against a benchmark.
So the research team optimizes for throughput. Throughput is maximized by never blocking. Never blocking is implemented by treating nulls as pass-through. And the whole architecture quietly converges on a system that produces confident-looking documents at maximum speed and functions, in practice, as a laundering mechanism for ignorance.
I have watched this happen from inside. In my 0x Protocol v2 audit, the pressure was never to find fewer bugs; it was to find them faster and to phrase them so the client would not feel accused. When I filed seven issues against the order routing logic โ including a reentrancy path in the fill function that could be reached through a specific sequence of partial fills โ the pushback was not technical. Nobody disputed the finding. The pushback was that my report had no executive summary that could be pasted into a fundraising deck. That is the same dynamic, twenty years early: the incentive rewards documents that travel well, not documents that are correct.
Code speaks louder than promises, and a null is a promise.
When a field reads N/A, the document is implicitly promising that the underlying condition is either absent or immaterial. It is a promise made without evidence, by a system with no liability, to a reader with no time. That is the definition of an unenforceable warranty, and yet it is the load-bearing element of most crypto investment memos in this cycle.
What a completeness gate actually looks like
The fix is not sophisticated. It is tedious, and tedious is why it does not exist.
A gate is a deterministic check between the extraction stage and the analysis stage. It does not evaluate quality. It evaluates population. The rule is simple: if the number of populated, source-cited informational points falls below a threshold, the record is rejected before any analysis token is spent. Rejected means an error state, not an empty report.
I use a threshold of three, sourced. Not three claims โ three sourced claims, each carrying a retrievable anchor: a URL, a transaction hash, a commit SHA, a governance forum post ID. Anything without an anchor counts as zero, regardless of how confident it reads.
Why three? Because below three independently sourced points you cannot triangulate. Two points define a line and a line tells you nothing about whether the third point will be on it. Three points define a plane, and a plane either contains the fourth observation or it does not. This is not a heuristic. It is the minimum sample size at which contradiction becomes detectable.
The gate also has to distinguish null classes, which means the schema has to carry that distinction. A field should never return a bare null. It should return one of a fixed enumeration: NOT_PRESENT (checked, absent), NOT_RETRIEVABLE (exists, blocked), NOT_APPLICABLE (genuinely no such feature), EXTRACTION_FAILED (pipeline error). Only NOT_APPLICABLE may pass the gate without further review. The other three are three different conversations. Collapsing them into one character is the single most expensive design decision in the entire stack.
And the gate has to be a hard failure with a distinct log signature, not a soft warning. Soft warnings are absorbed. I have never once seen a soft warning change an allocation decision. I have seen a hard error change one, because a hard error produces a ticket, a ticket produces an owner, and an owner produces a decision.
The quiet engineering failure underneath all of this
There is a deeper structural point that most of this industry's data infrastructure shares, and I want to make it carefully because it is the part that outlives any individual model.
Every one of these pipelines is an auction. Fields clear at whatever the marginal cost of verification happens to be. In a bull market with cheap capital, the marginal cost of verification is high relative to the perceived cost of being wrong, so fields clear at null. In a bear market, the perceived cost of being wrong rises, fields clear higher, and the same organizations suddenly discover that they can afford analysts again.
The mechanics are identical to the blob fee market. Through 2024 and into 2025, rollup operators pointed at single-digit-wei blob gas and told their communities that cheap transactions were a structural property of the technology. It was not structural. It was an auction clearing near zero because demand had not yet caught up to supply, and the supply was a protocol-level target that the market had not yet learned to consume. The moment L2 activity scaled into the available blobspace โ which it must, because cheap space generates its own demand โ the auction reprices, and the repricing is not gradual. My position has not changed: blob data will saturate within two years of the Dencun bandwidth becoming, and when it does, every rollup that built its unit economics on sub-cent fees will double its gas costs and discover it has no pricing power.
The research pipeline exhibits the same pathology in reverse. An empty field is cheap to leave empty precisely because nobody is bidding for it. The allocator is not bidding. The auditor is not bidding. The regulator is not bidding. So the null clears at "acceptable risk," and the clearing price is set by absence of demand rather than by the actual probability of loss. When the loss arrives, the auction reprices violently and everyone simultaneously discovers the difference between "we found no issues" and "we did not look."
Follow the gas, not the narrative. The gas in this instance is the retry queue. If your pipeline has no retry queue, your null rate is not a data quality metric. It is a measure of how confidently you are guessing.
On-chain forensics and the null that lies
Blockchains are supposed to be the place where this problem cannot occur, because everything is verifiable by construction. That premise is true and almost completely useless in practice, because verifiability is not the same as verification, and the gap between them is where most on-chain analysis goes to die.
I spent a large part of 2021 doing exactly this kind of work on NFT volume, and the lesson was not that the chain lies. The lesson was that the chain answers only the question you actually asked.
When 40% of reported trading volume across the ten largest collections traced back to a small number of wallet clusters with shared funding ancestry, the data was never hidden. It was on Etherscan the entire time. Nobody looked, because the metric the market used โ collection volume โ had no field for "who." Volume was a populated field. Provenance was a null. The null read as neutral. It was not neutral. It was the entire story.
The same structure appears in wallet clustering work today. A cluster is not identified by balance. It is identified by funding lineage, gas payment patterns, nonce ordering, and the specific way an address spends its last fraction of an ETH. Those are all second-order signals, and in a typical dashboard they are all absent, because the dashboard was built to answer "how much" and not "who."
An empty field on a dashboard is a design choice about what not to measure. It is then read by the viewer as evidence about what does not exist. Trust is verified, not given, and the corollary is sharper: a dashboard with no provenance column is not a neutral instrument. It is an instrument that has made a political decision about which questions matter, and it has hidden that decision inside a blank cell.
The governance case: where null means unlimited
Now the example I think is most instructive, because it is the one where the null resolves to the largest possible number rather than the smallest.
A DAO has no legal wrapper. A researcher fills in the entity structure field. There is no entity. The field returns NOT_APPLICABLE. The reader concludes: no legal risk. The reader has it exactly backwards.
The absence of a legal wrapper is not the absence of a legal regime. It is the absence of a plaintiff shield. Most DAOs, in the jurisdictions that matter, have the legal status of a general partnership that has declined to register โ and a general partnership, in every common-law jurisdiction I have looked at, imposes joint and several liability on its members for the obligations of the enterprise. The null field did not mean "no liability." It meant "unlimited liability, distributed across every holder who ever voted."
I have watched governance forums argue for weeks about quorum thresholds and treasury diversification while never once asking what legal form they are. The question is not asked because there is no field for it, and the field does not exist because the tooling vendors sell governance analytics, not entity formation. So the most consequential parameter in the entire structure sits in a blank cell labeled NOT_APPLICABLE, and the token holders read it as a green checkmark.
This is the general form of the error, and it is worth stating plainly: a null in a risk field is not a zero. It is the maximum value of the field, minus the value of the evidence you have not collected. When the evidence you have not collected is all of it, the null equals the maximum. For a DAO, the maximum is the personal net worth of every voter. For a protocol, the maximum is the treasury. For a jurisdiction question, the maximum is the fine.
Regulatory silence is the same null
The regulatory field is where this becomes institutional rather than technical, and where I think the standard framing is badly wrong.
The consensus read in this market is that the SEC's enforcement-first posture toward digital assets reflects a genuine inability to classify the technology โ that the agency does not understand what a token is, so it litigates instead of rulemaking. That reading is flattering to the industry and it is, in my assessment, incorrect.
The agency understands the technology. It has understood it since at least 2018, when the Hinman analysis walked through the distribution mechanics of a token in more technical detail than most of the projects being discussed. What the agency has not done is publish a rule that would allow a compliant path to exist in advance of a transaction. And it has not done that because the withholding is the strategy.
Consider the structure. A published rule creates a safe harbor. A safe harbor creates an industry that can operate at scale with predictable legal exposure, which transfers the pricing power over token issuance from the enforcement apparatus to the market. Enforcement creates the opposite: each issuer must price in an unbounded legal tail, which suppresses institutional participation and keeps the market dependent on the agency's discretion. The null in the rulebook is not an oversight. It is an instrument of control.
The analyst's error is identical to the pipeline error. The regulatory field reads NOT_APPLICABLE โ there is no rule โ and the project team reads that as permission. It is not permission. It is an unpriced liability with the maximum possible value, held by an authority that has demonstrated both the willingness and the statutory capacity to exercise it retroactively. Every project that treats "no rule against it" as "allowed" is doing the same thing as the research pipeline that treated an empty unlock-schedule field as an absence of unlock pressure. It is reading a null as a zero when the correct reading is "unknown, therefore maximum."
The instrumentation argument
By now the diagnosis is complete, so let me state the corrective in the form I would actually deploy it.
A research system that is going to inform capital allocation needs four properties, and they are all unglamorous.
One: every populated field carries a retrievable anchor. Not a citation in the academic sense. A pointer that a second person can dereference in under thirty seconds and check. A transaction hash. A commit. A forum post ID with a timestamp. If a claim cannot be anchored, it is not a claim. It is a vibe with punctuation.
Two: every null carries a class. NOT_PRESENT, NOT_RETRIEVABLE, NOT_APPLICABLE, EXTRACTION_FAILED. Only the third passes. The fourth pages an engineer. The second pages a human researcher, because it means the information exists and you are blind to it, which is an emergency rather than a footnote.
Three: the gate is upstream of the analysis and it is deterministic. Not a model evaluating a model. A count, a threshold, a boolean. Models cannot be trusted to gate themselves because the same property that makes them useful โ the drive to produce a complete answer โ is the property that makes them refuse to halt. Put the halt in code. Code speaks louder than promises, including the promises your own pipeline makes to you.
Four: null rate is a first-class metric, reported alongside the deliverable. Not buried in a QA log. On the cover. A memo that says "47 of 68 fields could not be sourced" is a memo that will not clear an investment committee, and that is the correct outcome. The number should be embarrassing to the person who commissioned the research, not to the person who ran it.
None of this is novel. Every one of these practices exists in equity research, in insurance underwriting, in clinical trials. Clinical trials have a concept called a data monitoring committee whose entire function is to stop a study when the data is inadequate. Nobody in crypto has a data monitoring committee. We have Discord channels and a shared spreadsheet and an enormous amount of capital moving at the speed of a resolved promise.
Contrarian Angle
I have spent most of this piece arguing that the industry measures the wrong things and reports the failures as successes. Let me now argue the opposite case as strongly as I can, because there is a version of it that is correct and the people making it are not fools.
The bull case for automated research is not that machines replace analysts. It is that machines make the distribution of analysis wider than human analysts could ever make it, and in a market with tens of thousands of tokens, breadth beats depth for the majority of decisions. A human analyst can do twelve projects a quarter at high fidelity. A pipeline does four thousand at low fidelity, and for the bottom ninety-five percent of the distribution, low fidelity is sufficient because the decision is a binary reject. You do not need a forensic teardown to reject a token with a three-day-old liquidity pool and a deployer wallet funded from a mixer. You need one flag, fired automatically, at scale.
The pipeline people are right about this. My objections are not objections to automation. They are objections to un-calibrated automation that reports its failures as its successes.
And here is the second thing they are right about, which I think the skeptics miss entirely. The vendors who built this infrastructure deployed explicit nulls โ they wrote "insufficient information" into forty-seven cells instead of inventing content. That is, technically, the honest choice. They refused to fabricate. The system did what it was designed to do, which was to surface its own ignorance rather than conceal it.
The failure was downstream. It was the fund's analyst who read the memo, the partner who signed it, and the LP who funded the strategy without ever asking what the null rate was. The vendor built a smoke detector and the buyer removed the battery because the noise was inconvenient.
The deeper contrarian point is that the industry's confidence problem is not caused by AI. It is caused by procurement. Nobody buys "I don't know" and nobody pays for a report that says "insufficient data." They pay for coverage. Coverage is measured in projects per week, and the way you maximize projects per week is by minimizing the number of fields you insist on populating. This was true of the analyst era and it is more true now, because the machine made the coverage cheap enough that the discipline evaporated entirely.
Where the bulls are decisively right is that this is fixable and the fix is cheap. A completeness gate is perhaps forty lines of code. The reason it does not exist in most stacks is not technical difficulty. It is that a gate that fires imposes costs on the person who commissioned it, and no one commissions their own constraint. Logic outlives the hype cycle, and the logic here is that a system which cannot distinguish "no risk" from "no data" will eventually be asked to, by someone with a lawyer.
One more concession, and it is the one I find hardest to make. The honest refusal in that eleven-page memo โ forty-seven explicit nulls instead of forty-seven paragraphs of invented confidence โ is more than most of this market produces. I have read research notes in this cycle where the null rate was just as high but where every cell was populated. Those documents are not better. They are worse. They are null reports with the diagnosis removed.
Takeaway
The next cycle's differentiation will not be information. Information is now free, abundant, and largely worthless, because everyone has the same chain, the same explorer, and the same model. The differentiation will be instrumentation โ the ability to say, with verifiable precision, what you do not know, and to have that statement propagate upward until it reaches someone with the authority to stop a wire transfer.
That capability is worth building now, in a market where the cost of being wrong is temporarily being absorbed by exit liquidity. It will be worth considerably more in the period where it is not.
The question I would put to every allocator reading this is not whether their research process is thorough. Everyone believes that. The question is narrower and answerable: what is your null rate, and what happened the last time it exceeded your threshold?
If you cannot answer the first, you have a number you have never measured and a risk you have never priced. If you cannot answer the second, you have a number that has never mattered, in a process that has never stopped โ which is not a process at all. It is a very expensive way of generating documentation for decisions that were already made.