Practical overview
When it fits
Use it when building a programmatic workflow for inspecting Ethereum bytecode or transaction input, especially when opcode details, likely contract signatures, metadata, or pseudocode are useful.
Who it is for
- Ethereum developers inspecting contract bytecode or transaction input in Node.js or browser-based code.
- Tool builders adding opcode, signature, metadata, or pseudocode views to their own software.
Documented uses
- Convert contract bytecode into opcodes with program counters and push data.
- Extract function and event signatures, jump destinations, and an embedded Swarm hash when present.
- Produce Solidity-like pseudocode from bytecode.
- Identify function information from transaction input.
Requirements & limits
The repository documents installation through npm and identifies the project as MIT-licensed open-source software.
- The library provides parsing and interpretation functions; its examples use Web3 to obtain contract code or transaction data.
- Decompilation returns Solidity-like pseudocode, not original Solidity source.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Inspect an Ethereum contract’s bytecode and decompile it in Node.js
Retrieve a contract’s bytecode, then display its function and event signatures and Solidity-like pseudocode.
Before you start
- Node.js
- The
evmandweb3packages - An Ethereum JSON-RPC endpoint accessible through the Web3 HTTP provider
Steps
Install the EVM package with the command below.
npm i evmCreate a Web3 HTTP provider and use
web3.eth.getCode(contractAddress)to retrieve the contract bytecode.Construct an
EVMinstance with the returned bytecode.Call
getFunctions(),getEvents(), anddecompile()on the instance to inspect and display the results.
Expected outcome
The example prints parsed function and event signatures and a Solidity-like pseudocode decompilation of the contract bytecode.
Guide limitations
- Function and event information is parsed from signatures in bytecode; the documentation does not establish that it recovers complete source code.
- The result depends on successfully retrieving bytecode from the configured Ethereum provider.
Identify a function from Ethereum transaction input in Node.js
Retrieve transaction input data and use the library to identify its associated function.
Before you start
- Node.js
- The
evmandweb3packages - An Ethereum JSON-RPC endpoint accessible through the Web3 HTTP provider
- A transaction hash
Steps
Install the EVM package with the command below.
npm i evmCreate a Web3 HTTP provider and retrieve the transaction with
web3.eth.getTransaction(transactionHash).Create a
Transactioninstance and pass the retrievedinputvalue tosetInput().Call
getFunction()and display the returned result.
Expected outcome
The example prints the function associated with the transaction input.
Guide limitations
- The example relies on retrieving transaction data from the configured Ethereum provider.
- The documentation does not describe how function identification behaves when input data cannot be parsed.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 15 October 2026
- Original website title
- MrLuit/evm · Official homepage title · retained in its source language

