Contracts & chains

A contract is the root object in IMAA. Everything else — monitor targets, alert rules, alert events — hangs off it. Each contract is pinned to a single chain and identified by its on-chain address.

Supported chains

ChainChain ID
Ethereum1
Optimism10
Polygon137
Base8453
Arbitrum42161

More chains are on the roadmap. If a specific EVM-compatible chain is blocking you, get in touch.

How contract inspection works

When you add a contract, IMAA needs its ABI in order to decode events and function calls. The fetch order is:

  1. Sourcify — checked first because it stores verified source from the original deployer and is fully open.
  2. Etherscan V2 (multi-chain) — fallback for chains and contracts that aren't in Sourcify yet.

If neither source has the ABI, the contract stays in pending until you upload the ABI manually or verify the source.

Contract states

  • pending — created but not yet verified or inspected. No polling happens here.
  • monitoring — ABI loaded, monitor targets active, polling on schedule.
  • paused — manually paused from the UI or API. No polling, no alerts.
  • error — automatically set after 5 consecutive poll failures (RPC errors, decoder failures, or rate limits that didn't recover). Resume from the contract detail page once the underlying issue is fixed.

You can move a contract through these states from the contract detail page or via the public API.