OpenViSTAI · Agents · Blockchain · Crypto
Menu
Developer Tools

Evmole

Evmole is an open-source library that analyzes Ethereum Virtual Machine bytecode to infer function selectors, argument types, state mutability, persistent and transient storage layouts, control flow and compiler metadata, including for unverified contracts.

Independent OpenViST project profile, based on linked sources.

Evmole — 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 Evmole when you have EVM bytecode and need inferred contract-interface or implementation details, particularly when verified source code is unavailable.

Who it is for

  • Smart-contract developers inspecting deployed contracts
  • Security and protocol researchers examining EVM bytecode
  • Developers building contract-inspection tools or agent-driven bytecode workflows

Documented uses

  • Infer callable function selectors and argument types from deployed bytecode.
  • Inspect likely persistent and transient storage layouts and control flow.
  • Extract compiler-related CBOR metadata from bytecode.
  • Add bytecode analysis to JavaScript, Rust, Python or Go applications, scripts or agent workflows.
Before you choose

Requirements & limits

The project is open source under the MIT license. The README documents JavaScript, Rust, Python and Go libraries, as well as a JSON CLI and agent integrations.

  • The library accepts bytecode as input; it does not require a verified source listing for the documented analysis.
  • Choose among JavaScript, Rust, Python and Go bindings based on the language of the integrating application.
  • Evmole reports inferred information, so results should be treated as bytecode analysis rather than source-level confirmation.
  • The repository documents selector-dispatch classification and terminal CBOR metadata extraction in addition to interface and storage analysis.

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

Analyze bytecode with the JavaScript library

Use the documented JavaScript binding to request inferred selectors, argument types and state mutability from EVM bytecode.

Before you start

  • Node.js or a supported JavaScript bundler environment listed in the README
  • The Evmole package installed with npm
  • EVM bytecode as a hex string

Steps

  1. Install the package with the command below.

    Documented command
    npm i evmole
  2. Import contractInfo from evmole in JavaScript.

  3. Pass the bytecode to contractInfo and enable the selectors, arguments and stateMutability options.

  4. Inspect the returned function details, including selector, inferred arguments and mutability where available.

Expected outcome

A contract-information result containing inferred function details for the supplied bytecode.

Guide limitations

  • The output is inferred from bytecode and is not a substitute for verified source code.
  • The documented example demonstrates selected function fields; it does not establish that every contract will yield complete interface details.
Evidence and transparency

Sources & review

Source record details
Source availability
Active
Sources checked
9 October 2026
Original website title
cdump/evmole · Official homepage title · retained in its source language