Upgrade Safety Validator (Storage Layout Compatibility)
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
Upgrade Safety Validator is a specialized blockchain diagnostic tool that verifies storage layout compatibility for EIP-1967 proxy contracts. It reads contract storage via eth_getStorageAt across the admin slot (0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103), implementation slot (0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc), and beacon slot (0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50). It retrieves contract bytecode via eth_getCode to verify proxy pattern conformance and detect proxy type classification (transparent, UUPS, or beacon). The tool also validates that both proxy and implementation contracts contain deployed code, ensures implementation addresses are not zero, and confirms the proxy follows EIP-1967 standards. It cross-references the detected pattern against known proxy archetypes to determine upgrade safety readiness.
HOW TO USE
Paste the proxy contract address into the input field and optionally provide a known implementation address override. Select the target EVM network from the dropdown. Click "Check storage compatibility" to initiate the validation. The tool will query the selected chain's RPC endpoint, read the relevant storage slots, fetch bytecode for both proxy and implementation, and present a comprehensive results dashboard. The dashboard displays the proxy address, admin address, implementation address, beacon address (if present), detected proxy type, code presence status for both contracts, and a final compatibility verdict. All results are read-only and require no wallet signature or transaction submission.
TECHNICAL NOTE: MULTI-SLOT RESOLUTION AND PATTERN CLASSIFICATION
The tool implements a three-slot storage resolution strategy that reads admin, implementation, and beacon slots in parallel to establish the proxy's operational pattern. It then performs bytecode presence verification on both the proxy and its implementation. The proxy type classification uses a decision tree: if the beacon slot is non-zero, the tool classifies as a Beacon Proxy; if only the implementation slot is non-zero and the proxy contains minimal fallback code, it classifies as a Transparent or UUPS proxy. The tool then cross-validates by reading the proxy's code and checking for the standard EIP-1967 fallback function patterns. This multi-layer verification prevents misclassification caused by non-standard storage layouts or partial implementations. The tool also performs a basic compatibility check by ensuring both proxy and implementation have code and that the implementation is reachable through the proxy's storage slots, confirming upgrade safety from a storage perspective.
WHAT IT CANNOT SEE
The tool cannot detect storage collisions in unverified contracts where the source code is not publicly available. It cannot analyze storage layouts that use inline assembly, unstructured storage patterns, or custom storage mappings that deviate from Solidity's default layout. It cannot predict runtime storage behavior influenced by delegatecall chains that call multiple different implementations with overlapping storage layouts. It cannot verify storage compatibility for non-EVM chains or contracts that use custom proxy patterns outside EIP-1967. The tool cannot detect logical errors in upgrade functions (e.g., failed initialization, missing reinitializer protection) that pass the storage validation but break contract logic upon upgrade. It cannot read private or internal storage variables that are not exposed through the standard proxy slots.
PLEASE NOTE
This tool is designed exclusively for EVM-compatible chains (Ethereum, Polygon, BSC, Arbitrum, Optimism, Avalanche C-Chain, etc.). It does not support non-EVM blockchains like Bitcoin, Solana, Cosmos, or Tron. The validation is read-only and does not modify any contract state or submit transactions. All queries depend on the underlying RPC provider's availability and archival data. Manual implementation address overrides skip the automatic detection and should only be used when the proxy's implementation slot is known to be missing or corrupted.