# Contract Monitoring Requirements Univ3
## Range Management Monitor (RMM)
### Description
Monitors the strategies to verify they are in range and earning fees.
### Requirements:
- RMM shall monitor all strategies listed in the`keeperAddress` via the`keeper.strategyArray` public array.
- The RMM shall trigger a High alert if the `currentTick` for the strategy is outside the range of `strategy.tick_lower` and `strategy.tick_upper`
- The RMM shall include `strategyAddress` in the metadata.
### Notes
- `keeperAddress = 0xCd2e473DD506DfaDeeA81371053c307a24C05e6D`
- pool current tick logic is `( ,int24 currentTick,...) = strategy.pool.slot0`
## Keeper Topup Monitor (KTM)
### Description
Monitors the keeper to verify enough funds available to continue operations.
### Requirements
- The KTM shall monitor the balance of the keeper, and trigger alerts based on the below conditions:
-- An Info Alert if the Keeper's balance will reach minimum balance in a week.
-- A high Alert if the Keeper's balance will reach the miminum balance in a day.
### Notes
- `keeperIndex = 28`
- `keeperRegistryAddress = 0x7b3EC232b08BD7b4b3305BE0C044D907B2DF960B`
- To get current Balance: `(,,,uint96 balance,...) = keeperRegistry.getUpkeep(keeperIndex)`
- To get minimum balance: `keeperRegistry.getMinBalanceForUpkeep(keeperIndex)`
## Idle Funds
### Description
Monitors the strategies for idle funds in them.
### Requirements
- Idle funds will be the same as idle funds from yearn https://connect.forta.network/developer/0xaaa8334B378A8B6D8D37cFfEF6A755394B4C89DF
- Idle fund strategy list is `keeper.strategyArray`
### Notes
- `keeperAddress = 0xCd2e473DD506DfaDeeA81371053c307a24C05e6D`
## Volatility Monitor (VM)
### Desription
Monitors how often the strategies are rebalancing and determines if range changes need to occur.
### Requirements
- VM shall monitor the `keeperRegistry` for `performUpkeep` calls with `id = keeperID`.
- VM shall trigger a medium alert if the following occurs:
-- PerformData is `strategyAddress` 5 times in 1 week.
-- PerformData does not containt `strategyAddress` for 4 weeks.
- VM shall trigger a high alert if the following occurs:
-- PerformData is `strategyAddress` 5 times in 1 day.
- VM shall include `strategyAddress`, `timeSinceLastUpkeep`, and `numberOfUpkeepsToday` in metadata
### Notes
- `keeperId = 28`
- `keeperRegistryAddress = 0x7b3EC232b08BD7b4b3305BE0C044D907B2DF960B`
- Entire list of strategies to listen for is `keeper.strategyArray` mentioned in RMM.
- Strategies will be added and removed over time.
- Before sending alert for not being called in 4 weeks, verify time since strategy has been added to `keeper` is greater than 4 weeks. This can be done by looking at the keeper contract for `addStrategy` calls.
- `keeperAddress = 0xCd2e473DD506DfaDeeA81371053c307a24C05e6D`