It came back clean. That was the problem.
I was running a routine pre-listing surveillance pass on a project that had just closed a $100M round โ tier-one backers, a docs site so polished it practically hummed, a token generating 400% volume spikes across a 72-hour window. My pipeline spat out the report in under nine seconds. Technical risk: N/A. Token economics: N/A. Regulatory exposure: N/A. Team verification: N/A. Every single field, empty. And in the group chat, three analysts I respect looked at the same blank page and typed the same word: "clean."
It wasn't clean. It was blind. And nobody โ not the funds, not the retail crowd FOMOing into the presale, not the exchange listing committee โ had a field in their rubric for the difference.
That gap is the story. In a bull market, an empty due-diligence report is more dangerous than a red one โ because the human eye reads "no data" as "no risk."
For the last three years, crypto's due-diligence stack has industrialized. We went from a handful of researchers reading Solidity line-by-line to automated pipelines that ingest a project's GitHub, its on-chain history, its vesting schedule, its founder's LinkedIn, and output a scored report in seconds. Speed became the product. I should know โ I spent my DeFi Summer sprint back in 2020 drafting market analysis while the data was still raw, and that habit never left me. Velocity-first is my religion.
But velocity-first has a failure mode nobody talks about on stage. When the input is thin, the output doesn't say "I don't know." It says "N/A." And "N/A" is a chameleon. It sits in a table next to real findings, rendered in the same font, the same cell borders, the same export-to-PDF button. To a human scanning under time pressure โ which is every human in a bull market โ a table full of N/A looks like a table that found nothing wrong.
Here's what makes this urgent right now. We're in a cycle where capital deploys faster than verification. Presales clear in minutes. Points programs farm attention. The projects that win aren't the ones with the best code โ they're the ones with the loudest narrative. And the tooling we built to filter them is quietly degrading, because the data sources it depends on are increasingly gated, obfuscated, or simply absent.
Let me show you the anatomy of a null-value report, because the mechanics matter more than the metaphor.
When my pipeline runs, it makes roughly forty discrete calls: bytecode retrieval, source verification check, admin-key analysis, holder-concentration query, vesting-cliff parse, sanctions-list screen, and so on. Each call returns one of three states โ a value, a hard negative, or a null. A hard negative is loud: "unverified contract," "single EOA holds mint authority," "team wallet moved to a mixer." Null is silent. Null means the call timed out, or the source returned a 404, or the field simply wasn't in the schema.
The critical engineering flaw is that most pipelines collapse "null" and "negative" into the same visual weight. They shouldn't. A null is not the absence of risk; it is the absence of information about risk. Those sit orders of magnitude apart in expected value, and we render them identically.

