Welcome to evm.slots!

A storage explorer for smart contracts on EVM chains. Peek into your contract's variables.

๐Ÿ’ก Inspect contract storage across multiple EVM chains and fetch on-chain values from RPC.

Why do we need a slot explorer? Well, not everything is exposed by the ABI. Slot explorers let you read internal state variables that are not accessible via contract methods.

Other storage explorers exist โ€” so why EVM.SLOTS?

FeatureEVM-Storage.codesEVMoleEVM.SLOTS (Ours)
All EVM chains supportโœ… (name-based search only)โŒ (limited)โœ… + add custom chains
Fetch on-chain slot valuesโŒโœ…โœ…
Variable nameโœ…โŒโœ…
Type, Slot & offset infoโœ…โœ…โœ…
Mapping slot explorerโŒโŒโœ…
Dynamic array explorerโŒโœ…โœ…
Proxy storage supportโŒโŒโœ… (transparent proxy)
Unverified contract supportโŒโœ… (by decoded bytecode only)โœ… (raw slots)

Sourcify API

Fetches verified contract metadata.

storage layout, compilation, and deployment metadata.

https://sourcify.dev/server/v2/contract/<chain>/<address>?fields=all

Raw Slot Reading

Reads storage from the EVM using the JSON-RPC method getStorageAt(address, slot)

Inspect internal states, even for unverified contracts, by querying the value stored at a slot.

Mapping Slots

Each key is hashed together with the base slot to derive its storage location.

slot = keccak256(key . slot)

Array Slots

Dynamic arrays store their length at the base slot, while elements are stored contiguously starting from a hashed location.

slot = keccak256(slot) + index x elementSize

Are you ready to get an insider view of a contract's storage?

Explore