# Multicall3, Permit2 and EntryPoint Addresses by Chain

> Multicall3, Permit2, ERC-4337 EntryPoint, Safe and CREATE2 deployer addresses on every covered EVM chain, with deployment and code checked against the original.

Markdown copy of https://voltfincrypto.com/apps/multicall3-permit2-entrypoint-addresses

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

- Kind: Table in Voltfin Strata
- Topic: [Ethereum](https://voltfincrypto.com/topics/ethereum)
- Chains: Multi-chain, Ethereum, Base, Arbitrum, OP Mainnet, BNB Chain, Polygon, Avalanche, HyperEVM, Monad, Plasma, Berachain, Sonic, Unichain, Linea, Scroll, ZKsync, Mantle, Blast, Celo, Gnosis, World Chain, Ink, Katana
- Status: Planned. The data is not published yet, so this page states no figure; each figure will open its receipt when it is.

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.

## Blueprint

One row: One row per canonical contract per chain, from the latest daily check

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

## How it will be measured

- 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.
- The code hash is compared with the hash of the original deployment, so different code at the same address is flagged rather than trusted.
- Deployment block and deployer come from the contract's creation transaction, found by searching for the first block with code at that address.
- Contracts that a chain places in its genesis state or as predeploys are marked as such, since they have no creation transaction.

## Data it needs

- `chain_activity_daily` (to build): Transactions, active sending addresses, new addresses, contracts created and gas used on each chain per day, counted from blocks and transactions.
- `account_abstraction_daily` (to build): ERC-4337 UserOperations, bundlers and paymasters, and EIP-7702 delegations per chain per day.
- `address_labels` (to build): Labels for known addresses: exchanges, bridges, protocols, funds, treasuries, sanctioned addresses and known attackers.
- Source: eth_getCode at each contract's usual address on every covered chain
- Source: The code hash of each original deployment, for comparison
- Source: The creation transaction of each contract: block, deployer and method
- Source: Chain documentation for predeploys and contracts placed in genesis

## Questions

### 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.

## Glossary

- **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.

## Related apps

- [ERC-4337 Account Abstraction: UserOps and Paymasters](https://voltfincrypto.com/apps/erc-4337-account-abstraction)
- [EVM Chain List: Chain IDs, Native Tokens and RPC Support](https://voltfincrypto.com/apps/evm-chain-list)
- [Safe Multisig Checker: Owners, Threshold and Modules](https://voltfincrypto.com/apps/safe-multisig-checker)
- [Smart Contract Upgrade Tracker: Proxy and Owner Changes](https://voltfincrypto.com/apps/smart-contract-upgrade-tracker)
- [Token Approval Checker: Open Allowances by Wallet](https://voltfincrypto.com/apps/token-approval-checker)
- [Ethereum Gas Tracker](https://voltfincrypto.com/apps/ethereum-gas-tracker)

Build it in Voltfin Studio: https://app.voltfincrypto.com/signup?next=%2F
