PR with Payload
Summary
This is a proposal to enable a 10% capped Balancer gauge for a stMATIC/wMATIC pool on Polygon.
The pool is a custom Balancer pool from Gyroscope and will bring a new kind of concentrated liquidity to Balancer that is much more efficient and customizable. 30% of all collected fees will be sent to the Balancer treasury. The remaining 70% are allocated to LPs. Gyroscope does not receive any pool fees.
This pool type is ideally suited for liquid staking tokens & could generate significant trading volume. This pool will provide liquidity for stMATIC/wMATIC in the price range from 1-30e-4 (or 0.997000000000000) to 1/(1-30e-4) (or 1.00300902708124). The price range is for the rate adjusted price.
An analytics dashboard showing (1) swap volume, (2) total value locked, and (3) fee revenue can be accessed here (stMATIC/wMATIC charts are at the bottom of the dashboard). There is no activity yet, as the Balancer SOR integration & integrations into DEX aggregators are in the process of being updated from a prior version.
The pool is an Elliptic Concentrated Liquidity Pool, or E-CLP, which enables trading along the curve of an ellipse. E-CLPs offer a new kind of concentrated liquidity that has several benefits, such as:
- Customizable liquidity profiles: Using the curve of an ellipse allows 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.
Because of these benefits, we expect the E-CLP to be almost 7x as efficient than the comparable StableSwap pool with an amplification factor of 50.
E-CLPs have been developed for stablecoin pools that include the Gyroscope stablecoin, GYD. However, they can find broader application whenever the expected trading range of the included assets can be informed by external business logic (e.g. from arbitrage loops of mints/ redemptions in the case of LSTs such as stMATIC).
References/Useful links
Protocol Description:
stMATIC is an ERC20 token that represents the accountâs share of the total supply of MATIC tokens inside Lido-on-Polygon system. It is a non-rebasable token, which means that the amount of tokens in the userâs wallet is not going to change. During time, the value of this token is changing, since the amount of MATIC tokens inside the protocol is not constant. Staking with Lido you get stMATIC on the Ethereum network, however you can also bridge them to the Polygon network via Polygon PoS bridge or Stakeall Finance.
â Lido
MATIC is the lifeblood of Polygon PoS. When you conduct any transaction or use an application built on Polygon PoS, youâll pay a small fee in MATIC to use Polygon PoS. This fee is an incentive for validators to process and verify what youâre trying to do. Polygon employs a proof of stake mechanism that uses staked MATIC to reach consensus on the network. By staking MATIC, you can secure Polygon PoS and earn rewards. In this system, validators are disincentivized from engaging in any malicious behavior. â Polygon
The E-CLP uses an internal conversion to avoid a unit drift of rebasing tokens.
Motivation
As a new Balancer pool design with more customizable concentrated liquidity, this pool has the potential to significantly expand the Balancer offering. The pool design even supports asymmetric liquidity concentration. Current LSTs may be locked on Curve and Balancer, but are disproportionately traded on Uniswap and KyberSwap (c.f. below graphic).
Gyroscopeâs E-CLPs could change the LST landscape of Balancer by becoming low-slippage trading pools. However, initial incentives may be required to bootstrap the pool and get to a minimum TVL that unlocks the poolâs potential.
Snapshot data for Ethereum as per 02/23/2023 including LSDs of Lido, Rocketpool, and Coinbase
Specifications
The Gyroscope Protocol is in limited production live on Polygon. 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.
rateProvider0 (for WMATIC): 0x0 (none)
rateProvider1 (for STMATIC): 0xdEd6C522d803E35f65318a9a4d7333a22d582199 (MATIC per STMATIC wrapping rate)
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.
No centralization vectors. The FTL Labs teamâs multi-sig can - currently - pause the pool, change the swap fee and set the protocol fee.
A less efficient pool with the same assets has been active since 2022-09-11. No irregularities have been observed. With a TVL of $50.8mn it has achieved a total volume of $97m. Link to the existing stMATIC pool.
Links to the new stMATIC pool and gauge.
As per âMotivationâ. Other Balancer Polygon pools with stMATIC / wMATIC exist, but none of them feature asymmetrically concentrated liquidity. Asymmetric concentrated liquidity for these assets could become a substantial driver of trading volume and total value locked.
Contracts
- Pool: GyroECLPPool | Address 0xf0ad209e2e969EAAA8C882aac71f02D8a047d5c2 | PolygonScan
- Polygon Root Gauge w/10% cap: PolygonRootGauge | Address 0xD103Dd49B8051A09B399A52E9A8aB629392dE2fb | Etherscan
- Child Chain Liquidity Gauge: Vyper_contract | Address 0x51416c00388bb4644e28546c77aee768036f17a8 | PolygonScan
Technical Specification:
The DAO Multisig 0x10A19e7eE7d7F8a52822f6817de8ea18204F2e4f
will interact with the AuthorizerAdaptor at 0x8F42aDBbA1B16EaAE3BB5754915E0D06059aDd75
and call performAction with the GaugeController at 0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD
for the target(address) argument and using 0x3a04f900 followed by the gauge address 0xD103Dd49B8051A09B399A52E9A8aB629392dE2fb
and the corresponding gauge type for the data(bytes) argument.
data(bytes) :
0x3a04f900000000000000000000000000d103dd49b8051a09b399a52e9a8ab629392de2fb0000000000000000000000000000000000000000000000000000000000000003