Brownie Guide: Installation & Usage

Brownie is a Python framework for Ethereum smart contract testing, interaction and deployment.

  • Testing: Unit test your project with pytest, and evaluate test coverage through stack trace analysis. We make no promises.
  • Debugging: Get detailed information when a transaction reverts, to help you locate and solve the issue quickly.
  • Interaction: Write scripts or use the console to interact with your contracts on the main-net, or for quick testing in a local environment.
  • Deployment: Automate the deployment of many contracts onto the blockchain, and any transactions needed to initialize or integrate the contracts.

Scanning for Security Vulnerabilities

To prevent vulnerabilities from being introduced to the code base, Brownie includes a plugin that integrates automated security scans using the MythX analysis API. Simply run brownie analyze on your compiled project directory. This will send the compiled build artifacts to MythX for analysis. By default no login is required and the analysis is going to be executed as a trial user. To access more vulnerability information, register for free on the MythX website and pass your login data via environment variables or command line arguments.

Once the analysis is done, the vulnerabilities are stored in the reports/ directory. With brownie analyze --gui the GUI can be started automatically once the analysis has finished.

Security Report GUI


Head to the Brownie documentation to get more information on how to use it in your smart contract development workflow!