A keeper’s guide to arbitrage mining $ROOK

KeeperDAO
KeeperDAO
Published in
5 min readNov 5, 2020

--

Take your arbitrage, liquidation, and tailgating operation to the next level with arbitrage mining on KeeperDAO. Not only will you be rewarded for the hard work that you’re already doing, but you’ll be participating in the very first trading pool on Ethereum.

When Kasparov (black) mixed up the moves for the Caro-Kann defence, Deep Blue (white) took advantage and created a new attack by sacrificing a knight. Kasparov argued that the computer must actually have been controlled by a real grand master. He and his supporters believed that Deep Blue’s playing was too human to be that of a machine.

Background

KeeperDAO is an economic experiment that initially launched with an on chain liquidity pool and only one internal keeper bot. With the recent upgrade and launch of the ROOK token, all traders from around the DeFi ecosystem are now incentivized to join KeeperDAO as a keeper and reap its rewards.

Keeper mining rewards

Keepers are rewarded for trading and sharing profits with the pool based on factors detailed in the Caro-Kann announcement. Rewards will be prorated against the % of total profits returned to a pool. Rewards run from block 11185218 to 11783358. Keepers receive their reward in ROOK tokens. 20% of the initial ROOK total token supply will be mined during this event. 70% of which goes directly to keepers participating in this event. That is a whopping 14% of the token supply going to keepers starting right now!

How to be a keeper and earn ROOK

Simply call the borrow function from within your trading contract, and share profit from your trades.

If you’re currently flash loan trading, simply switch from your current flash loan pool to ours. If you’re currently trading with assets in your own personal contract, you can periodically share profit with the pool or upgrade based on my suggested pro tip below.

We created an example keeper integration project along with detailed instructions explaining how to borrow and share profit with KeeperDAO. This repo also indicates our liquidity provider contract address as well as borrow proxy address which are critical in setting up the integration.

LiquidityPool0x4C8cC29226F97d92eC2D299bC14EDF16bAD436b7BorrowProxy0x82151CA501c81108d032C490E25f804787BEF3b8

KeeperDAO integration pro tip

We recommend flash-loaning for your large trades and trading out of pocket for the little ones. We also recommend having intelligent logic that can choose between flash loaning and trading out of pocket based on the size of the trade. See the examples below:

Say you have 50 ETH in your trading contract.

Example 1) Say you find a trading opportunity that requires 1,000 ETH. You don’t have enough ETH to trade, so you’ll need to flash loan. So before you trade, simply call the borrow function to borrow the tokens you need for the trade. Then after the trade completes you can return the borrowed quantity + some shared profit to get a reward.

Example 2) Now you find a trading opportunity that requires only 10 ETH. Since you have 50 ETH in your trading contract, you can simply trade with your own ETH and forgo the flash loan for now to save on gas expenses. You may make hundreds of these small trades per day, so no point in wasting gas flash loaning on every single small trade. Finally, at the end of the day, you can share profit with KeeperDAO to earn the ROOK reward all in one single transaction at safe low gas prices. This will save you a lot of overhead gas cost and the best part is you don’t have to uproot your trading operation by introducing a flash loan on every single trade. The simplest way to share profit in this manner is to essentially call the borrow function and borrow exactly 1 wei of ETH, then return sharedProfit + 1 wei back to KeeperDAO.

KeeperDAO integration beginner tip

If you’re still fairly new to trading on Ethereum through contracts, we highly recommend that you use upgradable contracts for your keeper bot operations. This will save you the hassle from constantly deploying new contracts as you add new features. There are tons of resources out there focused on this topic. We also recommend that you specialize your trading strategy on one particular area while you gain experience and conquer the learning curves that come with competitive trading on Ethereum.

How to claim your ROOK

For liquidity providers, simply navigate to the KeeperDAO app, sign in using your wallet, and click on the Claim button. Confirm the amount, and click Claim one last time. Then follow the instructions in your wallet to sign the transaction.

It’s worth noting that your earned rewards are assigned to your specific address. Anyone can claim rewards for anyone by calling the claim function on chain. But regardless of who calls the claim function, the address that earned the ROOK always receives the ROOK. So Alice can claim for Bob, or Bob can claim for Bob. Regardless, Bob always receives Bob’s rewards. This feature will come into play when claiming as a keeper who’s trading through an Ethereum smart contract.

For keepers who share profit through a smart contract, claiming is a bit different. Soon we’ll add a feature to the web page that allows you to modify the claim address, but for now you’ll want to use this API to get all the data you need in order to call the claim function on chain.

indibo-keeper.herokuapp.com/reward_of_keeper/<your_keeper_address>

The response will look like this:

{“owner”: “<your_keeper_address>”,“earnings_to_date”: “<amount>”,“nonce”: “0x0”,“signature”: “<signature>”}

Take the data from the response and call the claim function on the KeeperDistributor

claim(address _to, uint256 _earningsToDate, uint256 _nonce, bytes _signature)

How to retrieve your claimed ROOK from your trading contract

If you claim ROOK earned as a liquidity provider, the ROOK simply goes to the address which provided that liquidity. On the other hand, if you’re a keeper, you’re likely trading using an Ethereum smart contract instead of a private key based account. And since you’re sharing profit to KeeperDAO via the borrow function, then those ROOK rewards are getting attributed to your trading contract that called borrow. Once you receive ROOK on your trading contract, you can access it simply by withdrawing it like you would any other ERC20 token on Ethereum by using the ERC20 standard transfer function.

To get involved and help evolve the protocol, join us on Discord and begin integrating your trading operation as a KeeperDAO keeper.

--

--