mud deploy
This command deploys a MUD app to a blockchain.
Using the command
Before you run mud deploy you need to specify the private key of the deploying account.
There are several ways to do this:
-
Export an environment variable.
export PRIVATE_KEY=0x<key goes here> -
Edit
.envto specify thePRIVATE_KEYvalue.# This .env file is for demonstration purposes only. # # This should usually be excluded via .gitignore and the env vars attached to # your deployment enviroment, but we're including this here for ease of local # development. Please do not commit changes to this file! # # Anvil default private key: PRIVATE_KEY=0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d
You also need to specify a URL to the blockchain. Again, there are several ways to do this:
- Use the
--rpc <url>command line parameter. - Specify the URL as the
eth_rpc_urlvalue in a profile infoundry.toml(opens in a new tab). If the profile isn't the default, use--profile <profile name>.
These are the command line options you can specify on mud deploy:
| Option | Meaning | Type | Default value |
|---|---|---|---|
--version | Show version number | boolean | false |
--configPath | Path to the config file | string | mud.config.ts |
--printConfig | Print the resolved config | boolean | false |
| `--saveDeployment | Save the deployment info to a file | boolean | true |
--profile | The foundry profile to use | string | local |
--rpc1 | The RPC URL to use | string | RPC url from foundry.toml |
--worldAddress | Deploy to an existing World at the given address | string | Empty, deploy new World |
--srcDir | Source directory | string | Foundry src directory |
--skipBuild | Skip rebuilding the contracts before deploying | boolean | false |
--alwaysRunPostDeploy | Run PostDeploy.s.sol after each deploy | boolean | false (run the script only when deploying a new World) |
--help | Show help | boolean | false |
(1) The hostname localhost may not work. If that is the case, use 127.0.0.1 instead.
Examples
New World
To create a new World you can use this command line:
pnpm mud deploy --rpc <url>This command also writes the World's address to worlds.json.
Upgrading a World
To upgrade a World (add or modify Systems, tables, etc.) you can use this command line:
pnpm mud deploy --rpc <url> --worldAddress <address>Debugging
To generate debug messages, use this command:
export DEBUG=mud:cli:deploy