Skill is based on Echidna (crytic/echidna), generated from source at the listed date.
Echidna is a property-based fuzzer for Ethereum smart contracts. It generates random sequences of contract calls to falsify invariants (Solidity functions named with a prefix like echidna_ that return bool) or to trigger Solidity assert failures. It supports coverage-guided fuzzing, corpus collection, multiple test modes, and integration with Foundry, Hardhat, and Truffle.
Core References
| Topic |
Description |
Reference |
| Invariants |
Defining and running property invariants (echidna_ prefix, no args, return bool) |
core-invariants |
| Configuration |
YAML config (testMode, gas, coverage, corpus, workers, filtering) |
core-configuration |
| CLI |
Invocation, contract selection, output drivers (text, json, none) |
core-cli |
Features
| Topic |
Description |
Reference |
| Coverage and corpus |
corpusDir, covered.txt, line markers, coverage reports |
features-coverage |
| Build systems |
Foundry, Hardhat, Truffle, echidna ., allContracts, solcLibs |
features-build-systems |
| Test modes |
property, assertion, overflow, exploration, optimization |
features-test-modes |
| Function filtering |
filterFunctions, filterBlacklist, whitelist/blacklist |
features-filtering |
| Symbolic execution |
symExec, SMT solver (cvc5, z3, bitwuzla), tuning options |
features-symbolic |
| FFI and cheatcodes |
allowFFI, HEVM cheatcode support |
features-ffi-cheatcodes |
Best practices
| Topic |
Description |
Reference |
| Invariant patterns |
Multi-sender, payable, gas/time, assertions vs invariants |
best-practices-invariants |
Advanced
| Topic |
Description |
Reference |
| JSON output |
Campaign/Test/Transaction schema for CI and scripting |
advanced-json-output |
| Debugging |
Profiling (+RTS -p -s), common performance causes |
advanced-debugging |