Failed Transaction Alerts

Know the moment a transaction from or to your address reverts on chain, with the transaction hash and, where the node returns it, the revert reason.

A reverted transaction is easy to miss. It is mined, it pays gas, and then nothing happens: no tokens move, no state changes, and unless someone opens a block explorer, nobody notices. For a bot, relayer, keeper or deployer, a run of silent reverts can mean hours of missed work and wasted gas before anyone looks.

Chainitor's Failed Transaction Monitor watches one address on one chain and alerts you when a transaction involving it fails. There is no threshold to tune: any revert counts.

How it works

  1. Every block is read. Chainitor reads each new block of the chain once and picks out the transactions sent from or to your address, depending on the direction you choose: outgoing, incoming, or both.
  2. Each candidate's receipt is checked. A transaction whose receipt has status 0 reverted. For those, Chainitor replays the call to read the revert message, when the node provides one, and records the gas used.
  3. Your check interval decides when you hear about it. At each check (every minute at the fastest on Pro), the monitor looks at the failures found since the last check. If there is at least one, it turns critical and alerts you with the latest transaction hash and revert reason.
  4. Recovery is reported too. When a check finds no new failures, the monitor returns to healthy and sends a recovery notice, so a channel shows when the problem stopped as well as when it started.

What you configure

  • Chain: Ethereum, Polygon, Arbitrum, Optimism, BNB Chain, Base, Robinhood Chain, or the Ethereum Sepolia, Polygon Amoy, BSC testnet, Arbitrum Sepolia, Optimism Sepolia and Base Sepolia testnets.
  • Address: a wallet (EOA) or a contract.
  • Direction: transactions sent from the address, sent to it, or both.
  • Contract interactions and deployments: included by default. Unticking only skips contract-creation (deployment) transactions; calls to contracts are still checked.
  • Check interval and alert channels: email, Slack, Telegram, PagerDuty and webhook are on every plan.

Example configurations

A relayer whose transactions start reverting

Monitor type
Failed transaction
Chain
Base
Address
0x1111111111111111111111111111111111111111 (your relayer, placeholder)
Direction
From address (outgoing)
Check interval
1 minute
Alert channels
Slack #ops and PagerDuty

Every transaction the relayer sends is checked. The first one that reverts turns the monitor critical and sends one alert with the transaction hash and revert reason.

A contract whose users keep hitting a revert

Monitor type
Failed transaction
Chain
Arbitrum
Address
0x2222222222222222222222222222222222222222 (your contract, placeholder)
Direction
To address (incoming)
Check interval
5 minutes
Alert channels
Email and a webhook into your incident tool

Watching incoming transactions catches calls that users send to your contract and that fail, for example after a deploy changed a require() condition or a paused flag was left on.

Why transactions fail, and what the alert tells you

The revert reason usually points straight at the cause. Common ones for automated senders:

  • Slippage or price checks: a swap whose minimum output was no longer reachable by the time it was mined.
  • Insufficient balance or allowance: "transfer amount exceeds balance" or "insufficient allowance" from a token contract.
  • Access control: a role was revoked or a contract was paused, and every call now reverts.
  • Out of gas: a gas limit estimated too low for the path the call actually took.
  • Stale state: a keeper calling a job that another keeper already performed.

A wallet that has run out of its gas token cannot get a transaction on chain at all, so nothing reverts and this monitor stays quiet. Pair it with a low gas balance alert to cover that case.

Limits worth knowing

  • It watches transactions whose sender or recipient is your address. A failed internal call inside a transaction that itself succeeded is not a failed transaction and is not reported.
  • Revert reasons depend on the node replaying the call. Custom errors and bare reverts may show as "Transaction reverted".
  • Alerts arrive at your next check after the block is read, not instantly at block time.

Frequently asked questions

What counts as a failed transaction?

A transaction that was included in a block but reverted, which is what a receipt with status 0 means. It still paid gas, but none of its state changes were kept. Transactions that never reached a block, such as ones dropped from the mempool, are not on chain and are not reported.

Does the alert include the revert reason?

When the node can return one, yes: Chainitor replays the failed call to read the revert message, such as "ERC20: transfer amount exceeds balance". Contracts that revert without a message, or with a custom error, may produce only "Transaction reverted". The alert always includes the transaction hash.

Will I get an alert for every single failed transaction?

No. The first failure turns the monitor critical and sends one alert. While new failures keep arriving at each check, the monitor stays critical without repeating the alert. The first check that finds no new failures sends a recovery notice, and the next failure after that alerts again.

Which plan includes failed transaction monitoring?

The Pro plan and above. Failed transaction monitors read every block of their chain, so they are not part of the Starter plan.

Do I need to give Chainitor a private key?

No. Transaction receipts are public on-chain data. Chainitor only reads them, never asks for a private key or seed phrase, and never signs anything.

Catch silent reverts before they cost you

Set up a failed transaction monitor in a couple of minutes. Failed transaction monitors are part of the Pro plan.

Start monitoring free

7-day free trial • No immediate charge