Introducing evm.storage — Increasing transparency and accessibility for EVM contracts

Dor
smlXL
Published in
3 min readJun 8, 2023

--

We’re excited to announce evm.storage, our latest product aimed at increasing transparency into the EVM.

At smlXL, our mission is to make public computers more useful, accessible and transparent. We believe that blockchains are important infrastructure. As society’s reliance on computing grows, having computers and software that can be operated, maintained, run and accessed by the public is increasingly important.

Today we’re sharing evm.storage, our latest contribution to making the EVM and its data more transparent, starting at its foundation: storage. Though blockchains remain complex systems, evm.storage is our first step toward comprehensible public infrastructure. We have a full roadmap for evm.storage and it is the first of several upcoming products, all powered by our instrumented EVM (iEVM), simulation and program analysis suite.

We hope you explore evm.storage and provide feedback on how we can further advance our mission and what areas you’d like visibility into. Progress requires collaboration; join us! And if you have any project that does not seem possible/feasible by any other blockchain data provider or not feasible to do on-chain, please reach out to us. We might be able to help — we are starting to onboard select customers.

About evm.storage

evm.storage is designed help you dive deep into the storage of any contract on the Ethereum blockchain:

evm.storage contract page walkthrough
  1. Explore contract storage and state at any block height.
  2. View variables as they’re defined in the contract and values presented according to their type for verified contracts, with support for solc versions as low as 0.3.6.
  3. Explore deep, complex storage structures like nested mappings, arrays, and structs.
  4. Review the storage history for variables that occupy a single storage slot, and some others (e.g. entries in a mapping), For instance, you’ll be able to see all changes to your balance for a given token, including corresponding transaction hashes.
evm.storage USDC balances mappings walkthrough

Our Alpha release has some caveats:

  1. Limited functionality for unverified contracts: The tool currently works best for verified contracts. For unverified contracts, we offer a raw presentation treating each slot as a variable. For now this includes unverified contracts even when their bytecode matches a verified contract, as well as those deployed by a verified factory.
  2. Limited support for contracts with Yul/inline assembly: At present, storage slots that are accessed exclusively via inline assembly will not be included in our storage map/table. This will be fixed shortly.
  3. Lots of moving parts: We will update things regularly and favor velocity of iteration over reliability. We’re still treating it as an alpha. We are also currently running on our staging machines, as we await our servers in our new DC.

We invite you to report bugs and offer other feedback via our bug report feature, or by joining our Telegram group. We’re also planning to open-source the frontend so that users can contribute directly.

Our Roadmap

We are actively working on these features for evm.storage:

  1. Storage layouts for unverified contracts: We are currently showing raw storage slots for unverified contracts. We’re working on enriching coverage through both static and dynamic analysis.
  2. Transaction tracer and view: Transaction view and detailed transaction traces, including rich information around SHA3/storage operations
  3. Richer information on contracts: We’re planning to enhance the contract summary with richer information that’s stored on-chain like balance, ABI, constants/immutables, and more.
  4. Contract interaction and transaction simulation: We want to empower users to interact with contracts and simulate transactions.
  5. Other EVM chains: Avalanche is next in line with Arbitrum currently planned after.
  6. Filtering, sorting and search: We’ll augment the experience with features that you’re excited about, such as search/sort/filter features for tables.

Shoutouts:

We would like to thank Yoav Weiss, Dan Boneh, Arjun Rao, Kevin Britz, Cece Z., Patricio Palladino, Sam Ragsdale and maurelian.eth for their early impressions and feedback.

--

--