ABI Decoding Playground 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
ABI Decoding Playground Tool takes raw transaction calldata and a contract ABI (Application Binary Interface) provided by you, then parses the calldata into a structured, human-readable format. It extracts the function signature (the first 4 bytes of the calldata), matches it against the ABI's function selectors, and then decodes each parameter according to its type. The tool displays function names, parameter names, their Solidity types, and the decoded values. It handles all fundamental ABI types including uint, int, address, bool, bytes, string, and fixed-length arrays. For complex types like tuples and dynamic arrays, the tool recursively decodes nested structures, presenting them as expandable trees so you can inspect every level of nested data. The tool also supports overloaded function names by using the full signature, including parameter types, to resolve ambiguity. You can paste raw calldata hex strings (with or without 0x prefix) and entire ABIs in JSON format. Additionally, you can input just a function signature string, and the tool will generate the correct ABI entry for that function on the fly, saving you from providing a full contract ABI for simple decoding tasks.
HOW TO USE
Start by pasting your contract ABI as a JSON array into the ABI input field. If you only have a function signature, you can enter it manually as a string like "transfer(address,uint256)" and the tool will generate the necessary selector. Next, paste your calldata hex string into the calldata field. Click the "Decode" button. The interface immediately displays the matched function, each parameter with its decoded value, and the original encoded data segments highlighted alongside the decoded output. For array parameters, the tool shows the length prefix and each element in order. For bytes and string parameters, it displays both the hex representation and the UTF-8 decoded text where valid. You can also paste a transaction hash and the tool will fetch the calldata for you, though this requires the transaction to be available on an RPC endpoint you supply. The tool maintains a history of your recent ABIs and decodings locally, so you can quickly switch between different contract interfaces. The history is stored in your browser's local storage and never leaves your machine.
THE REAL MECHANISM
The tool does not rely on a remote API or a database of known signatures. Instead, it performs strict local type-checking against the ABI you provide. It computes the Keccak-256 hash of every function signature in your ABI, compares the first 4 bytes against the calldata selector, and selects the correct entry. For parameter decoding, it walks the calldata offset by offset, respecting the strict packing rules of the Ethereum ABI specification: static types are read at fixed positions, while dynamic types are dereferenced using offset pointers. The tool implements a full ABI encoder/decoder in JavaScript, not a regular expression or heuristic parser. When it encounters an array or tuple, it recursively decodes the inner types using the same rule set, which guarantees that any ABI-compliant calldata will produce a deterministic and correct result. The decoded output is presented as a nested JSON-like structure that mirrors the Solidity parameter list. For dynamic arrays and strings, the tool follows the offset pointer to the data location, reads the length prefix, and then decodes each element or byte sequentially. For tuples, it treats them as a sequence of types and decodes them in order, handling nested tuples without recursion depth limitations in practical use. The implementation uses BigInt for all integer types to avoid precision loss with 256-bit values.
WHAT IT CANNOT SEE
This tool cannot decode calldata without a matching ABI. It has no built-in database of contract interfaces, and it does not attempt to guess function names from unknown selectors. If you provide an incorrect ABI, the tool will produce wrong or misleading results. It cannot decode calldata for non-EVM chains such as Solana, Sui, or Aptos, as those use entirely different encoding standards. The tool does not verify that the provided ABI matches the actual deployed contract; it is solely a decoder, not a verifier. It cannot validate that the decoded values correspond to real-world constraints (e.g., it will not check if an address is a valid contract). The tool does not support custom ABI types that are not part of the standard Solidity ABI specification. It cannot detect if the calldata is malformed beyond basic length checks; if the calldata does not match the ABI structure, the decoding will fail or produce garbled output. The tool also cannot decode internal transaction calls or trace reverted transactions, as it only operates on the raw calldata hex string provided.
PLEASE NOTE
ABI Decoding Playground Tool is designed exclusively for Ethereum Virtual Machine (EVM) compatible chains, including Ethereum, Binance Smart Chain, Polygon, Arbitrum, Optimism, Avalanche C-Chain, and other EVM-based networks. It requires the calldata to be hex-encoded and the ABI to be valid JSON conforming to the standard Solidity ABI format. The tool processes all data client-side; no calldata or ABI is sent to any server. For large arrays or deeply nested tuples, the tool may take a few seconds to render the complete decoded structure. The tool is free to use and does not require any account or authentication.