Recursive Borrowing in mSave on Polygon


mSave yield on Polygon can be almost tripled without adding risk.


mSave on Polygon deposits DAI, USDC, and USDT into AAVE on Polygon. These generate base yield and rewards (paid in MATIC). The rewards are automatically sold and compounded to generate more stable yield. AAVE allows DAI deposits to borrow 75% of Loaned Value, USDC deposits to borrow 80% of Loaned Value, and does not allow USDT to be used as collateral. By recursively borrowing and lending DAI and USDC the amount can be 4x’d and 5x’d, respectively, and ultimately produce three times the yield.


Currently, the mSave protocol on Polygon deposits DAI, USDC, and USDT into AAVE and earns the yield. Although thanks to the FRAX pool the yield is higher in mSave than on AAVE, users cannot borrow against their mSave deposits. Because users cannot borrow against their deposits. It is critical that the protocol act with stables in a way that maximizes user return. By recursively borrowing and lending the protocol could achieve a 200% increase in yield and not introduce any asset risk (the underlying assets and allocation remain exactly the same – it just equally adds debt and loans for an asset on both sides). Also, since the strategy only uses AAVE it doesn’t introduce any risk there either.

Recursive Calculations:

  • The calculation for how much can be deposited recursively for every standard dollar is 1 / (1 - LTV)
  • Because AAVE allows 75% Loan to Value for DAI, every 1 DAI deposited can turn into 4 DAI deposited and 3 DAI borrowed
  • For USDC, the result is 5 USDC deposited and 4 USDC borrowed for every 1 USDC in mSAVE
  • Currently DAI loans recieve 3.26% APY (2.17% APR rewards) = 5.43%
  • Currently USDC loans recieve 3.11% APY (1.66% APR rewards) = 4.77%
  • Borrowing DAI costs 4.55% APY but earns 4.05% APR in rewards = -0.5%
  • Borrowing USDC costs 3.96% APY but earns 2.85% APR in rewards = -1.11%
  • 4 x 5.43% - 3 x 0.5% + 5 * 4.77% - 4 * 1.11% = 39.63% >> 5.43% + 4.77% = 10.2%


  • Obviously if it is not profitable to partake in recursive lending then it can simply not be done.

Too bad that the pool for these tokens is empty :stuck_out_tongue:

I’m not talking about depositing amUSDC or amDAI anywhere. I’m talking about borrowing DAI against amDAI and holding more amDAI and adding AAVE DAI debt for a net increase in 20% apy. Add 3x more amDAI on the books and have 3/4 the amount of amDAI as AAVE DAI debt.

1 Like

Great proposal! A simple way to improve the already pretty high annual yield sounds like a good plan. In the mean time, recursive lending and borrowing is something users could do manually right?

1 Like

Would very much love to see this be utilized to increase the yield on polygon!
I have a lot of friends that are stuck on there because the gas fees on eth are simply too high for their portfolio


Yes. Users individually can do this. Which makes it more imperative, because mStable savers are missing out. And, the protocol is missing out from 1. increase mSave revenue 2. additional funds that would be in mSave if yield were higher. If mSable were to implement this recursive savings strategy it’s yields would be unbeatable for the level of risk. The Frax Feederpool adds a large multiplicative boost to the mSave yields which makes doing this on one’s own less profitable than doing it as a protocol.

This is a sound idea strictly from a financial perspective. My question is: How often is Matic claimed and dumped to stables, and would the smart contract continue to maintain these ratios throughout each claiming process, or would the community prefer to lower the debt ratio and decrease the marginal risk of a liquidation event?

1 Like

It is done quite regularly. There would be no risk of a liquidation risk because the LTV would never be exceeded no matter what happens to prices of base assets. (e.g. 100 aDAI and 75 DAI debt and 100 aUSDC and 80 USDC debt can never be liquidated). Although I suppose if you let the debt increase for a long time faster than the deposits you could be liquidated (85 USDC debt per 100 aUSDC). However, the matic rewards exceed the debt so a daily swap to USDC and deposit to aUSDC would have deposits grow faster than debt. Once the deposits don’t grow faster than debt, you simply unwind and earn only depositor yield.

I like clever ideas on how to generate yield. We should be focusing more on creating new and unique strategies in general.

A few considerations for this one in particular:

  • Upgrading the current contracts to achieve this is a risk of itself already and I would be hesitant to do this and to “force” everyone in the Save contract to use this strategy. So better to have it as a separate one that depositors can actively choose to deposit in and know the increase in risk.

  • The deposit APY and loan rate is depending on the utilization. I wonder under which utilization rates this strategy would work? I would assume that this wouldn’t be profitable above a certain utilization. The smart contract needs to be aware of that and handle accordingly, there is the risk of negative return that the current contracts can’t handle well.

  • APR and APY is not exactly the same, not sure how this would affect the strategy.

  • mStable strategy in general: Are we keen on farming strategies like this or do we want to focus more on sustainable strategies that benefit the mStableDAO with PCV rather than selling everything for profit?

  • Resource allocation: While ideas are great, we have limited dev resources and we also have things in the pipeline. Depending on the value that this strategy will bring, this is a consideration to be weighed against everything else we have planned. Another option would be if this strategy could be built by someone that could allocate time towards it.

1 Like

I think it would be awesome as an ‘affiliated’ project funded by the GrantsDAO.

Alternatively, if the coming changes to mStable include ‘strategies’ much like Alchemix v2, maybe this could be one of those things.


Submitted it as a bounty here: Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.. If it’s approved and funded you get 100 MTA!

1 Like