All articles
Smart Contracts·June 17, 2026·6 min read

What a Smart Contract Audit Certificate Actually Proves

What a smart contract audit certificate really covers: commit hash, scope, and findings — and what "audited" can't guarantee.

Somewhere in an auditor's deliverables folder sits a PDF, and sometimes a matching on-chain attestation, that says "audited." What that certificate actually attests to is narrower than the marketing team usually implies, and understanding the gap matters whether you're a founder deciding what to put on your landing page or a depositor deciding whether to trust one.

What's actually printed on a real one

A legitimate audit certificate from a serious firm carries a small, specific set of facts. Not "this protocol is safe" — that phrase shouldn't appear anywhere in a report you'd stake money on.

  • A commit hash. The exact Git commit (or a specific set of file hashes) that was reviewed, down to the character. Not "the repo," not "the latest version" — one immutable snapshot.
  • A defined scope. Which contracts, which functions, sometimes which lines were in scope, and — just as important — what was explicitly out of scope (third-party dependencies, off-chain keepers, the frontend, governance contracts that ship later).
  • A findings list with severity and status. Critical, High, Medium, Low, Informational, each with a description, and a resolution status: Fixed, Acknowledged, Won't Fix, or Disputed.
  • Auditor identity and dates. Who reviewed it, over what window, and when the report was finalized.
  • A methodology note. Manual review, static analysis (Slither, Semgrep), fuzzing (Echidna, Foundry invariant tests), symbolic execution (Mythril, Halmos) — and how much of each.

That's it. That's the whole factual payload. Everything past that is interpretation, and interpretation is where teams get sloppy or dishonest.

The commit hash is the whole ballgame

This is the part almost nobody checks, and it's the single most important line on the document. An audit certificate is only meaningful if the deployed bytecode matches the audited commit exactly. If the team merged a "small fix" after the audit closed — even a one-line change to a fee calculation — the certificate no longer covers what's live.

Here's how you actually verify it instead of taking the badge at face value. Pull the deployed bytecode from the chain and compare it against a local build of the audited commit:

# checkout the exact commit named in the audit report
git checkout a1b2c3d4e5f67890abcdef1234567890abcdef12

# build with the same compiler version/settings the report specifies
forge build --sizes

# hash the runtime bytecode of the contract in question
cast keccak $(jq -r '.deployedBytecode.object' out/Vault.sol/Vault.json)

# compare against the bytecode actually deployed on-chain
cast code 0xYourDeployedAddress --rpc-url $RPC_URL | cast keccak

If those two hashes don't match, the certificate is decorative. This happens more often than teams like to admit — usually because of a post-audit "hotfix," a different optimizer setting at deploy time, or immutable constructor args baked in differently than the audited test deployment. None of those are necessarily malicious, but all of them mean the audit's guarantees don't attach to what users are actually interacting with. We walk clients through this exact diff as part of every smart contract audit engagement before we'll sign off on a public certificate.

What the findings list does and doesn't tell you

A clean findings list — zero Critical, zero High — gets read by marketing as "no bugs." What it actually means is "no bugs of the categories and attack patterns this specific team thought to test for, in the time allotted, against this scope." Audits are bounded by hours, not by exhaustiveness. A two-week audit on a 2,000-line codebase and a two-week audit on a 400-line codebase are not equivalent confidence levels, even with identical findings sections.

Acknowledged and Won't Fix items matter as much as Fixed ones. A Medium-severity finding marked "Acknowledged — team accepts centralization risk from multisig admin" is disclosed risk, not resolved risk. If a project's public messaging says "audited, no issues found" while the report itself lists three acknowledged Mediums, that's a materially misleading summary of their own document.

What no certificate can promise

  • Economic and game-theoretic exploits. Flash-loan-driven oracle manipulation, MEV-based sandwich attacks on AMM logic, liquidation cascades under extreme volatility — these are often out of scope for a code-correctness audit and require separate economic modeling.
  • Anything that ships after the snapshot. Upgradeable proxies are the obvious case: an audit of the implementation contract at commit X says nothing about implementation Y pushed through the proxy six weeks later. If your protocol is upgradeable, the certificate needs a companion process for auditing every subsequent upgrade, or it's a one-time snapshot pretending to be ongoing assurance.
  • Off-chain components. Keeper bots, oracle relayers, admin panels, the multisig signers' own operational security — a smart contract certificate rarely touches any of it, yet these are common breach vectors.
  • Absence of all bugs. Audits reduce risk; they don't eliminate it. Several nine-figure exploits in the last few years hit contracts that had passed reputable audits, because the bug class exploited fell outside what that engagement was scoped or timed to catch.

If your team is still deciding whether an audit is even necessary before you ship, it's worth reading through when a smart contract audit is actually required before mainnet launch rather than assuming a certificate is optional marketing spend.

Reading a certificate like a skeptic

Before trusting a badge, check four things in order: does the commit hash match deployed bytecode, is the scope broad enough to cover the contracts actually holding user funds, are Critical/High findings marked Fixed rather than Acknowledged, and is the audit recent relative to the last code change. A badge from a firm you can't find a track record for, attached to a commit nobody can verify, tells you nothing. Chain-specific mechanics matter here too — TON's actor model and Tact/FunC toolchain surface different bug classes than EVM, so a generic "audited" claim is worth even less without knowing which checklist was actually run; see our TON smart contract audit checklist for what that looks like in practice.

Cost is also a decent proxy for depth, though not a perfect one — a $4,000 rubber-stamp review and a $40,000 multi-week engagement will both produce a certificate that looks similar at a glance. We break down what actually drives audit pricing across EVM, Solana, and TON audit costs in 2026 if you're budgeting one in.

The honest version of the badge

A certificate proves a specific team looked at a specific commit for a specific number of hours and found specific things. Teams that want to actually earn the "audited" label, not just display it, publish the commit hash next to the badge, keep the report public, and re-audit every material upgrade — pairing the initial engagement with an ongoing code review and audit cadence rather than treating it as a one-time checkbox. If you're building the contracts fresh and want the audit trail clean from day one, that discipline is easier to bake in during smart contract development than to retrofit after mainnet.

If you're staring at a "audited" badge on a protocol you're about to trust with funds, or you're the team that needs one to stand up to scrutiny, get an audit that verifies against your actual deployed bytecode rather than one that just produces a nice-looking PDF.

Need a bot like this built?

We design, build and run trading bots on Solana, Hyperliquid and Polymarket.

Start a project
#smart contract audit#audit certificate#smart contract security#web3 due diligence