The Chainlink Keeper Network provides options for smart contracts to outsource regular maintenance tasks in a trust minimized and decentralized manner. The network aims to provide a protocol for incentivization and governance within the Keeper ecosystem.
There are three main actors in the network:
The diagram below describes the architecture of the Keeper network. It is responsible for governing the actors on the network and compensating Keepers for performing successful Upkeeps. Clients can register for Upkeep and node operators can register as Keepers.

There are several contracts to be aware of. You can find these in the Chainlink repository.
KeeperCompatible.sol: Imports the following contracts:KeeperBase.sol: Enables the use of the cannotExecute modifier. Import if you have a need for this modifier. See the cannotExecute modifier for details.KeeperCompatibleInterface.sol: The interface to be implemented in order to make your contract Keeper-compatible. Import for type safety.KeeperRegistry.sol: The registry contract that tracks all registered Upkeeps and the Keepers that can perform them.UpkeepRegistrationRequest.sol: The registration contract that allows users to register/configure their Upkeep with the associated KeeperRegistry.Chainlink Keepers do not compete with one another, but rather work together to ensure all registered Upkeeps are performed. This makes costs more predictable upfront, enabling you to estimate costs based on the expected gas consumption.
The network is designed to perform your work even under conditions where gas prices spike. In order to ensure appropriate payment to the Keepers, your LINK balance must exceed the maximum amount that could be paid for performance. This maximum amount is calculated using Chainlink’s on-chain fast gas feed and a gas ceiling multiplier that places a ceiling on payments to the Keeper. See the configuration section for information about the gas ceiling multiplier.
When a Keeper performs your Upkeep, the Keeper Registry will deduct from your Upkeep’s LINK balance and allocate it to the Keeper’s address. The amount deducted includes a premium on top of the transaction fee paid by the Keeper and uses our up to date data feeds for exchange rate conversion. See payment premium below.
Chainlink Keeper nodes select the gas price dynamically based on the prices of transactions within the last several blocks, optimizing gas price based on current network conditions. Keepers are configured to select a price based on a target percentile.
If the Keeper node does not see the performUpkeep transaction get confirmed within the next few blocks, it will automatically replace the transaction and bump the gas price. This will repeat until the transaction is confirmed.
Our Keepers take responsibility for your Upkeep in turns. Each turn is counted in blocks. The registered Upkeeps are broken into buckets based on the number of Keepers on the network. At the end of each turn the buckets rotate from one Keeper to the next. Even if a Keeper goes down, we have built in redundancy and your Upkeep will be performed by the next Keeper in line.
The Upkeeps in each bucket are processed in order for the duration of a turn. The KeeperRegistry contract defines the number of blocks in each turn. See the Configuration section to find the current block count per turn for your network.
Once a Keeper has performed an Upkeep, it cannot do so again until another Keeper on the network has subsequently performed the same Upkeep. This protects against a faulty or malicious Keeper from taking repeated action on a given Upkeep.
These configurations may change as we grow our users and the network as a whole.
Keeper Registry contract: 0x7b3EC232b08BD7b4b3305BE0C044D907B2DF960B