diff --git a/README.md b/README.md index e778553..c3a6cc8 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ Need a bot? Or looking for MEV? You've come to the right place partner 🤠 | Maker wstETH liquidations | Liquidations | Reocurring | Liquidate bad wstETH debt positions on Maker to earn liquidation bonus | [Link](/specs/maker-wsteth-liquidations.md) | Vesper VUSD Arbitrage | Arbitrage | Reocurring | Arbitrage between the VUSD and USDC/DAI | [Link](/specs/vusd-arbitrage.md) | Liquity | Liquidations | Reocurring | Liquidate undercollateralized Troves to earn liquidation bonus | [Link](/specs/liquity-liquidations.md) | +| Unlock Protocol | Subscription Renewal | Reocurring | Renew memberships of subscribed members | [Link](/specs/unlock-recurring-memberships.md) | ### Want to list your protocol's opportunity? diff --git a/specs/unlock-recurring-memberships.md b/specs/unlock-recurring-memberships.md new file mode 100644 index 0000000..1a480d8 --- /dev/null +++ b/specs/unlock-recurring-memberships.md @@ -0,0 +1,31 @@ +## Renew Memberships on Unlock Protocol + +### Description + +Unlock Protocol allows anyone to set up a membership program using its **lock** smart contracts. Every lock has keys, and a key is an ephemeral NFT that represents the membership status of its owner. +Keys are priced either in the network's native token, or their currency is an ERC20 token. In the latter case, the holder of the key (a.k.a. member) may approve the lock contract with an allowance, that could cover one or more renewals of the membership, after the key expires. + +Since Unlock Protocol released version 10 of its PublicLock contract, there is a new method called `renewMembershipFor`, which allows anyone to renew the expired key of a membership subscriber. + +In order to incentivize others to renew the key of a given member, lock owners can set a `gasRefundValue`, which is the amount of the key-prices' ERC20 token, that the senders of the `renewMembershipFor` transactions will receive as reward for their help in keeping the subscriptions recurring. + +An example lock on Rinkeby is [0x8E9F8fAb9043a09aF9C35bCB9f9e29e9B0eD1DD3](https://rinkeby.etherscan.io/address/0x8e9f8fab9043a09af9c35bcb9f9e29e9b0ed1dd3 "0x8E9F8fAb9043a09aF9C35bCB9f9e29e9B0eD1DD3"). + +### Difficulty + +moderate + +### Is this a one-off opportunity or is it reoccurring? + +This opportunity is reoccuring. All memberships can be renewed, whenever a key expires, as long as the owner's ERC20 allowance for the lock contract is sufficient. + +### Steps to capture MEV + +1. Find relevant locks +2. Find relevant subscribers +3. Find profitable opportunities with locks' `gasRefundValue`s +4. Renew memberships (and optionally swap refunded tokens) + +### Other + +An example with a basic approach to this on the Rinkeby testnet can be found [here](https://github.com/pwagner/unlock-recurring-mev "here").