OpenViSTAI · Agents · Blockchain · Crypto
Menu
Developer Tools

Yools

Yools is an experimental command-line symbolic execution tool for Yul programs. It translates source into SMT constraints and queries a solver to check whether a program may reach a revert.

Independent OpenViST project profile, based on linked sources.

Yools — 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 Yools when you have Yul source and want a focused symbolic check of revert reachability, while accounting for incomplete built-in support and bounded loop analysis.

Who it is for

  • Developers working with Yul who want to examine whether a program can revert.
  • Verification researchers exploring symbolic execution and SMT encodings for calldata, memory, or storage.

Documented uses

  • Check Yul source for reachable revert states.
  • Adjust loop-unrolling bounds and choose an SMT solver for the symbolic analysis.
Before you choose

Requirements & limits

The repository describes a command-line interface and identifies the project as GPL-3.0 licensed.

  • Yools analyzes Yul source rather than EVM bytecode or Solidity source.
  • The loop-unrolling limit is configurable and defaults to 10.
  • The README lists cvc5 as the default SMT solver.
  • Not all EVM built-in functions are supported, and bounded loop analysis has stated soundness limitations.

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

Check a Yul file for revert reachability

Run Yools' documented symbolic analysis on a Yul source file.

Before you start

  • A Yul source file.
  • The Yools command-line tool and an SMT solver; the README lists cvc5 as the default.

Steps

  1. Pass the Yul file to the symbolic subcommand with the --input option.

  2. Optionally set the loop-unrolling limit with --loop-unroll.

  3. Optionally select an SMT solver with --solver.

Expected outcome

Yools queries an SMT solver about revert reachability and reports its analysis result.

Guide limitations

  • Yools is described as experimental, and not all EVM built-in functions are supported.
  • Bounded loop unrolling can make results unsound for behavior beyond the configured bound.
Evidence and transparency

Sources & review

Source record details
Source availability
Active
Sources checked
15 October 2026
Original website title
leonardoalt/yools · Official homepage title · retained in its source language