I learned this the hard way. Back in early 2023, I independently audited fifteen lines of Solidity for a small ERC-20 that had sailed through an automated scan with a clean sheet. The scan's reentrancy check had returned null โ the analyzer couldn't fetch the source because the contract used a proxy pattern it didn't recognize. Clean sheet, null field, five lines later: a reentrancy path that would have drained $50,000 on launch. The tool wasn't wrong. It was silent. And silence got read as a pass.
The same disease infects tokenomics. When a vesting schedule can't be parsed โ because the team published it as an image, a Notion table, or a "coming soon" placeholder โ the field goes null. The supply table fills with dashes. A dashed supply table is not a balanced supply table. But in the export, next to a real APY and a real TVL figure, it reads as neutral.
Then there's the compliance layer, which is where I spend my nights. Regulatory fields are the most likely of all to return N/A, because they're the hardest to query. Is the entity registered? Null. Is there a KYC gate? Null. Does the token clear a rough Howey screen? Null. So the "Compliance Signals" section of these reports is routinely the emptiest โ and therefore, to the casual reader, the least alarming. That inversion is a trap. The emptiest section of a due-diligence report is usually the one carrying the most latent risk.
And here's the modularity angle, because it always comes back to modularity. Modularity isn't the freedom to scale. Every module you bolt on โ a new data provider, a new chain, a new oracle โ is a new place for a null to hide. A monolithic pipeline that fails, fails visibly. A modular one fails quietly, one null at a time, while the rest of the report renders beautifully. Modularity didn't make due diligence more reliable. It made it more legible and less true.
There's a deeper layer still. When a pipeline is designed, someone chooses the schema โ the list of fields worth asking about. That choice is invisible in the output but decisive in the risk. If the schema has no field for "who controls the upgrade key," the report will never flag it, and the report will still look complete. The most dangerous omissions aren't the fields that return null. They're the fields that were never in the schema to begin with. A null tells you there's a hole. A missing field tells you nothing at all, because there's no cell to be empty.
And now we're handing the whole thing to AI agents. I spent early 2025 interviewing founders building decentralized compute markets, and the pitch was always the same: let agents verify everything, continuously, at scale. Beautiful in theory. Terrifying in practice, because an agent that hits a null doesn't stop โ it interpolates. It writes "likely low risk" into a cell that should have said "unknown," and it does it at machine speed, across ten thousand projects, before any human reads a single line. Human analysts at least feel the discomfort of a blank page. Agents don't. They're trained to be helpful, and helpfulness is the enemy of honesty when the data is missing.
Picture the night shift. It's 3 a.m. in Shenzhen, and my dashboard is lighting up โ a token I've never heard of, volume up 600% in an hour, a listing announcement scheduled for 9 a.m. New York. My pipeline returns a wall of nulls because the project shipped its contracts on a chain my provider doesn't index yet. I have two choices: file the nulls and let the listing proceed, or treat the nulls as a stop sign. The second choice costs me sleep and makes me unpopular. It's also the only choice that has ever saved anyone money.
Here's the metric nobody publishes: the fill rate. A diligence report should tell you what percentage of its fields actually returned data. Mine, on a good project, runs about 85%. On a freshly funded, heavily marketed project in a hot sector, it drops to 40% โ and that 40% is the number that matters, far more than any single finding. A report's confidence should be a function of its fill rate, not its page count. We have it exactly backwards. The emptier the report, the more authoritative it looks, because it's cleaner โ no messy red cells, no awkward caveats. Cleanliness is not safety. It's just the absence of visible mess.
Everyone is watching for the critical vulnerability. The infinite-mint bug, the rug-pull function, the unlocked admin key. That's the fear the whole industry is calibrated to. It's also the wrong fear.
The unreported danger is the empty report โ the one that returns nothing and gets filed as "no findings." Because a flagged project triggers a process. Someone calls the team. Someone re-runs the scan. The red cell forces a decision. But a null cell forces nothing. It just sits there, neutral and polite, and the deal proceeds. We have built an entire diligence culture around reacting to red flags, and zero culture around reacting to blank ones.

There's a second-order blind spot too. A parse that fails is itself a signal โ a signal about transparency. A project whose vesting schedule can't be machine-read, whose contracts aren't verified, whose team won't disclose jurisdiction, is telling you something by refusing to be legible. The null isn't a gap in the data. The null is the data. Code is law, but vigilance is the price of entry โ and vigilance means reading the empty cell as loudly as the red one.
And notice who benefits from the null. The project benefits, because an empty report is a pass. The listing venue benefits, because it can point to "automated diligence" without ever owning the result. The analyst benefits, because filing nulls is faster than chasing them. The only party who loses is the buyer โ the one who sees a clean PDF and reads confidence where there is only absence. Follow the incentives and the N/A stops looking like a glitch. It starts looking like a product feature.
So here's what I'm watching next: not the projects, but the pipelines. Who audits the auditors of the auditors? As automated diligence scales into this bull market, the real market-structure risk isn't a single bad contract โ it's a million clean-looking reports that were never actually clean. I've started keeping a personal rule: any report I file with a fill rate under 60% goes out stamped, in bold, at the top โ "INCOMPLETE, DO NOT TRADE." It has cost me exactly zero good deals and saved me at least one bad one. The next headline won't be "protocol exploited." It'll be "everyone looked at the same empty page and called it due diligence." The question is whether we build the tooling to catch it before the cycle does.