awesome-advanced-smart-contracts-testing-and-verification
  
  
    A curated collection of tools, frameworks, and methodologies for testing and verifying Solidity smart contracts. 
    https://github.com/gianfrancobazzani/awesome-advanced-smart-contracts-testing-and-verification
  
        Last synced: 1 day ago 
        JSON representation
    
- 
            
Branching Tree Technique
 - 
            
Tools
- **Medusa | Property-based fuzzer based on Echidna written in go**
 - **ItyFuzz | EVM and MoveVM hybrid fuzzer that combines symbolic execution and fuzzing**
 - **Fuzz-utils | Tool for generating Foundry unit tests from smart contract fuzzer failed properties**
 - **Maat | Dynamic Symbolic Execution and Binary Analysis framework**
 - **Optik | Echidna + Maat coupling for coverage analysis driven Fuzzing**
 - **Etheno | JSON RPC multiplexer, analysis tool wrapper, test integration tool**
 - **Certora Prover | Formal verification Tool**
 - **Halmos | Symbolic testing tool for EVM smart contracts**
 - **Simbolik | Solidity smart contract symbolic debugger**
 - **Kontrol | Formal verification with KEVM and Foundry**
 - **Dafny-EVM | functional specification of the Ethereum Virtual Machine in Dafny**
 - **Pyrometer | symbolic execution, abstract interpretation, and static analysis**
 - **Gambit | Solidity mutation system**
 - **Vertigo-rs | Ethereum smart contract mutation testing framework**
 - **Foundry | Ethereum development framework written in Rust**
 - **Bulloak | Solidity test generator based on the Branching Tree Technique**
 - **Medusa | Property-based fuzzer based on Echidna written in go**
 - **ItyFuzz | EVM and MoveVM hybrid fuzzer that combines symbolic execution and fuzzing**
 - **Foundry | Ethereum development framework written in Rust**
 - **Fuzz-utils | Tool for generating Foundry unit tests from smart contract fuzzer failed properties**
 - **Maat | Dynamic Symbolic Execution and Binary Analysis framework**
 - **Optik | Echidna + Maat coupling for coverage analysis driven Fuzzing**
 - **Etheno | JSON RPC multiplexer, analysis tool wrapper, test integration tool**
 - **Certora Prover | Formal verification Tool**
 - **Halmos | Symbolic testing tool for EVM smart contracts**
 - **Simbolik | Solidity smart contract symbolic debugger**
 - **Kontrol | Formal verification with KEVM and Foundry**
 - **Dafny-EVM | functional specification of the Ethereum Virtual Machine in Dafny**
 - **Pyrometer | symbolic execution, abstract interpretation, and static analysis**
 - **Gambit | Solidity mutation system**
 - **Vertigo-rs | Ethereum smart contract mutation testing framework**
 - **Bulloak | Solidity test generator based on the Branching Tree Technique**
 - **Echinda | Ethereum smart contract Property-based fuzzer**
 
 - 
            
Fuzzing
- 
                    
                    
- **@dacian Exploiting Precision Loss via Fuzz Testing**
 - **Fuzzing Labs @Pat_Ventuzelo ETHCC5 Fuzzing talk**
 - **Trail of Bits Fuzzing Workshop**
 - **@vn_martinez\_ Mastering Fuzzing** - fuzzing))
 - **Foundry Book Fuzz Testing**
 - **@paco0x Kyber Network exploit reproduction with Fuzzing**
 - **Fuzzing Labs @Pat_Ventuzelo ETHCC5 Fuzzing talk**
 - **@vn_martinez\_ Mastering Fuzzing** - fuzzing))
 - **@dacian Exploiting Precision Loss via Fuzz Testing**
 - **Foundry Book Fuzz Testing**
 - **@paco0x Kyber Network exploit reproduction with Fuzzing**
 
 - 
                    
