[EP 4.1] [Executable] Approve further actions and strategies for the Endowment

(This post has been updated on 18/07/2023 to include action 16: Add swapping options on Cow Swap)

Status Active
Votes Onchain
Authors Karpatkey

Abstract

This proposal introduces additional actions and strategies to the ENS Endowment, which enhance the Endowment’s performance, adaptability, and diversification.

Motivation

Permissions granted to karpatkey to manage the Endowment are not static, and require regular updates to effectively respond to evolving market conditions and to capitalize on emerging opportunities.

Any changes to the permissions related to Endowment funds (endowment.ensdao.eth) must be executed by the DAO. To streamline the process for delegates, karpatkey has bundled all non-urgent changes in this proposal.

Endowment Update

The latest weekly report shows that the Endowment’s ncAUM (non-custodial Assets Under Management) amount is $30.1M, with a capital utilisation of 99.95% and an APR (Annual Percentage Rate) of 2.78%.

Weekly updates on the Endowment can be found in the ENS governance forum here. Monthly updates can be found in the ENS governance forum here.

Specification

Permissions that will be added in this proposal are:

  1. Deposit USDC on Compound v3;
  2. Deposit DAI on AAVE v3;
  3. Deposit USDC on AAVE v3;
  4. Deposit DAI on Maker’s DSR module;
  5. Deposit wstETH - ETH on Balancer;
  6. Stake ETH - stETH on Convex;
  7. Deposit and stake rETH - WETH on Balancer;
  8. Stake rETH - WETH on Aura;
  9. Deposit and stake Compound USDC DAI on Curve;
  10. Stake Compound USDC DAI on Convex;
  11. Deposit and stake Balancer Boosted Aave V3 USD on Balancer;
  12. Stake Balancer Boosted Aave V3 USD on Aura;
  13. Add swap route CVX - WETH on Curve;
  14. Migrate wstETH-WETH position to a new gauge on Aura,
  15. Add swap route processor for SushiSwap’s concentrated liquidity (v3) pools, and
  16. Add swapping options on Cow Swap

The majority of the actions mentioned above were initially presented in the proposal that resulted in the selection of karpatkey as the Endowment Manager. However, it is important to note that there is one exception, namely action #4 - Deposit DAI on Maker’s DSR module. This particular opportunity has emerged as an appealing addition subsequent to the original proposal, presenting a new avenue that was not available at the time of its submission. More details about the new actions are posted below as a comment to this post.

Moving forward, this initial list of actions will be subject to updates based on future market conditions, ensuring the Endowment remains responsive and adaptable.

Additional information

We propose an updated version of the “Preset permissions - ENS Endowment” document that shows all the permissions granted to karpatkey, including the ones that are being requested now.

The payload to update the preset that needs to be executed by the ENS DAO upon a successful on-chain vote is posted below as a comment to this post along with some additional considerations.

1 Like

Audit considerations

Reviewing and providing feedback on the payload to update the Preset would be a great service to the ENS DAO. We encourage community members with the necessary technical expertise to take the time to verify the content and share their feedback with us.

In order to thoroughly test the preset configuration, we have used a Testing Avatar Safe along with a Testing Manager Safe. The Testing Safe replicates the Preset, with only a few allowances differing from the original configuration.

To ensure accuracy, we propose employing the Zodiac App within the Safe environment. By accessing the Roles Modifier feature, you can verify the permissions granted to the Testing Safe. Simply compare these permissions to the comprehensive document outlining existing and new permissions. Once this step is complete, the only remaining task would be to compare the payload applied to the testing safe with the payload that will be included in the executable proposal.

1 Like

Additional context on the proposed actions

1. Deposit USDC on Compound v3

Compound v3 is a streamlined protocol version emphasising security, capital efficiency, and user experience. As per CIP-3, the protocol has been incentivising the migration of USDC depositors from v2 to v3 by gradually reducing rewards. This process follows a multi-phased plan, with Phase 2 recently executed after a successful vote. Consequently, the overall APR is expected to favour v3 over v2. The v3 version has been audited by OpenZeppelin and ChainSecurity. As of the day of this writing, there is an equivalent of $213M USDC deposited on the latest version of the protocol, and the APR is 3%.

It is worth noting that DAI has not been included in Compound v3 (nor a decision on whether to include it or not has been made yet). Hence the migration possibility only involves USDC holdings, given that it’s the only base asset in the initial deployment. If this changes in the future, a new update request to migrate DAI funds might be made.

2. Deposit DAI on AAVE v3

