A report landed in my queue on a Tuesday. Twenty-two pages. Nine analytical dimensions. Forty-one tables. A risk matrix with six rows. A completion timestamp accurate to the minute.
Every cell was filled with the same three characters: N/A.
No contract address. No unlock schedule. No contributor count. No bytecode hash. No jurisdiction. No audit firm. The document carried a title block, a methodology section, a glossary, a disclaimer, and a version number. It carried everything a due diligence report is supposed to carry except a subject.
I have read thousands of these artifacts. Term sheets padded with adjectives. Audit badges that certify the absence of typos in a comment block. Whitepapers that promise homomorphic consensus and deliver a Discord server. This was the first document I have read that told the truth by accident.
The most honest research product shipped in crypto this cycle contains zero findings.
It is also a mirror. Hold it up to the industry and you see the shape of a verification layer that has quietly stopped verifying anything. Not because the tools broke. Because nobody noticed when they did.
The Research Industrial Complex
Start with the supply chain.
A crypto research product in 2026 is assembled in stages. Stage one extracts facts from a source โ a whitepaper, a governance forum post, a Telegram announcement, a podcast transcript. Stage two applies analytical frameworks to those facts and produces a judgment. Stage three formats the judgment for distribution. Stage four monetizes attention.
The pipeline is industrial now. Automated. Cheap. A single operator with three language models and a subscription to a block explorer can emit twenty structured reports before lunch. The marginal cost of a research document has collapsed toward zero. The marginal cost of a correct research document has not moved at all.
That asymmetry is the story of this cycle.
We are in a sideways market. Chop. No direction. Six months of range-bound price action on the majors, rotation into narratives that die in nine days, funding rates that oscillate around zero like a patient who is not quite dead. In a market with no trend, attention becomes the only tradable asset. And attention is manufactured in bulk.
So the desks produce. They produce on tokens that have no code. They produce on protocols that have no users. They produce on narratives that have no mechanism. The frameworks are rigorous โ I have seen them, they are good frameworks, they were built by people who understand what a Merkle proof is โ and the frameworks are applied to inputs that do not exist.
The result is a document with the shape of analysis and the substance of a blank page.
I have been on both sides of this. In 2017 I was an undergraduate tearing apart an ICO whitepaper that claimed homomorphic encryption in its consensus layer. I found three mathematical impossibilities in eleven days, published proof-of-concept code on GitHub demonstrating why the scheme could not work, and watched the repository collect four hundred stars before the team issued a public retraction. That was a real finding. It had an object. It had a falsifiable claim. It had a proof.
What I received on Tuesday has none of those things. It has the format of rigor. And format, in a market that rewards the appearance of diligence over the practice of it, sells better than rigor ever did.
Autopsy of a Null Document
Let me dissect it the way I would dissect a contract.
The title block. Present. Complete. It names a version number, a generation timestamp, and a data source field. The data source field is the tell. It reads: upstream extraction output. No URL. No document hash. No author. The report does not know what it is about, and it says so in the metadata.
The executability precheck. This is the honest part, and it is the part that scares me. The precheck runs seven checks โ title presence, information point list, core thesis, domain tag, project identification, time sensitivity, source quality โ and marks all seven as failed. It then states, in plain language, that the analysis is not executable, that the following sections are framework placeholders, and that the document does not constitute investment or research reference.
Read that again. The document diagnosed its own uselessness, logged the diagnosis, and shipped anyway.
Metadata whispers what the contract screams. Here the metadata is screaming. A machine that knows it has no input is a machine that is functioning correctly at the level of self-assessment. The failure is not in the diagnosis. The failure is that the diagnosis was routed into a formatting layer instead of a halt condition.
The nine dimensions. Technical. Token economics. Market. Ecosystem position. Regulatory. Team and governance. Risk. Narrative and expectation gap. Value chain transmission. Each one populated. Each one populated with the same null marker. Roughly three hundred instances of N/A across twenty-two pages.
The hidden information fields. Every dimension has a slot labeled hidden information โ the section where an analyst records what the data implies but does not state. Every slot reads: N/A, cannot infer, confidence N/A. This is the most rigorous statement in the document. It is the one place where the system refuses to hallucinate.
The risk matrix. Six categories โ technical, market, operational, regulatory, competitive, narrative. Six rows. All blank. The composite risk rating is N/A. The document cannot tell you whether the subject is safe or catastrophic, because it does not know whether the subject exists.
The disclaimer. Fully formed. Competent. It warns of total loss of principal, disclaims liability, and instructs the reader to supply a valid first-stage input and resubmit. It is the only section of the document that does its job.
Here is the forensic finding, and it is not about this one report. The pipeline that produced this document has no failure terminal. It has a failure label. When the input is absent, the system does not stop. It annotates the absence and continues executing, because continuing to execute is what it was built to do.
Silence in the logs is louder than any statement. And this log is silent in three hundred places while remaining perfectly formatted in all of them.
The Nine-Dimension Frame as Instrument
I want to defend the framework before I attack the pipeline, because the two are not the same thing and conflating them is how good tools get discarded.
The nine-dimension structure is sound. I use something like it. Technical positioning forces you to name the layer โ L1, L2, application, middleware, infrastructure โ and naming the layer immediately constrains what the thing can possibly be worth. Token economics forces the unlock schedule into the open, where foundation holdings and team cliffs become arithmetic instead of vibes. Regulatory forces the Howey elements into four rows and forces you to answer whether there is a common enterprise and whether profit is expected from the efforts of others โ which, for a large fraction of tokens launched in the last four years, produces an uncomfortable answer.
The value-chain transmission dimension is the most underrated. Ask what happens upstream and downstream of a protocol when it succeeds, and you discover whether it has a position in a system or merely a position in a narrative.
I ran a version of this frame on two Layer 2 scaling solutions in 2022, during the depths of the bear market. Local node cluster, synthetic congestion, escalating throughput until finality guarantees broke. Both broke. The theoretical TPS numbers on the marketing pages were off by more than an order of magnitude against observed behavior under load, and the failure mode was not graceful degradation but a finality window that stretched past the point where a user could meaningfully exit. That report got ten thousand downloads and a consulting engagement with a venture firm that wanted to know which infrastructure was actually sound.
The frame worked because the frame had an object. Concrete. Measurable. Falsifiable.
Now run the same frame on an empty input.
Every dimension still executes. The structure still holds. The tables still render. And the output is a document that a reader can mistake for diligence if they do not read carefully. A framework applied to nothing does not produce nothing. It produces the appearance of something. That is the dangerous property. A blank page is honest. A formatted blank page is a forgery with good typography.
The instrument is fine. The instrument is being pointed at an empty room and asked to describe the occupant.
Three Ways an Input Goes Silent
Not all null inputs are the same failure. I have now seen enough of them to sort them into three classes, and the class determines what you should do about it.
Class one: the ingestion fault. The upstream stage ran, produced output, and the output was lost in transit. A schema mismatch. A truncated payload. A field renamed in one service and not the other. The evidence for this class is structural: the downstream document expects fields that the upstream service is known to emit, and those fields arrive empty rather than absent. The remediation is engineering. Fix the contract between the two stages and re-run.
Class two: the quality floor. The upstream stage ran correctly and found nothing worth extracting. The source was a fifty-word announcement, or a governance post with no numbers, or a thread of pure sentiment. This is not a pipeline bug. This is a source bug. The document is null because the underlying material had no factual content to carry forward.
The remediation here is editorial, and it is unpopular: reject the source. Do not analyze it. Do not pad it. Return it to the pool with a note that says the material did not meet the extraction threshold. Every research desk I have worked with resists this, because rejecting a source means shipping nothing, and shipping nothing looks like doing nothing, and doing nothing is the one outcome the industrial model cannot tolerate.
Class three: the ontology gap. The most interesting class. The source contains facts, but the facts do not map onto any dimension the framework recognizes. A social graph with no on-chain footprint. A regulatory filing that names no token. A partnership that produces no addressable contract. The extraction stage looks at real material, finds no slot to put it in, and emits nothing.
Class three is where the framework is wrong, not the input. I hit this in 2024 auditing a consensus mechanism that claimed AI-driven validation. The mechanism was real. The code was real. The claim was architectural, not economic โ it was about how training data bias propagated into validator behavior and produced a predictable, exploitable consensus distribution. None of my existing dimensions had a slot labeled model bias as an attack surface. The material was rich and the framework was blind. I had to build the dimension before I could report the finding.
If you are operating a pipeline and you see a sudden flood of nulls, diagnose the class before you diagnose the system. Class one is a bug. Class two is a filter that should exist and does not. Class three is a signal that your ontology is aging.
Absence of Evidence Is Not Proof of Impossibility
Here is where the forensic instinct has to be disciplined, because the lazy version of skepticism is as dangerous as credulity.
When I deconstructed that homomorphic encryption ICO in 2017, I was not working from absence. I was working from presence. The whitepaper made a specific claim about how ciphertext operations composed under their consensus rule. That claim had a mathematical structure. Structure can be tested. I found three places where the structure was impossible โ not implausible, not expensive, impossible โ and I wrote proof-of-concept code that demonstrated the failure by executing it.
Four hundred stars. A public retraction. That is what a real negative finding looks like. It is constructed, not inferred. It points at a specific artifact and says: this artifact cannot do what it claims, and here is the demonstration.
An N/A is not that. An N/A is an absence of evidence. And the rules of evidence treat absence in a specific, limited way. Absence of a record does not prove the event did not occur. It proves the record was not produced, not found, or not sought.
This distinction has teeth, and it cuts in both directions.
It cuts against the bulls, who will tell you that a missing audit means the code is fine because nobody has found anything wrong. That is nonsense. Nobody has looked. Or somebody looked and did not publish. Or somebody published and the publication was buried. The null result is a statement about the search, not about the territory.
It also cuts against the skeptics, who will tell you that a missing unlock schedule means the team is hiding a cliff. Maybe. Or maybe the schedule exists in a vesting contract and the indexer that should have read it was pointed at the wrong chain ID. The suspicion is a hypothesis. It is not a finding. I have watched analysts destroy their own credibility by publishing hypotheses in the grammatical voice of findings.
What you can legitimately do with a null is narrow the space of live hypotheses. You cannot say the subject is fraudulent. You can say the subject is unverified, and unverified is a valuation input, not a verdict. Unverified assets should trade at a discount to verified ones with identical fundamentals. In practice, in this market, in this cycle, they frequently trade at a premium, because unverified is narratively cheaper to sell than verified.
That premium is the mispricing. It always was.
The On-Chain Precedents
I have watched this exact failure mode โ the formatted void, the missing record read as a clean bill โ play out across four separate domains. The pattern is not new. The pipeline that produced Tuesday's report is just the newest instance of an old disease.
The Metadata Mirage
In 2021 I pulled fifty top-tier NFT collections and traced where their token URIs actually pointed. The results were not ambiguous. Roughly sixty percent of the collections that marketed themselves with the word on-chain resolved their metadata to centralized HTTP endpoints. Not IPFS with a pinning service. Not Arweave. A single server behind a single domain, controlled by a single legal entity, revocable at will, censurable by a letter.
The market read those collections as decentralized because the image rendered. The image is static; the provenance is a phantom. Nobody asked what the contract's tokenURI function actually returned under the hood, because the front end did not make them ask.
I built an interactive dashboard quantifying the centralization exposure across all fifty. That dashboard got cited in early regulatory hearings on NFT classification โ not because it proved fraud, but because it proved divergence: the gap between the claim in the marketing and the return value in the contract.
That is the same gap as the null report. The marketing layer says analyzed. The return value says not available. And the reader, who has been trained by a decade of well-formatted dashboards to trust the shape of the presentation, does not check the return value.
The Oracle and the Rug
In 2020, during DeFi Summer, a yield farming protocol took a fifteen-million-dollar hit. I spent six weeks reverse-engineering the liquidity pool mechanics โ EVM bytecode, transaction traces, the exact block-level sequence of the attack. The vector was not exotic. The oracle price feed integration had a flaw: a narrow window in which the feed could be manipulated within a single transaction, and the pool's liquidation logic trusted the manipulated value without a sanity bound.
Every line of that investigation was built on artifacts. Bytecode. Logs. Gas traces. Block timestamps. Not one inference from absence.
The report got picked up by major outlets and led to a formal partnership with a smart contract auditing firm. The thing that made it credible was not that I was skeptical. It was that I was specific. Six weeks of work, one vector, one mechanism, one demonstration.
Now consider the alternative universe. Suppose the bytecode had been verified but the source had not, and the trace data had been unavailable, and I had published a report saying the cause of the exploit was unknown, N/A, cannot infer. That report would have been accurate. It would also have been useless, and worse, it would have been unfalsifiable โ a document that no one could ever prove wrong because it asserted nothing.
Useless and unfalsifiable is the exact profile of the modern research output. The null report on my desk is the purest specimen I have seen.
Finality Under Load
The L2 stress test from 2022 has a different lesson. There, both protocols had artifacts. Real code, real sequencers, real finality mechanisms. The finding was not that the artifacts were missing. It was that the artifacts behaved differently under load than they behaved in the documentation.
Finality is a promise about a state that has not happened yet. Every L2 makes one. The promise is only verifiable under conditions the marketing material does not describe โ sustained congestion, adversarial transaction ordering, validator churn. I built the conditions. Both broke. Not catastrophically, not in a way that drained funds, but in a way that meant the promise was conditional on a regime the chain had never actually been tested in.
Ten thousand downloads. A VC engagement. The reason institutional developers wanted it was that it converted a marketing claim into a measured claim.
Measured beats claimed. Always. Every time. Without exception. A protocol that publishes a measured finality curve at ninety-nine percent congestion is more trustworthy than a protocol that publishes a TPS number from a controlled benchmark. Not because the first is safer, but because the first has given you something to falsify.
An N/A gives you nothing to falsify. That is its defining property, and it is why null documents survive scrutiny: there is no surface for scrutiny to grip.
The Aligned Validator
In 2024 I audited a hybrid consensus mechanism that routed validation through an AI model. The training data was biased in a way that produced a predictable distribution of validator behavior โ not random, not adversarial in the obvious sense, but correlated. A sophisticated actor who understood the bias could position transactions to land in the consensus region the model favored, repeatedly, without triggering any anomaly detector tuned for randomness.
I published a whitepaper and it started an argument that is still running.
The point I want to make here is about the shape of that finding. It was invisible to every standard technical audit. The code was clean. The cryptography was sound. The economics were documented. The vulnerability lived in a dimension the auditing profession had not yet invented a name for. I had to name it before I could report it.
Class three, from earlier. The ontology gap.
The null report on my desk is the opposite: a document so over-supplied with dimensions that it has slots for everything, and content for none. It has the ontology without the evidence. The AI consensus audit had the evidence without the ontology. Neither is a finished product, but only one of them is dangerous.
The Publishing Asymmetry
Why do null documents get shipped at all?
The answer is an incentive structure so simple it is almost embarrassing.
A research desk that publishes ten reports a week and one of them is right is visible. A research desk that publishes two reports a month and both are right is not. Visibility compounds. Accuracy does not, or at least does not on a timeline anyone's fund cycle respects.
The asymmetry runs deeper than attention. Positive findings are cheap to produce and expensive to falsify. Negative findings are expensive to produce and cheap to dismiss. If you publish this protocol is sound, you need evidence and you will still be wrong sometimes. If you publish this protocol is unverifiable, you need nothing and you cannot be wrong, because you have asserted nothing about the world.
The null is the perfect product for this market. Infinite supply. Zero liability. Full formatting.
I have watched grant committees operate on precisely this logic. A committee that funds nothing cannot be blamed for funding badly. A committee that funds badly can. So the committee builds a rubric, applies the rubric, and the rubric produces N/A again and again, and nobody is accountable, because the process was followed.
The contrast is Optimism's RetroPGF, and I want to be precise about why the contrast matters. RetroPGF does not ask a committee to predict value. It asks the community to retroactively identify value that already exists โ already shipped, already used, already measurable in artifacts. The mechanism removes the need for a committee to guess, which removes the committee's incentive to protect itself with nulls. The output is a funded artifact instead of a formatted abstention.
Every other grant process I have examined in this industry runs on a rubric designed to make abstention look like rigor.
Provenance: Chain of Custody for Research
Here is the constructive half, and it is the half I actually care about.
Chain of custody is the standard by which physical evidence is admitted in a legal proceeding. You do not get to assert that a sample is what you say it is. You produce a record of every hand it passed through, every seal it carried, every moment it was logged. Break the chain and the evidence is excluded, no matter how probative it might have been.
Research has no such standard. It should.
Apply the chain of custody to the null report and the failure localizes immediately. The document's provenance is a single string: upstream extraction output. There is no source URL. No document hash. No extraction timestamp separate from the generation timestamp. No author. No reviewer. No signature.
If that report were physical evidence, it would be excluded before the hearing started.
Now apply the same standard to a research claim you actually want to believe. A protocol says its TVL is nine hundred million. Where did that number come from? Which indexer? Which chain IDs? Does it count double-locked assets? Does it count the protocol's own governance token staked in its own pool? Does it subtract the flash-loan-inflated peak from a single block?
I have run this trace hundreds of times. The number that survives is frequently thirty to sixty percent lower than the number on the website. Not fraud. Just definitional drift, compounded at every step of the pipeline, with nobody holding the chain of custody that would have caught it.
A number without a provenance chain is a number you have chosen to believe. That sentence should be stapled to every dashboard in this industry.
So what does a real chain look like for research? It is not complicated. It is just boring, and boring is expensive, and expensive is why nobody does it.
Every factual claim in a research product should carry: an origin โ the URL, contract address, block number, or filing identifier; a hash of the source material as retrieved; a retrieval timestamp; and the name of the analyst who confirmed the extraction. Every inference should be labeled as an inference. Every absence should be labeled as an absence, with a note on whether the absence was checked and found empty or not checked.
That last distinction is the one that matters most, and no research product I have seen this cycle makes it. There is a difference between we looked and there is nothing and we did not look. The null report does not know which one it is. Its own self-assessment says the input was absent, which means it belongs to the second category, which means the correct output was not a report but a rejection.
What a Real Diligence Protocol Requires
The null report closes with a seven-item list of fields it needs before analysis can proceed. Title. Source and author. Information points. Core thesis. Document type. Time sensitivity. Named projects and protocols.
Read that list as a specification rather than an apology, and it is actually a decent definition of a minimum viable input.
I would tighten it. Seven fields is where you start, not where you end. Here is what I would add, based on fourteen years of watching this go wrong.
A retrieval method. Not just what the source is, but how it was obtained. A whitepaper pulled from the project's own documentation site is a different evidentiary object than the same PDF mirrored on a third-party archive. The mirror can be edited. The original can be edited. The version you cite should be hashed at the moment you cite it.
A contradiction check. Every input should be cross-referenced against at least two independent sources. The numbers on a project's own dashboard are one source. The numbers from a neutral indexer are another. When they diverge, the divergence is the finding โ more informative than either number alone.
A time-decay marker. Information has a half-life. A TVL figure from six months ago in a sideways market is a historical document, not a current claim. The null report has a field for time sensitivity and fills it with N/A, which means it cannot tell you whether its own output would be stale if it had any.
An explicit ontology version. Which dimensions does the framework cover, and which does it not? The AI-consensus audit taught me this the hard way. A framework without a declared boundary will silently drop material it cannot classify, and silent drops look exactly like absent input.
A named human. Not a handle. Not a desk. A person who will answer for the extraction decisions. The single most reliable predictor of research quality I have found is whether someone's name is on the line for the specific claim, not the document as a whole.
The null report fails all five of these. It also fails the original seven. Which means it is not a report at all. It is a template that survived an execution it should not have survived.
Governance's Own Null Reports
I want to widen the lens, because the null report is not an isolated artifact. It is a symptom with a large addressable market.
Consider what a DAO governance proposal actually contains in this cycle. A title. A temperature check. A forum thread with two hundred replies, of which nineteen contain a number. A Snapshot vote with a quorum threshold that gets met by delegated wallets whose delegators have never read the proposal. A multisig execution with four signatures from a seven-person council that was elected in a cycle nobody remembers.
Now ask the diligence questions. Who holds the treasury? Trace the address. What is the unlock schedule on the governance token that the treasury is denominated in? Read the vesting contract. Is there a legal wrapper? Check the incorporation filing. Is the council compensated? Read the ledger.
Every one of those questions has an answer. The answer is on-chain. The answer is public. And the answer is almost never in the proposal document, because the proposal document is written to be voted on, not to be verified.
The proposal is a null report with a quorum requirement attached.
The critique is not that DAOs are decentralized theater โ that argument is tired and mostly wrong, because some of them are genuinely functional. The critique is narrower and harder to dismiss. Projects preach decentralization while their foundation holdings sit in identifiable wallets with identifiable unlock curves. The trace is not difficult. I have run it on dozens of treasuries. The pattern is consistent: a foundation address, a team vesting contract, an early-investor allocation, and a governance token whose distribution curve looks nothing like the rhetoric in the governance forum.
This is not necessarily fraud. It is compliance architecture. A DAO wrapper converts a corporate treasury into a governance primitive, which converts a securities question into a community question, which converts a legal exposure into a discourse. The wallets do not care. They hold what they hold, and they unlock on schedule, and the schedule is public whether or not anyone publishes it.
The null report and the governance proposal are the same object at different scales. Both are formatted for consumption. Neither is formatted for verification. And in both cases the missing artifact โ the provenance chain, the unlock trace, the source hash โ would have taken an afternoon to produce and is instead available to anyone who thought to look.
The Regulatory Mirror
There is a reason the null report's regulatory section is the emptiest of the nine dimensions, and it is not that the subject lacks a jurisdiction. It is that jurisdiction questions cannot be answered by inference at all.
Run the Howey elements against an empty subject and the analysis collapses. Is there an investment of money? Unknown, no sale identified. Is there a common enterprise? Unknown, no entity identified. Is there an expectation of profit? Unknown, no instrument identified. Is the profit derived from the efforts of others? Unknown, no others identified.
Four unknowns. Composite judgment: N/A.
Now run the same four elements against a typical token launch, with real facts, and watch what happens. Money: yes, the sale was denominated in ETH and the proceeds went to a foundation address. Common enterprise: yes, the foundation controls the treasury and the roadmap. Expectation of profit: yes, the marketing materials discuss price and the vesting schedules imply appreciation. Efforts of others: yes, the core team is the only party building.
Four yesses. Every time. And yet the industry has spent a decade producing documents that fill those four rows with adjectives instead of answers.
The null report at least has the decency to leave the rows blank.
I am not arguing that every token is a security. I am arguing something more uncomfortable, which is that the analysis that would settle the question is cheap and public and almost never performed. The foundation's address is on-chain. The treasury's movements are on-chain. The team's vesting cliffs are on-chain. The only thing standing between the industry and a defensible regulatory posture is the willingness to publish a formatted table with real numbers in it instead of a formatted table with N/A.
We built the transparency rails. We did not build the discipline to use them.
Contrarian: What the Bulls Got Right
Here is the part where the cold read has to be honest about its own limits.
The bulls will tell you the null report is a feature. And on one narrow point, they are correct.
A system that returns null rather than fabricating a plausible finding is a system with an intact epistemic floor. I have dissected projects where the analysis pipeline was never null โ where every field filled, every dimension scored, every risk rated low, and the entire document was confabulated from a marketing page and a Twitter thread. Those documents are far more dangerous than the one on my desk. They read as diligence. They are the reason capital gets destroyed.
The null report at least refuses to invent a subject. Its failure is in its packaging, not its epistemology. It knew it had nothing.
There is a second point the bulls have, and it is about the framework itself. Nine dimensions is a serious ontology. Whoever built it understood technical positioning, understood unlock schedules, understood value-chain transmission. The fact that the framework survived an empty execution without collapsing into incoherence is a statement about the framework's structure. It held. It just held nothing.
And there is a third point, subtler. The null report diagnosed itself. Its executability precheck listed every missing field, named the failure, and told the reader not to act on the document. That is more intellectual honesty than ninety percent of the research published this cycle, most of which is confident, well-formatted, and untethered from any verifiable artifact.
So the bulls are right that the machine has integrity. Where they are wrong is in the conclusion they draw from it. Integrity at the input layer does not rescue a process that ships regardless. A doctor who correctly identifies that he has no chart and then performs surgery anyway has not been honest. He has been honest and then negligent in sequence.
Takeaway
The question I keep returning to is not whether the pipeline should have halted. It should have. That fix is engineering, and engineering fixes get done.
The question is why the halt was not built in the first place. And the answer is that in a sideways market, in an attention economy, in an industry where the appearance of diligence trades at a premium to the practice of it, a pipeline that halts when it has nothing to say is a pipeline that ships nothing, and shipping nothing is the only failure mode this market actually punishes.
So the nulls get formatted.
Watch for them. They arrive with version numbers and completion timestamps and risk matrices with six rows. They are the most honest artifacts in the industry and the least useful, and the difference between those two properties is where the next cycle's losses are stored.
Check the provenance, not the formatting. The chain of custody, not the table of contents.