Introduction
Recon is a team of invariant testing engineers and security researchers that provide invariant testing as a service while also developing tools and educational content to make it easier for anyone to test invariants on their smart contracts.
Recon Pro is a tool for automatically scaffolding and running invariant testing in the cloud.
Navigating the Book
Writing Invariant Tests
If you're new to invariant testing with fuzzing, use the Learn Invariant Testing section to learn the background info you'll need to get started.
You can then follow along with the Example Project to see how to set up a project using the Chimera Framework and Create Chimera App template.
Once you've gotten the hang of writing invariants and are using them in real projects, check out the Advanced Fuzzing Tips section for best practices we've developed after using our Chimera framework for over a year on dozens of engagements.
Building Handlers
Learn how to use the Recon UI to add a test harness to your Foundry project.
Running Jobs
Learn how to offload a fuzzing job using the Recon cloud runner.
Using Recipes
Learn how to reuse fuzzer configurations when running jobs on the Recon cloud runner using recipes.
Adding Alerts
Learn how to add alerts for jobs run on the Recon cloud runner that can notify you of broken properties via Telegram or webhook.
Dynamic Replacement
You can test your existing invariant suite with different setup configurations without having to modify the existing setup using dynamic replacement.
Governance Fuzzing
Simulate on-chain changes that modify the system state (function calls) or system configuration (governance function calls) in a forked testing environment so you can preview changes and their side effects before they happen on-chain using governance fuzzing.
Useful Tips
Learn how to make the most of Recon's features so that you can fuzz more effectively.
Recon Extension
The Visual Studio Code extension that combines our most useful fuzzing tools into one so you can get to fuzzing faster. Learn how to use it here.
Recon Tools
Recon's free tools can help you turn fuzzer logs into Foundry reproducers (Echidna/Medusa).
Our bytecode tools can help you compare the bytecode of two different contracts and generate an interface for a given contract's bytecode.
Open Source Contributions
Recon has created a number of open source tools to make invariant testing easier. These can be found in the OSS Repos section.
OpSec
Learn about best practices for operational security for web3 teams and the services that Recon provides to help projects with this.
Glossary
See the glossary for terminology used throughout the book.