Last Tuesday a colleague forwarded me a fourteen-page document. It contained a risk matrix, a Howey test breakdown, a supply schedule, a competitive landscape table, a glossary, a disclaimer set in bold, and nine analytical dimensions numbered in sequence. It also contained, in every substantive cell, the letters N/A. No token name. No protocol. No dollar figure. The cover read Phase Two Deep Analysis, and the thing was, by any measure, immaculate. Also empty.
I read it twice. The second pass I made as an auditor rather than an editor, and that is when I found the sentence that has been bothering me since. On page nine, under a heading about information value, someone had written: refusing to issue a star rating is deliberate, because a one-star or three-star verdict under zero information manufactures false quantitative certainty, and false certainty does more damage than a blank field.
That sentence was the only honest work product in fourteen pages. Everything around it was scaffolding erected to make absence look like rigor.
We started Values First in 2024 with twelve modules and three impact funds behind us, and our pitch was unglamorous: ethical clarity lowers regulatory risk. The curriculum taught institutional allocators to read a protocol the way a lender reads a borrower β not asking whether the story is compelling, but asking what happens when the story is wrong. Alongside the teaching we ran an ingestion pipeline, because our clients did not want essays, they wanted coverage. Stage one pulled an article and extracted structured facts: title, source, publication date, the list of information points. Stage two took those facts and reasoned across nine dimensions β technology, token economics, market structure, ecosystem position, regulatory posture, team and governance, risk, narrative, and supply-chain transmission.
Last Tuesday stage one returned nothing. Empty strings, and an information points array of length zero. Stage two, receiving nothing, produced the fourteen pages.
Here is what I want you to notice, and it is not that a model hallucinated. It is that the model did not hallucinate at all. It refused to invent a token, refused to invent a TVL, refused to invent a team. It ran the Howey test and answered N/A on all four prongs. It filled the risk matrix with cannot-identify and then wrote, in plain sight, the only legitimate conclusion available: the sole determinable meta-risk is that the information supply chain itself has broken.
That is not a failure of intelligence. It is a failure of control flow. And control flow failures are the ones I have spent the better part of a decade auditing.
In 2017 I spent four months inside the contracts of a fundraising platform called EtherTrust, and what I found was a reentrancy vulnerability that could have drained roughly $4.2 million in user balances. If you have never sat with one, understand what a reentrancy bug actually is: it is not a cryptography problem. It is an ordering problem. The contract makes an external call, and the state update happens after the call returns, so a hostile caller can re-enter before the books are balanced. The classic mitigation is as boring as it is effective β check, then write, then call, and never advance until you have confirmed that the thing you called actually succeeded.
Solidity will let you do the wrong thing very comfortably. A low-level call hands you back a boolean and a byte array. If you ignore the boolean, you keep executing with whatever came back, including nothing. There is no revert. There is no exception. The machine cheerfully walks forward into the dark.
Our pipeline did precisely that. It issued an external call to stage one, received an empty payload, ignored the success flag, and continued executing with default values. In production that reads as a report. In Solidity it reads as a drained contract. The empty document is a reentrancy bug wearing a suit, and I have now seen the same shape of mistake in a smart contract and in an institutional research product within the same career.
The annotated failure tree in the report was, I will admit, better than most human post-mortems. It ranked four candidate causes by probability: fetch failure behind a paywall, a non-text content type the parser could not read, a schema-binding bug that emitted the template without the payload, or β lowest confidence β an article that was never about this domain at all and had been misrouted. Then it recommended rolling back to the ingestion layer rather than turning up the analysis depth.
Every one of those hypotheses is plausible. None of them is the point. The point is that a system designed to tell investors whether a protocol is safe could not tell whether its own input existed, and defaulted to producing a deliverable anyway.
The document also recommended placing the asset β if one existed β on an observation list rather than an evaluable list, and flagged batch-processing contamination as its own risk category, on the reasoning that if one job in a queue failed this way, its neighbors probably did too. That is a genuinely good instinct. Silent failures cluster, and queues hide them beautifully.
And all of it matters more now than it would have in 2022, because we are in a market where capital moves faster than diligence. A project raises nine figures on a narrative and a landing page, and the allocators writing the check are reading dashboard tiles, not contracts. Into that environment we have introduced research automation whose success metric is reports per day. Not verified reports. Not reports whose claims survived a second pass. Reports. Count the artifacts, ship the artifacts, and the artifact becomes the evidence that work occurred.
Format completeness is not evidence of rigor. A table with a header row is not an analysis. A confidence score attached to a guess about why your own pipeline broke is the only number in the document that deserved to be trusted, and it was trusted for the wrong reason β because it was the only number present. Confirmed-no-audit and unable-to-determine-audit are different states of the world, and every interface I have ever seen collapses them into the same grey pill.

Now the contrarian part, because I have been uncharitable to the machine and I do not think the machine is the villain.
The report's author β and I use the word deliberately, since something in that stack chose to write a footnote about the harm of false certainty β could have fabricated a plausible token, a plausible TVL, a plausible team, and no human reviewer would have caught it before it reached a client inbox. It did not. It wrote N/A forty-one times and appended a note to the upstream engineers that said, in effect, fix the pipe, do not deepen the analysis. Zero information does not reward deeper digging. It rewards a revert.

So the failure sits elsewhere, and it sits with us. It sits with the product manager who did not gate the pipeline on a non-empty payload, because a blocked job looks like a bug while a thin report looks like throughput. It sits with the client who asked for coverage of two hundred assets per week and never asked what the system does when it cannot find the asset. And it sits with me, because I signed off on a curriculum that teaches allocators to interrogate a protocol's trust assumptions while our own tooling trusted an empty array to mean something.
Conscience over consensus. The consensus in this cycle is that automation is the only way to keep pace with the volume of launches. The conscience position is less exciting: automation is only as trustworthy as its refusal behavior. A system that cannot say I have nothing is not faster than a human analyst. It is a human analyst with the integrity removed and the formatting preserved.
There is a fix, and it is one line long and unglamorous. Gate the pipeline: if the information point count equals zero, halt and alert. Do not pass go, do not generate dimension nine. Two more worth adding while you are in there β require that every claim in stage two carry a citation back to a specific paragraph of stage one, and require that any dimension scored without a source be marked unverified rather than scored low. Low and unknown are not the same risk. They never were.
Trust is earned, not mined. That line has followed me since the DeFi Summer essays and it keeps acquiring new applications. We spent years arguing that code should not be trusted because it compiles, or because it has a whitepaper, or because a large fund wrote a check. The same discipline now applies to the tools we use to judge code. A research product earns trust by demonstrating what it will not do: it will not score an asset it cannot see, it will not fill a cell to avoid an awkward blank, it will not let a dashboard imply diligence that never happened.
The soul in the machine, if there is one, is not in the prose it generates. It is in the check it runs before it opens its mouth.
What I want to see by the end of this cycle is not better crypto analysis. I want to see refusal become a first-class output β a status, a signal, a thing a compliance officer can point at and say, this pipeline stopped because it did not know, and that is precisely why we still trust it. The protocols that survive the next drawdown will not be the ones that produced the most reports. They will be the ones whose systems knew when to revert.