Smart Contract Testing Tool
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
Smart Contract Testing Tool lets you simulate read-only calls to any EVM contract without sending a transaction or paying gas. Enter a contract address, provide its ABI, and specify a function call with parameters—the tool encodes the call, simulates it on-chain using the provider, and decodes the result. It verifies that the function is view/pure, executes the call, and returns the decoded output in a human-readable format. This is essential for developers testing contract logic, verifying function outputs, or debugging interactions without the cost or risk of on-chain transactions.
HOW TO USE
Connect your EVM wallet (optional—the tool works read-only). Select the network from the dropdown. Enter the contract address (0x…42). Paste the contract ABI as a JSON array in the ABI field. In the test input field, enter the function call in the format "functionName(param1,param2)"—for example, "balance()" or "transfer(0x...,100)". Click "run test" to simulate the call. The tool validates the ABI, encodes the call, simulates it using provider.call(), and decodes the result. The results display the function name, parameters, state mutability, the encoded call data, the decoded result, and a pass/fail status. Use the "clear" button to reset all fields.
TECHNICAL MECHANISM
The tool uses ethers.js v5.7.2 via the BGWallet provider. It parses the provided ABI into an ethers.utils.Interface, then validates that the requested function exists and is view or pure (read-only). It parses the test call string to extract the function name and parameters, then converts the parameters to the appropriate types based on the ABI. The tool encodes the function call using interface.encodeFunctionData(name, params) and sends it as a call to the provider using provider.call({ to: address, data: encodedData }). The result is decoded using interface.decodeFunctionResult(name, result) and presented as a structured object. If the call reverts, the tool captures the revert reason and displays it as a failure.
WHAT IT CANNOT SEE
This tool cannot test state-changing functions without sending real transactions—only view and pure functions can be simulated. It cannot simulate complex interactions with multiple contracts or external dependencies—each test is a single call. It cannot deploy or execute transactions on-chain—it only reads current state. It cannot test functions that require msg.sender or other transaction context beyond the call. It cannot handle functions with nested or complex types beyond basic encoding. It cannot simulate historical state—only the current block state is used. The tool is limited by the accuracy of the provided ABI and the completeness of the simulation environment. A passing test does not guarantee the function works in all scenarios.
PLEASE NOTE
Works exclusively on EVM-compatible chains: Ethereum Mainnet, Goerli, Sepolia, Polygon, Arbitrum, and Optimism. Solana, Tron, Starknet, SUI, TON, Aptos, Bitcoin, Cosmos, and XRP are not supported. This is a read-only, free developer tool—use it for rapid testing and debugging of contract logic. For state-changing functions, you will need to use a wallet to send actual transactions. Always verify critical results with a block explorer or your own node.