<!--
Sitemap:
- [Foundry - Ethereum Development Framework](/index)
- [Anvil](/anvil/): Anvil is Foundry's local Ethereum node for development and testing.
- [Benchmarks](/benchmarks)
- [Best Practices](/best-practices): Best practices for writing contracts, tests, scripts, and managing security in Foundry projects.
- [Cast](/cast/): Cast is Foundry's command-line tool for interacting with Ethereum.
- [Changelog](/changelog/)
- [Chisel](/chisel/): Chisel is Foundry's interactive Solidity REPL for rapid prototyping and debugging.
- [Configuration](/config/): Configure Foundry with foundry.toml, profiles, and environment variables.
- [Forge](/forge/): Forge is Foundry's build, test, and deploy tool for Solidity smart contracts.
- [Guides](/guides/): Practical guides for common Foundry workflows and advanced patterns.
- [Project Setup](/projects/): Create and configure Foundry projects for smart contract development.
- [Custom methods](/anvil/custom-methods): Anvil's custom RPC methods for impersonation, mining control, and state manipulation.
- [Forking](/anvil/forking): Fork mainnet or any EVM-compatible chain with Anvil.
- [State management](/anvil/state-management): Dump and load Anvil chain state for reproducible testing.
- [ABI encoding](/cast/abi-encoding): Encode and decode ABI data, calldata, and function signatures with Cast.
- [Reading chain data](/cast/reading-chain-data): Query blockchain data with Cast — blocks, transactions, logs, and account state.
- [Sending transactions](/cast/sending-transactions): Send transactions and interact with contracts using Cast.
- [Wallet operations](/cast/wallet-operations): Manage wallets, sign messages, and verify signatures with Cast.
- [Commands](/chisel/commands): All available commands in the Chisel REPL.
- [Forking](/chisel/forking): Fork live chains in Chisel to interact with deployed contracts.
- [Session management](/chisel/session-management): Save, load, and export Chisel REPL sessions.
- [CI Integration](/config/ci): Set up Foundry in GitHub Actions and other CI systems.
- [Compiler](/config/compiler): Configure the Solidity compiler settings for your Foundry project.
- [Editor Setup](/config/editors): Configure VS Code, Vim, and other editors for Foundry projects.
- [Profiles](/config/profiles): Use profiles to switch between configurations for development, CI, and production.
- [Testing](/config/testing): Configure testing behavior including fuzz testing and invariant testing.
- [Building contracts](/forge/build): Compile Solidity contracts with Forge.
- [Debugging](/forge/debugging): Debug Solidity contracts with Forge traces and the interactive debugger.
- [Formatting](/forge/formatting): Format Solidity code with Forge.
- [Gas tracking](/forge/gas-tracking): Track and compare gas usage with Forge snapshots and reports.
- [Linting](/forge/linting): Lint Solidity code with Forge.
- [Scripting](/forge/scripting): Deploy and interact with contracts using Forge scripts.
- [Testing](/forge/testing): Write and run tests for Solidity contracts with Forge.
- [Debugging Transactions](/guides/debugging-transactions): Replay and debug failed mainnet transactions with trace analysis.
- [Deploying Contracts](/guides/deploying-contracts): Deploy contracts from local development to testnet and mainnet with verification and deterministic addresses.
- [Deterministic Deployments with CREATE2](/guides/deterministic-deployments-using-create2): Deploy smart contracts to predictable addresses across multiple networks using CREATE2 opcode for counterfactual interactions.
- [Docker & Containers](/guides/docker): Run Foundry in Docker for reproducible builds and CI environments.
- [Fork Testing](/guides/fork-testing): Test against live chain state, impersonate accounts, and handle time-sensitive logic.
- [Gas Optimization](/guides/gas-optimization): Profile gas usage and optimize with snapshots and the IR pipeline.
- [Invariant Testing](/guides/invariant-testing): Write effective invariant tests with handler patterns and ghost variables.
- [Multi-Chain Deployments](/guides/multi-chain-deployments): Deploy the same contracts across multiple networks with per-chain configuration.
- [Stack Too Deep](/guides/stack-too-deep): Understanding and resolving the "Stack too deep" compilation error in Solidity.
- [Upgrading Contracts](/guides/upgrading-contracts): Implement proxy patterns with Forge scripts and verify storage layout compatibility.
- [FAQ](/help/faq): Frequently asked questions about Foundry and its tools.
- [Troubleshooting](/help/troubleshooting): Solutions to common Foundry errors and issues.
- [Getting Started](/introduction/getting-started): Get started with Foundry's four core tools - Forge, Cast, Anvil, and Chisel.
- [Installation](/introduction/installation): Install Foundry using foundryup, precompiled binaries, or build from source.
- [Prompting](/introduction/prompting): Use structured prompts to get better results from AI coding assistants.
- [Dependencies](/projects/dependencies): Manage dependencies using git submodules and remappings.
- [Project Layout](/projects/layout): Understand Foundry's project structure and directory conventions.
- [Soldeer](/projects/soldeer): Use Soldeer as an alternative package manager for Foundry projects.
- [cast index](/reference/cast/)
- [DSTest Reference](/reference/ds-test)
- [References](/reference/README)
- [Default foundry configuration](/config/reference/default-config)
- [Documentation Generator](/config/reference/doc-generator)
- [Etherscan](/config/reference/etherscan)
- [Formatter](/config/reference/formatter)
- [In-line test configuration](/config/reference/inline-test-config)
- [Linter Configuration](/config/reference/linter)
- [Config Overview](/config/reference/overview)
- [Project](/config/reference/project)
- [Config Reference](/config/reference/README)
- [Solidity compiler](/config/reference/solidity-compiler)
- [Testing](/config/reference/testing)
- [Foundry v1.0 migration guide](/guides/migrations/foundry-v1): Summary of breaking changes and migration steps for Foundry v1.0.
- [anvil](/reference/anvil/anvil)
- [anvil completions](/reference/anvil/completions)
- [cast 4byte](/reference/cast/4byte)
- [cast 4byte-calldata](/reference/cast/4byte-calldata)
- [cast 4byte-event](/reference/cast/4byte-event)
- [cast abi-encode](/reference/cast/abi-encode)
- [cast abi-encode-event](/reference/cast/abi-encode-event)
- [cast access-list](/reference/cast/access-list)
- [cast address-zero](/reference/cast/address-zero)
- [cast admin](/reference/cast/admin)
- [cast age](/reference/cast/age)
- [cast artifact](/reference/cast/artifact)
- [cast b2e-payload](/reference/cast/b2e-payload)
- [cast balance](/reference/cast/balance)
- [cast base-fee](/reference/cast/base-fee)
- [cast bind](/reference/cast/bind)
- [cast block](/reference/cast/block)
- [cast block-number](/reference/cast/block-number)
- [cast call](/reference/cast/call)
- [cast calldata](/reference/cast/calldata)
- [cast](/reference/cast/cast)
- [cast chain](/reference/cast/chain)
- [cast chain-id](/reference/cast/chain-id)
- [cast client](/reference/cast/client)
- [cast code](/reference/cast/code)
- [cast codehash](/reference/cast/codehash)
- [cast codesize](/reference/cast/codesize)
- [cast completions](/reference/cast/completions)
- [cast compute-address](/reference/cast/compute-address)
- [cast concat-hex](/reference/cast/concat-hex)
- [cast constructor-args](/reference/cast/constructor-args)
- [cast create2](/reference/cast/create2)
- [cast creation-code](/reference/cast/creation-code)
- [cast da-estimate](/reference/cast/da-estimate)
- [cast decode-abi](/reference/cast/decode-abi)
- [cast decode-calldata](/reference/cast/decode-calldata)
- [cast decode-error](/reference/cast/decode-error)
- [cast decode-event](/reference/cast/decode-event)
- [cast decode-string](/reference/cast/decode-string)
- [cast decode-transaction](/reference/cast/decode-transaction)
- [cast disassemble](/reference/cast/disassemble)
- [cast erc20-token](/reference/cast/erc20-token)
- [cast estimate](/reference/cast/estimate)
- [cast find-block](/reference/cast/find-block)
- [cast format-bytes32-string](/reference/cast/format-bytes32-string)
- [cast format-units](/reference/cast/format-units)
- [cast from-bin](/reference/cast/from-bin)
- [cast from-fixed-point](/reference/cast/from-fixed-point)
- [cast from-rlp](/reference/cast/from-rlp)
- [cast from-utf8](/reference/cast/from-utf8)
- [cast from-wei](/reference/cast/from-wei)
- [cast gas-price](/reference/cast/gas-price)
- [cast hash-message](/reference/cast/hash-message)
- [cast hash-zero](/reference/cast/hash-zero)
- [cast implementation](/reference/cast/implementation)
- [cast index](/reference/cast/index-cmd)
- [cast index-erc7201](/reference/cast/index-erc7201)
- [cast interface](/reference/cast/interface)
- [cast keccak](/reference/cast/keccak)
- [cast logs](/reference/cast/logs)
- [cast lookup-address](/reference/cast/lookup-address)
- [cast max-int](/reference/cast/max-int)
- [cast max-uint](/reference/cast/max-uint)
- [cast min-int](/reference/cast/min-int)
- [cast mktx](/reference/cast/mktx)
- [cast namehash](/reference/cast/namehash)
- [cast nonce](/reference/cast/nonce)
- [cast pad](/reference/cast/pad)
- [cast parse-bytes32-address](/reference/cast/parse-bytes32-address)
- [cast parse-bytes32-string](/reference/cast/parse-bytes32-string)
- [cast parse-units](/reference/cast/parse-units)
- [cast pretty-calldata](/reference/cast/pretty-calldata)
- [cast proof](/reference/cast/proof)
- [cast publish](/reference/cast/publish)
- [cast receipt](/reference/cast/receipt)
- [cast recover-authority](/reference/cast/recover-authority)
- [cast resolve-name](/reference/cast/resolve-name)
- [cast rpc](/reference/cast/rpc)
- [cast run](/reference/cast/run)
- [cast selectors](/reference/cast/selectors)
- [cast send](/reference/cast/send)
- [cast shl](/reference/cast/shl)
- [cast shr](/reference/cast/shr)
- [cast sig](/reference/cast/sig)
- [cast sig-event](/reference/cast/sig-event)
- [cast source](/reference/cast/source)
- [cast storage](/reference/cast/storage)
- [cast storage-root](/reference/cast/storage-root)
- [cast to-ascii](/reference/cast/to-ascii)
- [cast to-base](/reference/cast/to-base)
- [cast to-bytes32](/reference/cast/to-bytes32)
- [cast to-check-sum-address](/reference/cast/to-check-sum-address)
- [cast to-dec](/reference/cast/to-dec)
- [cast to-fixed-point](/reference/cast/to-fixed-point)
- [cast to-hex](/reference/cast/to-hex)
- [cast to-hexdata](/reference/cast/to-hexdata)
- [cast to-int256](/reference/cast/to-int256)
- [cast to-rlp](/reference/cast/to-rlp)
- [cast to-uint256](/reference/cast/to-uint256)
- [cast to-unit](/reference/cast/to-unit)
- [cast to-utf8](/reference/cast/to-utf8)
- [cast to-wei](/reference/cast/to-wei)
- [cast trace](/reference/cast/trace)
- [cast tx](/reference/cast/tx)
- [cast tx-pool](/reference/cast/tx-pool)
- [cast upload-signature](/reference/cast/upload-signature)
- [cast wallet](/reference/cast/wallet)
- [accesses](/reference/cheatcodes/accesses): Gets all storage slots that have been read or written to on an address
- [activeFork](/reference/cheatcodes/active-fork): Returns the identifier of the currently active fork
- [addr](/reference/cheatcodes/addr): Computes the address for a given private key
- [allowCheatcodes](/reference/cheatcodes/allow-cheatcodes): Grants cheatcode access to an address in forking mode
- [assume](/reference/cheatcodes/assume): Discards fuzz inputs that don't satisfy a condition
- [assumeNoRevert](/reference/cheatcodes/assume-no-revert): Discards fuzz inputs if the next call reverts
- [breakpoint](/reference/cheatcodes/breakpoint): Places a breakpoint for the debugger
- [broadcast](/reference/cheatcodes/broadcast): Makes the next call create a transaction that can be signed and sent onchain
- [chainId](/reference/cheatcodes/chain-id): Sets block.chainid to a specified value in Forge tests
- [clearMockedCalls](/reference/cheatcodes/clear-mocked-calls): Clears all mocked calls
- [coinbase](/reference/cheatcodes/coinbase): Sets block.coinbase to a specified address
- [copyStorage](/reference/cheatcodes/copy-storage): Copies storage from one contract to another
- [createFork](/reference/cheatcodes/create-fork): Creates a new fork from an RPC endpoint
- [createSelectFork](/reference/cheatcodes/create-select-fork): Creates and activates a new fork in one call
- [createWallet](/reference/cheatcodes/create-wallet): Creates a new Wallet struct with address and keys
- [deal](/reference/cheatcodes/deal): Sets the ETH balance of an address
- [deriveKey](/reference/cheatcodes/derive-key): Derives a private key from a mnemonic phrase
- [difficulty](/reference/cheatcodes/difficulty): Sets block.difficulty for pre-merge EVM versions in Forge tests
- [envAddress](/reference/cheatcodes/env-address): Reads an environment variable as address or address[]
- [envBool](/reference/cheatcodes/env-bool): Reads an environment variable as bool or bool[]
- [envBytes](/reference/cheatcodes/env-bytes): Reads an environment variable as bytes or bytes[]
- [envBytes32](/reference/cheatcodes/env-bytes32): Reads an environment variable as bytes32 or bytes32[]
- [envInt](/reference/cheatcodes/env-int): Reads an environment variable as int256 or int256[]
- [envOr](/reference/cheatcodes/env-or): Reads an environment variable with a default fallback value
- [envString](/reference/cheatcodes/env-string): Reads an environment variable as string or string[]
- [envUint](/reference/cheatcodes/env-uint): Reads an environment variable as uint256 or uint256[]
- [etch](/reference/cheatcodes/etch): Sets the bytecode of an address to custom code
- [expectCall](/reference/cheatcodes/expect-call): Asserts that a specific call is made during test execution
- [expectEmit](/reference/cheatcodes/expect-emit): Asserts that specific events are emitted during the next call
- [expectRevert](/reference/cheatcodes/expect-revert): Asserts that the next call reverts with optional message matching
- [fee](/reference/cheatcodes/fee): Sets block.basefee to a specified value in Forge tests
- [ffi](/reference/cheatcodes/ffi): Calls an arbitrary external command
- [File Cheatcodes](/reference/cheatcodes/fs): File system operations for reading, writing, and managing files
- [snapshotGas cheatcodes](/reference/cheatcodes/gas-snapshots): Capture and compare gas usage across test runs
- [getBlockNumber](/reference/cheatcodes/get-block-number): Gets the current block.number, avoiding IR compilation optimization issues
- [getBlockTimestamp](/reference/cheatcodes/get-block-timestamp): Gets the current block.timestamp, avoiding IR compilation optimization issues
- [getCode](/reference/cheatcodes/get-code): Returns the creation bytecode for a contract in the project
- [getDeployedCode](/reference/cheatcodes/get-deployed-code): Returns the deployed (runtime) bytecode for a contract in the project
- [getLabel](/reference/cheatcodes/get-label): Retrieves the label for an address
- [getNonce](/reference/cheatcodes/get-nonce): Gets the nonce of an account or wallet
- [getRecordedLogs](/reference/cheatcodes/get-recorded-logs): Gets all emitted events recorded by recordLogs
- [isContext](/reference/cheatcodes/is-context): Checks the current Forge execution context
- [isPersistent](/reference/cheatcodes/is-persistent): Checks if an account is marked as persistent across forks
- [keyExists](/reference/cheatcodes/key-exists): Checks if a key exists in a JSON string (deprecated)
- [keyExistsJson](/reference/cheatcodes/key-exists-json): Checks if a key exists in a JSON string
- [keyExistsToml](/reference/cheatcodes/key-exists-toml): Checks if a key exists in a TOML table
- [label](/reference/cheatcodes/label): Sets a label for an address in test traces
- [load](/reference/cheatcodes/load): Loads a value from a specific storage slot of an account
- [makePersistent](/reference/cheatcodes/make-persistent): Marks accounts as persistent across fork switches
- [mockCall](/reference/cheatcodes/mock-call): Mocks calls to an address with specific calldata to return specified data
- [mockCallRevert](/reference/cheatcodes/mock-call-revert): Mocks calls to an address to revert with specified data
- [mockCalls](/reference/cheatcodes/mock-calls): Mocks calls to return different data for each successive invocation
- [mockFunction](/reference/cheatcodes/mock-function): Executes calls to an address using bytecode from another address
- [Cheatcodes Reference](/reference/cheatcodes/overview)
- [parseAddress](/reference/cheatcodes/parse-address): Parses a hex string into an address
- [parseBool](/reference/cheatcodes/parse-bool): Parses a string into a bool
- [parseBytes](/reference/cheatcodes/parse-bytes): Parses a hex string into bytes
- [parseBytes32](/reference/cheatcodes/parse-bytes32): Parses a hex string into bytes32
- [parseInt](/reference/cheatcodes/parse-int): Parses a string into an int256
- [parseJson](/reference/cheatcodes/parse-json): Parses JSON files and returns values as ABI-encoded bytes
- [parseJsonKeys](/reference/cheatcodes/parse-json-keys): Gets list of keys present in a JSON string
- [parseToml](/reference/cheatcodes/parse-toml): Parses TOML files and returns values as ABI-encoded bytes
- [parseTomlKeys](/reference/cheatcodes/parse-toml-keys): Gets list of keys present in a TOML string
- [parseUint](/reference/cheatcodes/parse-uint): Parses a string into a uint256
- [pauseGasMetering](/reference/cheatcodes/pause-gas-metering): Pauses gas metering so gasleft() does not decrease
- [prank](/reference/cheatcodes/prank): Sets msg.sender for the next call to a specified address
- [prevrandao](/reference/cheatcodes/prevrandao): Sets block.prevrandao for post-merge EVM versions in Forge tests
- [projectRoot](/reference/cheatcodes/project-root): Returns the root directory of the current Foundry project
- [prompt](/reference/cheatcodes/prompt): Displays an interactive prompt for user input in scripts
- [readCallers](/reference/cheatcodes/read-callers): Reads the current caller mode, msg.sender, and tx.origin
- [record](/reference/cheatcodes/record): Starts recording all storage reads and writes
- [recordLogs](/reference/cheatcodes/record-logs): Starts recording all emitted events
- [rememberKey](/reference/cheatcodes/remember-key): Stores a private key in forge's local wallet for broadcasting
- [resetGasMetering](/reference/cheatcodes/reset-gas-metering): Resets gas metering to the gas limit of the current execution frame
- [resumeGasMetering](/reference/cheatcodes/resume-gas-metering): Resumes gas metering after it was paused
- [revokePersistent](/reference/cheatcodes/revoke-persistent): Removes persistent status from accounts
- [roll](/reference/cheatcodes/roll): Sets block.number to a specified value in Forge tests
- [rollFork](/reference/cheatcodes/roll-fork): Sets the block number of a fork
- [RPC Cheatcodes](/reference/cheatcodes/rpc): Access configured RPC endpoints and make JSON-RPC calls
- [selectFork](/reference/cheatcodes/select-fork): Activates a previously created fork
- [serializeJson](/reference/cheatcodes/serialize-json): Serializes values as a stringified JSON object
- [setArbitraryStorage](/reference/cheatcodes/set-arbitrary-storage): Makes the storage of an address fully symbolic
- [setEnv](/reference/cheatcodes/set-env): Sets an environment variable
- [setNonce](/reference/cheatcodes/set-nonce): Sets the nonce of an account
- [sign](/reference/cheatcodes/sign): Signs a digest with a private key, returning (v, r, s)
- [signDelegation](/reference/cheatcodes/sign-delegation): Signs and attaches EIP-7702 authorization for account delegation
- [skip](/reference/cheatcodes/skip): Marks a test as skipped conditionally
- [sleep](/reference/cheatcodes/sleep): Pauses execution for a specified duration
- [startBroadcast](/reference/cheatcodes/start-broadcast): Makes all subsequent calls create transactions that can be signed and sent onchain
- [startPrank](/reference/cheatcodes/start-prank): Sets msg.sender for all subsequent calls until stopPrank is called
- [startStateDiffRecording](/reference/cheatcodes/start-state-diff-recording): Starts recording all state changes during execution
- [snapshotState cheatcodes](/reference/cheatcodes/state-snapshots): Snapshot and restore EVM state
- [stopAndReturnStateDiff](/reference/cheatcodes/stop-and-return-state-diff): Stops state diff recording and returns all recorded state changes
- [stopBroadcast](/reference/cheatcodes/stop-broadcast): Stops collecting transactions for onchain broadcasting
- [stopPrank](/reference/cheatcodes/stop-prank): Stops an active prank, resetting msg.sender and tx.origin
- [store](/reference/cheatcodes/store): Stores a value in a specific storage slot of an account
- [toString](/reference/cheatcodes/to-string): Converts any type to its string representation
- [transact](/reference/cheatcodes/transact): Fetches and executes a transaction from a fork
- [txGasPrice](/reference/cheatcodes/tx-gas-price): Sets tx.gasprice for the rest of the transaction
- [unixTime](/reference/cheatcodes/unix-time): Returns the current unix timestamp in milliseconds
- [warp](/reference/cheatcodes/warp): Sets block.timestamp to a specified value in Forge tests
- [writeJson](/reference/cheatcodes/write-json): Writes a serialized JSON object to a file
- [writeToml](/reference/cheatcodes/write-toml): Writes a serialized JSON object to a TOML file
- [chisel](/reference/chisel/chisel)
- [chisel clear-cache](/reference/chisel/clear-cache)
- [chisel eval](/reference/chisel/eval)
- [chisel list](/reference/chisel/list)
- [chisel load](/reference/chisel/load)
- [chisel view](/reference/chisel/view)
- [Base Options](/reference/common/base-options)
- [Create Option](/reference/common/cast-estimate-create-option)
- [Display Options](/reference/common/display-options)
- [Etherscan Options](/reference/common/etherscan-options)
- [Wallet Options - Hardware Wallet](/reference/common/multi-wallet-options-hardware)
- [Wallet Options - Keystore](/reference/common/multi-wallet-options-keystore)
- [Wallet Options - Raw](/reference/common/multi-wallet-options-raw)
- [Wallet Options - Remote](/reference/common/multi-wallet-options-remote)
- [RPC Options](/reference/common/rpc-options)
- [Transaction Options](/reference/common/transaction-options)
- [Wallet Options - Hardware Wallet](/reference/common/wallet-options-hardware)
- [Wallet Options - Keystore](/reference/common/wallet-options-keystore)
- [WALLET OPTIONS - RAW:](/reference/common/wallet-options-raw)
- [Wallet Options - Remote](/reference/common/wallet-options-remote)
- [abs](/reference/forge-std/abs)
- [arithmeticError](/reference/forge-std/arithmeticError)
- [assertApproxEqAbs](/reference/forge-std/assertApproxEqAbs)
- [assertApproxEqAbsDecimal](/reference/forge-std/assertApproxEqAbsDecimal)
- [assertApproxEqRel](/reference/forge-std/assertApproxEqRel)
- [assertApproxEqRelDecimal](/reference/forge-std/assertApproxEqRelDecimal)
- [assertEq](/reference/forge-std/assertEq)
- [assertEqDecimal](/reference/forge-std/assertEqDecimal)
- [assertFalse](/reference/forge-std/assertFalse)
- [assertGe](/reference/forge-std/assertGe)
- [assertGeDecimal](/reference/forge-std/assertGeDecimal)
- [assertGt](/reference/forge-std/assertGt)
- [assertGtDecimal](/reference/forge-std/assertGtDecimal)
- [assertionError](/reference/forge-std/assertionError)
- [assertLe](/reference/forge-std/assertLe)
- [assertLeDecimal](/reference/forge-std/assertLeDecimal)
- [assertLt](/reference/forge-std/assertLt)
- [assertLtDecimal](/reference/forge-std/assertLtDecimal)
- [assertNotEq](/reference/forge-std/assertNotEq)
- [assertNotEqDecimal](/reference/forge-std/assertNotEqDecimal)
- [assertTrue](/reference/forge-std/assertTrue)
- [assumeNotPrecompile](/reference/forge-std/assume-no-precompiles)
- [assumePayable](/reference/forge-std/assume-payable)
- [bound](/reference/forge-std/bound)
- [changePrank](/reference/forge-std/change-prank)
- [checked_write](/reference/forge-std/checked_write)
- [computeCreateAddress](/reference/forge-std/compute-create-address)
- [Config](/reference/forge-std/config)
- [Console Logging](/reference/forge-std/console-log)
- [deal](/reference/forge-std/deal)
- [delta](/reference/forge-std/delta)
- [deployCode](/reference/forge-std/deployCode)
- [deployCodeTo](/reference/forge-std/deployCodeTo)
- [depth](/reference/forge-std/depth)
- [deriveRememberKey](/reference/forge-std/derive-remember-key)
- [divisionError](/reference/forge-std/divisionError)
- [enable_packed_slots](/reference/forge-std/enable_packed_slots)
- [encodeStorageError](/reference/forge-std/encodeStorageError)
- [enumConversionError](/reference/forge-std/enumConversionError)
- [fail](/reference/forge-std/fail)
- [find](/reference/forge-std/find)
- [hoax](/reference/forge-std/hoax)
- [indexOOBError](/reference/forge-std/indexOOBError)
- [makeAddr](/reference/forge-std/make-addr)
- [makeAddrAndKey](/reference/forge-std/make-addr-and-key)
- [memOverflowError](/reference/forge-std/memOverflowError)
- [noGasMetering](/reference/forge-std/noGasMetering)
- [Forge Standard Library Reference](/reference/forge-std/overview)
- [percentDelta](/reference/forge-std/percentDelta)
- [popError](/reference/forge-std/popError)
- [read](/reference/forge-std/read)
- [rewind](/reference/forge-std/rewind)
- [Script Utils](/reference/forge-std/script-utils)
- [sig](/reference/forge-std/sig)
- [skip](/reference/forge-std/skip)
- [startHoax](/reference/forge-std/startHoax)
- [Std Assertions](/reference/forge-std/std-assertions)
- [Std Cheats](/reference/forge-std/std-cheats)
- [StdConfig](/reference/forge-std/std-config)
- [Std Errors](/reference/forge-std/std-errors)
- [Std Logs](/reference/forge-std/std-logs)
- [Std Math](/reference/forge-std/std-math)
- [Std Storage](/reference/forge-std/std-storage)
- [target](/reference/forge-std/target)
- [with_key](/reference/forge-std/with_key)
- [zeroVarError](/reference/forge-std/zeroVarError)
- [forge bind](/reference/forge/bind)
- [forge bind-json](/reference/forge/bind-json)
- [forge build](/reference/forge/build)
- [forge cache](/reference/forge/cache)
- [forge clean](/reference/forge/clean)
- [forge clone](/reference/forge/clone)
- [forge compiler](/reference/forge/compiler)
- [forge completions](/reference/forge/completions)
- [forge config](/reference/forge/config)
- [forge coverage](/reference/forge/coverage)
- [forge create](/reference/forge/create)
- [forge doc](/reference/forge/doc)
- [forge eip712](/reference/forge/eip712)
- [forge flatten](/reference/forge/flatten)
- [forge fmt](/reference/forge/fmt)
- [forge](/reference/forge/forge)
- [forge geiger](/reference/forge/geiger)
- [forge generate](/reference/forge/generate)
- [forge init](/reference/forge/init)
- [forge inspect](/reference/forge/inspect)
- [forge install](/reference/forge/install)
- [forge lint](/reference/forge/lint)
- [forge remappings](/reference/forge/remappings)
- [forge remove](/reference/forge/remove)
- [forge script](/reference/forge/script)
- [forge selectors](/reference/forge/selectors)
- [forge snapshot](/reference/forge/snapshot)
- [forge soldeer](/reference/forge/soldeer)
- [forge test](/reference/forge/test)
- [forge tree](/reference/forge/tree)
- [forge update](/reference/forge/update)
- [forge verify-bytecode](/reference/forge/verify-bytecode)
- [forge verify-check](/reference/forge/verify-check)
- [forge verify-contract](/reference/forge/verify-contract)
- [cast call --create](/reference/cast/call/--create)
- [cast erc20-token allowance](/reference/cast/erc20-token/allowance)
- [cast erc20-token approve](/reference/cast/erc20-token/approve)
- [cast erc20-token balance](/reference/cast/erc20-token/balance)
- [cast erc20-token burn](/reference/cast/erc20-token/burn)
- [cast erc20-token decimals](/reference/cast/erc20-token/decimals)
- [cast erc20-token mint](/reference/cast/erc20-token/mint)
- [cast erc20-token name](/reference/cast/erc20-token/name)
- [cast erc20-token symbol](/reference/cast/erc20-token/symbol)
- [cast erc20-token total-supply](/reference/cast/erc20-token/total-supply)
- [cast erc20-token transfer](/reference/cast/erc20-token/transfer)
- [cast estimate --create](/reference/cast/estimate/--create)
- [cast mktx --create](/reference/cast/mktx/--create)
- [cast send --create](/reference/cast/send/--create)
- [cast tx-pool content](/reference/cast/tx-pool/content)
- [cast tx-pool content-from](/reference/cast/tx-pool/content-from)
- [cast tx-pool inspect](/reference/cast/tx-pool/inspect)
- [cast tx-pool status](/reference/cast/tx-pool/status)
- [cast wallet address](/reference/cast/wallet/address)
- [cast wallet change-password](/reference/cast/wallet/change-password)
- [cast wallet decrypt-keystore](/reference/cast/wallet/decrypt-keystore)
- [cast wallet derive](/reference/cast/wallet/derive)
- [cast wallet import](/reference/cast/wallet/import)
- [cast wallet list](/reference/cast/wallet/list)
- [cast wallet new](/reference/cast/wallet/new)
- [cast wallet new-mnemonic](/reference/cast/wallet/new-mnemonic)
- [cast wallet private-key](/reference/cast/wallet/private-key)
- [cast wallet public-key](/reference/cast/wallet/public-key)
- [cast wallet remove](/reference/cast/wallet/remove)
- [cast wallet sign](/reference/cast/wallet/sign)
- [cast wallet sign-auth](/reference/cast/wallet/sign-auth)
- [cast wallet vanity](/reference/cast/wallet/vanity)
- [cast wallet verify](/reference/cast/wallet/verify)
- [forge cache clean](/reference/forge/cache/clean)
- [forge cache ls](/reference/forge/cache/ls)
- [forge compiler resolve](/reference/forge/compiler/resolve)
- [forge generate test](/reference/forge/generate/test)
- [forge selectors cache](/reference/forge/selectors/cache)
- [forge selectors collision](/reference/forge/selectors/collision)
- [forge selectors find](/reference/forge/selectors/find)
- [forge selectors list](/reference/forge/selectors/list)
- [forge selectors upload](/reference/forge/selectors/upload)
- [forge soldeer clean](/reference/forge/soldeer/clean)
- [forge soldeer init](/reference/forge/soldeer/init)
- [forge soldeer install](/reference/forge/soldeer/install)
- [forge soldeer login](/reference/forge/soldeer/login)
- [forge soldeer push](/reference/forge/soldeer/push)
- [forge soldeer uninstall](/reference/forge/soldeer/uninstall)
- [forge soldeer update](/reference/forge/soldeer/update)
- [forge soldeer version](/reference/forge/soldeer/version)
-->

