deployoor
Deploy EVM contracts once. Use them everywhere as typed viem objects.
deployoor is a viem-first deployment tool for Hardhat and Foundry projects. It generates typed getOrDeploy<Name> functions from your compiled artifacts, deploys idempotently, and records every deployment to a plain JSON deployments/ folder — your committed source of truth for addresses, ABIs, chains, and compiler metadata.
The problem
Deploying contracts is solved. Using them from your app is where it falls apart:
- Addresses and ABIs get copy-pasted and go stale
- Provider wiring is repeated on every network
- There is no single source of truth for what is deployed where
- Deploy scripts are not idempotent — re-running redeploys or throws
- Tools couple your app to themselves
The fix
artifacts (Hardhat or Foundry)
│ deployoor generate + your deploy script
▼
deployments/<chainId>-<network>/<Contract>.json
│ viem, or @deployoor/wagmi + @wagmi/cli
▼
typed contract access in your app
The deployments/ folder is plain JSON — portable, greppable, committed to git, readable by any language. Your app does not need deployoor at runtime.
Quick install
pnpm add -D deployoor viem
npx deployoor init
forge build # or: npx hardhat compile
npx deployoor generateStatus
Early and pre-1.0. Foundry and Hardhat v2 are supported today. Hardhat v3 is a priority. Minor releases may include breaking API changes until 1.0.