echidna-fuzzer

Solid

Property-based testing and fuzzing using Echidna for smart contracts. Includes invariant definition, corpus management, coverage analysis, and CI/CD integration for comprehensive security testing.

AI & Automation 814 stars 53 forks Updated today MIT

Install

View on GitHub

Quality Score: 95/100

Stars 20%
97
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Echidna Fuzzing Skill Property-based testing and fuzzing for smart contracts using Echidna, the premier smart contract fuzzer from Trail of Bits. ## Capabilities - **Property Tests**: Write Echidna-compatible property tests - **Configuration**: Customize fuzzing parameters - **Invariant Testing**: Define and verify contract invariants - **Coverage Analysis**: Analyze fuzzing coverage - **Corpus Management**: Handle and minimize test cases - **Extended Campaigns**: Run long fuzzing campaigns - **CI Integration**: Automate fuzzing in pipelines ## Installation ```bash # Install via docker (recommended) docker pull ghcr.io/crytic/echidna/echidna:latest # Or download binary curl -LO https://github.com/crytic/echidna/releases/latest/download/echidna-Linux chmod +x echidna-Linux mv echidna-Linux /usr/local/bin/echidna # Verify echidna --version ``` ## Property Testing ### Basic Properties ```solidity // contracts/Token.sol contract Token { mapping(address => uint256) public balances; uint256 public totalSupply; function transfer(address to, uint256 amount) external { require(balances[msg.sender] >= amount); balances[msg.sender] -= amount; balances[to] += amount; } } // contracts/TokenTest.sol contract TokenTest is Token { constructor() { balances[msg.sender] = 10000; totalSupply = 10000; } // Echidna property: name starts with echidna_ function echidna_totalSupply_constant() public view returns (b...

Details

Author
a5c-ai
Repository
a5c-ai/babysitter
Created
4 months ago
Last Updated
today
Language
JavaScript
License
MIT

Related Skills