Practical overview
When it fits
Use Greed when you have Solidity source or EVM bytecode to preprocess with Gigahorse and want to explore symbolic execution states in a local command-line or Python workflow.
Who it is for
- Smart-contract developers exploring contract execution paths.
- Security researchers investigating EVM contract behavior.
Documented uses
- Preprocess Solidity source or EVM bytecode for symbolic analysis.
- Explore contract execution states from a terminal or Python project.
- Inspect symbolic transaction context, including storage, memory and registers.
Requirements & limits
- Requires Gigahorse preprocessing before analysis; source and bytecode have separate documented scripts.
- The README lists Ubuntu 20.04+ and Python 3.8+ and says setup configures Gigahorse and Yices.
- Run each analysis in a new directory because the README warns that analysis files pollute the current working directory.
- Offers both Python Project and CLI usage paths.
- Repository metadata identifies the license as MIT.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Prepare a contract for Greed analysis
Preprocess Solidity source or contract bytecode with Gigahorse and run the documented Greed symbolic execution workflow.
Before you start
- Ubuntu 20.04 or later and Python 3.8 or later, as listed in the README.
- Greed installed using its setup instructions, which configure Gigahorse and Yices.
- A Solidity source file or EVM bytecode file.
Steps
Create and enter a new working directory for the analysis; the README warns that analysis files pollute the current directory.
For Solidity input, place the source in the directory as contract.sol and run analyze_source.sh contract.sol. For bytecode input, place it as contract.hex and run analyze_hex.sh contract.hex.
Run greed from the command line, or use the Python Project interface with the target directory to create an entry state and simulation manager and call simgr.run().
Expected outcome
A Gigahorse-preprocessed contract representation is passed to Greed for symbolic execution through its CLI or Python interface.
Guide limitations
- The guide covers the documented setup and invocation; it does not establish successful analysis for a particular contract or environment.
- The README warns that analyses pollute the current working directory.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 9 October 2026
- Original website title
- ucsb-seclab/greed · Official homepage title · retained in its source language

