📋 Contents
ABI Decoding Explained
Every Ethereum smart contract exposes an Application Binary Interface (ABI) โ a JSON specification that tells clients how to encode function calls and decode their return values. When you call a function on a contract, the transaction data contains the function selector (first 4 bytes of the keccak256 hash of the function signature) followed by the ABI-encoded arguments.
If you've ever looked at a transaction on Etherscan and seen unreadable hex in the "Input Data" field, you've seen raw ABI-encoded data. Without the contract's ABI, that hex is just noise. With it, you can decode every parameter.
The Contract ABI Decoder lets you paste the contract ABI and the raw input data and instantly see the decoded function name and all argument values. For example, a call with selector 0xa9059cbb decodes to transfer(address to, uint256 value) โ you'd see the recipient address and the token amount in human-readable form.
This is critical for debugging failed transactions. If a swap on Uniswap returns "execution reverted," decoding the input data lets you verify whether your parameters were correct before diving into contract logic.
Transaction Hex Parsing
A raw Ethereum transaction is a single hex string that encodes everything needed to execute and validate the transaction. Here's what a typical raw transaction looks like:
0x02f86b010a85059682f0008252089474292d6bb16e4a5dc6e358d80a133353860b819d8801a055690d9db6650080c001a0e8b87c4e7d3a7f1e7c9e0e1e4f3c8d2a1b5c7f6e3d2a1b4c5f6e7d8a9b0c1d2e3f4a0c6b7a8e9f0d1c2b3a4e5f60718293a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7
This single hex string encodes:
- Transaction type: 0x02 (EIP-1559)
- Chain ID: 1 (Ethereum mainnet)
- Nonce: 10
- Max priority fee: 0.000000024 Gwei
- Max fee per gas: 23.8 Gwei
- Gas limit: 21,000 (standard ETH transfer)
- To address: 0x7429...19d8
- Value: 0.0115 ETH
- Signature (v, r, s): Cryptographic proof
The Transaction Decoder takes raw transaction hex and breaks it into every component field. It validates the checksum, decodes the EIP-1559 or legacy format, and shows you the sender address recovered from the signature. This is invaluable when you're debugging why a transaction failed or verifying that a signed transaction was constructed correctly before broadcasting.
Token Metadata Standards: ERC20, ERC721, BEP20
When you're deploying a new token or debugging an existing one, you need to understand how token metadata works across different standards:
| Standard | Chain | Key Metadata | Use Case |
|---|---|---|---|
| ERC-20 | Ethereum | name, symbol, decimals, totalSupply | Fungible tokens (USDT, UNI, LINK) |
| ERC-721 | Ethereum | name, symbol, tokenURI, tokenOfOwnerByIndex | Non-fungible tokens (NFTs) |
| ERC-1155 | Ethereum | uri, balanceOfBatch, supportsInterface | Multi-token standard (semi-fungible) |
| BEP-20 | BNB Chain | name, symbol, decimals, totalSupply | Fungible tokens on BNB Chain |
The Token Metadata Generator helps you construct valid metadata JSON for any token standard. You fill in the fields โ name, symbol, decimals, description, logo URL โ and it outputs the properly formatted metadata JSON ready to upload to IPFS or include in your contract deployment script.
For ERC-721 NFTs, metadata is especially important because marketplaces like OpenSea and Blur read the tokenURI to display your NFT's image, attributes, and description. One formatting mistake and your NFT collection shows up blank. The generator validates your metadata against the standard schema before you deploy.
Smart Contract Debugging Workflow
When a smart contract transaction fails, here's a systematic debugging workflow using these tools:
- Get the transaction hash from your wallet or the blockchain explorer.
- Copy the input data from the failed transaction on Etherscan/BscScan.
- Decode the function call using the Contract ABI Decoder with the contract's ABI. Check that your parameters match the expected types.
- Validate the addresses involved using the Wallet Address Validator. A single wrong character in a recipient address would cause a revert โ or worse, a permanent loss of funds.
- Check the raw transaction using the Transaction Decoder to verify gas limits, priority fees, and nonce ordering.
- Test with smaller values before retrying at scale. Many reverts are caused by insufficient allowance, slippage tolerance, or price impact.
This workflow saves hours compared to manually parsing hex or checking values character by character. Most failed transactions are caused by a parameter encoding issue, an insufficient gas limit, or a wrong address โ all things these tools catch instantly.
Wallet Address Validation
Ethereum addresses include a built-in checksum mechanism (EIP-55). A valid address like 0x7429D2d6bb16e4a5dC6e358D80a133353860b819d has specific characters in uppercase or lowercase based on the hash of the address itself. Addresses not using proper checksum casing are likely mistyped.
The Wallet Address Validator checks:
- Format validity: Starts with 0x, is exactly 42 characters, contains only valid hex characters.
- EIP-55 checksum: Verifies the mixed-case checksum for Ethereum addresses.
- Network detection: Identifies whether the address belongs to Ethereum, BNB Chain, Polygon, or other EVM-compatible chains.
- Common mistake detection: Catches missing or extra characters, wrong network prefixes.
Validating an address before every transaction is a simple habit that prevents one of the most common and costly mistakes in crypto. Combine it with the Contract ABI Decoder and Transaction Decoder for a complete pre-flight checklist before any significant on-chain interaction.
Browse All Free Blockchain Developer Tools
Decode ABIs, parse transactions, generate token metadata, and validate addresses โ all in your browser with zero server-side processing. No account. No tracking.
Explore Crypto Tools →