Skip to content
LogoLogo

MUD

Source: apps/mud · Package: @tevm/example-mud

A MUD v2 application — the autonomous-worlds framework built on Foundry. Unlike the other apps, this one is itself a small monorepo: apps/mud/packages/contracts (the MUD world) and apps/mud/packages/client (the React front end), both registered as pnpm workspace packages.

Requirements

Foundry is mandatory here; MUD's toolchain shells out to forge and anvil.

pnpm --filter @tevm/example-mud foundry:up   # installs/updates Foundry

Run it

pnpm install
pnpm --filter @tevm/example-mud dev   # mprocs: anvil + contracts watcher + client

mprocs (configured in apps/mud/mprocs.yaml) runs the three processes in one terminal. To run them separately:

pnpm --filter @tevm/example-mud dev:contracts
pnpm --filter @tevm/example-mud dev:client

Build and check everything:

pnpm --filter @tevm/example-mud build
pnpm --filter @tevm/example-mud test
pnpm --filter @tevm/example-mud typecheck

Updating MUD

The MUD packages are pinned (2.2.23 across @latticexyz/cli, common, explorer, and store-indexer) because MUD expects every @latticexyz/* package to be on the same version. Do not bump them individually — use MUD's own tool, which rewrites all of them together:

pnpm --filter @tevm/example-mud mud:up   # mud set-version --tag main && pnpm install

Why this example exists

MUD is the heaviest realistic consumer of a local EVM: a world contract, a store indexer, a block explorer, and a client that all assume a chain is available. If a Tevm release breaks anything in that chain of tools, this app fails loudly, which is exactly what the integration smoke test is for.