OpenViSTAI · Agents · Blockchain · Crypto
Menu
Developer Tools

Greed

Greed is a Python-based symbolic execution engine for EVM smart-contract binaries. It takes contract source or bytecode after Gigahorse preprocessing, parses the resulting representation, and explores execution states through a command-line interface or Python API.

Independent OpenViST project profile, based on linked sources.

Greed — OpenViST project profile in Developer Tools.
OpenViST project illustration. See the linked sources for product details.
Understand the project

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.
Before you choose

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.

Source-based practical guide

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

  1. Create and enter a new working directory for the analysis; the README warns that analysis files pollute the current directory.

  2. 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.

  3. 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.
Evidence and transparency

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