Skip to main content
Tempo API method that returns an array of logs matching a filter object. This is commonly used to track events emitted by smart contracts, such as TIP-20 token transfers.

Parameters

  • filterObject — the filter object:
    • fromBlock — (optional) block number (hex) or tag to start from
    • toBlock — (optional) block number (hex) or tag to end at
    • address — (optional) contract address or array of addresses
    • topics — (optional) array of topic filters

Response

  • result — array of log objects:
    • address — contract address that emitted the log
    • topics — array of indexed log parameters
    • data — non-indexed log parameters
    • blockNumber — block number containing the log
    • transactionHash — hash of the transaction that emitted the log
    • logIndex — position of the log in the block

eth_getLogs code examples

The following example retrieves Transfer events from the pathUSD token:
const ethers = require('ethers');
const NODE_URL = "CHAINSTACK_NODE_URL";
const provider = new ethers.JsonRpcProvider(NODE_URL);

// pathUSD token address
const PATHUSD = "0x20c0000000000000000000000000000000000000";
// Transfer event topic
const TRANSFER_TOPIC = ethers.id("Transfer(address,address,uint256)");

const getLogs = async () => {
    const logs = await provider.getLogs({
      address: PATHUSD,
      topics: [TRANSFER_TOPIC],
      fromBlock: "latest"
    });

    for (const log of logs) {
      console.log(`Transfer in tx: ${log.transactionHash}`);
    }
  };

getLogs();