Decode revert data: Error(string), Panic codes and custom errors from an ABI or known signatures.
Loading tool
About Revert & Error Decoder
Decode revert data into a readable reason: Error(string) messages, Panic(uint256) codes with their meaning, and custom errors from your ABI or a bundled list of common errors. You can paste raw 0x revert data or a whole JSON-RPC error object, and its data field is extracted. Decoding is fully offline.
Common uses
- Read why a transaction or eth_call reverted
- Decode custom errors such as OpenZeppelin's ERC20InsufficientBalance
- Look up what a Panic code like 0x11 or 0x32 means
- Decode the error data in a wallet or RPC error message
FAQ
- What does Panic code 0x11 mean?
- Panic(0x11) means an arithmetic overflow or underflow outside an unchecked block. Other common codes: 0x01 failed assert, 0x12 division or modulo by zero, 0x32 array index out of bounds.
- How is a revert reason string encoded?
- require(cond, "message") and revert("message") produce the selector 0x08c379a0 for Error(string), followed by the ABI-encoded string.
- How are custom errors encoded?
- Like a function call: the 4-byte selector of the error signature followed by its ABI-encoded arguments. Without the ABI or a known signature, only the selector can be identified.