Ideas for re-launching the protocol

This is a discussion for how the protocol can best move forward now that agEUR has been voted as senior within the protocol’s Core Module in the case of a loss not automatically handled by the protocol’s smart contracts (like the Euler hack). Note that at this point, this is not meant to be a formal proposal, but more thoughts and ideas worth discussing.

All of this, of course, reflects only the views of Angle Labs. Any suggestions put forth would need to be voted on further by the DAO.

TL;DR

agEUR seniority means that its peg can be defended using the available collateral reserves in the protocol. Unpausing the Core Module as it stands could be dangerous for agEUR’s stability as it means that agEUR would be redeemable against USDC but with no hedging mechanism or over-collateralization provided by SLPs (paused till no funds are received back from Euler). And the protocol would not be able to handle unfavorable USD/EUR price variations. To this extent, we suggest swapping some of the USDC reserves of the protocol into EUROC to be added on Curve to maintain agEUR’s peg. This would be a short-term patch in line with a new scalable and resilient long-term plan for agEUR.

Context

The Euler DAO recovered most of the stolen funds back. If a proportional amount of what has been repaid was given back to the protocol, the protocol should be able to make all its stakeholders whole.

It’s however very likely that the repayment process by the Euler DAO is going to take some time. And as it stands, the protocol does not have enough funds at hand to handle the claims of all its stakeholders. From this document based on data publicly available on-chain though, Angle currently has enough reserves to handle the value of agEUR’s claims from the Core module. agEUR remains a depegged stablecoin, and as seniority is clear, even if there remain some uncertainties due to the Euler situation, now is the time to work to restore agEUR’s peg.

Technically, unpausing redemptions for agEUR holders and keeping it paused for SLPs and HAs (for as long as Euler DAO has not repaid the protocol) could honor the seniority of agEUR holders, with them being the first one able to access the collateral reserves of the protocol. This would also automatically bring agEUR back to peg.

Yet, Angle Core module is a system meant to work with three types of agents being active on the platform. Having the Core module open just for agEUR holders but with no possibility for HAs and SLPs to enter and exit (because of the potential outstanding loss faced by the protocol on Euler) could create some risk for agEUR. In the absence of hedging provided by HAs and of over-collateralization by SLPs, the protocol would notably be fully exposed to the USD/EUR exchange risk. It would not be able to handle unfavorable USD/EUR prive variations, and it could end up being under-collateralized for agEUR holders, which could depeg agEUR.

In “normal” conditions as well, there are some limits with the Core module, notably evinced during the weekend before the hack with the USDC depeg. Because of the rapid USDC price decrease, most of the hedging agents got liquidated which left the protocol badly hedged, and at the same time, people came to redeem agEUR for USDC with USDC at a very cheap value (at around $0.9), which led to a non negligible decrease in the protocol surplus.

It’s therefore crucial to think not only on how to solve the current situation, but also on how to take advantage of it as a good occasion to get rid of the technical debt at the protocol level, and to build a system that is more resilient, robust and scalable than what we previously had.

Note that during and after the hack, and during the USDC depeg as well, the Borrowing module worked exactly as expected with borrowers repaying their debt (at a lower agEUR price) and liquidations still working properly with no bad debt accrued. The Curve direct deposit module worked as well (because it was exposed to EUROC which did not depeg): it was safely wound down, even allowing the protocol to make a profit from the liquidity removal operation.

Suggestions for the way forward

agEUR’s peg needs to be restored as soon as possible, but this should be done without compromising on the long term viability of the protocol.

We’re currently working on a new potential design for the protocol’s Core module. The idea is to have a system based on a price stability module (2.0) built around Curve, that improves over Maker and FRAX design, and that diversifies risk by accepting different € stablecoins as a collateral, with automated circuit breakers to handle transient depeg events in the backing. We’ll share more details on our upcoming design idea in the coming weeks.

