Launch USDT Market on Compound v3 Arbitrum

Summary

We would like to propose the addition of USDT (Tether) to Compound V3 Arbitrum.

Motivation

USDT is one of the most popular markets in Compound V2 Ethereum, so we recently added a proposal to list USDT on Compound v3 Ethereum. Now we propose adding USDT on Arbitrum’s Compound deployment. It would provide the Compound community an additional market for borrowing and lending stablecoins, which has already proven its demand. We believe that this will bring additional benefits to Compound users on Arbitrum and extend to the ecosystem as a whole.

The $1.71B of USDT on Arbitrum provides an opportunity for ample liquidity to be accessible by borrowers on Compound.

Proposed Collateral

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

  • wstETH
  • ETH
  • WBTC
  • COMP
  • USDC

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

Relevant Documents and Links

Website: https://tether.to/

Twitter: https://twitter.com/Tether_to/

CoinMarketCap: https://coinmarketcap.com/currencies/tether/

CoinGecko: https://www.coingecko.com/en/coins/tether

USDT Arbitrum market cap: https://l2beat.com/scaling/projects/arbitrum/tvl-breakdown

Next Steps

Franklin DAO will deliver the technical implementation of this market.

We invite the community to consider this application for listing the USDT market and welcome suggestions in this direction.

Additionally, we look forward to the community to suggest

  • Collateral Factor
  • Reserve Factor
  • Borrowing Limit
6 Likes

[Gauntlet] Arbitrum v3 USDT Initial Asset Listing Recommendations

Simple Summary

Gauntlet is excited for the community to expand Compound III into USDT. We recommend the following initial parameter recommendations for the Arbitrum v3 USDT comet.

Risk Parameters

Asset Collateral Factor Liquidation Factor Liquidation Penalty Supply Cap
WETH 78% 85% 5% 7,500 ($26M)
WBTC 70% 80% 10% 250 ($16M)
wstETH 70% 80% 10% 1,500 ($6M)
ARB 70% 80% 10% 7,500,000 ($14.9M)
GMX 60% 70% 20% 100,000 ($5.8M)

Gauntlet recommends against listing COMP based on Arbitrum liquidity on decentralized exchanges (DEX). Presently, exchanging 1,000 COMP (valued at $86k) for USDT results in a 89% slippage. Gauntlet provided parameter recommendations for assets listed on Arbitrum v3’s USDC Comet and included wstETH, as requested in the initial proposal. We excluded USDC from our initial recommendation due to uncertainties about the market value of incorporating a fiat-backed stablecoin into the USDT Comet market. Gauntlet will provide a recommendation if the community wants to move forward with adding USDC to the Comet as collateral.

Storefront Price Factor: 60%

Gauntlet recommends keeping the Store Front Price Factor at the same value as the Arbitrum v3 USDC Comet.

Target Reserves: 20,000,000

After Gauntlet’s forum post analyzing Target Reserves, Gauntlet recommends increasing the Target Reserves for this market based on historical reserve growth and our recent recommendation to increase Ethereum USDC Comet’s Target Reserves.

IR Curve Parameters

Gauntlet recommends the following IR parameters for USDT Comets:

IR Parameter Value
borrow per year interest rate base 0.015
borrow per year interest rate slope low 0.061
borrow kink 0.90
borrow per year interest rate slope high 3.2
supply per year interest rate base 0
supply per year interest rate slope low 0.059
supply kink 0.90
supply per year interest rate slope high 2.9

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

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

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 USDT supply are required before borrowers can join. Daily COMP rewards are subject to change as TVL rises and the markets evolve.

USDT Comet Incentives

Daily COMP Supply Rewards Daily COMP Borrow Rewards
12 10

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

  • Daily COMP Supply Rewards: 12 COMP
  • Daily COMP Borrow Rewards: 10 COMP

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

Here’s a breakdown based on our assumptions:

  • Borrow Usage (60%): This leads to a borrowing volume of $33M.
  • Utilization (90%): Corresponding to a supply volume of $36M.

With the above utilization and the present Interest Rate curve:

  • Supply APR: 5.31%
  • Borrow APR: 6.99%

Given the current COMP price of $89:

  • Supply Distribution APR: 1.05%
  • Borrow Distribution APR: .97%

This results in the following Net APRs:

  • Net Supply APR: 6.36%
  • Net Borrow APR: 6.02%

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

Next Steps

We welcome community feedback.

2 Likes

Arbitrum USDT market

PR - On-chain Compound v3 USDT Arbitrum market by MishaShWoof · Pull Request #864 · compound-finance/comet · GitHub

