PR with Payload
Summary:
- This is a proposal to enable one uncapped Balancer gauge for WETH/wstETH on Polygon zkEVM.
- The underlying pool is an Elliptic Concentrated Liquidity Pool (E-CLP). E-CLPs are custom pools from Gyroscope built on top of Balancer’s pool architecture. They enable trading along the curve of an ellipse. This pool type is ideally suited for stablecoins and liquid staking tokens; it is typically more capital efficient and could thus generate significant trading volume.
- The pool shall have a swap fee of 1 basis points, i.e., 0.01% at pool inception. The fee split is as follows: 50% of all collected fees will go to liquidity providers, while the remaining 50% will go towards Balancer. At pool inception, no fees will go towards Gyroscope.
References/Useful links:
Protocol Description:
- Lido’s wrapped stETH (wstETH) is stETH which is deposited into the stETH wrapper to create a new token called wstETH. stETH is a token that represents staked ether in Lido, combining the value of initial deposit + staking rewards. stETH tokens are minted upon deposit and burned when redeemed. stETH token balances are issued 1:1 to the ethers that are staked by Lido. stETH token’s balances are updated when the oracle reports change in total stake every day. - Lido
- WETH is an ERC-20 version of ETH. - WETH
Motivation:
By using E-CLPs a comparably small amount of initial capital can provide a disproportionately deep market for GYD. The E-CLP’s efficiency gains are possible due to:
- Customizable liquidity profiles: Using the curve of an ellipse enables highly customizable liquidity profiles. E-CLPs can be calibrated to approximate most trading curves that would be desired. E-CLP curves can be tailored to have certain regions of low price impact and other regions of high price impact.
- Price bounds: The E-CLP concentrates liquidity within price-bounds that enable the E-CLP to be highly capital-efficient. Functionally, this works by enabling arbitrary truncation of liquidity profiles from a given trading curve. In effect, the capital efficiency comes from bounding the trading curve to an expected trading range of the assets.
Several E-CLPs have already been deployed to provide custom tailored liquidity profiles for LSTs and stablecoins. A similar E-CLP to the one mentioned in this proposal has been recently deployed on Arbitrum. For an overview of previously deployed E-CLPs consult: https://dune.com/gyro_finance/gyroscope-e-clps
Specifications:
Governance:
The Gyroscope Protocol will be governed by a DAO and relevant stakeholder with the full launch on Ethereum. For now, the FTL Labs multi-sig can pause the pool, change the swap fee and set the protocol fee. As a custom pool by Gyroscope, the E-CLP will be controlled by Gyroscope governance upon its launch.
Oracles:
- rateProvider0 (for WETH): 0x00
- rateProvider1 (for wstETH): 0x8dd590Ebb702C21A41289A0a69B0C6F74BdeCE75
- (allows to control for a price drift from accruing yield by using rate providers to first convert from yield accruing tokens to the underlying)
Audits:
Audit reports by Nethermind, Trail of Bits, and Runtime Verification can be accessed here (the E-CLP is called the “CEMM” in these reports). In addition, the E-CLP code has been live in production on Polygon since November 2022.
Centralization vectors:
No centralization vectors. The FTL Labs team’s multi-sig can - currently - pause the pool, change the swap fee and set the protocol fee.
Market History:
The Gyroscope Protocol is live on Ethereum since EOY23, with E-CLPs on several other chains. Details available here .
Value: As per “Motivation”.
Contracts
- WETH/wstETH E-CLP: 0xe58cD0C79CDff6252476b3445BEE1400503e0aE0
- Childchain gauge on Polygon zkEVM: 0x8dd928a3Aa0274bBA3b42DD9F41756AaF1e78b2f
- Polygon zkEVM root gauge on Ethereum: 0xf21F8CC39f5858cb2eAF5654a863C9b034AE451F
Technical specification
The Balancer Maxi LM Multisig
eth:0xc38c5f97B34E175FFd35407fc91a937300E33860
will interact with the GaugeAdderv4 at0x5DbAd78818D4c8958EfF2d5b95b28385A22113Cd
and call the addGauge function with the following arguments:
gauge(address):0xf21F8CC39f5858cb2eAF5654a863C9b034AE451F
gaugeType(string):PolygonZkEvm