Add ETH market on Arbitrum

Summary

Woof Software and the Compound Growth program propose launching ETH market on Arbitrum network.

Motivation

wstETH

wstETH is an asset that has been integrated into multiple money markets, including Compound, across different chains, such as Aave on Mainnet, Arbitrum, Optimism, Base, and Radiant on Mainnet and Arbitrum. It is also the leading liquid staking token (LST) in terms of market cap and liquidity depth on Mainnet and Arbitrum.

rETH

The Rocket Pool team has been in the staking space since its inception in 2016.

The Rocket Pool protocol went live on 9th November 2021. It was a staged rollout with a full unlimited opening on 22 November 2021.

Rocket Pool is the most experienced, trusted Liquid Staking Protocol in existence. It is the base layer protocol for decentralised permissionless, and trustless Ethereum staking.

rETH is a Liquid Staking token representing staked ETH. rETH is fully composable in the wider DeFi landscape while accruing value from ETH earned through staking

Points of contact: @Pasha, @dmitriywoofsoftware, @sharp, @bryancolligan

Proposed Collateral

We propose adding the following assets as collaterals for the market:

  • rETH (Rocket Pool ETH)
  • wstETH (Lido Wrapped Staked ETH)

We invite the community to suggest and give inputs for any other collateral assets.

Relevant Documents and Links

Lido

Website

Docs

Socials

Token contract address

Rocket Pool

Website

Docs

Socials

Token contract address

Next steps

  • Community feedback
  • Market configuration feedback from Gauntlet
  • Development by Woof Software
  • Audit by OpenZeppelin
  • Deployment by Woof Software

Additionally, we look forward to the community to suggest:

  • Collateral Factor
  • Reserve Factor
  • Borrowing Limit
3 Likes

[Gauntlet] Arbitrum v3 WETH Comet Asset Listing

Simple Summary

We recommend the following initial parameter recommendations for the Arbitrum v3 WETH comet:

Risk Parameters

Asset Collateral Factor Liquidation Factor Liquidation Penalty Supply Cap
rETH 90% 93% 3% 800 ($3.4M)
wstETH 88% 93% 3% 2,000 ($9.1M)
weETH 82% 87% 8% 550 ($2.2M)

Gauntlet recommends adding weETH in this initial listing for this ARB Comet. We have already done a full analysis for adding weETH to Ethereum WETH Comet. Gauntlet recommends a lower supply cap based on current on-chain liquidity. The chart below exhibits the weETH liquidity TVL across Arbitrum ecosystem.

Storefront Price Factor: 70%

Gauntlet recommends keeping the Store Front Price Factor at the same value as the Ethereum v3 WETH Comet.

Target Reserves: 5000

After Gauntlet’s forum post analyzing Target Reserves, Gauntlet recommends the following Target Reserves.

IR Curve Parameters

IR Curve Parameters

Gauntlet recommends the following IR parameters for the WETH Comet:

Parameter Recommended Value
Annual Supply Interest Rate Base 0
Annual Supply Interest Rate Slope Low 0.0185
Supply Kink 0.85
Annual Supply Interest Rate Slope High 1
Annual Borrow Interest Rate Base 0.01
Annual Borrow Interest Rate Slope Low 0.014
Borrow Kink 0.85
Annual Borrow Interest Rate Slope High 1.15

The chart above demonstrates that the generation of Comet WETH reserves will be positive when utilization exceeds 61%.

Considering the market equilibrium assumption of reaching 85% utilization, the following chart forecasts annualized reserves corresponding to various borrowing amounts. At $12M borrowed, the Comet would generate annual reserves of $40k.

Incentive Parameters

Our COMP rewards recommendations are designed to offer appealing distribution APRs when the comets are first launched and when supply caps are highly utilized.

Gauntlet is recommending higher supply rewards to incentivize a more significant inflow of supply tokens into the protocol. This is important in the early stages of protocol growth since WETH supply is required before borrowers can join. Daily COMP rewards are subject to change as TVL rises and the markets evolve.

WETH Comet Incentives

Daily COMP Supply Rewards Daily COMP Borrow Rewards
6 4

Here’s an update on the current COMP rewards structure in Arbitrum v3 WETH:

  • Daily COMP Supply Rewards: 6 COMP
  • Daily COMP Borrow Rewards: 4 COMP

Assuming full usage of supply caps and current liquidation factors, the total borrowing power would be $13.4M.

Here’s a breakdown based on our assumptions:

  • Borrow Usage (80%): This leads to a borrowing volume of $10.8M.
  • Utilization (85%): Corresponding to a supply volume of $12.7M.