To launch the protocol without taking more risk than in the previous Core module setup, and potentially prepare for this vision of a new and improved design to maintain agEUR stability, we suggest to swap the USDC backing the agEUR issued by the Core module into EUROC. Idea would then be to add EUROC liquidity on the agEUR-EUROC Curve pool with a governance multisig whenever agEUR trades under peg. This would effectively allow people to “burn” agEUR for EUROC (instead of USDC through the Core module), and hence bring agEUR back to peg. Note that the Curve direct deposit module could be reactivated such that people could also effectively mint agEUR as well from this system by swapping EUROC to agEUR (as the protocol would mint agEUR in the pool whenever it is imbalanced).

The protocol would own EUROC, and would be exposed to the EUROC risk (just like it was exposed for agEUR holders to the USDC risk), and it would also be exposed to risks on Curve since it’ll have liquidity there.

This way to restore agEUR’s peg is just a short term patch to the current situation, it is however nowhere near the protocol should be, in terms of scalability and resilience. The goal with this swap again is first to restore agEUR’s peg quickly while:

  • Euler hack proceeds have not been repaid
  • A better system (e.g a new Core Module version) has not been voted, audited and deployed

Comments

If this suggestion gets positive feedback, we could further specify the technical elements for the swap and the Curve rebalancings.

EUROC on-chain liquidity is currently low. And it’s impossible to swap more than 7 figures of USDC into EUROC without a high slippage.

Reducing the cost of such trade for the DAO would imply doing an OTC trade. Market makers with a Circle KYC could handle a ~$18.5m USDC-> EUROC OTC trade with the Angle DAO with limited fees. The swap could be split in multiple smaller swaps.

Overall, this trade would drastically increase EUROC liquidity, which seems like an acceptable trade-off to make in the short term to rapidly lay-out strong foundations for agEUR during this period where Euler situation is not final. We could discuss later on on the diversification in the collateral reserves of the protocol (from EUROC to EURe or EUROe for example).

The protocol would surely not add directly all the acquired EUROC on Curve. Liquidity could be added little by little as agEUR are swapped on the market for EUROC. We could define price, pool imbalance or time thresholds upon which the governance should rebalance the Curve pool.

As expressed above, we suggest to keep SLPs and HAs paused on the Core module until funds are received from Euler. We could then at this point discuss on how to unpause them, and whether for instance the protocol should continue operating yield strategies for the profit of SLPs.

These are just thoughts on what we believe are the most optimal way to get out of the situation in the short term. Happy to hear any feedback to collectively arrive to a better plan for the protocol and its stakeholders.

7 Likes

I asked ChatGPT(4) for a summary of the post, if anyone wants a longer TLDR:

In this governance discussion post, potential solutions are explored for moving forward after agEUR has been voted as a senior stakeholder within the protocol’s Core Module. The document highlights the need to restore agEUR’s peg as soon as possible, without compromising the long-term viability of the protocol.

To that end, the Angle Labs team is working on a new potential design for the protocol’s Core module, based on a price stability module built around Curve. This aims to improve resilience, robustness, and scalability. In the meantime, the post suggests a short-term patch to restore agEUR’s peg by swapping USDC backing agEUR issued by the Core module into EUROC, and then adding EUROC liquidity to the agEUR-EUROC Curve pool.

This approach comes with exposure to EUROC and Curve risks, but could help restore agEUR’s peg quickly while waiting for the Euler hack proceeds to be repaid and a better system to be voted on, audited, and deployed. The post invites feedback and suggestions to refine the plan for the protocol and its stakeholders.

2 Likes

For total transparency, Keyrock can execute USDC → EUROC as an OTC trade and if needed in smaller tranches. We have direct KYC with Circle minting/redemption mechanisms so we can facilitate this with limited fees as mentioned already.

In general, this idea should kickstart a significant amount of EUROC Curve liquidity and we would love to help the Angle DAO launch this initiative.

Here to answer any questions regarding the potential OTC trade as well.

1 Like

Want to jump on this again. Euler has published some plans for a repayment. Given what’s in there, it’s likely that the protocol will end up with a mix of both ETH and DAI from the Euler situation. In this context, if we are to consider a USDC->EUROC swap, it might even reduce cost (and depending on the exact amounts) to rather do: ETH->EUROC.

2 Likes

TLDR:

This is a proposal to:

  1. Unpause SLP withdrawals and deposits, which require technical upgrades and fixes, to allow SLP holders to withdraw the full value of their sanTokens at the time of the Euler hack if they want to
  2. Settle HA positions at their cash-out value at the time of the Euler hack.
  3. Repeg agEUR on the agEUR-EUROC Curve pool and ensure proper agEUR backing by swapping the proceeds of the Euler claim process and some DAI to EUROC.
  4. Leave the Angle Core Module in a state where SLP strategies can be restarted without backing agEUR.

Here are all the details about the proposal:

Next steps for Angle after Euler’s repayment

Euler has published their repayment plan last night. This is a proposal for the actual steps to get Angle and agEUR in a safe spot once Angle has recovered the funds.

The primary objective of this proposal is to restore and maintain agEUR’s peg until a new, more resilient mechanism to back the stablecoin in an automated way is released. Additionally, it should provide a way for SLPs to retrieve their funds if they want to, and repay HAs.

Here is a screenshot of what the Angle DAO should get back from Euler’s repayment plan.

The protocol is expected to receive from Euler (cf screenshot below)

  • 7408.8 wETH
  • 3,416,991 DAI
  • 263,379 USDC

CleanShot%202023-04-12%20at%2010.57.04

With this, the protocol should have more than what is needed to handle claims from agEUR, SLPs and HAs in the Core module.

It was suggested above to swap USDC into EUROC, yet given that mostly DAI and wETH were received the idea here is to swap instead these assets. The goal stays the same: swap assets to EUROC to cancel the protocol agEUR reserves exposure to change risk.

Swap WETH and DAI for EUROC

To cancel the exposure of the protocol to ETH and USD, the proposal is to swap the WETH and DAI received from Euler’s redemption to EUROC.

Additionally, we propose to remove 2.7M DAI from the Core module PoolManager contract to be swapped to EUROC. This is to make sure it has enough EUROC to back all agEUR issued through the Core module, while leaving enough funds in the PoolManager for DAI SLPs to withdraw their funds + outstanding profit.

The exact figures about what’s currently left in the protocol, and what’s needed to handle SLPs, HAs and agEUR claims on the Core Module can be found here.

These EUROC will be used by the Guardian or Governor multisig to provide liquidity into the agEUR-EUROC Curve pool, allowing the pool to progressively get back to equilibrium, and agEUR back to peg.

In practice

PoolManager upgrade

The PoolManager contracts would need to be upgraded to:

  1. Fix the accounting loss linked to Euler’s hack to allow SLPs to withdraw their funds, and be able to unpause the strategies in the future, or to launch new ones
  2. Allow the governance multisig to withdraw enough funds to be swapped to EUROC

Swap through Keyrock

As executing the swap on-chain would be very expensive (given the lack of EUROC liquidity), the proposal suggests going though Keyrock OTC desk for this trade. The exact details will be provided shortly in a comment to this proposal. The idea would be to use successive Airswap swaps for the trades.

Managing liquidity on Curve

When the agEUR / EUROC price is < 0.995, the vote will allow the Governor or Guardian ******multisig to use the protocol EUROC to either:

  • add EUROC to the pool if the total pool liquidity is < 5M€, or
  • buyback agEUR with EUROC and burn agEUR when the total pool liquidity is > 5M€

The consequence of these actions should be:

  1. To provide enough liquidity for agEUR price to get back to peg
  2. Maintain agEUR price to peg using the protocol EUROC reserves once there is enough liquidity on the pool

What does it mean for Angle as a whole

First, it’s important to keep in mind that the Angle Protocol has more in reserves than its liabilities, and is able to pay back all stakeholders! In other words, the Angle Protocol is over-collateralized and will have a remaining surplus. Depending on the exact outcomes of the swaps, it should be in a very similar position than before the hack. The goal of this proposal is to swap agEUR reserves to EUROC to cancel the need for the protocol to handle exchange rate risks. This will make all agEUR issued by the Core module backed by EUROC.


Below are the next steps for the near future concerning the stakeholders of the protocol.

Standard Liquidity Providers (SLPs)

