Contract safety

Fuzz coverage viewer

Load an Echidna or Medusa coverage file and see which lines were never hit.

Runs in your browser

Coverage report

Echidna or Medusa JSON, a Foundry coverage array, or a plain LCOV file. Nothing leaves your browser.

Accepts .json, .lcov and .info.

Uploading a file fills this in too, so you can check what was read.

No coverage loaded

Load a report and the first thing you see is what the fuzzer never reached — the functions it never entered and the files with the most unhit lines.

Supported formats

JSON is tried first; anything else is read as LCOV.

  • Echidna: JSON coverage output from --format json
  • Medusa: JSON coverage report
  • Foundry: Coverage JSON from forge coverage --report json
  • LCOV: Standard LCOV format (.info files)
Echidna JSON shape
{
  "coverage": {
    "src/MyContract.sol": {
      "lines": { "10": 5, "11": 5, "12": 0, "15": 3, "16": 3, "20": 0 },
      "functions": { "deposit": 5, "withdraw": 3, "emergencyWithdraw": 0 }
    },
    "src/Token.sol": {
      "lines": { "5": 10, "6": 10, "7": 8 },
      "functions": { "transfer": 10, "approve": 8 }
    }
  }
}