Paste the hash of a transaction that failed and this tells you what actually stopped it, in plain English, along with what to change before you send it again. It replays the exact call against the node and reads the reason the contract gave.
Every failed transaction leaves two things behind on the chain: a receipt saying it failed, and the exact call that was made. The receipt on its own tells you almost nothing, which is why block explorers so often show a red cross and no explanation. The reason lives one step further in.
This tool takes the call out of the transaction and runs it again against a node, in a read-only simulation that changes nothing. The contract refuses it a second time, and this time the refusal comes back with the message attached. That message is usually short and written for a developer, so it is matched against the reasons people actually hit and rewritten into a sentence that says what to do.
Allowance. You approved a spender for one amount and then tried to trade more than that. Tokens do not let a contract move your balance unless you have said it can, and the permission is for a specific number, not for the token in general.
Slippage. The price moved between the moment your wallet built the transaction and the moment it was mined. If the result would have been worse than the tolerance you set, the router throws the trade away rather than fill it. This is a protection doing its job, not a fault.
Balance. You had less than you thought. This catches people out with tokens that charge a fee on every transfer, because the number you last saw and the number you now hold are not the same.
Out of gas. Your wallet estimated the cost by simulating the transaction, then the real thing did more work than the simulation did. This is common on tokens with unusual transfer logic, and on any transaction sent into a fast-moving market.
The contract said no on purpose. Paused, blacklisted, wallet limits, cooldowns, sell restrictions. If a transaction to buy works and the matching sell fails, stop and check the token itself before sending anything else at it.
It is worth being clear about the one case that is not an accident. If your buy went through and your sell keeps reverting, that is the signature of a token designed so that only some people can leave. No amount of gas or slippage fixes it, because it is the intended behaviour. Run the contract through a safety check before you decide the problem is on your side.
Because the gas paid for the work the network did on your behalf, and it did that work whether or not the contract accepted the result. When a contract reverts, every state change is undone but the computation still happened, so it is still charged. This is the single most common thing people find unfair about how blockchains work, and it is working exactly as designed.
It means the contract deliberately stopped itself. Somewhere in the code a condition was checked, the condition was not met, and the contract threw the whole transaction away rather than carry on. Most of the time the contract also attaches a short reason, which is what this tool reads and translates.
A revert is the contract refusing. Out of gas is the transaction running past the fuel you gave it before it could finish. This tool tells them apart by comparing gas used against the gas limit: if it burned essentially all of it, it ran out rather than being refused.
Almost always because the chain is wrong. The same hash can exist on one chain and not another, and wallets that hold several chains make it very easy to look on the wrong one. Change the chain and try again before assuming the transaction vanished.
A pending transaction has been broadcast but not mined. If it has been sitting a long time, the gas price you offered is below what the network is currently accepting. Your wallet can either speed it up, which resends the same transaction at a higher price, or cancel it, which sends a zero-value transaction with the same nonce to replace it.
Because replaying a call as it was at an old block is an archive request, and free public nodes will not serve those. When that happens the call is replayed against current state instead, which still gets a reason out of the contract but is a reason about today. If your balance or your approvals have changed since, it can differ from the reason at the time. The tool says so whenever that is what happened rather than presenting the two as the same thing.
No. It only reads public data that anybody can read. There is nothing to connect and nothing to sign.
We seal the list every week and keep re-checking every token on it, so you can see what actually happened to them rather than only what is trading today.