Address & Contract Analysis

Inspect contract source, read-only methods, storage layout, proxies, and namespaced storage from one address.

Enter a contract address to inspect its source code, read public state, or locate a variable in storage. You can also analyze proxy contracts and namespaced storage here.

If you only need a function or variable, open the relevant page directly. To follow the path from code to state, use the order below.

Address analysis in 4 steps

1. Confirm where the code comes from

Open Sources to inspect the contract files. For proxy contracts, the implementation contract is shown; once loaded, you can inspect its source and storage layout.

Open Contract Sources

2. Read public state

Open Read Contract and call view functions from the ABI. For example, use owner() to check the administrator or balanceOf(address) to query a balance. This does not send a transaction.

Use Read Contract

3. Find where variables are stored

Open Storage Layout to inspect each variable's slot, byte range, and type. Mappings and arrays require a key or index. You can also use a layout from another address or from JSON to interpret the current address's state.

Open Storage Layout

4. Handle proxies and namespaced storage

A proxy address stores the state, while the code and layout usually come from its implementation contract. Use Proxy Storage to load the implementation. When you encounter @custom:storage-location, use EIP-7201 Decoder to inspect that namespace's layout.

Browse by question

What do you need to know?Start here
Which files a contract has and where functions are definedContract Sources
What a read-only function returnsRead Contract
Which slot a variable uses and how to decode itStorage Layout
Why an address points to an implementation, or how to load itProxy Storage
A namespace's root slot and struct layoutEIP-7201 Decoder