Skip to content
LogoLogo

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 generate

Get started →

Status

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.