A Swiss Army knife for interacting with Ethereum applications from the command line Usage: cast [OPTIONS] Commands: 4byte Get the function signatures for the given selector from [aliases: 4, 4b] 4byte-calldata Decode ABI-encoded calldata using [aliases: 4c, 4bc] 4byte-event Get the event signature for a given topic 0 from [aliases: 4e, 4be, topic0-event, t0e] abi-encode ABI encode the given function argument, excluding the selector [alias: ae] abi-encode-event ABI encode an event and its arguments to generate topics and data [alias: 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 [alias: adm] age Get the timestamp of a block [alias: a] artifact Generate an artifact file, that can be used to deploy a contract locally [alias: ar] b2e-payload Convert Beacon payload to execution payload [alias: b2e] bal Get the EIP-7928 block access list of a block [alias: block-access-list] balance Get the balance of an account in wei [alias: b] base-fee Get the basefee of a block [aliases: ba, fee, basefee] batch-mktx Build and sign a batch transaction (Tempo) [alias: bm] batch-send Sign and publish a batch transaction (Tempo) [alias: bs] bind Generate a rust binding from a given ABI [alias: bi] block Get information about a block [alias: bl] block-number Get the latest block number [alias: bn] call Perform a call on an account without publishing a transaction [alias: c] calldata ABI-encode a function with arguments [alias: cd] chain Get the symbolic name of the current chain chain-id Get the Ethereum chain ID [aliases: ci, cid] channel-id Compute a Tempo TIP-20 channel reserve channel ID classify Classify a raw transaction as Tempo T5 payment/general lane client Get the current client version [alias: cl] code Get the runtime bytecode of a contract [alias: co] codehash Get the codehash for an account codesize Get the runtime bytecode size of a contract [alias: cs] completions Generate shell completions script [alias: com] compute-address Compute the contract address from a given nonce and deployer address [alias: ca] concat-hex Concatenate hex strings [aliases: --concat-hex, ch] constructor-args Display constructor arguments used for the contract initialization [alias: cra] create2 Generate a deterministic contract address using CREATE2 [alias: c2] creation-code Download a contract creation code from Etherscan and RPC [alias: 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 [alias: da] erc20-token ERC20 token operations [alias: erc20] erc4626 ERC-4626 tokenized vault operations [alias: vault] estimate Estimate the gas cost of a transaction [alias: e] events Fetch and decode events from a transaction receipt or log filter. [alias: ev] find-block Get the block number closest to the provided timestamp [alias: f] format-bytes32-string Formats a string into bytes32 encoding [alias: --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 [alias: --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 [alias: 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 [alias: impl] index Compute the storage slot for an entry in a mapping [alias: 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 [alias: i] keccak Hash arbitrary data using Keccak-256 [aliases: k, keccak256] key-authorization Tempo key authorization RLP helpers [alias: key-auth] keychain Tempo keychain (access key) management [alias: kc] logs Get logs by signature or topic [alias: l] lookup-address Perform an ENS reverse lookup [alias: 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 [alias: m] namehash Calculate the ENS namehash of a name [aliases: na, nh] nonce Get the nonce for an account [alias: n] pad Pads hex data to a specified length [alias: pd] parse-bytes32-address Parses a checksummed address from bytes32 encoding. [alias: --parse-bytes32-address] parse-bytes32-string Parses a string from bytes32 encoding [alias: --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 [alias: pc] proof Generate a storage proof for a given storage slot [alias: pr] publish Publish a raw transaction to the network [alias: p] receipt Get the transaction receipt for a transaction [alias: re] receive-policy Account-level receive policy operations (Tempo) recover-authority Recovery an EIP-7702 authority from a Authorization JSON string [alias: decode-auth] resolve-name Perform an ENS lookup [alias: rn] rpc Perform a raw JSON-RPC request [alias: rp] run Runs a published transaction in a local environment and prints the trace [alias: r] safe Create, propose, and sign Safe transactions selectors Extracts function selectors and arguments from bytecode [alias: sel] send Sign and publish a transaction [alias: s] shl Perform a left shifting operation shr Perform a right shifting operation sig Get the selector for a function [alias: si] sig-event Generate event signatures from event string [alias: 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 [alias: st] storage-credits T7 storage credits operations (Tempo) [alias: sc] storage-root Get the storage root for an account [alias: sr] tempo Tempo wallet and zone operations tip20-token TIP-20 token operations (Tempo) [alias: tip20] tip403 TIP-403 policy registry operations (Tempo) 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-bytes-memory Convert hex data to the word-aligned layout of a Solidity `bytes memory` value [alias: tbm] 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 [alias: --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 [alias: t] tx-pool Inspect the TxPool of a node [alias: tp] upload-signature Upload the given signatures to [alias: ups] virtual-address TIP-1022 virtual address registry operations (Tempo) [alias: vaddr] wallet Wallet management utilities [alias: w] Options: -h, --help Print help (see a summary with '-h') -j, --threads Number of threads to use. Specifying 0 defaults to the number of logical cores [alias: --jobs] --profile The configuration profile to use -V, --version Print version Display options: --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