This strategy offers a possibility to diversify the exposure of DAI holdings to the newest version of one of the largest decentralised money markets. AAVE v3 was officially deployed on mainnet in January 2023 after being live across six networks since March 2022. The new version brings some exciting features that enhance capital efficiency while increasing decentralisation. It also offers new risk management tools that provide additional security and stability. Safety is at the heart of Aave’s operations, as evidenced by the comprehensive audits of its v3 platform conducted by reputable firms such as Trail of Bits, ABDK, Peckshield, OpenZeppelin, SigmaPrime, and formal verification by Certora.

As of the day of this writing, the total DAI supplied on AAVE v3 is $32.4M, and the expected APY is 2.29%.

3. Deposit USDC on AAVE v3

Same logic as above but for USDC. As of the day of this writing, the total USDC supplied on AAVE v3 is $213.3M, and the expected APY is 2.54%.

4. Deposit DAI on MakerDAO’s DSR

MakerDAO, the creators of DAI, holds a prominent position among the leading and highly regarded DAOs in the DeFi industry. In light of the recent announcement to raise the DSR from its current rate of 1% to 3.49%, it is logical to consider including this strategy in our whitelisting request. By diversifying the Endowment’s stablecoin allocation and capitalising on the higher yield offered by one of the most battle-tested protocols, we can optimise our investment approach. We firmly believe that this rate increase has the potential to benefit the entire industry through enhanced composability possibilities (see our recent post). However, it may require some time to fully materialise. Moreover, opting for a risk-averse strategy of accruing yield directly from the source aligns perfectly with our Endowment’s long-term goals.

5. Deposit wstETH - ETH on Balancer

This action was not whitelisted during the preset setup because this position can be directly created on Aura. “Deposit and Stake wstETH - ETH” on Aura is one of the original strategies approved by the DAO. Nonetheless, to count on additional flexibility in case of pool imbalances, it is desirable to have the option to deposit the underlying assets on Balancer to later stake the BPT (Balancer Pool Token) on Aura. It should be noted that this isn’t a new strategy, given that the requested change only affects the way the BPT is created.

6. Stake ETH - stETH on Convex

This is also a subtle change to an existing strategy, which is Deposit and Stake ETH-stETH on Curve. Instead of staking the LP token on Curve, the Endowment could take advantage of Convex by staking a portion of the existing balance to earn boosted rewards. Although introducing an additional protocol naturally increases the strategy’s risk, Convex is considered a blue chip in the market and has been battle-tested through different market situations. Having launched in May 2021, Convex is the leading yield aggregator protocol with a global TVL of $3B, as of the day of this writing. With regard to the ETH-stETH pool, the TVL is $405.5M, making it the 2nd largest pool in the protocol.

7. Deposit and stake rETH - WETH on Balancer

To diversify the ETH-denominated holdings and provide an alternative option for staking ETH, we propose the inclusion of RocketPool in the whitelist. This would involve staking ETH on RocketPool, providing liquidity to the rETH-WETH pool, and staking the resulting BPT on Balancer. While we await the launch and testing of Stakewise v3, this solution aligns with the proposed objective.

Presently, RocketPool holds the 3rd position in the liquid staking market, with approximately 698,000 ETH staked on the protocol, accounting for about 7.2% of the total liquid staking market. In terms of market share, Rocket Pool’s rETH is surpassed only by Lido’s stETH with 76% and Coinbase’s cbETH with 11%.

While the liquidity for swapping rETH to ETH on the main DEXes may be slightly lower than the leading alternative, the allocated amount from the Endowment should experience minimal slippage during a swap. For instance, DeFi Llama reports that swapping ~5,000 rETH for ETH would result in less than 0.1% slippage.

Moreover, the recent Shapella upgrade has made withdrawals possible, although daily limits apply to the amount of ETH that can be withdrawn.

As of the current writing, the aforementioned Balancer pool has a TVL of $89M, providing an APR of 3.44%.

8. Stake rETH - WETH on Aura

This is a variation of the previous strategy and involves staking the LP token on Aura instead of Balancer to maximise rewards. TVL: $41.7M. The expected vAPR is 6.48%.

9. Deposit and Stake Compound USDC DAI on Curve

