Subscribe to and filter smart contract events to react to on-chain activity in real-time.

Prerequisites

You need Web3 libraries configured with Para authentication.

Setup Web3 Libraries

Watch Contract Events

import { ethers } from "ethers";

const ERC20_ABI = [
  "event Transfer(address indexed from, address indexed to, uint256 value)"
];

async function watchTransferEvents(
  provider: ethers.Provider,
  tokenAddress: string
) {
  const contract = new ethers.Contract(
    tokenAddress,
    ERC20_ABI,
    provider
  );

  contract.on("Transfer", (from, to, value, event) => {
    console.log(`Transfer Event: ${from} -> ${to}, Value: ${ethers.formatUnits(value, 18)}`);
    console.log("Event details:", event);
  });

  console.log(`Listening for Transfer events on ${tokenAddress}...`);
}

async function stopWatchingTransferEvents(
  provider: ethers.Provider,
  tokenAddress: string
) {
  const contract = new ethers.Contract(
    tokenAddress,
    ERC20_ABI,
    provider
  );
  contract.off("Transfer");
  console.log(`Stopped listening for Transfer events on ${tokenAddress}.`);
}

Next Steps