Actions

  1. Run Slither. Fails. :x:. On chain USDT arbitrum market · woof-software/comet@ecb49de · GitHub
  2. Forge test. Success.:white_check_mark: On chain USDT arbitrum market · woof-software/comet@ecb49de · GitHub
  3. Gas Profiler. Success.:white_check_mark: On chain USDT arbitrum market · woof-software/comet@ecb49de · GitHub
  4. Scan. Success.:white_check_mark: On chain USDT arbitrum market · woof-software/comet@ecb49de · GitHub
  5. arbitrum-usdt Scenario. Success.:white_check_mark: On chain USDT arbitrum market · woof-software/comet@ecb49de · GitHub
  6. Unit tests. Success.:white_check_mark: On chain USDT arbitrum market · woof-software/comet@ecb49de · GitHub
  7. Eslint. Success.:white_check_mark: On chain USDT arbitrum market · woof-software/comet@ecb49de · GitHub
  8. Contract linter. Success.:white_check_mark: On chain USDT arbitrum market · woof-software/comet@ecb49de · GitHub
  9. Prepare. Success.:white_check_mark: Prepare Migration · woof-software/comet@ecb49de · GitHub
  10. Deploy. :white_check_mark:
    Deploy Market · woof-software/comet@6b6c303 · GitHub
  11. Enact Migration with impersonate - Success :white_check_mark: - Enact Migration · woof-software/comet@ecb49de · GitHub

Description we use:

Initialize cUSDTv3 on Arbitrum\n\n

Proposal summary\n\n

FranklinDAO team with advice support from WOOF Software team proposes deployment of Compound III to the Arbitrum network. This proposal takes the governance steps recommended and necessary to initialize a Compound III USDT market on Arbitrum; upon execution, cUSDTv3 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 12 COMP/day and borrow speed to be 10 COMP/day.\n\n

The second action reduces Compound’s cUSDT reserves and transfers it to Timelock, in order to seed the market reserves for the cUSDTv3 Comet.\n\n

The third action approves 0 USDT from Timelock to ArbitrumL1CustomGateway to reset potential previous approves.\n\n

The fourth action approves 50K USDT to ArbitrumL1CustomGateway to take Timelock’s USDT on Mainnet, in order to seed the market reserves through the ArbitrumL1GatewayRouter.\n\n

The fifth action bridges USDT from mainnet via ‘outboundTransfer’ function on ArbitrumL1GatewayRouter’s contract and sends it to Comet on Arbitrum.\n\nThe sixth 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 cUSDTv3 market.

1 Like

Arbitrum USDT Migration Review

June 17-19, 2024

Summary

Medium Severity Issues: 1 (1 resolved)

Notes & Additional Information: 1 (1 resolved)

Total Issues: 2 (2 resolved)

Scope

OpenZeppelin reviewed Pull Request 864 of the compound-finance/comet repository at commit 184074b which will submit a governance proposal to create a USDT 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/usdt/migrations/1717936901_configurate_and_end.ts

Reviewing base and collateral assets of the USDT 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 USDT market on Arbitrum with wstETH, wETH, wBTC, ARB and GMX 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 864 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 correct contracts were deployed on-chain.
  • 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.
  • That correct oracle price feeds were used.
  • That 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 USDT 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.

Medium Severity

Wrong oracle used for wstETH collateral

All the collaterals in this USDT market are priced in USD except for wstETH which is priced in ETH using the wstETH/ETH price feed. This will cause problems because the price returned by this oracle would be so low compared to the wstETH price in USD that borrowers won’t be able to borrow using this as collateral.

Consider using the MultiplicativePriceFeed contract to get the wstETH price in USD by utilizing the wstETH/ETH and ETH/USD price feeds. cbETH collateral is priced in USD similarly on Base.

Update: Resolved in commit b196923.

Notes & Additional Information

Prevention of ENS Record Mismatch

As part of the migration process, the address of every deployed market is added to the v3-official-markets record of the v3-additional-grants.compound-community-licenses.eth domain. Since the setText method of the ENS Resolver only allows replacing the current value with a new value, there is a chance that this this proposal can unintentionally remove recently added values.

To prevent such a scenario from occuring, consider:

  • Copying the latest value from the v3-official-markets record of the v3-additional-grants.compound-community-licenses.eth.
  • Waiting till any other live proposal also affecting the ENS record has either succeeded or failed.
  • Ensuring that any change currently queued to change the ENS record is also reflected in this proposal.

Update: Resolved in commit 878d5f9.

Conclusion

Upon reviewing the calldata generated by the migration script, we found one medium severity issue and one informational severity issue. Apart from this, the proposal has been correctly created and follows all current recommendations.

4 Likes

Hey Compounders! The second USDT market on Compound V3 started its on-chain pipeline.

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

We are looking forward to your support in voting!

1 Like

Proposal 262 Review

OpenZeppelin confirmed that proposal 262 effectively matches the proposal in the migration scope we reviewed with one difference; the value of _maxGas in outboundTransfer has changed from 330834 to 330590.

:warning: If this proposal executes after proposal 265 it will overwrite the ENS record effectively removing the Polygon USDT Comet Market address. Please see details in Concurrent Proposals with ENS Updates.

Thanks for your feedback. OZ team provides the worker, that triggers the execution of the proposals. 262 and 265 proposals have a 6-hour gap between the execution, so proposal 262 will be executed first. We are going to monitor execution and in case the 262 proposal won’t be executed in time, we will trigger the execution manually.

2 Likes