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.
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.
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.
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 defined | Contract Sources |
| What a read-only function returns | Read Contract |
| Which slot a variable uses and how to decode it | Storage Layout |
| Why an address points to an implementation, or how to load it | Proxy Storage |
| A namespace's root slot and struct layout | EIP-7201 Decoder |
