[BIP-606] Enable wOETH/WETH Gyro Gauge w/2% cap [Arbitrum]

Payload with PR

After being awarded 185,000 ARB from the Arbitrum Long Term Incentives Pilot Program (LTIPP), Origin has decided to proceed with enabling a gauge on a new Gyroscope pool.

  • This is a proposal to enable a 2% capped Balancer gauge for a wOETH/WETH pool on Balancer Arbitrum.
  • The 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 liquid staking tokens, is typically more capital efficient, and could thus generate significant trading volume.
  • The pool shall be a Core pool with a swap fee of 4 basis points (0.04%) 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.

The pool has already been launched at 0xef0c116A2818A5b1A5D836A291856A321f43C2Fb.

References/Useful links:

Protocol Description:

Origin Ether was launched in May 2023 and is an ERC-20 LST aggregator that generates yield while sitting in your wallet by tapping into blue-chip protocols. OETH is backed 1:1 by ETH, WETH, stETH, and rETH at all times; holders can go in and out of OETH as they please. Similar to stETH, OETH yield is automatically distributed at least once a day through a positive rebase in the form of additional OETH, proportional to the amount of OETH held.

OETH yield sources:

  1. Deploying collateral across various DeFi strategies including Balancer pools
  2. LST validator rewards
  3. A 10bp exit fee charged upon redemption of OETH (completely avoidable if using a DEX)
  4. Boosted yield from non-rebasing OETH

These four yield sources combined enable OETH to generate higher yields than holding any single LST or farming ETH manually. The current collateral allocation and yield strategies can be seen on-chain at all times on the OETH analytics. More information on OETH and its mechanics can be found in the OETH docs.

Wrapped OETH

wOETH is a tokenized ERC-4626 vault designed to accrue yield in price rather than in quantity. When you wrap OETH, you get back a fixed number of wOETH tokens. This number will not go up. You will have the same number of wOETH tokens tomorrow as you have today. However, the number of OETH tokens that you can unwrap to will go up over time, as wOETH earns yield at the same rate as standard OETH. The wOETH to OETH exchange rate can be read from the wOETH contract’s previewRedeem function, the Chainlink exchange rate feed on Arbitrum, or the rate provider deployed by the Balancer team. More information on wOETH and the wrapping/unwrapping process can be found within the OETH docs.


We expect the E-CLP to improve capital efficiency significantly. The E-CLP’s efficiency gains are possible due to the following factors:

  • 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, capital efficiency comes from bounding the trading curve to an expected trading range of the assets.
  • The E-CLP’s efficiency gains are illustrated by the deployed stMATIC/wMATIC E-CLP. The below box plot shows stMATIC/wMATIC liquidity utilization. The stacked area chart shows how the E-CLP already reached up to 55% of the total market share of stMATIC on Polygon soon after inception, with only a fraction of the total TVL.

  • E-CLPs have been developed for stablecoin pools including the Gyroscope stablecoin, GYD. However, they can find broader applications 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).


  1. Governance: Origin Ether is governed by veOGV holders with any upgrades to the contracts being delayed by a 48-hour timelock. More details can be found at Governance and in the governance section of the OETH docs.

  2. Oracles: OETH is using Chainlink oracles for pricing data for rETH and stETH. Please see the oracle section of the OETH docs for more information.

    rateProvider0 (for wOETH): 0xEfA422c31fc71A636c2C630d226DbA4ccEd1073a

    rateProvider1 (for WETH): 0x0000000000000000000000000000000000000000

  3. Audits: OETH was built reusing 95% of the OUSD codebase, of which 10+ audits have been done since 2020. There have also been several OETH-specific audits. All audits can be seen in the audits section of the OETH docs. OpenZeppelin is now on retainer to review 100% of OETH smart contract changes.

  4. Centralization vectors: With limited functionality, the Strategists are tasked with rebalancing collateral between strategies or pausing deposits. However, a 48-hour timelock enforces a wait period before any changes to the OETH contracts can be executed. The timelock is the owner of our ERC-20, Vault, and Strategies contracts.

  5. Market History: OETH currently has millions in total liquidity across Curve, Uniswap, and Maverick.

    Link to pool: Balancer

    Child chain gauge on Arbitrum: Vyper_contract | Address 0x40e86216712cB9871B9C698EA3AFB22f88c00E6e | Arbiscan

    Arbitrum root gauge on Ethereum: ArbitrumRootGauge | Address 0x38F1e186cC7609D236AA2161e2ca622B5BC4Ef8b | Etherscan

  6. Value: The wOETH/WETH pool is intended to be a core OETH liquidity pool on Arbitrum. Origin has already allocated a portion of its incentives budget to bribe this pool, and Balancer will benefit by attracting additional OETH liquidity.

Next steps:

The Balancer Maxi LM Multisig eth:0xc38c5f97B34E175FFd35407fc91a937300E33860 will interact with the GaugeAdderv4 at 0x5DbAd78818D4c8958EfF2d5b95b28385A22113Cd and call the addGauge function with the following arguments:

gauge(address): 0x38F1e186cC7609D236AA2161e2ca622B5BC4Ef8b
gaugeType(string): Arbitrum

1 Like

Queued for snapshot: Snapshot