With the above utilization and the present Interest Rate curve:

  • Supply APR: 1.57%
  • Borrow APR: 2.19%

Given the current COMP price of $60:

  • Supply Distribution APR: 1.03%
  • Borrow Distribution APR: 1.01%

This results in the following Net APRs:

  • Net Supply APR: 2.61%
  • Net Borrow APR: 1.18%

The chart above illustrates the Distribution Annual Percentage Rates (APRs) across various supply levels, assuming a 85% utilization rate. It’s noteworthy that APRs exceeding 2% will persist until the market’s supply reaches $7.5M. These incentive distributions are strategically designed to accelerate the WETH Comet. The current projected net APRs are within reasonable ranges.

Next Steps

We welcome community feedback.

1 Like

Arbitrum WETH market

Hello Compounders. We are about to push an on-chain proposal for the Arbitrum USDT market. Here you can find all the necessary information about the development of the new market.

We are looking forward to hearing your feedback. Also, we ask you to review the code to double-check that we have not missed anything, wrong addresses, etc.

Areas to pay attention to:

  1. configuration.json:
    • Correct configuration from Gauntlet
    • Correct contract addresses
  2. deploy.ts
    • Correct price feeds addresses
    • Correct token addresses
    • Re-using already deployed contract from Arbitrum usdc.e deployment
  3. 1716912328_configure_and_ens.ts
    • A corresponding description of the actions in the proposal
  4. relayArbitrumMessage.ts
    • Added this functionality, to simulate bridge call

Deployment PR

  1. Woof local PR - Deploy compound v3 WETH market on Arbitrum by EviLord032 · Pull Request #9 · woof-software/comet · GitHub
  2. Into Compound finance PR - Deploy compound v3 WETH market on Arbitrum by dmitriy-woof-software · Pull Request #856 · compound-finance/comet · GitHub

Actions

  1. Run Slither. Fails. :x:. Deploy compound v3 WETH market on Arbitrum · woof-software/comet@1ae6765 · GitHub
  2. Forge test. Success.:white_check_mark: Deploy compound v3 WETH market on Arbitrum · woof-software/comet@1ae6765 · GitHub
  3. Gas Profiler. Success.:white_check_mark: Deploy compound v3 WETH market on Arbitrum · woof-software/comet@1ae6765 · GitHub
  4. Scan. Success.:white_check_mark: Deploy compound v3 WETH market on Arbitrum · woof-software/comet@1ae6765 · GitHub
  5. arbitrum-weth Scenario. Success.:white_check_mark: Deploy compound v3 WETH market on Arbitrum · woof-software/comet@1ae6765 · GitHub
  6. Unit tests. Success.:white_check_mark: Deploy compound v3 WETH market on Arbitrum · woof-software/comet@1ae6765 · GitHub
  7. Eslint. Success.:white_check_mark: Deploy compound v3 WETH market on Arbitrum · woof-software/comet@1ae6765 · GitHub
  8. Contract linter. Success.:white_check_mark: Deploy compound v3 WETH market on Arbitrum · woof-software/comet@1ae6765 · GitHub
    !!! 9. Deploy. Success.:white_check_mark: Deploy Market · woof-software/comet@1ae6765 · GitHub

New PR, after contract deployment

  1. Woof local PR - On-chain Compound v3 WETH Arbitrum market by dmitriy-woof-software · Pull Request #14 · woof-software/comet · GitHub
  2. Into Compound finance PR - On-chain Compound v3 WETH Arbitrum market by dmitriy-woof-software · Pull Request #860 · compound-finance/comet · GitHub

Actions

  1. Run Slither. Fails. :x:. On-chain Compound v3 WETH Arbitrum market · woof-software/comet@c89cda2 · GitHub
  2. Forge test. Success.:white_check_mark: On-chain Compound v3 WETH Arbitrum market · woof-software/comet@c89cda2 · GitHub
  3. Gas Profiler. Success.:white_check_mark: On-chain Compound v3 WETH Arbitrum market · woof-software/comet@c89cda2 · GitHub
  4. Scan. Success.:white_check_mark: On-chain Compound v3 WETH Arbitrum market · woof-software/comet@c89cda2 · GitHub
  5. arbitrum-weth Scenario. Success.:white_check_mark: On-chain Compound v3 WETH Arbitrum market · woof-software/comet@c89cda2 · GitHub
  6. Unit tests. Success.:white_check_mark: On-chain Compound v3 WETH Arbitrum market · woof-software/comet@c89cda2 · GitHub
  7. Eslint. Success.:white_check_mark: On-chain Compound v3 WETH Arbitrum market · woof-software/comet@c89cda2 · GitHub
  8. Contract linter. Success.:white_check_mark: On-chain Compound v3 WETH Arbitrum market · woof-software/comet@c89cda2 · GitHub
  9. Enact Migration with impersonate - Success :white_check_mark: - Enact Migration · woof-software/comet@c89cda2 · GitHub

