Echidna is a Haskell program designed for fuzzing/property-based testing of Ethereum smart contracts. It uses sophisticated grammar based fuzzing campaigns, based on an ABI contract, to falsify user defined predicates or Solidity statements. Echidna was designed with modularity in the mind. It can be easily expanded to include new mutations, or test specific contracts for specific cases. It generates inputs that are tailored to your code. Use optional corpus collection, mutation and guidance to find deeper bugs. Powered by Slither, to extract useful information prior to the fuzzing campaigns. Source code integration for identifying which lines have been covered after the fuzzing campaign. Interactive terminal UI with text-only output or JSON. Automatic test case minimization to speed up triage. Integration into the development workflow is seamless. Reporting of maximum gas usage during the fuzzing campaign. Support for the complex contract initialization process with Etheno, Truffle.