# heimdall-rs

> Rust toolkit by Jonathan Becker for analyzing EVM smart-contract bytecode, particularly of contracts without verified source. Its CLI disassembles bytecode, builds control-flow graphs, decompiles it through per-function symbolic execution and heuristic post-processing passes into an ABI plus beta Solidity or Yul source, decodes raw calldata, dumps the storage slots a contract accesses over a block range, and inspects transactions by decoding their calldata, traces and logs. Targets can be raw bytecode, files, contract addresses or ENS names; function selectors are resolved against the OpenChain signature database unless that step is skipped.

- Type: Tool
- Targets: Binary
- Category: Native analysis tools
- Relationship: Foundation tool
- Sources reviewed: 2026-10-19
- Added to the catalog: 2026-10-31
- Original resource: <https://github.com/Jon-Becker/heimdall-rs>
- Primary source: <https://github.com/Jon-Becker/heimdall-rs/blob/9de15de029ac1128c7c7566672d472f104a9747a/README.md>
- Catalog page: <https://awesomerea.org/resources/heimdall-rs/>
- Record JSON: <https://awesomerea.org/resources/heimdall-rs/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/heimdall-rs/index.md)

## Requirements & limits

- Release at review: 0.9.3, published 2026-04-30, with Linux and macOS binaries for amd64 and arm64 and no Windows build; the reviewed main commit is 38 commits ahead, and both that tag and main still declare workspace version 0.9.2. Install through the bifrost installer, which builds from source with Cargo or, with -B, fetches a precompiled binary; the repository pins Rust 1.91.0.
- Contract addresses, ENS names, storage dumps and transaction inspection need an Ethereum JSON-RPC endpoint, given as a URL or a MESC reference; an optional Etherscan API key lets decompilation recover creation bytecode of self-destructed contracts. Optional LLM post-processing sends the decompiled Solidity to OpenRouter (default model openai/gpt-4o-mini) and needs an OpenRouter API key.
- Decompiled Solidity and Yul output is marked beta and is a heuristic reconstruction to be checked, not original source. The README lists more than 20 papers and theses that cite Heimdall.
- MIT license.

## Primary sources

1. <https://github.com/Jon-Becker/heimdall-rs/blob/9de15de029ac1128c7c7566672d472f104a9747a/README.md>
2. <https://github.com/Jon-Becker/heimdall-rs/blob/9de15de029ac1128c7c7566672d472f104a9747a/README.md#L9-L45>
3. <https://github.com/Jon-Becker/heimdall-rs/blob/9de15de029ac1128c7c7566672d472f104a9747a/README.md#L67-L95>
4. <https://github.com/Jon-Becker/heimdall-rs/blob/9de15de029ac1128c7c7566672d472f104a9747a/crates/cli/src/args.rs#L31-L62>
5. <https://github.com/Jon-Becker/heimdall-rs/blob/9de15de029ac1128c7c7566672d472f104a9747a/crates/decompile/src/interfaces/args.rs#L15-L82>
6. <https://github.com/Jon-Becker/heimdall-rs/blob/9de15de029ac1128c7c7566672d472f104a9747a/crates/common/src/resources/openrouter.rs>
7. <https://github.com/Jon-Becker/heimdall-rs/blob/9de15de029ac1128c7c7566672d472f104a9747a/crates/common/src/ether/signatures.rs>
8. <https://github.com/Jon-Becker/heimdall-rs/blob/9de15de029ac1128c7c7566672d472f104a9747a/bifrost/bifrost>
9. <https://github.com/Jon-Becker/heimdall-rs/blob/9de15de029ac1128c7c7566672d472f104a9747a/Cargo.toml>
10. <https://github.com/Jon-Becker/heimdall-rs/blob/9de15de029ac1128c7c7566672d472f104a9747a/rust-toolchain.toml>
11. <https://github.com/Jon-Becker/heimdall-rs/blob/9de15de029ac1128c7c7566672d472f104a9747a/LICENSE>
12. <https://github.com/Jon-Becker/heimdall-rs/releases/tag/0.9.3>

## More in Native binaries

- [PE-bear](https://awesomerea.org/resources/pe-bear/index.md) · Tool
- [PE-sieve](https://awesomerea.org/resources/pe-sieve/index.md) · Tool
- [oletools](https://awesomerea.org/resources/oletools/index.md) · Tool
- [MonkeyDev](https://awesomerea.org/resources/monkeydev/index.md) · Tool
- [Hollows Hunter](https://awesomerea.org/resources/hollows-hunter/index.md) · Tool
- [restore-symbol](https://awesomerea.org/resources/restore-symbol/index.md) · Tool

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