Description:

Initialize cWETHv3 on Arbitrum\n\n

Proposal summary\n\n

Compound Growth Program [AlphaGrowth] proposes deployment of Compound III to the Arbitrum network. This proposal takes the governance steps recommended and necessary to initialize a Compound III WETH market on Arbitrum; upon execution, cWETHv3 will be ready for use. Simulations have confirmed the market’s readiness, as much as possible, using the Comet scenario suite. The new parameters include setting the risk parameters based off of the recommendations from Gauntlet.\n\n

Further detailed information can be found on the corresponding proposal pull request, deploy market GitHub action run and forum discussion.\n\n\n## Proposal Actions\n\n

The first proposal action sets the Comet configuration and deploys a new Comet implementation on Arbitrum. This sends the encoded setFactory, setConfiguration, deployAndUpgradeTo calls across the bridge to the governance receiver on Arbitrum. It also calls setRewardConfig on the Arbitrum rewards contract, to establish Artitrum’s bridged version of COMP as the reward token for the deployment and set the initial supply speed to be 6 COMP/day and borrow speed to be 4 COMP/day.\n\n

The second action wraps ETH as WETH so it can be then transferred.\n\n

The third action approves (ArbitrumL1GatewayRouter) TokenMessenger to take the Timelock’s WETH on Mainnet, in order to seed the market reserves through the arbitrumL1GatewayRouter.\n\n

The fourth action bridges WETH from mainnet via ‘outboundTransfer’ function on ArbitrumL1GatewayRouter’s contract to mint native WETH to Comet on Arbitrum.\n\n

The fifth action updates the ENS TXT record v3-official-markets on v3-additional-grants.compound-community-licenses.eth, updating the official markets JSON to include the new Arbitrum cWETHv3 market.\n

We are looking forward to your feedback!

2 Likes

A point of information for the community to consider is that weETH asset has not been used as collateral on any existing Comet on Compound.

2 Likes

Arbitrum WETH Migration Review

June 10-12, 2024

Summary

Note Issues: 2 (2 resolved)
Client-Reported Issues: 1 (1 resolved)
Total Issues: 3 (3 resolved)

Scope

OpenZeppelin reviewed Pull Request 860 of the compound-finance/comet repository at commit c89cda2 which will submit a governance proposal to create a WETH Comet market on Arbitrum using the official Comet Migration process.

In scope was the governance proposal created by the simulated Enact Workflow using the migration files:

.github/workflows/enact-migration.yaml
deployments/arbitrum/weth/migrations/1716912328_configure_and_ens.ts

Reviewing base and collateral assets of the WETH Comet market on Arbitrum was out of scope.

Overview

As described in the Compound Community Forum Proposal, Woof Software and the Compound Growth Program propose launching the WETH market on Arbitrum with liquid staking tokens (LST) such as wstETH, rETH, and weETH as collateral.

To deploy an official market on Arbitrum, a series of specific Compound Governance steps must be taken. Dependencies must be accurately and securely deployed after which an official governance proposal is to be proposed on-chain. The focus of OpenZeppelin’s review was Pull Request 860 which includes the deployed dependencies, the official migration governance proposal, and all the security concerns that may arise during execution of the proposal. Specifically we checked:

  • That the simulation workflow created the same proposal as the deployment workflow.
  • That the proposal description was accurate and descriptive of its effects.
  • That proposal dependencies were verified as deployed with correct configurations.
  • That proposal instructions were decoded and verified as complete.
  • Proposal instructions were simulated and executed successfully without errors on both Mainnet and Arbitrum.
  • That the eventual market configuration was verified to match the parameter values provided by Gauntlet and accepted by the community.

Security Model and Trust Assumptions

Before proposal enactment to incorporate the WETH market on Arbitrum, it is assumed that there will not be any upgrades or changes to the implementations of the proposal or Comet ecosystem at large.

Notes & Additional Information

Description Typo

