ABI Decoder / Encoder
Paste ABI encoded data and a function signature to decode the parameters securely in your browser. Your contract data is never uploaded.
[0] address: 0xab5801a7d398351b8be11c439e05c5b3259aec9b [1] uint256: 1000000000000000000
Decode Ethereum ABI-encoded transaction data and encode function parameters with SolveBar's ABI Decoder. Paste raw calldata or input a function signature and parameters to understand exactly what data a transaction is sending to a smart contract.
What is Ethereum ABI encoding?
ABI encoding is how Ethereum smart contracts receive and return data. When you call a contract function, the function name and parameters are ABI-encoded into a hex string. The first 4 bytes are the function selector, followed by encoded parameters.
Common ABI types and encoding
uint256 and int256 are padded to 32 bytes, address is padded to 20 bytes within 32 bytes, bool is 1 or 0 padded to 32 bytes, and dynamic types like string and bytes use an offset-then-data encoding.
When you need an ABI decoder
Reading raw transaction input data on block explorers, debugging failed transactions, reverse-engineering contract calls, and understanding what a suspicious transaction is actually doing before signing it.
Frequently Asked Questions
What is a function selector?
The first 4 bytes of ABI-encoded calldata. It is the first 4 bytes of the keccak256 hash of the function signature (e.g. transfer(address,uint256)).
Can I decode any transaction's input data?
Yes, if you have the function signature. Without the signature you can decode the raw bytes but cannot interpret what each parameter means.
What is the difference between ABI encoding and ABI decoding?
Encoding converts human-readable parameters into the hex format contracts expect. Decoding takes that hex and converts it back to readable parameters.