anvil

A fast local Ethereum development node

$ anvil --help
Usage: anvil [OPTIONS] [COMMAND] Commands: completions Generate shell completions script [aliases: com] generate-fig-spec Generate Fig autocompletion spec [aliases: fig] help Print this message or the help of the given subcommand(s) Options: -a, --accounts <NUM> Number of dev accounts to generate and configure [default: 10] -b, --block-time <SECONDS> Block time in seconds for interval mining [aliases: blockTime] --balance <NUM> The balance of every dev account in Ether [default: 10000] --config-out <FILE> Writes output of `anvil` as json to user-specified file --derivation-path <DERIVATION_PATH> Sets the derivation path of the child key to be derived. [default: m/44'/60'/0'/0/] --dump-state <PATH> Dump the state and block environment of chain on exit to the given file. If the value is a directory, the state will be written to `<VALUE>/state.json`. -h, --help Print help (see a summary with '-h') --hardfork <HARDFORK> The EVM hardfork to use. Choose the hardfork by name, e.g. `cancun`, `shanghai`, `paris`, `london`, etc... [default: latest] --init <PATH> Initialize the genesis block with the given `genesis.json` file --ipc [<PATH>] Launch an ipc server at the given path or default path = `/tmp/anvil.ipc` [aliases: ipcpath] -j, --threads <THREADS> Number of threads to use. Specifying 0 defaults to the number of logical cores [aliases: jobs] --load-state <PATH> Initialize the chain from a previously saved state snapshot -m, --mnemonic <MNEMONIC> BIP39 mnemonic phrase used for generating accounts. Cannot be used if `mnemonic_random` or `mnemonic_seed` are used --max-persisted-states <MAX_PERSISTED_STATES> Max number of states to persist on disk. Note that `prune_history` will overwrite `max_persisted_states` to 0. --mixed-mining [aliases: mixed-mining] --mnemonic-random [<MNEMONIC_RANDOM>] Automatically generates a BIP39 mnemonic phrase, and derives accounts from it. Cannot be used with other `mnemonic` options. You can specify the number of words you want in the mnemonic. [default: 12] --mnemonic-seed-unsafe <MNEMONIC_SEED> Generates a BIP39 mnemonic phrase from a given seed Cannot be used with other `mnemonic` options. CAREFUL: This is NOT SAFE and should only be used for testing. Never use the private keys generated in production. --no-mining Disable auto and interval mining, and mine on demand instead [aliases: no-mine] --order <ORDER> How transactions are sorted in the mempool [default: fees] -p, --port <NUM> Port number to listen on [default: 8545] --preserve-historical-states Preserve historical state snapshots when dumping the state. This will save the in-memory states of the chain at particular block hashes. These historical states will be loaded into the memory when `--load-state` / `--state`, and aids in RPC calls beyond the block at which state was dumped. --prune-history [<PRUNE_HISTORY>] Don't keep full chain history. If a number argument is specified, at most this number of states is kept in memory. If enabled, no state will be persisted on disk, so `max_persisted_states` will be 0. -s, --state-interval <SECONDS> Interval in seconds at which the state and block environment is to be dumped to disk. See --state and --dump-state --slots-in-an-epoch <SLOTS_IN_AN_EPOCH> Slots in an epoch [default: 32] --state <PATH> This is an alias for both --load-state and --dump-state. It initializes the chain with the state and block environment stored at the file, if it exists, and dumps the chain's state on exit. --timestamp <NUM> The timestamp of the genesis block --transaction-block-keeper <TRANSACTION_BLOCK_KEEPER> Number of blocks with transactions to keep in memory -V, --version Print version Display options: --color <COLOR> The color of the log messages Possible values: - auto: Intelligently guess whether to use color output (default) - always: Force color output - never: Force disable color output --json Format log messages as JSON -q, --quiet Do not print log messages -v, --verbosity... Verbosity level of the log messages. Pass multiple times to increase the verbosity (e.g. -v, -vv, -vvv). Depending on the context the verbosity levels have different meanings. For example, the verbosity levels of the EVM are: - 2 (-vv): Print logs for all tests. - 3 (-vvv): Print execution traces for failing tests. - 4 (-vvvv): Print execution traces for all tests, and setup traces for failing tests. - 5 (-vvvvv): Print execution and setup traces for all tests, including storage changes. Server options: --allow-origin <ALLOW_ORIGIN> The cors `allow_origin` header [default: *] --cache-path <PATH> Path to the cache directory where states are stored --host <IP_ADDR> The hosts the server will listen on [env: ANVIL_IP_ADDR=] [default: 127.0.0.1] --no-cors Disable CORS --no-request-size-limit Disable the default request body size limit. At time of writing the default limit is 2MB Fork config: --compute-units-per-second <CUPS> Sets the number of assumed available compute units per second for this provider default value: 330 See also --fork-url and <https://docs.alchemy.com/reference/compute-units#what-are-cups-compute-units-per-second> -f, --fork-url <URL> Fetch state over a remote endpoint instead of starting from an empty state. If you want to fetch state from a specific block number, add a block number like `http://localhost:8545@1400000` or use the `--fork-block-number` argument. [aliases: rpc-url] --fork-block-number <BLOCK> Fetch state from a specific block number over a remote endpoint. See --fork-url. --fork-chain-id <CHAIN> Specify chain id to skip fetching it from remote endpoint. This enables offline-start mode. You still must pass both `--fork-url` and `--fork-block-number`, and already have your required state cached on disk, anything missing locally would be fetched from the remote. --fork-header <HEADERS> Headers to use for the rpc client, e.g. "User-Agent: test-agent" See --fork-url. --fork-retry-backoff <BACKOFF> Initial retry backoff on encountering errors. See --fork-url. --fork-transaction-hash <TRANSACTION> Fetch state from a specific transaction hash over a remote endpoint. See --fork-url. --no-rate-limit Disables rate limiting for this node's provider. default value: false See also --fork-url and <https://docs.alchemy.com/reference/compute-units#what-are-cups-compute-units-per-second> [aliases: no-rpc-rate-limit] --no-storage-caching Explicitly disables the use of RPC caching. All storage slots are read entirely from the endpoint. This flag overrides the project's configuration file. See --fork-url. --retries <retries> Number of retry requests for spurious networks (timed out requests) Default value 5 --timeout <timeout> Timeout in ms for requests sent to remote JSON-RPC server in forking mode. Default value 45000 Environment config: --block-base-fee-per-gas <FEE> The base fee in a block [aliases: base-fee] --chain-id <CHAIN_ID> The chain ID --code-size-limit <CODE_SIZE> EIP-170: Contract code size limit in bytes. Useful to increase this because of tests. To disable entirely, use `--disable-code-size-limit`. By default, it is 0x6000 (~25kb) --disable-block-gas-limit Disable the `call.gas_limit <= block.gas_limit` constraint --disable-code-size-limit Disable EIP-170: Contract code size limit --disable-min-priority-fee Disable the enforcement of a minimum suggested priority fee [aliases: no-priority-fee] --gas-limit <GAS_LIMIT> The block gas limit --gas-price <GAS_PRICE> The gas price EVM options: --auto-impersonate Enables automatic impersonation on startup. This allows any transaction sender to be simulated as different accounts, which is useful for testing contract behavior [aliases: auto-unlock] --disable-console-log Disable printing of `console.log` invocations to stdout [aliases: no-console-log] --disable-default-create2-deployer Disable the default create2 deployer [aliases: no-create2] --memory-limit <MEMORY_LIMIT> The memory limit per EVM execution in bytes --odyssey Enable Odyssey features --optimism Run an Optimism chain [aliases: optimism] --steps-tracing Enable steps tracing used for debug calls returning geth-style traces [aliases: tracing]