# \[BIP-339\] Enable Stafi rETH/WETH Gauge 10% Cap \[Arbitrum\]

**URL:** <https://forum.balancer.fi/t/bip-339-enable-stafi-reth-weth-gauge-10-cap-arbitrum/4896>\
**Category:** BAL Gauges\
**Created:** [June 21, 2023, 2:33pm UTC](https://forum.balancer.fi/t/bip-339-enable-stafi-reth-weth-gauge-10-cap-arbitrum/4896 "2023-06-21T14:33:58Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![ZenDragon](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.balancer.fi/zendragon/32/1542_2.png) [@ZenDragon](https://forum.balancer.fi/u/ZenDragon)\
**Post date:** [June 21, 2023, 2:33pm UTC](https://forum.balancer.fi/t/bip-339-enable-stafi-reth-weth-gauge-10-cap-arbitrum/4896/1 "2023-06-21T14:33:58Z")

</div>

### PR with Payload

> <https://github.com/BalancerMaxis/multisig-ops/pull/289>
>
> \- add Stafi rETH/WETH gauge with 10% cap on Arbitrum
> \- Tenderly sim: https://da…shboard.tenderly.co/public/safe/safe-apps/simulator/4fe0ffe0-dff7-44bd-b3ab-4741c1d519fc

Authors: StaFi Contributors

**Summary:**

> StaFi proposes the creation of a Balancer gauge for a rETH-ETH pool on Arbitrum, with a 10% emissions cap. This pool will be enrolled as a core pool as well due to the yield bearing token it contains.

**Protocol Description:**

> StaFi is a liquid staked derivatives protocol launched in Q3 2020, with a focus on bringing liquidity to staked assets on Ethereum and other Proof of Stake chains such as Polygon, Solana, and Polkadot. Since launch, the protocol has accrued over $36,000,000 worth of staked assets across 11 tokens, with 3,439 active validators.

> Similar to other LSD protocols, StaFi issues a liquid receipt token (rETH) representing your share of ether staked on the Beacon Chain via a permissionless validator set. Deposits are partially covered by validator deposits. The exchange rate between rETH/ETH will gradually increase as staking rewards accumulate, though rETH is not redeemable for the ether principal and rewards until after the Shanghai upgrade.

> StaFi has a native governance token with the ticker “FIS”. FIS is freely tradable on a number of centralized exchanges, alongside some decentralized exchanges not inclusive of Balancer. FIS has governance utility and can be staked by validators in the StaFi consensus network.

**Motivation:**

> StaFi currently has an existing[rETH-ETH pool](https://app.balancer.fi/#/ethereum/pool/0xb08885e6026bab4333a80024ec25a1a3e1ff2b8a000200000000000000000445) on Balancer on Mainnet which has seen healthy growth.

> StaFi is looking to expand the availability and liquidity of its staked derivatives, starting with rETH, through Balancer on Arbitrum. Ahead of and after the Shanghai Ethereum hard fork, liquidity and yield on LSDs will be a key competing factor as LSD protocols seek integrations and a broader base of holders.

> StaFi is committed to driving value to the veBAL and vlAURA ecosystem by incentivizing pool liquidity via Hidden Hand voting incentives. Deeper liquidity should lead to increased volume and revenue accrual.

**Specifications:**

> Governance: [DAO forum](https://commonwealth.im/stafi)
> 
> Oracles: Direct Balance Query: The rETH rateProvider has a getRate() function that is defined by the rateProvider it points to. See the contract [here](https://arbiscan.io/address/0x6c2f7b6110a37b3b0fbdd811876be368df02e8b0#readContract).
> 
> Audits: [StaFi rToken App Audits](https://github.com/stafiprotocol/stafi-bootstrap/tree/master/audits)

> Centralization Vectors:StaFi’s rebalancing is done by a bot that is run by the foundation. Presently the bot is not profitable to run, so we would not expect anyone else to run it. However, there is no chance of money being inaccessible as a result of the bot stopping–Just that the bridge would run less efficiently.
> 
> Market History: rETH has been a tradable asset since March 2021. Trading has primarily taken place in the aforementioned rETH-ETH pool on Curve. FIS is a liquid asset traded both on top centralized exchanges as well as decentralized exchanges.
> 
> Value: StaFi will make its Balancer rETH-ETH pool a primary source of liquidity for rETH on Arbitrum. By bolstering liquidity of the pool, Balancer should gain from increased trading fees.

**Links & References**

> Website:[https://www.stafi.io/](https://www.stafi.io/)
> 
> Documentation:[https://docs.stafi.io/](https://docs.stafi.io/)
> 
> Github Page: [stafiprotocol · GitHub](https://github.com/stafiprotocol)
> 
> Communities: [Community | StaFi](https://www.stafi.io/community/)
> 
> Other useful links: [https://twitter.com/StaFi\_Protocol](https://twitter.com/StaFi_Protocol)

> Pool: [0x01990f1e6f7F32296f125eE9469705C1C070054D](https://arbiscan.io/address/0x01990f1e6f7f32296f125ee9469705c1c070054d)

> 10% capped gauge: [0x870Cd189889C1117b33bc8c94394a7477d4EB6fa](https://etherscan.io/address/0x870Cd189889C1117b33bc8c94394a7477d4EB6fa#code)

> **Transaction Specification:**  
> 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): `0x870Cd189889C1117b33bc8c94394a7477d4EB6fa`  
> gaugeType(string): `Arbitrum`

---

<div class="post-metadata">

**Author:** ![Xeonus](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.balancer.fi/xeonus/32/3621_2.png) [@Xeonus](https://forum.balancer.fi/u/Xeonus)\
**Post date:** [June 22, 2023, 4:36am UTC](https://forum.balancer.fi/t/bip-339-enable-stafi-reth-weth-gauge-10-cap-arbitrum/4896/2 "2023-06-22T04:36:34Z")

</div>

[https://snapshot.org/#/balancer.eth/proposal/0x1892b56aeb8b8de635fec6b19abb5dd52848b808c2a293bdf746f71f607330ad](https://snapshot.org/#/balancer.eth/proposal/0x1892b56aeb8b8de635fec6b19abb5dd52848b808c2a293bdf746f71f607330ad)

---

<div class="post-metadata">

**Author:** ![markus](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.balancer.fi/markus/32/880_2.png) [@markus](https://forum.balancer.fi/u/markus)\
**Post date:** [June 23, 2023, 5:11pm UTC](https://forum.balancer.fi/t/bip-339-enable-stafi-reth-weth-gauge-10-cap-arbitrum/4896/3 "2023-06-23T17:11:43Z")

</div>

> [@ZenDragon](#):
>
> Oracles: Direct Balance Query: The rETH rateProvider has a getRate() function that calls rETH’s own getExchangeRate() function. See the contract [here](https://github.com/stafiprotocol/rtoken-contracts/blob/main/contracts/balancer-metastable-rate-providers/RETHRateProvider.sol)

> [@ZenDragon](#):
>
> > Pool: [0x01990f1e6f7F32296f125eE9469705C1C070054D](https://arbiscan.io/address/0x01990f1e6f7f32296f125ee9469705c1c070054d)

I might be missing something, but this pool’s rate provider is [set](https://arbiscan.io/address/0x01990f1e6f7f32296f125ee9469705c1c070054d#readContract#F22) as `0xd8737ca46aa6285de7b8777a8e3db232911bad41`, which in turn [points](https://arbiscan.io/address/0xd8737ca46aa6285de7b8777a8e3db232911bad41#readContract#F3) to [0x6c2f7b6110a37b3b0fbdd811876be368df02e8b0](https://arbiscan.io/address/0x6c2f7b6110a37b3b0fbdd811876be368df02e8b0), which doesn’t look like it calls rETH’s getExchangeRate() function. Instead, it seems to return a [rate](https://arbiscan.io/address/0x6c2f7b6110a37b3b0fbdd811876be368df02e8b0#code#F6#L44) that can be set by the owner or a set of signers.

---

<div class="post-metadata">

**Author:** ![ZenDragon](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.balancer.fi/zendragon/32/1542_2.png) [@ZenDragon](https://forum.balancer.fi/u/ZenDragon)\
**Post date:** [June 23, 2023, 7:36pm UTC](https://forum.balancer.fi/t/bip-339-enable-stafi-reth-weth-gauge-10-cap-arbitrum/4896/4 "2023-06-23T19:36:50Z")

</div>

Hey you’re right, forgive my oversight as I trusted the original author on the getExchangeRate function. The rate provider returns getRate() which comes from the rate provider it has set as you described. Waiting for response from integrations and rETH team to give some more context on this.

---

<div class="post-metadata">

**Author:** ![rabmarut](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.balancer.fi/rabmarut/32/55_2.png) [@rabmarut](https://forum.balancer.fi/u/rabmarut)\
**Post date:** [June 23, 2023, 9:26pm UTC](https://forum.balancer.fi/t/bip-339-enable-stafi-reth-weth-gauge-10-cap-arbitrum/4896/5 "2023-06-23T21:26:07Z")

</div>

Hey there, Rab from Integrations doing a skim review upon request.

[This](https://arbiscan.io/address/0xd8737ca46aa6285de7b8777a8e3db232911bad41#code) `RateProvider` does not invoke `rETH.getExchangeRate()` - it cannot do so because the Arbitrum deployment of `rETH` is a [bridged token](https://arbiscan.io/address/0x6cda1d3d092811b2d48f7476adb59a6239ca9b95#code) (`StandardArbERC20`).

The trust assumptions for this `RateProvider` are pretty extreme:

- The `owner` ([EOA](https://arbiscan.io/address/0x211bed4bd65d4c01643377d95491b8c4b533eaad)) of the `RTokenRateProvider` can arbitrarily change the underlying `_rateProvider`.
- The [current](https://arbiscan.io/address/0x6c2f7b6110a37b3b0fbdd811876be368df02e8b0#code) `_rateProvider` has:
  - An `owner` ([same EOA](https://arbiscan.io/address/0x211bed4bd65d4c01643377d95491b8c4b533eaad)) who can arbitrarily set the `rate` without limit and without emitting a `SetRate` event.
  - A set of `subAccounts` which acts as a “multisig” for voting on `rate` changes.
    - The following rules are enforced within the voting process:
      - A `threshold` of yes votes is required to pass the vote.
      - The `rate` cannot change more than the `rateChangeLimit` (currently 0.1%) in a single proposal.

    - However:
      - The `owner` can arbitrarily add or remove `subAccounts`.
      - The `owner` can arbitrarily change the `rateChangeLimit`.
      - The `threshold` is currently set to 1 vote.

---

<div class="post-metadata">

**Author:** ![jeffrey](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.balancer.fi/jeffrey/32/2417_2.png) [@jeffrey](https://forum.balancer.fi/u/jeffrey)\
**Post date:** [June 24, 2023, 12:41am UTC](https://forum.balancer.fi/t/bip-339-enable-stafi-reth-weth-gauge-10-cap-arbitrum/4896/6 "2023-06-24T00:41:18Z")

</div>

Strongly against putting the pool on gauge as the rateProvider can be easily manipulated.

---

<div class="post-metadata">

**Author:** ![ZenDragon](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.balancer.fi/zendragon/32/1542_2.png) [@ZenDragon](https://forum.balancer.fi/u/ZenDragon)\
**Post date:** [June 24, 2023, 1:18am UTC](https://forum.balancer.fi/t/bip-339-enable-stafi-reth-weth-gauge-10-cap-arbitrum/4896/7 "2023-06-24T01:18:10Z")

</div>

Agree, would like to have the Stafi team weigh in on this to see if additional safeguards can be put in place prior to voting or making a decision.

---

<div class="post-metadata">

**Author:** ![Matt\_Alfalfa\_or\_Span](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.balancer.fi/matt_alfalfa_or_span/32/2502_2.png) [@Matt\_Alfalfa\_or\_Span](https://forum.balancer.fi/u/Matt_Alfalfa_or_Span)\
**Post date:** [June 24, 2023, 1:26am UTC](https://forum.balancer.fi/t/bip-339-enable-stafi-reth-weth-gauge-10-cap-arbitrum/4896/8 "2023-06-24T01:26:06Z")

</div>

Yeah - additional safeguards are mandatory.

---

<div class="post-metadata">

**Author:** ![solarcurve](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.balancer.fi/solarcurve/32/1487_2.png) [@solarcurve](https://forum.balancer.fi/u/solarcurve)\
**Post date:** [June 24, 2023, 1:49am UTC](https://forum.balancer.fi/t/bip-339-enable-stafi-reth-weth-gauge-10-cap-arbitrum/4896/9 "2023-06-24T01:49:46Z")

</div>

wonder how the trust assumptions of eg the rate provider in BIP-340 compare to this?

---

<div class="post-metadata">

**Author:** ![Matt\_Alfalfa\_or\_Span](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.balancer.fi/matt_alfalfa_or_span/32/2502_2.png) [@Matt\_Alfalfa\_or\_Span](https://forum.balancer.fi/u/Matt_Alfalfa_or_Span)\
**Post date:** [June 24, 2023, 1:52am UTC](https://forum.balancer.fi/t/bip-339-enable-stafi-reth-weth-gauge-10-cap-arbitrum/4896/10 "2023-06-24T01:52:52Z")

</div>

Also wondered about that. @rabmarut is it worth integrarions sharing in [BIP-340](https://forum.balancer.fi/t/bip-340-migrate-veth-stablepool-gauge-ethereum/4881)the specifics that you folks id’d?

---

<div class="post-metadata">

**Author:** ![solarcurve](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.balancer.fi/solarcurve/32/1487_2.png) [@solarcurve](https://forum.balancer.fi/u/solarcurve)\
**Post date:** [June 24, 2023, 2:21am UTC](https://forum.balancer.fi/t/bip-339-enable-stafi-reth-weth-gauge-10-cap-arbitrum/4896/11 "2023-06-24T02:21:10Z")

</div>

also wonder how the trust assumptions of eg the [rate provider for wjAURA](https://etherscan.io/address/0x3556F710c165090AAE9f98Eb62F5b04ADeF7Eaea#code) compare to this?

---

<div class="post-metadata">

**Author:** ![ZenDragon](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.balancer.fi/zendragon/32/1542_2.png) [@ZenDragon](https://forum.balancer.fi/u/ZenDragon)\
**Post date:** [June 24, 2023, 3:08am UTC](https://forum.balancer.fi/t/bip-339-enable-stafi-reth-weth-gauge-10-cap-arbitrum/4896/12 "2023-06-24T03:08:46Z")

</div>

In the BIP-340 proposal i did add comments direct from rab (integrations team) under the oracles section for reference.

---

<div class="post-metadata">

**Author:** ![Tore](https://avatars.discourse-cdn.com/v4/letter/t/cc9497/32.png) [@Tore](https://forum.balancer.fi/u/Tore)\
**Post date:** [June 24, 2023, 2:14pm UTC](https://forum.balancer.fi/t/bip-339-enable-stafi-reth-weth-gauge-10-cap-arbitrum/4896/13 "2023-06-24T14:14:42Z")

</div>

Hi, I’m from StaFi. We are very glad to see everyone’s in-depth discussion on this proposal. As @rabmarut mentioned, the current rate provider does need to be optimized. In fact, we hope to use Chainlink or Layerzero solutions in the future to make the whole process truly secure and decentralized, but it may take months or even longer. So currently only a very simple version has been implemented for quick access and low-cost maintenance. Of course, we understand your concerns about some of the issues mentioned, and we are willing to make some improvements.

Here are several improvements:

1. Use multi-signature contract as the owner(2/3 or more).
2. Deploy the proxy contract for the rate implementation contract, so that we can upgrade to a better solution in the future.
3. Remove the setRate function.
4. Estimate an accurate rateChangeLimit value and remove setRateChangeLimit function.
5. More voters, 3/5 or more.

Btw, once there is a better solution in the future, such as integrating Chainlink, etc., we will switch to the safer and more general solution to bring you more secure and stable services.

Finally, thank you again for your thoughts and suggestions. We will do everything we can to optimize the solution and let you feel that it is feasible. Really hope the proposal can be approved. Thanks!