Property-based Fuzz Testing
- **Trail of Bits pre-defined invariants**
 - **Trail of Bits Echidna Tutorials**
 - **Gustavo Grieco - Spearbit: Echidna Workshop**
 - **@agfviggiano Advanced Fuzzing Techniques: An eBTC Case Study**
 - **@agfviggiano OpenSense Invariant Testing Workshop**
 - **@agfviggiano How to How to write (good) invariants?**
 - **RareSkills invariant testing in foundry**
 - **@horsefacts Invariant Testing WETH With Foundry**
 - **Patrick Collins Fuzz | Invariant Tests**
 - **Hybrid fuzzing: Sharpening the spikes of Echidna**
 - **Foundry Book Invariant Testing**
 - **Trail of Bits pre-defined invariants**
 - **Trail of Bits Echidna Tutorials**
 - **Gustavo Grieco - Spearbit: Echidna Workshop**
 - **@agfviggiano OpenSense Invariant Testing Workshop**
 - **@agfviggiano How to How to write (good) invariants?**
 - **RareSkills invariant testing in foundry**
 - **@horsefacts Invariant Testing WETH With Foundry**
 - **Patrick Collins Fuzz | Invariant Tests**
 - **Hybrid fuzzing: Sharpening the spikes of Echidna**
 - **Foundry Book Invariant Testing**
 - **Perimetersec Public Fuzzing Campaigns List**
 - **Public Use of Echidna**
 - **Perimetersec Public Fuzzing Campaigns List**
 - **Public Use of Echidna**
 - **@agfviggiano How to How to write (good) invariants?**
 
 - 
                    
Differential Fuzz Testing
- **@annascarrol Solidity Summit 2023 - Differential Testing with Foundry by Anna Carroll** - XsjA&list=PLX8x7Zj6VeznJuVkZtRyKwseJdrr4mNsE&index=13))
 - **Differential Test | Testing with Foundry**
 - **Foundry Book differential testing**
 - **Seaport | Discussion #809 Understanding the "DifferentialTest" test contract**
 - **Murky Merkle Tree DifferentialTests.t.sol**
 - **EnbangWu Differential Fuzzing of solidity Fixed-point libraries**
 - **Foundry Book differential testing**
 - **Seaport | Discussion #809 Understanding the "DifferentialTest" test contract**
 - **Murky Merkle Tree DifferentialTests.t.sol**
 - **EnbangWu Differential Fuzzing of solidity Fixed-point libraries**
 - **@annascarrol Solidity Summit 2023 - Differential Testing with Foundry by Anna Carroll** - XsjA&list=PLX8x7Zj6VeznJuVkZtRyKwseJdrr4mNsE&index=13))
 - **Differential Test | Testing with Foundry**
 - **@annascarrol Solidity Summit 2023 - Differential Testing with Foundry by Anna Carroll** - XsjA&list=PLX8x7Zj6VeznJuVkZtRyKwseJdrr4mNsE&index=13))
 
 
 - 
                    
                    
 - 
            
Formal Verification
- 
                    
Differential Fuzz Testing
- **0xkarmacoma Beyond Fuzzing: Symbolic Testing in Practice Solidity Summit 2023**
 - **WilfredTA formal-methods-curriculum**
 - **Everything You Wanted to Know About Symbolic Execution for Ethereum Smart Contracts**
 - **The Easy Way To Quit (Concrete) Testing**
 - **runtime verification The Symbolic Solidity Debugger TrustX 2023**
 - **jellopaper.org KEVM: Semantics of EVM in K**
 - **Using Halmos to Formally Verify Solady's FixedPointMathLib**
 - **Certora prover documentation**
 - **Certora ERC4626 TrustX 2023 workshop**
 - **Certora Formal Verification of Openzeppelin contracts**
 - **Using Halmos to Formally Verify Solady's FixedPointMathLib**
 - **Certora prover documentation**
 - **Certora ERC4626 TrustX 2023 workshop**
 - **Certora Formal Verification of Openzeppelin contracts**
 - **WilfredTA formal-methods-curriculum**
 - **Everything You Wanted to Know About Symbolic Execution for Ethereum Smart Contracts**
 - **The Easy Way To Quit (Concrete) Testing**
 - **0xkarmacoma Beyond Fuzzing: Symbolic Testing in Practice Solidity Summit 2023**
 - **runtime verification The Symbolic Solidity Debugger TrustX 2023**
 - **jellopaper.org KEVM: Semantics of EVM in K**
 
 
 - 
                    
 - 
            
Mutation Testing
- 
                    
Differential Fuzz Testing
 
 - 
                    
 
            Sub Categories