Smart Contract Upgrade Explorer
Is this smart contract upgradeable, who controls upgrades, and what changed?
Try an example: EIP-1167 minimal proxy clone (offline) · Dispatcher with upgradeTo (offline)
How it works
Reads a contract straight from the chain and identifies its proxy pattern (EIP-1967 transparent, UUPS, beacon, EIP-1167 clone, Safe proxy, legacy ZeppelinOS, EIP-7702 delegated account), the current implementation, who controls upgrades (single key, Safe multisig with threshold, timelock with delay, ProxyAdmin and its owner), the Upgraded/AdminChanged event history, and whether the code is verified on Sourcify. Paste raw bytecode for an offline scan.
- Storage slots read with eth_getStorageAt: EIP-1967 implementation/admin/beacon (keccak256("eip1967.proxy.*") − 1), EIP-1822 PROXIABLE, the legacy ZeppelinOS implementation/admin slots (keccak256("org.zeppelinos.proxy.*")), and slot 0 for Safe proxies.
- Bytecode scan (PUSH data skipped): EIP-1167 clone pattern, EIP-7702 delegation designator (0xef0100…), DELEGATECALL/SELFDESTRUCT opcodes, dispatcher selectors (PUSH4 followed by EQ) and EIP-1967 slot constants.
- Classification: beacon slot set → beacon proxy; admin slot set → transparent; implementation slot set and implementation exposes proxiableUUID() → UUPS; Safe proxy if slot 0 holds a contract and masterCopy() is dispatched.
- Controller: EOA (single key), Safe (getThreshold/getOwners), TimelockController (getMinDelay), or ProxyAdmin (owner() is analysed one level deep).
- History: Upgraded / AdminChanged / BeaconUpgraded logs of the proxy via eth_getLogs; public nodes may limit the range, which is reported.
For scripts and AI agents
- JSON API:
POST https://contractupgradeexplorer.usefulweb.site/api/v1/calculate(same calculation as this page) - Interface description: OpenAPI 3.1 · AI guide: llms.txt
- MCP server (Streamable HTTP):
https://contractupgradeexplorer.usefulweb.site/mcp· tool namecontract_upgrade_explorer
Example request
curl -s -X POST https://contractupgradeexplorer.usefulweb.site/api/v1/calculate \
-H 'content-type: application/json' \
-d '{"mode":"bytecode","chain":"ethereum","bytecode":"0x363d3d373d3d3d363d73bebebebebebebebebebebebebebebebebebebebe5af43d82803e903d91602b57fd5bf3"}'Related tools
- Transaction Decoder – See what an EVM transaction actually did: call, events, token transfers, fee, finality.
- Explorer of Everything – Search transactions, contracts, domains, packages, advisories, MCP servers and websites in one box.