Contract State Snapshot Exporter
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
Contract State Snapshot Exporter is an analytics-focused tool that exports the storage state of a contract by reading specified storage slots via eth_getStorageAt. It takes a contract address and a list of storage slot definitions from the user, then reads each slot's current value on the selected chain. The tool fetches the contract bytecode via eth_getCode to verify deployment, reads the current block number for context, and displays each slot's raw hex value along with a decoded uint256 representation when applicable. The snapshot can be exported as a JSON file containing the contract address, block number, chain ID, and all slot values with labels. This enables developers and auditors to capture and analyze contract state at a specific block height for debugging, verification, or forensic purposes.
HOW TO USE
Connect your wallet to the target EVM chain. Enter the contract address into the input field. Define the storage slots to read, one per line, in the format "slot_hex[:label]" (e.g., "0x0:balance" or "0x1:totalSupply"). Click "Take snapshot" to read the current state. The tool will display a summary including the contract address, block number, bytecode preview, and a list of each slot with its label, raw hex value, and decoded uint256 value (where applicable). Click "Export as JSON" to download the snapshot as a JSON file for later analysis or sharing.
TECHNICAL NOTE: STORAGE SLOT READING AND DECODING
The tool uses eth_getStorageAt to read the value of each specified storage slot at the current block height. Each slot is padded to 32 bytes using ethers.utils.hexZeroPad to ensure correct slot addressing. The tool also attempts to decode the slot value as a uint256 using ethers.BigNumber.from, providing a human-readable decimal representation alongside the raw hex. The contract's bytecode is fetched via eth_getCode to confirm the contract exists and is deployed. The tool captures the current block number and chain ID as part of the snapshot metadata, enabling precise state reconstruction.
WHAT IT CANNOT SEE
The tool cannot export state from contracts with non-standard storage layouts that deviate from Solidity's default slot allocation. It is limited to the accuracy of the provided storage slot definitions; incorrect slots will produce incorrect data. It cannot detect private or internal state variables without the user providing the correct slot numbers. The tool is limited by RPC provider rate limits; reading many slots may be slow or fail. It cannot export state from contracts that have been self-destructed or are not deployed. It cannot handle large numbers of storage slots efficiently, as each slot requires a separate RPC call. The tool cannot export state for non-EVM chains. It does not decode complex types like structs, arrays, or mappings without additional user input.
PLEASE NOTE
This tool is designed exclusively for EVM-compatible chains (Ethereum, Polygon, BNB Chain, Arbitrum, Optimism, Avalanche C-Chain, etc.). It does not support non-EVM blockchains. The tool is read-only and does not modify any state. Storage slot values are read from the current block height; specify the block number manually if you need a historical snapshot. The tool provides no warranty that the exported state is complete or accurate; users are responsible for verifying slot definitions and values.