Toolkit em Rust para desenvolver smart contracts na Ethereum, com Forge, Cast, Anvil e Chisel para criar, testar e interagir com redes EVM.
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
Instalar o Echidna com Homebrew (macOS / Linux)
brew install echidna - 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
Ambiente de desenvolvimento Ethereum para compilar, implantar, testar e depurar smart contracts e dapps.
Implementação em Go da camada de execução do Ethereum, que funciona como nó full ou archive e oferece acesso via JSON-RPC e ferramentas para desenvolvedores.
Biblioteca de testes baseados em propriedades para Python que gera entradas de teste automaticamente e reduz falhas a exemplos mínimos.
Solidity é uma linguagem de programação estaticamente tipada e orientada a contratos para criar smart contracts na plataforma Ethereum.
A segunda edição de "Mastering Ethereum", um livro sobre desenvolvimento na Ethereum, smart contracts e a tecnologia por trás da rede.