Algorithmic Market Operations With Angle

Hey guys,

I’d like to open a discussion on algorithmic market operations for the Angle Protocol!

Context

Essentially, as we are working on the new module, we are thinking of ways to increase liquidity for agEUR on different markets.

One such way consists in just minting agEUR for them to be lent to protocols like Aave V3. It would also help the protocol earn yield on its treasury.

To make this clear, let’s write an example: the protocol mints 1m agEUR on Polygon, and deposits it on Aave V3: the agEUR are here minted out of thin air, but they are not really in circulation: it’ll only be the case when they will be borrowed, in which case the agEUR borrowed end up being backed by the deposits/collateral of those who borrowed agEUR.

It is a way to leverage an existing lending market to mint agEUR just like we could leverage the minting module we are working on to allow people to borrow agEUR against collateral.

This is in a way similar to what many other protocols are doing:

  • Maker is doing this with DAI on Aave
  • Andre Cronje did this with all his ibTokens: he for instance pre-minted 1bn ibEUR for them to be borrowed
  • QiDAO is doing this to seed markets on Market.xyz
  • And Jarvis has just done this for jEUR on Aave

Risks

This obviously does not go riskless.
First we do not have a smart contract ready yet to perform such things in a fully trustless manner. Multisig signers implementing these operations could collude and leave with the agEUR.

The protocol could decide to stop this at anytime, by simply withdrawing lent liquidity and then burning it. But we may not be able to do it in a single transaction as some agEUR may still be borrowed. In this case, we may need several withdraws (to increase the borrow rate) and wait for borrowers to come to repay to decrease it.

Last, the risk of the agEUR lent is the risk of the protocol in which we are lending. If there is a failure or a problem in the Aave protocol, and liquidations fail to work well, then in this situation the bad debt for Aave will also be bad debt for agEUR, and some agEUR may end up being unbacked.

The way to mitigate the risk for Angle as a whole is simply to limit the amount of agEUR we put in such strategies. What we expect also is that if someone borrows all the agEUR then it will increase the lending rate (and hence revenue for the protocol) and therefore attract more people.

Other Considerations

When doing this, the protocol also makes some yield which could have been made by other agEUR holders: in some sense it reduces opportunities for real agEUR holders which would have been minting from the protocol helping the protocol make additional revenue (from the USDC brought to mint for instance)
There is obviously a chicken and egg issue here: people won’t come to borrow unless there is sufficient liquidity and there won’t be sufficient liquidity if people don’t come to borrow. This strategy is a way to seed the market.
Note also that revenue made with this could technically be distributed to veANGLE holders.

It would also come in parallel with the new minting module (if voted positively). Technically, people would be able to borrow agEUR from Angle or from Aave: the protocol should be making more revenue when agEUR are borrowed from its module than from Aave (as Aave has a reserve factor and keeps a portion of the interest in reserves and as borrowing interest are split between all lenders). It’s the role of governance to make sure that both would work hand in hand (like it is the case for Maker) and that overall utility + opportunities for agEUR holders are maximized while the protocol optimizes its revenue.

Proposal

With all that in mind, I think we could try to mint 1m agEUR to be put on AaveV3 on Polygon to seed the market and simply take it up from here.

Implementation

There is a governance multisig on Polygon which can grant the minting right to an address.
This multisig could grant itself the right, mint 1m agEUR, lend it on Aave and keep the aagEUR.

In parallel, we should work to be able to generalize these operations in a fully trustless manner through smart contracts.

Next Steps

While Aave V3 is a first step, we could think of repeating this on other markets on mainnet: like on Euler, Rari.

Mainnet markets would require upgrading the agToken contract which we won’t be able to do after the audit of the new module in May.

Each new algorithmic market operation should obviously be voted by veANGLE holders as while it creates new opportunities it also adds extra risk to the protocol.

Let us know your thought! I will also create a Discord channel for this!

4 Likes

Algorithmic Market Operations would be a really significant addition to the Angle Protocol.

The protocol is better at allocating the capital itself than indirectly by incentivizing users behaviors. For “safe” places, it should be the protocol acting on behalf of the users and providing them a “risk-free” interest rate. With a stacking contract providing 2% to agEUR holders, there would be a clear reason to use agEUR vs fiat-backed alternatives. It is also something easily provided by exchanges and apps.

Those AMO will also be a kind of market-making and exploit the ability of Angle to issue and endless stream of agEUR for collateral use. To keep a lending example, if if someone is willing to borrow 1M agEUR at 2%, it doesn’t matter for Angle if it put 1M (100% usage, 2% return), 10M (10% usage, 0.2% return) or 100M (1% usage, 0.02% return). It gets the same profitability as it is not capital constrained. Another key application area is on term products. Term products cost a lot of capital to make liquid markets yet don’t return much.

Regarding the Aave v3 proposal on Polygon, the main risk is one of a run, yet it is not something significant with 1M agEUR. Each agEUR borrowed from this source will decrease the amount of agEUR minted somewhere else. Therefore, it’s a good start.

On the implementation side, I would prefer those agEUR to be minted on Ethereum so there is only one source of truth. We shouldn’t be able to mint agEUR on Polygon (but we can mint some on Eth and send them to a buffer on Polygon).

1 Like

Thanks for sharing this @Sebastien!

True that it’s a start and there’s so much that we could do after this! From the implementation side, I understand your point about agEUR minted on Ethereum.
Some considerations:

  • we need an upgrade on the agEUR contract if we want to perform this: we should be able to run this after our audit for the new module which would support this use case
  • I don’t think it is that unsafe to mint on Polygon. There will never be more agEUR on Ethereum than what has been minted on this chain. With native minting on other chains coming soon, this is a first step in starting to be able to cope with different sources of truth

That also mean that not all agEUR can be moved to Ethereum. Meaning we need to check liquidity on Polygon. This is a path that increase complexity and will lead to issues down the line. If this multisig gets compromised (or Aave onboard a shady collateral), someone will mint agEUR (as much as in the bridge), move them to Ethereum, rug the Polygon agEUR users, and taint Angle Protocol forever.

This is not a big risk currently, so we should probably go forward with this path. But something to fix at some point.

1 Like

Yes it’s true! If we’re allowing native minting, we’ll have to deal with it as some point: like agEUR being natively minted here.

Solution I propose here is to start on Polygon, and as soon as we are ready on Ethereum mainnet to mint agEUR for AMOs, we burn what has been minted on Polygon and then mint from mainnet and bridge it

1 Like