ERC-8317: Contract Storage Layout Descriptor Format

This ERC is an attempt to standardize the description of any EVM contract’s storage layout metadata using a JSON format, to be used with transaction simulation and transaction assertion features by the hardware wallets that implement Clear Signing (ERC-7730).

Knowing the storage layout of the contract being interacted with allows the hardware wallet to trace a transaction locally and display information like:
"This transaction sets USDC::balanceOf[vitalik.eth] := 1000"

With smart contract accounts and transaction assertions, this assignment can be enforced as part of the transaction validation or post-op.

The format specified here is heavily based on the solc --storage-layout output format, with a number of additions aimed at non-solidity based contract layouts - Vyper, diamond storage, and namespaced storage.

2 Likes