Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Example Gallery

This section contains a gallery of complete, working examples that you can use as a starting point for your own monitors. Each example includes all necessary configuration files and a detailed explanation in its README.md.

The source for all examples can be found in the /examples directory of the repository.


1. Basic ETH Transfer Monitor

Monitors for native ETH transfers greater than a specific value. A great starting point for understanding transaction-based filtering.

Features Demonstrated: tx.value, ether() helper, basic action.


2. Large USDC Transfer Monitor

Monitors for Transfer events from a specific ERC20 contract (USDC) above a certain amount. Introduces event-based filtering.

Features Demonstrated: log.name, log.params, address and abi fields, usdc() helper.


3. WETH Deposit Monitor

Monitors for Deposit events from the WETH contract, combining event and transaction data in the filter.

Features Demonstrated: Combining log.* and tx.* variables.


4. All ERC20 Transfers for a Wallet

Demonstrates a powerful global log monitor (address: 'all') to catch all Transfer events involving a specific wallet, regardless of the token.

Features Demonstrated: Global log monitoring.


5. Action with Throttling Policy

Shows how to configure a action with a throttle policy to limit the rate of notifications and prevent alert fatigue.

Features Demonstrated: Action policies.


6. Action with Aggregation Policy

Demonstrates how to use aggregation policy for actions as well as sum and avg filters in templates to aggregate values from multiple monitor matches.

Features Demonstrated: Aggregation policy, map, sum, avg filters.


7. Address Watchlist Monitor

Shows how to use a Rhai array as a watchlist to get notifications for any transaction involving a specific set of addresses.

Features Demonstrated: Rhai arrays, let variables, in operator.

8.High Priority Fee

Demonstrates how to monitor for transactions with unusually high priority fees, which can be an indicator of MEV (Maximal Extractable Value) activity, front-running, or other urgent on-chain actions.

9. Admin Function Call Monitor

Demonstrates how to monitor for calls to a specific function on a contract using decode_calldata feature. This is the recommended approach for monitoring critical or administrative functions

Features Demonstrated: decode_calldata.


10. Action with Kafka Publisher

Demonstrates how to configure a kafka action to send notifications to a Kafka topic, ideal for integrating with data streaming platforms.

Features Demonstrated: kafka action.


11. Action with RabbitMQ Publisher

Shows how to set up a rabbitmq action to publish notifications to a RabbitMQ exchange for integration with message queue-based systems.

Features Demonstrated: rabbitmq action.


12. Action with NATS Publisher

Demonstrates how to configure a nats action to send notifications to a NATS subject for real-time, cloud-native messaging.

Features Demonstrated: nats action.