OpenViSTAI · Agents · Blockchain · Crypto
Menu
Smart Contracts

Echidna

Echidna is a Haskell-based developer CLI for grammar-based fuzzing and property-based testing of Ethereum smart contracts. It uses contract ABIs to generate testing campaigns that seek counterexamples to user-defined predicates or Solidity assertions.

Independent OpenViST project profile, based on linked sources.

Echidna — OpenViST project profile in Smart Contracts.
OpenViST project illustration. See the linked sources for product details.
Understand the project

Practical overview

When it fits

Use Echidna when example-based tests do not adequately explore stateful contract call sequences and you want fuzzing to search for counterexamples to explicit properties or assertions.

Who it is for

  • Solidity smart-contract developers
  • Security testers working with Ethereum or EVM contracts
  • Teams building automated property-testing or regression-testing workflows

Documented uses

  • Fuzz contract call sequences against Solidity invariants.
  • Detect assertion failures and integer overflows.
  • Run Foundry-style tests and stateful fuzzing campaigns.
  • Collect coverage-oriented corpora and minimize failing test cases.
  • Integrate testing for contracts built with Foundry, Hardhat or Truffle.
Before you choose

Requirements & limits

The cited evidence identifies Echidna as open source, publicly hosted on GitHub, and distributed under the AGPL-3.0 license. It is documented as a CLI tool.

  • Properties must follow the documented echidna_ naming and boolean-return conventions in property mode.
  • The tool supports several testing modes, including property, assertion, Foundry, verification, overflow, optimization and exploration.
  • Foundry, Hardhat and Truffle compilation workflows are supported through crytic-compile.
  • Coverage corpus collection requires the corpusDir configuration option.
  • Complex-contract testing can use existing network state or known-ABI contract calls when configured.

Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.

Source-based practical guide

Run a basic Solidity invariant campaign

Check a Solidity contract’s echidna_-prefixed boolean invariants and obtain a counterexample sequence when one is falsified.

Before you start

  • A Solidity contract containing zero-argument functions beginning with echidna_ that return bool.
  • The Echidna executable.
  • A contract source file such as myContract.sol.

Steps

  1. Add an invariant function, such as a balance check, to the contract.

  2. Run echidna myContract.sol.

  3. Review the reported call sequence if Echidna finds a falsifying input.

Expected outcome

Echidna reports a call sequence for a falsified invariant; if it cannot find one, the documented result is that no falsifying input was found during the campaign.

Guide limitations

  • Not finding a falsifying input does not establish that the contract is safe.
  • The documented command covers the basic property mode and does not describe installation or campaign-duration settings.
Evidence and transparency

Sources & review

Source record details
Source availability
Active
Sources checked
1 October 2026
Original website title
crytic/echidna · Official homepage title · retained in its source language