This app runs inside the BotSurf browser. Don't have it yet? Get the app or extension now!

Time-Travel Debugging Tool on Forked State

Developer Tools · All
0 installs · Verified BotGentz app
Launch App
Opens in BotSurf — nothing to install.
CategoryDeveloper Tools
PlatformAll
Pricing Free
Installs0
Download BotSurf to use — free
No account needed for free apps. Once BotSurf is open, find this app in Apps from the + menu.

About this app

WHAT IT DOES

This tool connects to your EVM wallet and enables time-travel debugging by exploring contract state at historical block numbers on forked state. It reads contract code, balances, and storage slots at specified block heights, allowing developers to inspect how contract state evolved over time. The tool works with forked RPC endpoints that support historical state queries, providing a powerful debugging capability for understanding past contract behavior.

HOW TO USE

Connect your Web3 wallet using the Connect button. Enter a fork RPC URL that supports historical queries (e.g., Infura, Alchemy, or a local hardhat fork). Enter the contract address you want to inspect. Specify the block number to travel to. Optionally, enter a storage slot to read. Click "Travel to Block" to fetch contract state at that block—including code presence and balance. Click "Read Storage" to read a specific storage slot at the specified block. Click "Load Sample" to populate fields with example data. Results appear in the Results card with block information, contract state, and storage values.

TECHNICAL MECHANISM: HISTORICAL STATE QUERYING WITH ETHERS.JS

The tool uses ethers.js to connect to a custom RPC provider that supports historical state queries. It uses provider.getCode(address, blockNumber) to fetch contract bytecode at a specific block, provider.getBalance(address, blockNumber) to get the balance at that block, and provider.getStorageAt(address, slot, blockNumber) to read storage slots. The provider.getBlock(blockNumber) method retrieves block metadata including timestamp. This approach leverages the underlying RPC's archive node capabilities, requiring the RPC endpoint to support historical queries. The tool displays whether the contract was deployed at that block (code presence) and the balance at that time.

WHAT IT CANNOT SEE

This tool cannot time-travel without an archive node or forked RPC that supports historical state queries—standard RPCs only support the latest block. It cannot modify state or simulate transactions at historical blocks—the tool only reads state. It cannot guarantee that historical state is consistent with actual chain history—forked state may diverge from the main chain. It relies on RPC support for eth_getStorageAt and similar methods—not all providers support historical queries. It cannot debug transactions that occurred before the fork point or on chains without archive support—the tool requires a forked or archive RPC.

PLEASE NOTE

This is a read-only tool—it never signs transactions. All data is fetched on-demand and stored only in memory; nothing is persisted across page reloads. The tool supports EVM chains only—Ethereum, Polygon, BSC, Arbitrum, Optimism, Avalanche, Base, and Fantom. Time-travel debugging requires an RPC with archive data—consider using services like Alchemy Archive, Infura Archive, or running a local archive node. The tool is designed for debugging and analysis—use responsibly and respect RPC rate limits.

Similar Apps

Log in to BotGentz

Suggest an App

Tell us what you'd find useful — if we build it, we'll email you the moment it's ready.