ethereum-dasm
An ethereum bytecode disassembler with static and dynamic analysis features
What it is and what it does
ethereum-dasm is a command-line tool and Python library for analyzing Ethereum smart contracts at the bytecode level. It reads EVM bytecode (either from a file, stdin, or fetched directly from a blockchain address) and produces disassembled instructions with annotations including gas costs, operand descriptions, and jump cross-references. It can also decompile bytecode to simplified pseudocode and attempt to reconstruct or look up contract ABIs.
The tool combines static analysis (control flow, basic blocks, function signatures) with optional dynamic analysis via symbolic execution (when mythril is installed). It supports multiple output modes—table format, listing-only, color output—and can query online services for function signatures and ABI data. It's designed for security researchers, auditors, and developers who need to understand or reverse-engineer compiled Ethereum contracts.
Use it for:
- Reverse-engineer a deployed smart contract to understand its logic when source code is unavailable.
- Audit bytecode for potential vulnerabilities by examining control flow and function interactions.
- Recover or reconstruct a contract's ABI from compiled bytecode for integration purposes.
- Analyze gas consumption patterns in contract bytecode to identify optimization opportunities.
- Verify that compiled bytecode matches expected behavior during security reviews.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Disassembles Ethereum EVM bytecode into assembly instructions and decompiles it to pseudocode, with static and dynamic analysis capabilities and online function signature lookup.
No. The package is abandoned (last update 2019-07-07) with no active maintenance, making it unreliable for current Ethereum work. Its dependencies and online integrations are likely outdated or broken. GPLv2 copyleft licensing also restricts use in proprietary contexts. For active bytecode analysis, use maintained alternatives.
Install
ethereum-dasm on PyPI
pip
pip install ethereum-dasmuv
uv add ethereum-dasmpoetry
poetry add ethereum-dasmInstalling ethereum-dasm
Before you install
Low install friction with a pure Python wheel and four straightforward runtime dependencies. However, the package is abandoned—last commit was 2019-07-07, over six years ago. No active maintenance means security patches and compatibility updates are unlikely.
License in practice
Licensed under GPLv2 (copyleft). Any derivative work or distribution must also be open-source under GPLv2 terms. This is a significant constraint if you need to incorporate it into proprietary or differently-licensed software.
Quickstart
pip install ethereum-dasm
python3 -m ethereum_dasm 0x12345678
# or from stdin:
echo "0x12345678" | python3 -m ethereum_dasm
The package depends on evmdasm and optional mythril for dynamic analysis; mythril has its own system dependencies. Python version support is unspecified.
Verify before relying
- Whether the package still works with current Python versions and modern Ethereum networks given its 2019 last update.
- Whether optional dependencies (mythril, abidecoder) are still maintained and compatible.
- Current reliability of the online function signature lookup service (infura.io integration).
Package facts
| License | GPLv2 (copyleft) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — evmdasm, colorama, requests, tabulate |
| Maintenance | abandoned — 2,596 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 129,721/month — #11,660 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: ethereum_dasm-0.1.5-py3-none-any.whl
Keywords: ethereum, blockchain, evm, disassembler, decompiler, pseudocode
Tags
More Security packages
Provides Python bindings to the FreeDesktop.org…
permissive · top 1,000 on PyPI
msalMSAL for Python handles OAuth2 and OpenID…
permissive · top 1,000 on PyPI
joserfcjoserfc implements JOSE standards (JWS, JWE,…
permissive · top 1,000 on PyPI
AuthlibAuthlib provides a complete implementation of…
permissive · top 1,000 on PyPI
argon2-cffi-bindingsProvides low-level CFFI bindings to the…
permissive · top 1,000 on PyPI
adalADAL for Python authenticates applications with…
permissive · top 1,000 on PyPI
evmdasmevmdasm provides a lightweight registry of…
copyleft · top 15,000 on PyPI
mythrilMythril analyzes EVM bytecode for security…
permissive · top 15,000 on PyPI
pyevmasmpyevmasm assembles and disassembles Ethereum…
permissive · top 15,000 on PyPI
py-evmPy-EVM is a Python implementation of the…
permissive · top 15,000 on PyPI
vyperVyper is a Python-like programming language for…
permissive · top 15,000 on PyPI
crytic-compileCrytic-compile abstracts smart contract…
agpl · top 15,000 on PyPI
bytecodebytecode generates and modifies Python bytecode…
permissive · top 1,000 on PyPI
angrangr is a binary analysis framework that…
permissive · top 5,000 on PyPI
decompyle3Decompyle3 translates Python bytecode back into…
copyleft · top 15,000 on PyPI
xdisDisassembles Python bytecode from any Python…
copyleft · top 15,000 on PyPI