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

Calldata Decoder

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

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.

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.