## cast

A Swiss Army knife for interacting with Ethereum applications from the command
line

:::terminal

```bash
$ cast --help
```

```txt
Usage: cast [OPTIONS] <COMMAND>

Commands:
  4byte                  Get the function signatures for the given selector from
                         [https://openchain.xyz](https://openchain.xyz) [aliases: 4, 4b]
  4byte-calldata         Decode ABI-encoded calldata using
                         [https://openchain.xyz](https://openchain.xyz) [aliases: 4c, 4bc]
  4byte-event            Get the event signature for a given topic 0 from
                         [https://openchain.xyz](https://openchain.xyz) [aliases: 4e, 4be,
                         topic0-event, t0e]
  abi-encode             ABI encode the given function argument, excluding the
                         selector [aliases: ae]
  abi-encode-event       ABI encode an event and its arguments to generate
                         topics and data [aliases: aee]
  access-list            Create an access list for a transaction [aliases: ac,
                         acl]
  address-zero           Prints the zero address [aliases: --address-zero, az]
  admin                  Fetch the EIP-1967 admin account [aliases: adm]
  age                    Get the timestamp of a block [aliases: a]
  artifact               Generate an artifact file, that can be used to deploy a
                         contract locally [aliases: ar]
  b2e-payload            Convert Beacon payload to execution payload [aliases:
                         b2e]
  balance                Get the balance of an account in wei [aliases: b]
  base-fee               Get the basefee of a block [aliases: ba, fee, basefee]
  bind                   Generate a rust binding from a given ABI [aliases: bi]
  block                  Get information about a block [aliases: bl]
  block-number           Get the latest block number [aliases: bn]
  call                   Perform a call on an account without publishing a
                         transaction [aliases: c]
  calldata               ABI-encode a function with arguments [aliases: cd]
  chain                  Get the symbolic name of the current chain
  chain-id               Get the Ethereum chain ID [aliases: ci, cid]
  client                 Get the current client version [aliases: cl]
  code                   Get the runtime bytecode of a contract [aliases: co]
  codehash               Get the codehash for an account
  codesize               Get the runtime bytecode size of a contract [aliases:
                         cs]
  completions            Generate shell completions script [aliases: com]
  compute-address        Compute the contract address from a given nonce and
                         deployer address [aliases: ca]
  concat-hex             Concatenate hex strings [aliases: --concat-hex, ch]
  constructor-args       Display constructor arguments used for the contract
                         initialization [aliases: cra]
  create2                Generate a deterministic contract address using CREATE2
                         [aliases: c2]
  creation-code          Download a contract creation code from Etherscan and
                         RPC [aliases: cc]
  da-estimate            Estimates the data availability size of a given opstack
                         block
  decode-abi             Decode ABI-encoded input or output data [aliases:
                         abi-decode, --abi-decode, ad]
  decode-calldata        Decode ABI-encoded input data [aliases:
                         calldata-decode, --calldata-decode, cdd]
  decode-error           Decode custom error data [aliases: error-decode,
                         --error-decode, erd]
  decode-event           Decode event data [aliases: event-decode,
                         --event-decode, ed]
  decode-string          Decode ABI-encoded string [aliases: string-decode,
                         --string-decode, sd]
  decode-transaction     Decodes a raw signed EIP 2718 typed transaction
                         [aliases: dt, decode-tx]
  disassemble            Disassembles a hex-encoded bytecode into a
                         human-readable representation [aliases: da]
  erc20-token            ERC20 token operations [aliases: erc20]
  estimate               Estimate the gas cost of a transaction [aliases: e]
  find-block             Get the block number closest to the provided timestamp
                         [aliases: f]
  format-bytes32-string  Formats a string into bytes32 encoding [aliases:
                         --format-bytes32-string]
  format-units           Format a number from smallest unit to decimal with
                         arbitrary decimals [aliases: --format-units, fun]
  from-bin               Convert binary data into hex data [aliases: --from-bin,
                         from-binx, fb]
  from-fixed-point       Convert a fixed point number into an integer [aliases:
                         --from-fix, ff]
  from-rlp               Decodes RLP hex-encoded data [aliases: --from-rlp]
  from-utf8              Convert UTF8 text to hex [aliases: --from-ascii,
                         --from-utf8, from-ascii, fu, fa]
  from-wei               Convert wei into an ETH amount [aliases: --from-wei,
                         fw]
  gas-price              Get the current gas price [aliases: g]
  hash-message           Hash a message according to EIP-191 [aliases:
                         --hash-message, hm]
  hash-zero              Prints the zero hash [aliases: --hash-zero, hz]
  help                   Print this message or the help of the given
                         subcommand(s)
  implementation         Fetch the EIP-1967 implementation for a contract Can
                         read from the implementation slot or the beacon slot
                         [aliases: impl]
  index                  Compute the storage slot for an entry in a mapping
                         [aliases: in]
  index-erc7201          Compute storage slots as specified by `ERC-7201:
                         Namespaced Storage Layout` [aliases: index7201, in7201]
  interface              Generate a Solidity interface from a given ABI
                         [aliases: i]
  keccak                 Hash arbitrary data using Keccak-256 [aliases: k,
                         keccak256]
  logs                   Get logs by signature or topic [aliases: l]
  lookup-address         Perform an ENS reverse lookup [aliases: la]
  max-int                Prints the maximum value of the given integer type
                         [aliases: --max-int, maxi]
  max-uint               Prints the maximum value of the given integer type
                         [aliases: --max-uint, maxu]
  min-int                Prints the minimum value of the given integer type
                         [aliases: --min-int, mini]
  mktx                   Build and sign a transaction [aliases: m]
  namehash               Calculate the ENS namehash of a name [aliases: na, nh]
  nonce                  Get the nonce for an account [aliases: n]
  pad                    Pads hex data to a specified length [aliases: pd]
  parse-bytes32-address  Parses a checksummed address from bytes32 encoding.
                         [aliases: --parse-bytes32-address]
  parse-bytes32-string   Parses a string from bytes32 encoding [aliases:
                         --parse-bytes32-string]
  parse-units            Convert a number from decimal to smallest unit with
                         arbitrary decimals [aliases: --parse-units, pun]
  pretty-calldata        Pretty print calldata [aliases: pc]
  proof                  Generate a storage proof for a given storage slot
                         [aliases: pr]
  publish                Publish a raw transaction to the network [aliases: p]
  receipt                Get the transaction receipt for a transaction [aliases:
                         re]
  recover-authority      Recovery an EIP-7702 authority from a Authorization
                         JSON string [aliases: decode-auth]
  resolve-name           Perform an ENS lookup [aliases: rn]
  rpc                    Perform a raw JSON-RPC request [aliases: rp]
  run                    Runs a published transaction in a local environment and
                         prints the trace [aliases: r]
  selectors              Extracts function selectors and arguments from bytecode
                         [aliases: sel]
  send                   Sign and publish a transaction [aliases: s]
  shl                    Perform a left shifting operation
  shr                    Perform a right shifting operation
  sig                    Get the selector for a function [aliases: si]
  sig-event              Generate event signatures from event string [aliases:
                         se]
  source                 Get the source code of a contract from a block explorer
                         [aliases: et, src]
  storage                Get the raw value of a contract's storage slot
                         [aliases: st]
  storage-root           Get the storage root for an account [aliases: sr]
  to-ascii               Convert hex data to an ASCII string [aliases:
                         --to-ascii, tas, 2as]
  to-base                Converts a number of one base to another [aliases:
                         --to-base, --to-radix, to-radix, tr, 2r]
  to-bytes32             Right-pads hex data to 32 bytes [aliases: --to-bytes32,
                         tb, 2b]
  to-check-sum-address   Convert an address to a checksummed format (EIP-55)
                         [aliases: --to-checksum-address, --to-checksum,
                         to-checksum, ta, 2a]
  to-dec                 Converts a number of one base to decimal [aliases:
                         --to-dec, td, 2d]
  to-fixed-point         Convert an integer into a fixed point number [aliases:
                         --to-fix, tf, 2f]
  to-hex                 Converts a number of one base to another [aliases:
                         --to-hex, th, 2h]
  to-hexdata             Normalize the input to lowercase, 0x-prefixed hex
                         [aliases: --to-hexdata, thd, 2hd]
  to-int256              Convert a number to a hex-encoded int256 [aliases:
                         --to-int256, ti, 2i]
  to-rlp                 RLP encodes hex data, or an array of hex data [aliases:
                         --to-rlp]
  to-uint256             Convert a number to a hex-encoded uint256 [aliases:
                         --to-uint256, tu, 2u]
  to-unit                Convert an ETH amount into another unit (ether, gwei or
                         wei) [aliases: --to-unit, tun, 2un]
  to-utf8                Convert hex data to a utf-8 string [aliases: --to-utf8,
                         tu8, 2u8]
  to-wei                 Convert an ETH amount to wei [aliases: --to-wei, tw,
                         2w]
  trace                  CLI arguments for `cast trace`
  tx                     Get information about a transaction [aliases: t]
  tx-pool                Inspect the TxPool of a node [aliases: tp]
  upload-signature       Upload the given signatures to [https://openchain.xyz](https://openchain.xyz)
                         [aliases: ups]
  wallet                 Wallet management utilities [aliases: w]

Options:
  -h, --help
          Print help (see a summary with '-h')

  -j, --threads <THREADS>
          Number of threads to use. Specifying 0 defaults to the number of
          logical cores
          
          [aliases: --jobs]

  -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

      --md
          Format log messages as Markdown

  -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 and
            backtraces with line numbers.

Find more information in the book: https://getfoundry.sh/cast/overview
```

:::
