Skip to main content

Ultimate Verification

This is the highest level of verification available. You read the smart contract directly from the Base blockchain, bypassing Immutable’s API entirely. If you trust Ethereum, you can verify your audit trail with zero trust in Immutable.

What You Need

  1. An anchor’s tx_hash (from the API, a compliance report, or a public lookup)
  2. The merkle_root you want to verify
  3. Access to a Base RPC endpoint (public endpoints available) or Basescan

Method 1: Basescan (No Code)

1

Open the transaction on Basescan

Navigate to the explorer URL:
2

Find the event log

Click the Logs tab in the transaction details. Look for the Anchored event:
3

Compare the Merkle root

The merkleRoot in Topic 1 (without the 0x prefix) should exactly match the merkle_root from the anchor record:

Method 2: ethers.js (Programmatic)

Read the contract’s event logs directly from a Base node:

Method 3: Python (web3.py)

Method 4: cURL + Cast (Foundry)

If you have Foundry installed, you can use cast to read transaction logs from the command line:

Full End-to-End Verification

Combine the API and on-chain verification for complete trust-minimized verification:
This verification flow requires only a public Base RPC endpoint. No Immutable account, API key, or special access is needed for the on-chain portion. The only thing you need from Immutable is the tx_hash and merkle_root — which can come from a compliance report, not just the API.
Public RPC endpoints may have rate limits. For production verification scripts, consider using a dedicated RPC provider like Alchemy or Infura with Base support.