Table · StrataPlanned

Multicall3, Permit2 and EntryPoint Addresses by Chain

Is Multicall3, Permit2 or an ERC-4337 EntryPoint deployed on a given chain, at its usual address and with the expected code?

Where Multicall3, Permit2, the ERC-4337 EntryPoints, Safe and the CREATE2 deployer are deployed, chain by chain, with their code checked.

ShareEmail itvoltfincrypto.com/apps/multicall3-permit2-entrypoint-addresses
Blueprint

What the table will hold.

The table as it will open in Strata. Each figure is named here and arrives with its receipt; until its data is published, its place stays empty.

One row One row per canonical contract per chain, from the latest daily checkSorted by Contract, lowest first

ContractWhat it doesChainAddressDeployedCode matchesDeployed onMethodCheckedReceipt
Contract contract_name Text
The contract's name and version, such as Multicall3 or EntryPoint v0.7.
What it does purpose Text
One line on what developers use the contract for.
Chain chain Chain
The chain where the address was checked.
Address address Address
The address checked: the usual one, or the chain's own where it differs.
Deployed deployed Text
Yes when code exists at the address at the latest block, no when it is empty.
Code matches code_match Text
Whether the code hash equals the original deployment's.
Deployed on deployed_on Date
The day of the creation transaction, or genesis for predeploys.
Method deploy_method Text
Presigned transaction, CREATE2 through a deployer, genesis or predeploy.
Checked checked_at Date
When the reads behind the row ran.
Receipt receipt Link
The calls, block and code hashes behind the row.

Filter by Contract, Chain, Deployed.

About

What it answers, and for whom.

A handful of contracts sit at the same address on nearly every EVM chain, and developers rely on them: Multicall3 to batch reads, Permit2 for token approvals, the ERC-4337 EntryPoints for smart accounts, Safe's contracts for multisigs and the CREATE2 deployer that makes the shared address possible. Before using one on a new chain, the question is whether it is really there.

This table answers that for each covered chain. It calls the chain to see whether code exists at each contract's usual address and compares the code's hash with the original deployment, so a missing contract, or different code at the same address, stands out. Each row shows when the contract was deployed and links to the reads that confirm it.

Method

How it will be measured.

Every figure will be read at a block, kept with its source and its exact read, and open a receipt anyone can re-check.

How receipts work →
  1. Presence is read with eth_getCode at each contract's usual address at the latest block; empty code means the contract is not deployed there.
  2. The code hash is compared with the hash of the original deployment, so different code at the same address is flagged rather than trusted.
  3. Deployment block and deployer come from the contract's creation transaction, found by searching for the first block with code at that address.
  4. Contracts that a chain places in its genesis state or as predeploys are marked as such, since they have no creation transaction.

The data it needs

Read from chain state and history

  • chain_activity_dailyTo buildChain activity by dayTransactions, active sending addresses, new addresses, contracts created and gas used on each chain per day, counted from blocks and transactions.
  • account_abstraction_dailyTo buildSmart accounts and EIP-7702ERC-4337 UserOperations, bundlers and paymasters, and EIP-7702 delegations per chain per day.
  • address_labelsTo buildAddress labelsLabels for known addresses: exchanges, bridges, protocols, funds, treasuries, sanctioned addresses and known attackers.
  • eth_getCode at each contract's usual address on every covered chain
  • The code hash of each original deployment, for comparison
  • The creation transaction of each contract: block, deployer and method
  • Chain documentation for predeploys and contracts placed in genesis
Questions

Questions people ask.

What is Multicall3?

A contract that bundles many read calls into one, so apps and scripts can fetch balances or prices in a single request. It is deployed at the same address on most EVM chains, which is why tools can call it without any per-chain setup.

Why can one address hold the same contract on every chain?

With CREATE2, a contract's address depends only on the deployer, a salt and the code. Using the same deployer contract and salt everywhere gives the same address, and deploying with a presigned transaction from a fresh account does the same for the deployer itself.

What if the code at the usual address is different?

Then it is not the contract you expect, and it should not be trusted with funds until its source is verified. On chains with different opcodes or address rules, a contract may have been deployed at another address instead, and the table records that address with its source.

Which EntryPoint versions are listed?

Each ERC-4337 EntryPoint version in common use is listed separately, since each is its own contract at its own address. Smart accounts are built for one version, and the ERC-4337 dashboard shows which versions carry the most UserOperations.

What does Permit2 do?

Permit2 is a token approval contract from Uniswap Labs. Users approve it once per token, and apps then ask for signed, time-limited permission to move tokens through it. It sits at the same address on most chains where it is deployed.

CREATE2
An EVM opcode that deploys a contract to an address computed from the deployer, a salt and the code, so the address is known in advance.
Code hash
The hash of a contract's deployed bytecode; two contracts with the same code hash run the same code.
Predeploy
A contract a chain places in its genesis state at a fixed address, with no creation transaction.

Build Multicall3, Permit2 and EntryPoint Addresses by Chain on verified data.

Start free in Voltfin Studio: boards, tables and reports where every number opens its receipt. Tell us which data you need first and we will build it next.