This is a different flavour of an existing strategy to park the Endowment’s stablecoins. It touches upon protocols and products that are already being used by the Endowment, such as cUSDC and cDAI (tokens received in exchange for supplying the underlying assets on Compound v2). The difference is that the stablecoins provide liquidity to a pool on Curve that might offer higher rewards on a similar position of the risk curve. The resulting LP token can be staked on Curve (this action) or Convex (next action). The TVL of this pool, as of the day of this writing, is $6.4M, with more than 72% ($4.6M) staked on Convex. The overall expected vAPY (base + rewards) is 2.92%.

10. Stake Compound USDC DAI on Convex

This is a variation of the previous strategy and involves staking the LP token (cDAI + cUSDC) on Convex instead of Curve to maximise rewards. TVL: $4.6M and expected vAPR is 4.21%.

11. Deposit and stake Balancer Boosted Aave V3 USD on Balancer

This strategy touches upon one of the most exciting products developed by Aave and bootstrapped by Balancer, being a clear proof of the power of composability. Boosted Pools allow high capital efficiency by storing most of their liquidity on external protocols such as Aave as yield-bearing versions of common tokens. Given the past success of Balancer boosted pools on Aave V2, it was a natural next step to see this capability developed on Aave V3. Balancer Boosted Aave v3 USD was recently launched and is expected to be one of the leading possibilities to accrue yield from stablecoins. As of the day of this writing, the TVL of this pool is $25.77M, whereas the expected APR is 2.97%.

It is important to consider that this position introduces exposure to USDT, which is currently not included in the Endowment. However, this strategy presents an opportunity to diversify both the protocol and asset exposure. If we were to allocate 20% of the existing stablecoin portfolio ($12.83M as per the latest report) to USDT, the total exposure would amount to $898k. This calculation assumes that bb-a-USDT represents ~35% of the composable stable pool at the time of writing, equivalent to ~3% of the total Endowment. In a worst-case scenario, such as USDT depegging, the exposure to USDT could increase significantly as the pool becomes imbalanced towards the troubled asset, potentially reaching the entire deposited amount if no action is taken.

12. Stake Balancer Boosted Aave V3 USD on Aura

This is a variation of the previous strategy and involves staking the BPT on Aura instead of Balancer to maximise rewards. TVL: $18.44M. vAPR: 5.28%.

13. Add swap route CVX - WETH on Curve

This request is related to actions 3 and 5 and asks permission to swap CVX (a reward token) to WETH on Curve, considering that it currently offers the largest liquidity for the pair. The other reward tokens (LDO and CRV) were already whitelisted as part of the Endowment initiation efforts.

14. Migrate wstETH-WETH position to a new gauge on Aura

According to AIP-29, Aura has undertaken the migration of numerous existing pools to new gauges as part of implementing a proactive security upgrade, as outlined in AIP-20. Consequently, the whitelisting of the new gauge is necessary to ensure the seamless and successful migration of the existing position.

15. Add swap route processor for Sushiswap’s concentrated liquidity (v3) pools

On May 15th, 2023, Sushiswap introduced its version of concentrated liquidity pools (v3). An update to the route processor becomes imperative to enable the Endowment to expand its token-swapping capabilities within this AMM.

16. Add swapping options on Cow Swap

Thanks to the efforts of the Gnosis Builders and the karpatkey tech team, Cow Swap can now be seamlessly integrated with the Zodiac Roles Modifier. This enhancement allows for the exclusive swapping of only those tokens that are included in the whitelisted strategies.

3 Likes

Thanks @santinomics.eth, excellent write up. Definitely appreciate the judicious use of links. Super helpful.

All in all, I think this looks great. It’s awesome to see the rETH in there, thank you for that :tada:. Hopefully we can really lean into that vs. Lido where possible.

I would like to spend a minute or two on the next meta-gov call talking about #11. It’d be great to hear a bit more about that specific strategy.

Thanks again. Great work. :pray:

4 Likes

Can you please highlight the changes for v2 in this document?

I will ping some people to see if they can review the payload and let Santi know how it goes.

2 Likes

It’s done, @nick.eth.

1 Like

Can someone provide a summary of the purpose here?

I don’t know how to map 14 DeFi transaction descriptions to a meta strategy.

My preference BY FAR is to do nothing, as little as possible. And I voted against any endowment at all.

@cory.eth The TL;DR on this is that Karpatkey manages the funds in the endowment safe, but they are only allowed to perform a very limited set of actions/Txs on the Safe.

This proposal would grant them more permissions on that Safe and essentially give them more investment options. None of the proposed changes should alter the place on the risk curve. These permissions are all still very low strategies, but are beneficial for different reasons. Two simple examples:

  • Karpatkey currently only uses Lido’s staked ETH in the treasury. These permissions would allow them to also leverage Rocketpool’s staked ETH and others. Staked ETH diversification is important.

  • The new DAI Savings Rate contract from Maker is low risk but allows us to get a 3.5% APR from depositing DAI. The DSR contract is new so it wasn’t a whitelisted strategy.

