Proxy Implementation Checker

Detect proxy type and find implementation address for upgradeable smart contracts


1. What are Proxy Contracts?

Proxy contracts enable smart contract upgradeability on Ethereum. The proxy contract holds the state and delegates calls to an implementation contract that contains the logic. By changing the implementation address, developers can upgrade contract logic while preserving state and address.

2. How does it work?

Detection Process

This tool checks proxy contracts by:

  1. Reading standard storage slots defined in EIP-1967 and EIP-1822
  2. Attempting to call implementation() function for custom proxies
  3. Checking for beacon proxy patterns
  4. Extracting admin addresses when available

Supported Proxy Types

EIP-1967 Transparent Proxy

Separates admin functions from user functions. Uses standard storage slots for implementation and admin addresses.

EIP-1967 UUPS (Universal Upgradeable Proxy Standard)

Upgrade logic is in the implementation contract. More gas efficient than transparent proxies.

EIP-1967 Beacon Proxy

Multiple proxies point to a single beacon contract that stores the implementation address. Allows upgrading many proxies at once.

EIP-1822 UUPS

Legacy UUPS standard with different storage slot. Predecessor to EIP-1967 UUPS.

3. Examples

Aave V3 Pool

0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2 - EIP-1967 Transparent Proxy

References