SLPs contracts will be unpaused, and Angle USDC, DAI, FRAX and WETH depositors will be able to deposit and withdraw again. Strategies debt ratios will stay at 0 for now, meaning that funds won’t be invested for the moment. The strategies will likely be restarted independently in the near future when Angle is in a more stable state.

Hedging Agents (HAs)

All HAs margins that were deposited in Angle netted of their realized profit or loss at the time of the hack will be sent to concerned addresses. This will be done by calling the getCashOutAmounts() on the HA contracts at the block, 16818578 when the protocol was paused.

Here is a list of the concerned addresses and the amount they should receive.

HA contracts will stay paused, meaning no new HAs will be able to open positions.

agEUR holders

All agEUR tokens originally minted by the Core module will be backed by Angle EUROC reserves while waiting for Angle V2 to be released. In the meantime, agEUR is over-collateralized and fully functional. Mints and redemptions through the Core module will remain paused.


Vote

The following vote should approve or reject the following aspects:

  • Redeeming WETH and DAI from Euler’s redemption plan
  • Updating the PoolManager contracts to:
    • Fix the accounting of Euler’s hack loss, allowing SLPs to withdraw their deposit and outstanding profits
    • Allow for strategies to be restarted in the future
    • Withdrawing 2.7M DAI to ensure the protocol has enough to back agEUR
  • Swapping the WETH and DAI from Euler and the DAI from the PoolManager to EUROC with Keyrock through Airswap
  • Allowing the Guardian or Governor to manage the agEUR-EUROC pool liquidity in accordance with the details above
  • Unpausing deposits and withdrawals for SLPs
  • Repaying HAs

Voting timespan

As this matter is pressing, the DAO could shorten the voting time for this proposal. For instance, a 90-hour vote (~4 days) could begin on Thursday 13th at 4pm CET and end on Monday 17th at 10am CET, allowing for execution of the vote then.

Next steps

As mentioned earlier, this proposal is a first step to get the protocol back on track quickly. However, it is not meant to be in a definitive state. As explained in this article, it is important to take advantage of the learnings from the hack to build a better, more scalable, and robust system that can make agEUR a backbone in DeFi.

Should we go in this direction, there will be very shortly other proposals to:

  • restart the Borrowing module
  • launch a Core Module V2 for agEUR
4 Likes

This makes sense from an FX risk perspective but the Circle coin is small, untested, in a new regulatory environment and you face unknown counterparty risk as relates to the cash portion of the backing. Circle’s history with SVB should serve as a cautionary tale.

We’d like to see Angle move towards unhedged (ideally on-chain and permissionless), exposure to high-quality EUR-denominated fixed-income products that can help sustain the peg while ensuring the potential for earning some return on assets.

As for the restart and all the rest, super happy to see the recovery, now buckle up and get going you have the whole eurozone ahead of you to take over and we are super supportive of the mission and the team.

This makes sense, and I agree with this. Reducing the counterparty risk is inline with our vision to back agEUR not only with a single asset, but with a basket of different € stablecoins and € derivatives.
We’ll post something on Friday with more details about the system we have in mind for a V2 of the Core Module (and it goes in your direction).

1 Like

I do agree with most of your points. Given the urgency though, and given that those funds were originally USDC, I think it makes sense to swap them for EUROC

1 Like

Unless people expresses concerns, I think the vote could last even faster than 4 days, for like 24 hours. The protocol has a net long ETH exposure which can be harmful if ETH price movements are going in the wrong direction over the weekend.

2 Likes

What about “Angle rewards” for Liquidity providers (e.g. Sushi) ? I don’t really understand why it was stopped as the protocol still needs Liquidity ? Will the rewards start again ?

This is something that should be addressed in a future proposal. Rewards were stopped immediately after the hack.

I see your point.

However, there was no vote to stop the rewards. So the rewards should be still there :slight_smile:

I don’t understand why we need a proposal in fact to revert something that was not vote and not really related to the euler hack.

Kind regards,

I’m in favor of the general direction here, but I echo steakhouse’s point about counterparty risk, having all our eggs in one basket. Another point is that if we move the protocol assets into EUROC, it will be difficult for agEUR holders to move back into USDC or another USD stablecoin without big slippage due to the low EUROC liquidity.

