monadLogs

Returns logs (that match a given filter) as soon as the block is Proposed.

The monadLogs subscription type emits logs that match a specified topic filter as soon as the block is Proposed and the node has speculatively executed the transactions. This provides earlier access to log data compared to regular logs subscriptions which wait for block finalization.

Supported Networks

Check the Chains page for details about product and chain support!

Parameters

An object with the following fields:

  • address (optional): string or array of strings Singular address or array of addresses. Only logs created from one of these addresses will be emitted.

  • topics: an array of topic specifiers (up to 4 topics allowed per address).

    • Each topic specifier is either null, a single string, or an array of strings.
    • For every non null topic, a log will be emitted when activity associated with that topic occurs.

To learn more about how log topics work, check out this tutorial.

Request

$// initiate websocket stream first
>wscat -c wss://eth-mainnet.g.alchemy.com/v2/demo
>
>// then call subscription
>{"jsonrpc":"2.0","id": 1, "method": "eth_subscribe", "params": ["logs", {"address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", "topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"]}]}

Result

result
1{
2 "jsonrpc":"2.0",
3 "method":"eth_subscription",
4 "params": {
5 "subscription":"0x4a8a4c0517381924f9838102c5a4dcb7",
6 "result":{
7 "blockId": "0x71ce47f39a1eb490354166f762d78bf6e2acaf80b24b4bcd756118d93ef81be0",
8 "commitState": "Proposed",
9 "address":"0x8320fe7702b96808f7bbc0d4a888ed1468216cfd",
10 "blockHash":"0x61cdb2a09ab99abf791d474f20c2ea89bf8de2923a2d42bb49944c8c993cbf04",
11 "blockNumber":"0x29e87",
12 "data":"0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003",
13 "logIndex":"0x0",
14 "topics":["0xd78a0cb8bb633d06981248b816e7bd33c2a35a6089241d099fa519e361cab902"],
15 "transactionHash":"0xe044554a0a55067caafd07f8020ab9f2af60bdfe337e395ecd84b4877a3d1ab4",
16 "transactionIndex":"0x0"
17 }
18 }
19}

Below you can find the explanation for individual properties of the response:

  • jsonrpc: The jsonrpc property specifies the version of the JSON-RPC protocol that is being used, which in this case is “2.0”.
  • method: The method property specifies the method that was called, which in this case is eth_subscription.
  • params: The params property contains the parameters of the method call. In this case, it contains a subscription property, which specifies the subscription identifier, and a result property, which contains the result of the subscription.
  • result: The result property contains information about a specific transaction on the Ethereum blockchain.
  • address: The address property specifies the address from which this log originated.
  • blockhash: The blockHash property specifies the hash of the block in which the transaction was included.
  • blockNumber: The blockNumber property specifies the number of the block in which the transaction was included. It is encoded as a hexadecimal string.
  • data: Contains one or more 32 Bytes non-indexed arguments of the log.
  • logIndex: The logIndex property specifies the index or position of the log entry within the block. It is encoded as a hexadecimal string.
  • topics: An array of 0 to 4 32 bytes topic hashes of indexed log arguments (up to 4 topics allowed per address).
  • transactionHash: The transactionHash property specifies the hash of the transaction.
  • transactionIndex: The transactionIndex property specifies the index or position of the transaction within the block. It is encoded as a hexadecimal string.