Skip to content

Back to the catalog

github.comrepo

DicksonWu654/web3-audit-corpus

web3-audit-corpus is a dataset of public smart contract audit reports and extracted findings. The 2026-10-22 snapshot has 12,767 engagements, 13,522 report files, 11,027 projects and 175,640 finding records (160,239 with full text). It ships Markdown, JSONL, Parquet and CSV files with a vulnerability taxonomy, quality figures and checksums. Extraction is AI-assisted, so errors are possible, and finding text keeps the publisher's rights.

TL;DR Downloads a large corpus of public smart contract audit findings, in Parquet, JSONL and Markdown, for querying and building review checklists.
Document

What it is

web3-audit-corpus is a dataset of public smart contract audit reports and extracted findings, published by Dickson Wu. The 2026-10-22 snapshot covers 63 publishers (the page title says 64 firms and contest platforms, 11,854 audits and 159,784 findings, which is an older count). Audit years run from 2015 to 2026, with 2026 year to date. A companion repository, DicksonWu654/web3-audit-findings, holds one Markdown file per finding plus hub pages by firm, class, language, chain and project, a nodes and edges metadata graph, and an AGENTS.md for coding agents.

What to do

The intended use is as a local reference set for an AI coding assistant during an audit. Download the assets from the latest release and verify them against CHECKSUMS.sha256. Then pick the format that fits:

  • audits-markdown.zip: one file per report with metadata and available finding text. Unzip it and open the folder in Claude Code, Codex or Cursor.
  • findings.jsonl.gz, findings.parquet, findings.csv.gz: one row per finding, joined to publisher, project, year, scope, language, chain and original URL. Use these for SQL, Python or spreadsheets.
  • engagements.csv, reports.csv, firms.csv: audit identities, report provenance and publisher metadata.
  • quality.csv and taxonomy.yaml: measured extraction and annotation agreement, with denominators, and the vulnerability definitions.

The page gives an example prompt: "Before auditing this lending protocol, find similar oracle and liquidation findings, explain the recorded fixes, and turn them into a review checklist." The agent guide covers setup, DuckDB one-liners and example prompts. To fetch only one firm or vulnerability class from the findings repository, use the sparse clone described in its README. A full shallow clone is:

git clone --depth 1 https://github.com/DicksonWu654/web3-audit-findings

Caveats

  • Extraction and annotation are AI-assisted and may contain errors. The page says to check the linked original report for any finding you rely on.
  • Report text is source content. The page tells users to treat quoted report text as reference material and not as instructions, which matters when an agent reads it.
  • Coverage is limited to the publishers in registry/scope_tier_a.csv, and by public disclosure, access restrictions and collection gaps. Some engagements have metadata and severity counts but no released finding rows. Withheld bodies point to the original report.
  • Counts mix levels. Engagements merge joint audits, while publisher participations stay separate. Reports and findings can include revisions, and selected_for_stats marks the released rows in the selected initial streams.
  • Licensing: code is MIT; derived metadata and annotations are CC BY 4.0. Finding text keeps the publishers' rights (see docs/RIGHTS.md), and RIGHTS_WITHHELD.csv records withholding. Oak Security excerpts keep CC BY-ND attribution and must stay verbatim. Corrections and publisher removal requests go through a GitHub issue with the report URL, finding ID and evidence.

Organisations named here

  • Oak Security

Technologies named here

  • Claude Code
  • Codex
  • Cursor
  • Solidity
  • Ethereum
  • DuckDB
  • web3-audit-corpus
  • web3-audit-findings

Techniques named here

  • Smart contract audit review checklist building

Concepts named here

  • Coverage limits
  • Extraction and annotation error
  • Prompt injection via source content
  • Report revisions and selected_for_stats
  • Split licensing