Alert Types
ChainWard supports 7 alert types covering common failure modes for on-chain AI agents. Every alert can be delivered through multiple channels.
Types
| Name | Key | Default | Unit |
|---|---|---|---|
| Large Transfer Fires when a single transaction exceeds a USD value threshold. | large_transfer | $500 | USD |
| Balance Drop Fires when an agent's balance drops by a percentage within a lookback window. | balance_drop | 20% in 1 hour | Percentage |
| Gas Spike Fires when gas cost on a single transaction exceeds a threshold. | gas_spike | $50 | USD |
| Failed Transaction Fires on any reverted transaction. No threshold needed — any failure fires the alert. | failed_tx | Any failure | N/A |
| Inactivity Fires when no transactions are detected within a lookback window. Useful for detecting stuck or crashed agents. | inactivity | 24 hours | Duration |
| New Contract Interaction Fires when an agent interacts with a contract address it has never transacted with before. | new_contract | Any new contract | N/A |
| Idle Balance Fires when token balance stays above a USD threshold with no outgoing transactions for a specified duration. Detects unused capital sitting in agent wallets. | idle_balance | $50 for 24 hours | USD + Duration |
Delivery Channels
- Discord Webhook — Send alerts to a Discord channel via webhook URL. Alerts appear as rich embeds with transaction details.
- Telegram — Send alerts to a Telegram chat via Bot API. Provide your chat ID.
- Custom Webhook — Send a POST request with the alert payload to any URL you specify. Ideal for custom integrations.
Example Webhook Payload
When using a custom webhook, ChainWard sends a POST request with the following JSON body:
{
"alertType": "large_transfer",
"severity": "warning",
"title": "Large transfer detected",
"description": "0xYOUR...WALLET sent 2.5 ETH ($6,250) to 0xdead...beef",
"walletAddress": "0xYourAgentWalletAddress",
"chain": "base",
"transactionHash": "0xabc123...",
"timestamp": "2026-03-03T14:30:00Z",
"metadata": {
"valueUsd": 6250,
"valueEth": 2.5,
"to": "0xdead...beef"
}
}Testing alerts. Each alert rule has a Test button in the dashboard. This sends a sample payload to your configured delivery channel so you can verify the integration works. Test deliveries are rate-limited to 5 per minute.