TRY ONLINE

Decodes input data (calldata) for a function call. For example, if you have the calldata for a transfer function call, it will decode the address and amount parameters.
Signature
Data
Decoded
Decoded data will appear here

EXAMPLES

Decode input for a transfer function call, getting the address and the amount in return:
cast decode-calldata "transfer(address,uint256)" 0xa9059cbb000000000000000000000000e78388b4ce79068e89bf8aa7f218ef6b9ab0e9d0000000000000000000000000000000000000000000000000008a8e4b1a3d8000
0xE78388b4CE79068e89Bf8aA7f218eF6b9AB0e9d0 39000000000000000 [3.9e16]
Decode input for approve function call, getting the address and the amount in return:
cast decode-calldata "approve(address,uint256)" 0x095ea7b300000000000000000000000090c1f9220d90d3966fbee24045edd73e1d588ad500000000000000000000000000000000000000000000000000000000000003e8
0x90c1f9220d90d3966FbeE24045EDd73E1d588aD5 1000

DOCUMENTATION

cast decode-calldata


Decode ABI-encoded input data.

Similar to abi-decode --input, but function selector MUST be prefixed in calldata string

$ cast decode-calldata --help
Usage: cast decode-calldata [OPTIONS] <SIG> [CALLDATA]

Arguments:
  <SIG>
          The function signature in the format `<name>(<in-types>)(<out-types>)`

  [CALLDATA]
          The ABI-encoded calldata

Options:
  -f, --file <FILE>
          Load ABI-encoded calldata from a file instead

  -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]

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.