Migrating UniV3 Liquidity on Ethereum Mainnet

Hey everyone,

This is a proposal to shift agEUR UniV3 liquidity to lower fees pools on Ethereum mainnet.

Rationale

So far the protocol has two deep Uniswap V3 pools: agEUR-USDC with 0.05% fees and agEUR-ETH at 0.3% fees.
While these fees are generating some fees, they are not getting the volume they could have get if they had far smaller fees. Sebastien’s experiment on Polygon showed that with smaller fees pools you can make for more volume than

agEUR is an asset built to be a base DeFi object. As such it should be part of routes used to switch from one asset to another. In particular, agEUR should be THE asset used to get access to other Euro stablecoins: like if you want EURs or EURt: you should be able to get it from agEUR.

One way to have agEUR as a Core asset used for trades is for it to be on lower fees pools.

Proposal

We are therefore proposing to switch the agEUR liquidity to lower fees tiers. As such:

  • agEUR-USDC could be switched from a 0.05% tier to a 0.01% tier
  • agEUR/wETH from a 0.5% tier to a 0.05% tier

This would help increase usage of agEUR, and hence potentially fee revenues from agEUR LPs (if volume increases more than the decrease in fees).

Implementation

Most of the liquidity is so far stored in Angle liquidity gauges under the form of G-UNI tokens. These tokens are ERC-20 tokenized LP positions on Uniswap pools.

What we could do as part of the switching could be to upgrade each liquidity gauge contract so that these contracts consider that G-UNI tokens corresponding to the new pools have been staked, and in the meantime a governance manipulation could be done to atomically move the liquidity from one pool to another.

We will have to be careful for when it comes to switching agEUR-wETH liquidity as an oracle used by Euler is built on top of this. Switching should be done in two steps:

  1. Switching half of the liquidity to the new pool
  2. Waiting for Euler to upgrade its reference to the oracle for agEUR and switching the rest to the new pool

This implementation detail has the advantage that no user action will be required to switch liquidity (for those who staked their G-UNI tokens in the gauge), and that the address of the gauge contracts will remain the same: meaning that no votes will have to be shifted

Problem on the other hand is that some people may have put their liquidity because they were confident in a 0.05% pool, but not a 0.01% pool and as such they may not want their liquidity to be moved without their consent.

To do this, we propose a 1 week time window before the implementation of the change to let people who do no longer want to be part of it to move their liquidity

Perspectives

This is an important proposal for the protocol which should obviously be voted by veANGLE holders. Leaving this to discussion at this point, there is going some implementation by the Core Team to make sure liquidity migration and contract upgrades could be made in a single transaction to remove space for attacks.

1 Like

Hey Anglers!

Dropping something here to say that I’m in favor of this proposal. If we want agEUR to become a base token widely used as connector, it has to has the lowest fees possible for users.

To summarize the implementation steps:

  • Open a governance vote to: 1) change agEUR/USDC pool from a 0.05% fee, to the 0.01% fee tier, and 2: change agEUR/ETH pool from a 0.3% to a 0.05% fee tier.
  • After the vote is finalized and if approved, wait for a week before starting the migration
  • After a week, the team would migrate the funds from the old pool to the new one. Users providing liquidity through G-UNI tokens wouldn’t have to do anything, and would keep earning ANGLE rewards from gauges as usual.
  • For the agEUR/ETH pool, do the migration in two steps to make sure Euler has time to upgrade their oracle.

Hey,

Open-sourced the migration repo: changing file and first draft for liquidity migration on Gelato by sogipec · Pull Request #1 · AngleProtocol/uniswap-migrator · GitHub

If you want to take a look before we submit this to a vote!

Would be nice if someone could give some analytics of current TVL (in term of underlying tokens) and current volumes of current LPs and also after migration, so we can try to acces ex-post the decision. Thank you.

Yes true great suggestion. Best way to track this so far I’d say would be to compare Uniswap and Quickswap Analytics (QuickSwap Info).

Note by the way that the vote for 1bp pool on Polygon has ended and that it should be executed quite soon: Uniswap Interface