The pull request link [proposal pull request](https://github.com/compound-finance/comet/pull60) in the proposal description is incorrect and doesn’t resolve to the expected resource. This may cause confusion for voters or community members doing their own research.

Consider updating the broken link to the appropriate URL: [proposal pull request](https://github.com/compound-finance/comet/pull/860)

Update: Resolved in commit 7dcf542.

New Collateral Asset

The market migration to create a new WETH Comet market on Arbitrum also includes a new collateral asset weETH which has not been used in any other Compound market previously. In prior analysis of weETH as a collateral asset, Gauntlet identified oracle risks which could expose the protocol to exaggerated market movements and a yield risk which could cause yield shocks and consequentially elevate slippage magnitude and liquidity on DEXs. The resulting governance proposal of this migration to create the WETH Comet market on Arbitrum excludes mention of using this new collateral asset for the first time.

Consider updating the proposal description to clarify that enacting the proposal to create a WETH Comet market on Arbitrum will introduce weETH as a new collateral asset to Compound.

Update: Resolved in commit 7dcf542.

Client-Reported

Token Address Typo When Estimating Gas

During our review the Woof Software team reported an incorrect token address was used to estimate gas in the migration script.

This token address is only used by Comet arbitrumUtils which then uses the Arbitrum SDK to estimate gas. It is encoded as data and this is later used during estimations. It can be observed that the address should not matter in this case. To further ensure this our team performed forked simulation tests with the decoded gas values from the enacted proposal and the transactions succeed.

Upon reviewing the issue we concluded that this is a small typo and should not affect the migration.

Update: Resolved, the Woof Software team stated:

We have not changed COMP to WETH on bridging. That is because Timelock does not have WETH on it, thus it fails.

Conclusion

Upon reviewing the migration script, our team at OpenZeppelin is confident that the proposal has been correctly created and follows all the recommendations. During our evaluation of this migration proposal, there was one omission and two minor typographical issues found; none of which should disrupt the proposal and addition of the new Comet market. Along with all of the prior information it can be verified that the market should function with WETH as its base asset and with the previously stated collaterals on Arbitrum.

2 Likes

Thanks OZ team for such fast code audit. We have already made changes to the typos that you found. We are going to push the on-chain proposal this weekend.

FYI

  • We updated the typo in the pull request link.
  • We added a paragraph that weETH is the new collateral in Compound Finance markets.
  • We have not changed the COMP token to the WETH token in gas estimation, because it will fail because the timelock does not have a WETH token. However, as OZ mentioned, it won’t affect the proposal run.
2 Likes

Hi Compounders. Arbitrum WETH market is pushed on-chain.

  1. Proposal - Compound
  2. Migration run - Enact Migration · woof-software/comet@7dcf542 · GitHub
  3. On-chain transaction - Ethereum Transaction Hash (Txhash) Details | Etherscan

Migration failed with error: “execution reverted: GovernorBravo::propose: one live proposal per proposer, found an already pending proposal”, however, it did not affect the successful run of the proposal

We are looking forward to your support in voting!

OpenZeppelin confirmed that the Governance Proposal 259 effectively matches the proposal in the scope we reviewed.

There are two differences noted:

  1. In CreateRetryableTicket, they have increased the maxFeePerGas from 3263681 to 3633192.
  2. In OutboundTransfer, they have increased the _maxGas from 341175 to 459510.
2 Likes

:warning: There is another active proposal that may overwrite ENS record changes of this proposal. Please see details in Concurrent Proposals with ENS Updates.

Hi Compounders,

The market starts working in a day - GMT: Sun, 23 Jun 2024 07:55:22 GMT

1 Like

Hi Community,
Gauntlet submitted an on-chain proposal to adjust the Comet Parameters’ Base Borrow Min and Base Min for Rewards.

  • Decrease Base Borrow Min from 0.1 WETH to 0.000001 WETH
  • Decrease Base Min for Rewards from 1000 WETH to 100 WETH

Gauntlet recommends to adjust these params to match the setting on Base WETH Comet. The adjustment to lower BASE Borrow Min will allow users to borrow lower amounts of WETH and the Base Min Reward adjustment will allow market incentives to kick off with a lower threshold.

The proposal will be live for voting within 1 day and 20 hours.

1 Like

Proposal 271 Review

OpenZeppelin confirmed that Proposal 271 matches Proposal 267 with a decrease of gasLimit, is expected to execute as intended, and updates the Comet parameters as described in the forum and proposal description.

1 Like

Hey! Avid compound user here. The front end doesn’t seem to show COMP awards and there isn’t much borrowing going on. Wondering if the pool is working as intended or should we the users wait for a bit longer? Thanks! :slight_smile:

Hey. The protocol works as it should. However, COMP incentives will appear after 3.5M$ TVL. Gauntlet pushed a proposal, that should decrease total TVL to make the market incentivize faster - Compound

Thanks so much! -Steve