Practical overview
When it fits
Use the package map to assemble Ethereum execution-layer functionality from focused libraries when you need specific protocol components rather than a full client.
Who it is for
- Developers building Ethereum execution-layer software.
- Teams implementing transaction, block, state, trie or EVM functionality in Node.js or browser projects.
Documented uses
- Run signed transactions or replay and build blocks with the VM.
- Execute bytecode, custom opcodes or precompiles with the EVM package.
- Create, sign or parse transactions and work with block data.
- Build state-management, trie, proof, chain-configuration or serialization components.
Requirements & limits
The repository is public on GitHub and identifies the project as open source. Its README documents npm packages and examples.
- Choose @ethereumjs/vm for transaction, block and state workflows; choose @ethereumjs/evm for bytecode-only execution.
- The README describes Node.js and browser use; browser projects may need bundler configuration from package documentation.
- Blob transaction handling needs a separate KZG library.
- The repository lists Osaka as stable on npm and Amsterdam as in development.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Run a signed transfer in an in-memory VM
Install the documented packages and use the README example to execute a signed legacy transfer against in-memory state.
Before you start
- Node.js project using the documented npm installation command.
- Install @ethereumjs/vm, @ethereumjs/common, @ethereumjs/tx and @ethereumjs/util.
- TypeScript code following the repository’s quick-start example.
Steps
Install the four packages with the README’s npm command.
Create a Mainnet Common configuration for the selected hardfork and initialize a VM.
Create an account in the VM state manager, construct and sign a legacy transaction, then pass it to runTx.
Expected outcome
The example returns the transaction execution result, including totalGasSpent.
Guide limitations
- The example uses in-memory state and is a basic signed transfer workflow.
- Blob (EIP-4844) transactions require a separate KZG library.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 16 October 2026
- Original website title
- ethereumjs/ethereumjs-monorepo · Official homepage title · retained in its source language

