Download Latest Version echidna-2.3.3-x86_64-windows.zip (22.3 MB)
Email in envelope

Get an email when there's a new version of Echidna

Home / v2.3.3
Name Modified Size InfoDownloads / Week
Parent folder
echidna-2.3.3-x86_64-windows.zip 2026-07-27 22.3 MB
echidna-2.3.3-aarch64-linux.tar.gz 2026-07-27 9.3 MB
echidna-2.3.3-aarch64-linux.tar.gz.sigstore.json 2026-07-27 10.9 kB
echidna-2.3.3-aarch64-macos.tar.gz 2026-07-27 31.8 MB
echidna-2.3.3-aarch64-macos.tar.gz.sigstore.json 2026-07-27 10.9 kB
echidna-2.3.3-x86_64-linux.tar.gz 2026-07-27 9.7 MB
echidna-2.3.3-x86_64-linux.tar.gz.sigstore.json 2026-07-27 10.9 kB
echidna-2.3.3-x86_64-macos.tar.gz 2026-07-27 10.7 MB
echidna-2.3.3-x86_64-macos.tar.gz.sigstore.json 2026-07-27 10.9 kB
Echidna 2.3.3 source code.tar.gz 2026-07-24 225.2 kB
Echidna 2.3.3 source code.zip 2026-07-24 317.3 kB
README.md 2026-07-24 4.4 kB
Totals: 12 Items   84.3 MB 2

What's Changed

  • A new excludeViewPure option to disable testing of view and pure functions in property mode, except those with the test prefix, in https://github.com/crytic/echidna/pull/1552 (thanks @gustavo-grieco!)
  • The reason a test failed (e.g. a revert, or a property returning false) is now reported consistently across the text, JSON and UI outputs, including when no transactions are needed to reproduce the failure, in https://github.com/crytic/echidna/pull/1572 (thanks @gustavo-grieco!)
  • Foundry reproducers are now generated for assertion failures that emit events in https://github.com/crytic/echidna/pull/1550 (thanks @gustavo-grieco!)
  • The replay corpus is now distributed evenly across all fuzz workers in https://github.com/crytic/echidna/pull/1565 (thanks @rappie!), along with a fix for a divide-by-zero when running with workers: 0 in https://github.com/crytic/echidna/pull/1583
  • A fix for a desync between the transaction sequence and the traces shown for shrunk reproducers in https://github.com/crytic/echidna/pull/1554 (thanks @rappie!)
  • Two memory leaks were fixed, one in the constants dictionary in https://github.com/crytic/echidna/pull/1577 and one in the campaign event queue in https://github.com/crytic/echidna/pull/1587
  • ANSI escape codes are now disabled when Echidna's output is not a TTY, which makes logs redirected to a file readable, in https://github.com/crytic/echidna/pull/1567 (thanks @gustavo-grieco!)
  • The UI event listener is now started before the workers, so early events are no longer missed, in https://github.com/crytic/echidna/pull/1563 (thanks @rappie!)
  • Deploying contracts to precompile addresses is now rejected with an error instead of silently misbehaving in https://github.com/crytic/echidna/pull/1585 (thanks @Ap4sh!)
  • A fix for TLS handshake failures when fetching contracts from RPC providers that use certificate compression, such as Alchemy, by bumping tls to 2.2.2 in https://github.com/crytic/echidna/pull/1581
  • A fix for libff header installation with CMake 4.3+ in https://github.com/crytic/echidna/pull/1573
  • hevm has been updated to 4ca42fd5b2dd1344b7596775fe5fe6ac2d03021f (0.58.0 plus a few fixes) in https://github.com/crytic/echidna/pull/1575 and https://github.com/crytic/echidna/pull/1580 (full changelog: https://github.com/argotorg/hevm/compare/8da7ea44ebf5524dce65b14e70cee1a4413eb6f0...4ca42fd5b2dd1344b7596775fe5fe6ac2d03021f). The changes that affect Echidna directly are:
  • Dynamic arguments in symbolic mode: functions taking bytes, string or dynamic arrays are no longer skipped by symExec and verification modes; hevm concretizes them up to a bounded length (Echidna uses 128), and reports a caveat when a counterexample could require longer inputs.
  • RPC retries with exponential backoff and a cooldown shared across workers, so transient network errors and rate limits (HTTP 429) from providers no longer abort on-chain fuzzing.
  • Support for the vm.expectRevert family of cheatcodes: expectRevert(), expectRevert(bytes), expectRevert(bytes4), the address-qualified variants, and expectPartialRevert(bytes4[,address]).
  • New assertApproxEqAbs and assertApproxEqRel cheatcodes for uint256 and int256.
  • Foundry/Hardhat console.log support: calls to the console address are intercepted and decoded in the execution traces Echidna prints, and EXTCODESIZE on the console address now returns 1 so contracts that check for code before logging are not skipped.
  • Assertion failures caused by a Panic now show their source location (file, line and code snippet) in traces.
  • Fixed the CREATE2 address computed while pranking, which made deployments under pranking cheatcodes end up at the wrong address.
  • Enum types are now parsed correctly when reading the contract ABI.
  • Cheatcode string arguments are decoded leniently instead of aborting the run on invalid UTF-8, so vm.label, vm.setEnv and vm.envString no longer crash on arbitrary byte sequences.

Full Changelog: https://github.com/crytic/echidna/compare/v2.3.2...v2.3.3

This release was partially funded by the recent donation round on Giveth for Echidna; work like this is possible because of everyone who contributed.

Source: README.md, updated 2026-07-24