A typesafe Ethereum Virtual Machine (EVM) toolkit written in TypeScript
npm install tevm
TypeScript programming with the full power of the Ethereum Virtual Machine

Tevm is an ethereum development toolkit that offers
- Arbitrary EVM execution and forking akin to anvil
- A powerful solidity scripting environment akin to foundry scripts
- Build tooling to create a smooth interface between your Solidity scripts and TypeScript code
``typescript
`
Tevm runs in all environments
- All modern browsers
- Node.js >=18
- Bun
Try out our online frontend example on stackblitz
Tevm scripting is a simple yet powerful way to program.
1. Write a solidity script HelloWorld.s.sol
`solidity
// SPDX-License-Identifier: MIT
pragma solidity >0.8.0;
contract HelloWorld {
function greet(string memory name) public pure returns (string memory) {
return string(abi.encodePacked("Hello ", name, "!"));
}
}
`
2. Import the solidity file into a JavaScript or TypeScript file. No need to compile it.
`typescript
import { HelloWorld } from "./HelloWorld.sol";
console.log(HelloWorld.abi);
console.log(HelloWorld.bytecode);
`
3. Initialize a Tevm memory client and execute your Script using the EthGetTransactionReceiptHandler action
`typescript
import { HelloWorld } from "./HelloWorld.sol";
import { createMemoryClient } from "tevm";
const client = createMemoryClient();
const result = await tevm.script(HelloWorld.read.greate("World"));
console.log(result.data); // Hello world!
``
This is just a small subset of what Tevm offers. See docs for more information.
Contributions are encouraged, but please open an issue before doing any major changes to make sure your change will be accepted.
See CONTRIBUTING.md for contributing information