Skip to content

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.