Ethereum Virtual Machine implementation in TypeScript using Effect, aimed at debuggers, tracers, profilers, and tests that need full visibility into execution.
npm add @evm-effect/evm effect @effect/platform @effect/platform-bunAlign effect and @effect/platform versions with your application (this repo’s workspace catalog uses compatible ^3.x / ^0.9x ranges).
- End-to-end example (simple ETH transfer, fork layers, signing): see the repository root README.
- Solidity compilation (Node or Next.js worker): use
@evm-effect/solcalongside this package when you need to compile contracts.
The main export is the package root:
import { /* ... */ } from "@evm-effect/evm";Additional subpaths are published for lower-level tooling:
| Subpath | Use |
|---|---|
@evm-effect/evm |
Public API (interpreter, block processing, state, forks, etc.) |
@evm-effect/evm/vm/interpreter |
Interpreter-focused APIs |
@evm-effect/evm/vm/runtime |
Runtime helpers |
@evm-effect/evm/vm/StorageKey |
Storage key types |
MIT