# deployoor Deploy EVM contracts from TypeScript with your own viem wallet. A deploy is an artifact plus a client, so scripts, tests, and your app share typed contract objects. Hardhat and Foundry. ## When to use deployoor deployoor deploys EVM smart contracts from TypeScript with a viem wallet client you supply, records every deploy as plain JSON under `deployments/-/`, and hands back a typed viem contract object. It is an MIT-licensed npm package: no account, no API key, no hosted service. Reach for it to: - deploy a contract from a TypeScript script, with no framework runtime booted - deploy the same contracts to several chains in one loop over viem clients - make a deploy step idempotent, reusing a record unless the bytecode, constructor args or linked libraries changed - sign with a wallet other than a raw private key: an encrypted keystore, cloud KMS, a Ledger, Privy, Turnkey, Coinbase CDP, Openfort, or a JSON-RPC account - give an app typed contract access with no copied addresses or ABIs, through `@deployoor/wagmi` - run integration tests over the real deploy path, in memory, through `@deployoor/testing` - verify already-deployed contracts from committed records, with no recompile Look elsewhere to compile or test Solidity (that stays with Hardhat or Foundry), to run a local chain for a person to use, to orchestrate proxy upgrades, or if the project has no TypeScript. How an agent should drive it: `pnpm add -D deployoor viem`, compile, then `npx deployoor generate` to write `./deployers/`, then call the generated `getOrDeploy({ walletClient, publicClient, args })` from an ordinary Node script. Full instructions, including the API surface and the mistakes that cost the most time, are at https://deployoor.dev/AGENTS.md. ## Documentation - [Introduction](/introduction) - [Comparisons](/comparison/) - [Hardhat](/comparison/hardhat) - [Hardhat Ignition](/comparison/hardhat-ignition) - [hardhat-deploy](/comparison/hardhat-deploy) - [Installation](/getting-started/installation) - [Quickstart](/getting-started/quickstart) - [Deployment records](/concepts/deployment-records) - [Deployment stores](/concepts/deployment-stores) - [Idempotency & redeployment](/concepts/idempotency) - [Version control](/concepts/version-control) - [Recipes](/recipes/) - [Privy](/recipes/privy) - [Coinbase CDP](/recipes/coinbase-cdp) - [Turnkey](/recipes/turnkey) - [Openfort](/recipes/openfort) - [Deploy scripts](/guides/deploy) - [Configuration](/guides/configuration) - [Testing](/guides/testing) - [Consume in your app](/guides/consumption) - [Verify contracts](/guides/verify) - [Plugins](/guides/plugins) - [Hardhat](/guides/hardhat) - [Foundry](/guides/foundry) - [Upgrading to 0.7](/guides/upgrading) - [Migrate from Hardhat scripts](/migrate/hardhat) - [Migrate from Hardhat Ignition](/migrate/hardhat-ignition) - [Migrate from hardhat-deploy](/migrate/hardhat-deploy) - [CLI](/reference/cli) - [Packages](/packages) - [deployoor: deploy EVM contracts from TypeScript with viem](/index) - [About deployoor](/about): Who publishes deployoor, what it is, how it is licensed, and how it is maintained. - [Changelog](/changelog): Release history for deployoor and its ecosystem packages. - [Contact](/contact): Where to report a bug, ask a question, or reach the maintainer of deployoor. - [Getting started](/getting-started/) - [Privacy](/privacy): What this site and the deployoor CLI do with data. No accounts, no analytics, no telemetry. ## Developer resources - [AGENTS.md](https://deployoor.dev/AGENTS.md): when to use deployoor and how to add it to a project, for agents - [CLI reference](https://deployoor.dev/reference/cli): every command and flag for `init`, `generate` and `verify` - [Configuration reference](https://deployoor.dev/guides/configuration): every `deployoor.config.ts` option and its default - [Deployment record format](https://deployoor.dev/concepts/deployment-records): the JSON contract between deploying and consuming - [Plugin hooks](https://deployoor.dev/guides/plugins): the deploy lifecycle and the `deployoor/plugin` SDK - [Packages](https://deployoor.dev/packages): every published package and what it is for - [llms-full.txt](https://deployoor.dev/llms-full.txt): the whole documentation as one Markdown file - [Any page as Markdown](https://deployoor.dev/reference/cli.md): append `.md` to a path, or send `Accept: text/markdown` - [Source on GitHub](https://github.com/raycashxyz/deployoor): monorepo holding the engine, the plugins and these docs - [deployoor on npm](https://www.npmjs.com/package/deployoor): releases, versions and install size