There are a lot more strategies in this list being proposed, these are just two examples to help explain why it’s being proposed.

Please @santinomics.eth keep me honest on this and chime in with better color. :wink:

3 Likes

Your answer is very comprehensive, @5pence. We would like to add a few comments:

  • We want to emphasise that most of the strategies mentioned in this post were already included in the original proposal that resulted in the selection of karpatkey and Steakhouse Financial as Endowment Managers. These strategies are not entirely new, but rather a logical progression in our efforts to continue developing the Endowment.
  • There are certain actions that should be viewed as maintenance or enhancements. For example, actions 14 and 15 are necessary due to recent changes in the infrastructure of the underlying protocols. It is important for us to take action in order to ensure the continued usability of these protocols. Given the evolving nature of the DeFi industry, such changes are likely to become routine. However, we will strive to minimize voting activity for delegates unless urgent action is required.
  • It is important to note that requiring additional permissions does not automatically imply that funds will be allocated to every strategy outlined here. The purpose is to have these options available to us if and when we deem them necessary, enabling us to excel in our role as Endowment managers.
4 Likes

The draft proposal has been updated to include action 16: Add swapping options on Cow Swap.

4 Likes

I’ve audited this by simulating the transaction on Tenderly and examining all the event logs, verifying all the new permissions being granted are valid, and I’m satisfied there are no new permissions granted that could be abused. I have not audited for completeness; there could be actions included in the doc that aren’t in the data,and therefore won’t be possible.

4 Likes

Voting on this is now live!

1 Like

Thank you nick, you are a hero. Safety first, if it’s not complete we can do another vote later.

Has anyone else reviewed it? It is a pretty big move. Would love to see at least one more big brain get their eyes on it :smiley:

I will vote in support on chain but still would love to see one more person review that transaction on Tenderly.

1 Like

Thanks @Griff,

This is absolutely a usually [edit 1 week later, should’ve been “an unusually”] large payload in terms of the number of Txs, so the caution is appreciated.

In this case, even Tenderly didn’t show all the events cleanly, so Nick and the Karpatkey team have been going through the Tx list and event output manually over the last couple days just to be triple sure. There have been a lot of eyes on it.

Your point about another opinion is valid. I think @AvsA might have taken a look at it independently earlier this week. I’ll double check and ask him to chime in here if possible.

3 Likes

This would be incredibly helpful re @AvsA input

1 Like

I have done the same simulation and there are no obvious red flags. The transaction appears to just give allowances to endowment.ensdao.eth.

But the issue is that there are LOTS of codes that it interact with, lots of defi protocols etc. Realistically speaking most delegates are just trusting Nick and Karpatkey when doing the vote as it’s very hard to audit it all.

But I don’t see a way out. We could ask Karpatkey to have less complicated transactions, but then either it would mean they would have more limited options in what they could do to the ENS DAO, or they would have to create multiple smaller transactions which would be even more complicated to audit.

In theory someone inside Karpatkey could have nefarious purposes and be infiltrating some backdoor in those codes, making it so that the contract would be given new allowances in a non simulated environment, so that it’s undetectable. It’s a theoretical risk that I don’t think we need to worry about.

The other risk would be some bug in the Defi protocols listed that could allow something bad to happen not due to malice but just bad investments. But then this is a Defi risk overall and not about this particular transaction - and the DAO overwhelmingly voted for not just leaving the money on eth (which I agree).

In short: transaction is all good. We can worry about Defi risk.

2 Likes

What I’d like to see is a better way to visualise the changes to the zodiac presets. Each change emits an event log, but there’s no UI to collect these logs and show a user “these function calls are now allowed” etc.

1 Like

Acknowledging the existing challenges in auditing changes to the preset, we’re collaborating closely with the Gnosis Guild team, creators of Zodiac tools, to streamline and enhance the process for greater clarity and ease.

2 Likes

Most of the calls make sense to me, things like approving tokens and such. The last contract though (the multisig?) had a lot of extra stuff going on the I tried to decode a bit.

Please let me know if there is any info you think would help. This also lets me review it a bit while on the bus or otherwise out and about.

I marked a few things with ???. If the address or selector is known to you, please let me know and I’ll update it.

Thanks!

1 Like