Calldata Decoder
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
Calldata Decoder takes raw transaction input data (the hex string sent to a contract) and converts it into a human-readable function call. Paste any calldata string and the tool extracts the function selector (first 4 bytes) and, if you provide a matching ABI, decodes the full function name and all parameter values with their correct types. Without an ABI, it still shows the selector and raw data, giving you a clear view of what's inside the calldata. This is essential for developers debugging transactions, security researchers analyzing malicious payloads, or anyone who needs to understand what a contract call is actually doing without executing it on-chain.
HOW TO USE
Simply paste your calldata (as a hex string starting with 0x) into the calldata input field. Optionally, paste a contract ABI JSON array to enable full decoding—the tool will use it to match the function selector and decode each parameter with its name and value. Click "decode" to see the results. The output shows the calldata length, the function selector, and—if an ABI is provided—the decoded function name and a list of parameters with their values. If no ABI is provided, the tool shows the raw data portion after the selector. Use the "clear" button to reset and start a new decode. No wallet connection or network interaction is required—the tool works entirely offline with the data you provide.
TECHNICAL MECHANISM
The tool uses ethers.js v5.7.2's Interface class to parse the calldata. It first validates that the input is a valid hex string starting with 0x. If an ABI is provided, it creates an ethers.utils.Interface from the JSON array and calls interface.parseTransaction({ data: calldata }) to decode the calldata into a structured object containing the function name and arguments. The arguments are filtered to remove duplicate indexed entries (numeric keys) and presented as key-value pairs. If no ABI is provided, the tool extracts the first 4 bytes (10 characters including 0x) as the function selector and displays the remaining data as raw hex. All values are converted to strings for display, with BigNumber values properly formatted.
WHAT IT CANNOT SEE
This tool cannot decode calldata without a matching ABI or function signature—if the ABI is missing or doesn't contain the called function, you will only see the selector and raw data. It cannot verify that the decoded output matches the actual on-chain execution—the ABI may be incorrect or the contract may behave differently. It cannot decode proxy or delegatecall patterns beyond the provided ABI—if you provide the proxy ABI instead of the implementation, decoding will fail or produce incorrect results. It cannot fetch on-chain state or transaction metadata—it only decodes the data you provide. It cannot detect or decode custom encoding schemes that deviate from the standard ABI specification.
PLEASE NOTE
Works exclusively with EVM-compatible calldata (hex strings starting with 0x). The tool is read-only and runs entirely client-side—no data is sent to any server. This is a free developer tool—use it for debugging and calldata analysis, but always verify critical results against a block explorer or your own node. The tool does not connect to the blockchain; all decoding is based on the input you provide.