So while I agree the protocol needs to reduce it’s exchange rate risk, I don’t think we need to, or should, reduce it to zero. At the very least, we should keep a large chunk of the protocol assets in USDC at least for a short period of time, to allow agEUR holders to exit back to USDC if they desire.

I think a better plan is to maybe swap 50% of core module assets + reserves to EUROC and leave the rest in USDC until we have time to flesh out the longer term plan. I don’t like the idea of rushing this. The protocol will still work just as it did before if we just restart. Then take the appropriate amount of time to discuss the longer term redesign.

3 Likes

Also, I think the second most important feature of a stablecoin next to keeping the peg, is the ability to mint/burn easily. If it’s difficult to get in/out, people will not want to use it. I learned that the hard way with fixed forex.

1 Like

Thanks for your thoughts here.
As mentioned as well with Steakhouse, I do agree about the necessity not to have all our eggs in one basket.
Also agree on the fact that the low EUROC liquidity is not optimal for people who want to get out of agEUR. In the setup we propose though, agEUR liquidity would still exist on the secondary market, and it’d still be possible to swap agEUR for USDC, and then have arbitrageurs (with for instance a Circle KYC) arb agEUR using EUROC (using the protocol’s liquidity). There may probably be more frictions than if it was agEUR->USDC in Angle Primary market, but it should work out well with minimal slippage in the end for those who want to get out.

So, while I agree on the fact that it may indeed be more convenient to keep agEUR backed USDC, as it stands, I believe the priority number 1 is to put the protocol in a resilient state where it could work autonomously and where no big economic risk can harm it. The protocol took a big repetitional hit with the hack, and I don’t think we can afford to take another one for something this time that depends on the decision we’ll all take. I’m hence for completely reducing the exchange risk as soon as possible. I’m still personally still a bit traumatized by the USDC depeg which led people to arb the protocol (I think the protocol lost around $640k of surplus over the weekend of the depeg). Maker and FRAX did depeg on their end, but they didn’t lose any money because they did not allow cross currency exchange: Angle Core module had these flaws and re-launching the protocol (even if for a short period of time) with these flaws known would I guess be more risky than the risk of making agEUR burns a bit more difficult because it’d be done with EUROC.

You’re right to say that the full swap is something that could still be done later, but I’m biased towards doing it now. We’ve been working a lot over the past few weeks on an actual long term plan for the protocol, and hope to be able to share a more detailed plan later this week (probably tomorrow). Idea would be to build a price stability module 2.0 where agEUR would be backed by a basket of different € stablecoins and € products (making sure that not all eggs are in the same basket). System would be able to handle stablecoins depeg relatively well, and without any intervention: it’d give a high level of predictability for all its stakeholders. It’d also work perfectly in parallel with the Borrowing module, and the algorithmic market operations that’d be maintained.

This plan implies getting rid of the USDC reserves, so this proposal is also in line with the long term plan we have in mind (even though I understand that it’s hard to agree with this when we haven’t shared all our research about this).

Given the urgency of the situation, I think we can include one option to the vote related to your suggestion @GTRminator.

Voting option could be to swap 50% of the recovered ETH into USDC and the remaining 50% into EUROC. One thing to note though is that the protocol would likely not be able to start this way with such a swap (like there would still not be enough assets on the Core Module). This could be done, but there is a risk that the protocol does not have enough USDC to handle all agEUR redemptions (at which point we could use the EUROC reserves to maintain peg). So I suggest we figure out the details of how the protocol reopens if this option is chosen in another proposal.

This option would have less implications than the first voting option we suggested (with details on how to restore peg) but it would:

  1. Cancel the protocol’s ETH exposure
  2. Allow the protocol to reduce its USD/EUR exchange risk
2 Likes

The vote is live, don’t forget to vote Snapshot

2 Likes

Maintaining agEUR’s peg is definitely the main goal, while waiting for Angle V2. No need to rush for new people to get in right now…
Though swapping 50% of ETH into USDC would make the mint/burn mechanism more efficient, the rate risk is important and shouldn’t be undervalued these days.

1 Like