Repolode
crytic

crytic/echidna

Echidna é um fuzzer baseado em Haskell que testa smart contracts Ethereum tentando sequências de chamadas para violar invariantes definidos pelo usuário ou assertions de Solidity.

Estrelas
3,191
Forks
437
Issues abertas
107
Último commit
há 23 horas

O que é?

Echidna é uma ferramenta de fuzzing e testes baseados em propriedades para smart contracts Ethereum. Ela gera sequências de chamadas com base na gramática do ABI do contrato e verifica invariantes definidos pelo usuário — funções prefixadas com echidna_ que retornam um bool — ou instruções assert() de Solidity. Quando encontra uma sequência que viola uma propriedade, ela a reporta e pode minimizar o caso de teste para facilitar a triagem.

A ferramenta oferece vários modos de teste, incluindo testes de propriedades, assertions, testes no estilo Foundry, verificação no estilo formal de transações individuais, detecção de overflow de inteiros, otimização de valores de retorno int256 e exploração apenas de cobertura. Ela funciona com contratos compilados pelo Foundry, Hardhat e Truffle por meio do crytic-compile e usa o Slither para extrair informações antes do fuzzing. Os resultados podem ser exibidos em uma interface interativa no terminal, em texto simples ou em JSON. Também é possível salvar um corpus que maximize a cobertura e adicionar anotações ao código-fonte.

Recursos principais

  • 01Gera sequências de chamadas adaptadas ao ABI e ao código-fonte do contrato.
  • 02Testa invariantes booleanos com o prefixo echidna_ e assertions de Solidity.
  • 03Minimiza casos de teste que falham para agilizar a triagem.
  • 04Reporta a cobertura de linhas com anotações no código-fonte.
  • 05Oferece saída em texto, JSON ou em uma interface interativa no terminal.
  • 06Integra-se a projetos Foundry, Hardhat e Truffle por meio do crytic-compile.

Casos de uso

  • Encontrar violações de invariantes em contratos de protocolos DeFi antes da implantação.
  • Verificar se contratos de tokens têm bugs de saldo ou overflow.
  • Executar testes de propriedades de smart contracts em um workflow do GitHub Actions.
  • Reproduzir exemplos de pesquisas sobre fuzzing em contratos Solidity.

Início rápido

  1. 1

    Instalar o Echidna com Homebrew (macOS / Linux)

    brew install echidna
  2. 2

    Executar o Echidna no contrato de exemplo do README

    echidna tests/solidity/basic/flags.sol

Antes de usar

  • O suporte a Vyper é limitado.
  • O suporte a algumas bibliotecas para testes é limitado.
  • A instalação do Echidna requer o Slither, uma dependência adicional que precisa ser configurada.
  • Atualmente, as imagens de contêiner só podem ser compiladas em sistemas x86.

Em coleções

Tópicos

Perguntas frequentes

O que é echidna?
Echidna é um fuzzer baseado em Haskell que testa smart contracts Ethereum tentando sequências de chamadas para violar invariantes definidos pelo usuário ou assertions de Solidity. Echidna é uma ferramenta de fuzzing e testes baseados em propriedades para smart contracts Ethereum. Ela gera sequências de chamadas com base na gramática do ABI do contrato e verifica invariantes definidos pelo usuário — funções prefixadas com echidna_ que retornam um bool — ou instruções assert() de Solidity. Quando encontra uma sequência que viola uma propriedade, ela a reporta e pode minimizar o caso de teste para facilitar a triagem.
echidna é gratuito? Qual é a licença?
echidna é open source sob a licença AGPL-3.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
echidna ainda é mantido?
Manutenção ativa. O último commit de echidna foi em 6 de nov. de 2026.
Para que posso usar echidna?
Encontrar violações de invariantes em contratos de protocolos DeFi antes da implantação. Verificar se contratos de tokens têm bugs de saldo ou overflow. Executar testes de propriedades de smart contracts em um workflow do GitHub Actions. Reproduzir exemplos de pesquisas sobre fuzzing em contratos Solidity.
Como instalar echidna?
Instalar o Echidna com Homebrew (macOS / Linux): brew install echidna Executar o Echidna no contrato de exemplo do README: echidna tests/solidity/basic/flags.sol
Onde consigo echidna?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/crytic/echidna

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados