Last month, we published Introduction to Auctions and Keepers in Multi-Collateral Dai (MCD), in which we introduced documentation explaining the importance of both, how they work, and the roles they play in maintaining the MCD system’s balance.
Today, in keeping with our promise to provide materials that will help everyone in the Maker community better understand system operations, we offer a guide on how to create and run your own Auction Keeper bot(s) in MCD. Although this requires programming knowledge and an intermediate level of understanding of how the MCD system operates, anyone with that knowledge can create an Auction Keeper bot. Because the Maker Protocol is an open-source platform, all of the code needed to build and run the bot is free and accessible to all.
Before sharing the guide, let’s review what Auction Keepers do within the Multi-Collateral Dai system.
The Purpose and Responsibilities of Auction Keepers
Auction Keepers keep the MCD system in a stable financial state, maintaining system balance by preventing both debt and surplus from accumulating beyond the limits determined by Maker governance. They do this by participating as bidders in Debt Auctions, Surplus Auctions, and Collateral Auctions when Collateral Debt Positions (CDPs) are liquidated.
Each type of auction is triggered as a result of different circumstances and results in different types of payouts for bidders. Overall, Auction Keepers are economically incentivized—by bidding in auctions, they can potentially acquire collateral at below-market prices. For details on auction types and incentives, read Auctions and Keepers in Multi-Collateral Dai Explained.
To maintain the MCD system balance, Auction Keepers must:
- Constantly monitor ongoing auctions.
- Discover new auctions.
- Ensure that their bidding models (described below) are running for each auction.
Auction Keeper Interactions and Bidding Models
Auction Keepers interact with auction smart contracts. This means that developers can easily create their own auction participation strategies without having to work with low-level smart contracts. Auction Keepers also delegate their bid decisions to pluggable bidding models, which are simply executable strategies/processes that are external (not core) to the main process. In other words, a bidding model can come and go, and the same one can be used in different auctions.
Bidding models can be implemented in almost any programming language; they communicate with Auction Keepers by exchanging JSON messages (explained in the developer guide). An example of a simple bidding model could be a shell script that echoes a fixed price.
Developer Guide: Setting Up an Auction Keeper Bot
Anyone interested in participating as an Auction Keeper in MCD can follow our detailed Auction Keeper Bot Setup Guide to create a bot, test strategies, and experiment on the Kovan testnet. The guide, which covers the seven areas listed below, will prepare you to run your bot on the MCD system when it goes live on the Ethereum mainnet:
- Bidding Models
- Starting and stopping bidding models
- Communicating with bidding models
- Setting up your Keeper Bot (Flip Auction Keeper)
- Running your Keeper Bot
- Keeper Limitations
We Are Here to Help!
To recap, the goal of our guide is to educate the community about Auction Keeper bots and help both users and developers understand their value. Although the Maker Foundation will not provide a frontend UI (app or website) that would allow humans to act as Auction Keepers, that could change in the future. In fact, an external party could, at any time, build an application to allow human interaction.
We welcome any questions about the Auctions in the #keeper channel in Maker Chat.