[ Learn ]

How to read a smart contract audit report without being a developer

You don't need to code to get useful signal from an audit report. Here's what to check first, what the severity ratings actually mean, and what audits can't tell you.

EXPLAINER·4 min read·Updated August 21, 2026

You're looking at a project's GitHub, you find a PDF called "audit report," and it's 40 pages of Solidity snippets and words like "reentrancy" and "invariant." Most people either skip it entirely or just check that the word "audit" exists somewhere on the site. Neither gets you much. You can pull real signal from these documents in about ten minutes without writing a line of code.

What's the first page actually telling you

Skip to the summary or "scope" section before anything else. It lists exactly which files and functions the auditors looked at, and which commit hash (a specific version snapshot) they reviewed. This matters because teams sometimes ship an audited contract, then quietly patch or add features after the audit closed. Compare the commit hash in the report to the contract address deployed on-chain, or at least check the audit date against the project's GitHub commit history. If the audit is from March and the deploy was in September, you're not covered by anything.

Also check who paid for the audit and who wrote it. A report from a named firm with a public track record (OpenZeppelin, Trail of Bits, Consensys Diligence, Sigma Prime) carries different weight than one from an anonymous "security researcher" hired for $2,000. Firms often publish their past reports, so you can see if they've caught real bugs before or just rubber-stamp everything.

How do severity ratings actually work

Every serious audit sorts findings into tiers, usually Critical, High, Medium, Low, and Informational/Gas. The scale isn't marketing fluff, it maps to real consequences:

  • Critical: funds can be drained or minted arbitrarily, often with no special permissions needed. This should be fixed before mainnet, full stop.
  • High: a serious bug that needs specific conditions (a certain token, a price movement, an admin key) to trigger loss of funds.
  • Medium: things like incorrect accounting under edge cases, or logic that breaks under unusual but plausible inputs.
  • Low/Informational: style issues, gas inefficiencies, missing comments. Not dangerous on their own.

The number that matters most is how many Critical and High findings were "unresolved" or "acknowledged but not fixed" at the end of the report. Auditors list a status for each finding: Fixed, Acknowledged, or Won't Fix. A project that acknowledges a High-severity finding and ships anyway is telling you something. Trail of Bits' own public reports show this status column clearly, and it's worth opening one just to see the format before you read a project's actual report.

What does an audit actually cover

An audit checks the code as written against a set of known bug patterns and the auditors' own testing. It does not check:

  • Whether the team's admin keys are held by one person or a multisig
  • Whether the tokenomics or incentive design makes sense
  • Whether the oracle feeding price data can be manipulated
  • What happens after the audited code is upgraded (many contracts use proxy patterns specifically so logic can change post-audit)

The 2022 Wintermute exploit and dozens of smaller hacks happened on contracts that had been audited. The bugs were usually in configuration, key management, or code added after the review, not in the audited logic itself. An audit reduces one category of risk. It doesn't touch operational risk, and it doesn't guarantee the deployed contract matches the reviewed one.

What should you check before trusting an audit

Run through a short list: Does the audit date predate the current deployment? Is the auditor named and checkable, with past work you can look at? How many Critical or High findings are marked unresolved? Is there more than one audit, and do they agree? Single audits catch maybe 60-70% of what a determined attacker eventually finds, which is why serious protocols (Uniswap, Aave) commission multiple firms plus ongoing bug bounties rather than treating one PDF as a finish line.

None of this requires reading Solidity. It requires reading dates, names, and a status column, and asking whether the story the report tells matches what's actually live on-chain.

DisclosureEducational content, not financial advice. Stack and Story holds no position in the assets discussed. Do your own research.

Understand crypto. Decide for yourself.

The free 5-Minute Crypto Cheat Sheet, then one calm briefing every Sunday.

Free · Independent · Unsubscribe anytime · Privacy