How this repo relates to Tevm
Tevm is developed across several repositories. This page explains which one owns what, and why
tevm-examples deliberately does not live inside the monorepo any more.
The repositories
| Repository | Contains | Consumes Tevm via |
|---|---|---|
evmts/tevm-monorepo | The Tevm packages themselves: tevm, @tevm/contract, @tevm/ethers, @tevm/jsonrpc, the bundler plugins, @tevm/ts-plugin, and the core docs sites | workspace:^ links |
evmts/tevm-examples (this repo) | Every standalone example application, plus this documentation site | published npm versions |
tevm-examples was extracted from the monorepo with its Git history intact — git log on any app still shows
the commits made while it lived under tevm-monorepo/examples/.
Why it was split out
Inside the monorepo the apps resolved Tevm through workspace:* links, which meant they were testing the working
tree, not a release. Three problems followed from that:
- Packaging bugs were invisible. A missing
exportsentry, a wrongtypespath, or a file left out offilesnever breaks a workspace link — it breaks the first user who runsnpm install. - Example code drifted ahead of the docs. Snippets copied from the examples used APIs that had not shipped yet.
- Monorepo CI paid for it. Six full application builds, a Foundry install, and a MUD toolchain ran on every core package change.
After the split, each app installs tevm@^1.0.0-next.x from npm like any other consumer. That makes
pnpm install && pnpm build && pnpm test in this repo a genuine end-to-end check of a published release, across Bun,
esbuild, Vite, Next.js, SvelteKit, and MUD.
The dependency policy
- Cross-repository Tevm dependencies use caret ranges resolved from npm (
"tevm": "^1.0.0-next.149"), neverworkspace:orfile:protocols. tevmis declared as a peer dependency (">=1.0.0") where an app imports the node directly, and satisfied by a dev dependency for local validation — the same shape a real integration would have.- The one exception is
apps/mud, whose client links to its own contracts package. Both live in this repository, so that link is internal, not cross-repository.
What lives where when you have a question
| You want… | Go to |
|---|---|
| The Tevm API — clients, actions, contracts | tevm.sh |
| Tevm Node internals and architecture | node.tevm.sh |
| A working app to copy from | this site, or apps/ |
| To report a Tevm bug | tevm-monorepo issues |
| To report that an example is broken | tevm-examples issues |
Release flow
Changesets records release intent in this repo. Merges to main run the release workflow with npm provenance. The
example workspaces are private applications, so they are versioned and tagged but not published to npm unless their
private flags are deliberately removed. In practice the useful output of a release here is the CI signal, not a
package.
Docs deployment
This site is built with Vocs from docs/
and deployed to examples.tevm.sh on Vercel. Umbrella Tevm documentation remains at
tevm.sh.

