> **Can't find what you're looking for?** Use `search_docs` on the docs MCP server at `https://www.getfoundry.sh/api/mcp` to find what you need.
>
> **Have feedback?** Use `submit_feedback` on the same MCP server.

*Generated from `cast events --help`; see [CLI reference versions](/reference/versions). Regenerate this page instead of editing it directly.*

## cast events

Fetch and decode events from a transaction receipt or log filter.

Examples:

* cast events $TX\_HASH
* cast events --tx-hash $TX\_HASH
* cast events --address $TOKEN --from-block 21000000 --to-block latest
* cast events --address $TOKEN "Transfer(address indexed,address
  indexed,uint256)"

A lone 32-byte positional value is treated as a transaction hash. Qualify a raw
topic with
an address, block range, additional topic, or query size.

:::terminal
```bash
$ cast events --help
```

```txt
Usage: cast events [OPTIONS] <--tx-hash <TX_HASH>|--address <ADDRESS>|--from-block <FROM_BLOCK>|--to-block <TO_BLOCK>|SIG_OR_TOPIC> [TOPICS_OR_ARGS]...

Arguments:
  [SIG_OR_TOPIC]
          The signature of the event to filter logs by which will be converted
          to the first topic or a topic to filter on

  [TOPICS_OR_ARGS]...
          If used with a signature, the indexed fields of the event to filter
          by. Otherwise, the remaining topics of the filter

Options:
      --tx-hash <TX_HASH>
          Get events emitted by this transaction

      --from-block <FROM_BLOCK>
          The block height to start query at.

          Can also be the tags earliest, finalized, safe, latest, or pending.

      --to-block <TO_BLOCK>
          The block height to stop query at.

          Can also be the tags earliest, finalized, safe, latest, or pending.

      --address <ADDRESS>
          The contract address to filter on

      --query-size <BLOCKS>
          Split the query into chunks of this many blocks to work around
          provider range/result limits.

          When omitted, the range is queried in a single request. Pass a value
          (e.g. `10000`) to fetch the logs in `query-size`-block chunks instead.

  -e, --etherscan-api-key <KEY>
          The Etherscan (or equivalent) API key

          [env: ETHERSCAN_API_KEY=]

  -c, --chain <CHAIN>
          The chain name or EIP-155 chain ID

          [env: CHAIN=]

  -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

          [alias: --jobs]

      --profile <PROFILE>
          The configuration profile to use

Rpc options:
  -r, --rpc-url <URL>
          The RPC endpoint

          [alias: --fork-url]

  -k, --insecure
          Allow insecure RPC connections (accept invalid HTTPS certificates).

          When the provider's inner runtime transport variant is HTTP, this
          configures the reqwest client to accept invalid certificates.

      --rpc-timeout <RPC_TIMEOUT>
          Timeout for the RPC request in seconds.

          The specified timeout will be used to override the default timeout for
          RPC requests.

          Default value: 45

          [env: ETH_RPC_TIMEOUT=]

      --no-proxy
          Disable automatic proxy detection.

          Use this in sandboxed environments (e.g., Cursor IDE sandbox, macOS
          App Sandbox) where system proxy detection causes crashes. When
          enabled, HTTP_PROXY/HTTPS_PROXY environment variables and system proxy
          settings will be ignored.

      --compute-units-per-second <CUPS>
          Sets the number of assumed available compute units per second for this
          provider.

          default value: 330

          See also
          [https://docs.alchemy.com/reference/compute-units#what-are-cups-compute-units-per-second](https://docs.alchemy.com/reference/compute-units#what-are-cups-compute-units-per-second)

      --no-rpc-rate-limit
          Disables rate limiting for this node's provider.

          See also
          [https://docs.alchemy.com/reference/compute-units#what-are-cups-compute-units-per-second](https://docs.alchemy.com/reference/compute-units#what-are-cups-compute-units-per-second)

          [alias: --no-rate-limit]

      --flashbots
          Use the Flashbots RPC URL with fast mode
          ([https://rpc.flashbots.net/fast](https://rpc.flashbots.net/fast)).

          This shares the transaction privately with all registered builders.

          See:
          [https://docs.flashbots.net/flashbots-protect/quick-start#faster-transactions](https://docs.flashbots.net/flashbots-protect/quick-start#faster-transactions)

      --jwt-secret <JWT_SECRET>
          JWT Secret for the RPC endpoint.

          The JWT secret will be used to create a JWT for an RPC. For example,
          the following can be used to simulate a CL `engine_forkchoiceUpdated`
          call:

          cast rpc --jwt-secret <JWT_SECRET> engine_forkchoiceUpdatedV2
          '["0x6bb38c26db65749ab6e472080a3d20a2f35776494e72016d1e339593f21c59bc",
          "0x6bb38c26db65749ab6e472080a3d20a2f35776494e72016d1e339593f21c59bc",
          "0x6bb38c26db65749ab6e472080a3d20a2f35776494e72016d1e339593f21c59bc"]'

          [env: ETH_RPC_JWT_SECRET=]

      --rpc-headers <RPC_HEADERS>
          Specify custom headers for RPC requests

          [env: ETH_RPC_HEADERS=]

      --curl
          Print the equivalent curl command instead of making the RPC request

      --with-local-artifacts
          Use current project artifacts for event decoding.

          Only supported when querying by transaction hash.

          [alias: --la]

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.
```
:::
