{"repo":"crytic/echidna","free":true,"listed":false,"github":"https://github.com/crytic/echidna","clone":"git clone https://github.com/crytic/echidna.git","description":"Ethereum smart contract fuzzer","language":"Haskell","stars":3168,"topics":["evm","ethereum","smart-contracts","security","solidity","testing","fuzzer"],"license":"AGPL-3.0","category":"blockchain-web3","readme_excerpt":"Echidna: A Fast Smart Contract Fuzzer Echidna is a weird creature that eats bugs and is highly electrosensitive (with apologies to Jacob Stanley) More seriously, Echidna is a Haskell program designed for fuzzing/property-based testing of Ethereum smart contracts. It uses sophisticated grammar-based fuzzing campaigns based on a contract ABI to falsify user-defined predicates or Solidity assertions. We designed Echidna with modularity in mind, so it can be easily extended to include new mutations or test specific contracts in specific cases. Features Generates inputs tailored to your actual code Optional corpus collection, mutation and coverage guidance to find deeper bugs Powered by Slither to extract useful information before the fuzzing campaign Source code integration to identify which lines are covered after the fuzzing campaign Interactive terminal UI, text-only or JSON output Automatic test case minimization for quick triage Seamless integration into the development workflow .. and a beautiful high-resolution handcrafted logo. Usage Executing the test runner The core Echidna functionality is an executable called echidna , which takes a contract and a list of invariants (properties that should always remain true) as input. For each invariant, it generates random sequences of calls to the contract and checks if the invariant holds. If it can find some way to falsify the invariant, it prints the call sequence that does so. If it can't, you have some assurance the contract i","default_branch":null,"files":null,"tree":[],"storefront":"/r/crytic","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/crytic/echidna/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}