Skip to content

[ARM] Deploy 038 WETH ARM on mainnet - #314

Merged
naddison36 merged 3 commits into
mainfrom
clement/deploy-038-weth-arm
Jul 23, 2026
Merged

[ARM] Deploy 038 WETH ARM on mainnet#314
naddison36 merged 3 commits into
mainfrom
clement/deploy-038-weth-arm

Conversation

@clement-ux

@clement-ux clement-ux commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

Description

Record the mainnet deployment of the WETH ARM: a WETH-quoted MultiAssetARM with four Lido/EtherFi base assets, each wired through its own redemption adapter behind a newly deployed proxy:

  • stETH — pegged 1:1 to WETH, redeemed through the Lido withdrawal queue.
  • wstETH — non-pegged Lido wrapper, unwrapped and redeemed through the Lido withdrawal queue.
  • eETH — pegged 1:1 to WETH, redeemed through the EtherFi withdrawal queue.
  • weETH — non-pegged EtherFi wrapper, unwrapped and redeemed through the EtherFi withdrawal queue.

Ownership of the ARM, its CapManager, and all four adapter proxies is handed directly to the mainnet 2/8 multisig (MULTISIG_2_OF_8). The operational role is the Talos KMS relayer (ARM_TALOS_RELAYER). No lending market is wired up; idle WETH remains in the ARM until a market is added in a follow-up deployment.

This deployment supersedes the legacy ETH ARM deployed by 036_DeployMultiAssetARMScript. The legacy resolver entries and execution history remain recorded, while the old deployment script is explicitly skipped.

The companion USDC-quoted ARM deployed in the same round is recorded in #315.

The following PRs are included in this deployment:

ARM

Deployment

Script script/deploy/mainnet/038_DeployWETHARMScript.s.sol

Contracts

Contract Address
WETH ARM (MultiAssetARM) proxy 0x68025A4615407993A680102b08a23A61D11C657C
WETH ARM implementation (MultiAssetARM) 0xe0Dba0eF9A1C7dF2a94386A3187e9360e1B2c1fb
WETH ARM CapManager proxy 0x19D2977a1cc5A73bF5d827aCE07a3BE3e56BdfEa
WETH ARM CapManager implementation 0x7488F5352207Ba9fA91FF09F6964c51Db2d662d1
StETHAssetAdapter implementation 0x2b8b088B29349f4a9Af1719f0fb3115587E84c26
StETHAssetAdapter proxy 0x7b0a90552D2dc01936301A45bFC813717Af7E8a9
WstETHAssetAdapter implementation 0x4ab7E8c06d651F7462df728419D4293126764Ed4
WstETHAssetAdapter proxy 0xE28ca056A12134b6B872D1CbE04cd1A82fDfeA95
EtherFiAssetAdapter implementation 0xb1104B6bD6f07D19E6D679e88AD4035CFD1F2A48
EtherFiAssetAdapter proxy 0xFa205c9a110a3e82Bd8d223CccCB15C5b9E6434e
WeETHAssetAdapter implementation 0x20c66066f30fa935B31878A439c53aC76d4C53cB
WeETHAssetAdapter proxy 0xD5F61bFd890169c28858039f6b6c9b517407C852

Contract diff

make match file=src/contracts/Proxy.sol addr=0x68025A4615407993A680102b08a23A61D11C657C
make match file=src/contracts/MultiAssetARM.sol addr=0xe0Dba0eF9A1C7dF2a94386A3187e9360e1B2c1fb
make match file=src/contracts/Proxy.sol addr=0x19D2977a1cc5A73bF5d827aCE07a3BE3e56BdfEa
make match file=src/contracts/CapManager.sol addr=0x7488F5352207Ba9fA91FF09F6964c51Db2d662d1
make match file=src/contracts/adapters/StETHAssetAdapter.sol addr=0x2b8b088B29349f4a9Af1719f0fb3115587E84c26
make match file=src/contracts/Proxy.sol addr=0x7b0a90552D2dc01936301A45bFC813717Af7E8a9
make match file=src/contracts/adapters/WstETHAssetAdapter.sol addr=0x4ab7E8c06d651F7462df728419D4293126764Ed4
make match file=src/contracts/Proxy.sol addr=0xE28ca056A12134b6B872D1CbE04cd1A82fDfeA95
make match file=src/contracts/adapters/EtherFiAssetAdapter.sol addr=0xb1104B6bD6f07D19E6D679e88AD4035CFD1F2A48
make match file=src/contracts/Proxy.sol addr=0xFa205c9a110a3e82Bd8d223CccCB15C5b9E6434e
make match file=src/contracts/adapters/WeETHAssetAdapter.sol addr=0x20c66066f30fa935B31878A439c53aC76d4C53cB
make match file=src/contracts/Proxy.sol addr=0xD5F61bFd890169c28858039f6b6c9b517407C852

Configuration

Param Value Note
liquidityAsset 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 WETH
claimDelay 10 minutes
minSharesToRedeem 1e7 0.00000000001 WETH
allocateThreshold 1 ether 1 WETH
name / symbol WETH ARM / ARM-WETH
performance fee 2000 20%
fee collector 0xBB077E716A5f1F1B63ed5244eBFf5214E50fec8c BUYBACK_OPERATOR
owner 0x4FF1b9D9ba8558F5EAfCec096318eA0d8b541971 Mainnet 2/8 multisig
ARM operator 0x739212d5bAfE6AAC8Be49a60B7d003bD41DBf38b ARM_TALOS_RELAYER

CapManager: total-assets cap 250 ether, account cap enabled, per-LP cap 250 ether for TREASURY_LP (0x6E3fddab68Bf1EBaf9daCF9F7907c7Bc0951D1dc). Its owner and operator are both the 2/8 multisig.

addBaseAsset parameters

Base asset Adapter proxy Buy price Sell price Cross price Pegged to WETH
stETH 0x7b0a90552D2dc01936301A45bFC813717Af7E8a9 0.9997e36 1e36 0.99996e36 true
wstETH 0xE28ca056A12134b6B872D1CbE04cd1A82fDfeA95 0.9997e36 1e36 0.99996e36 false
eETH 0xFa205c9a110a3e82Bd8d223CccCB15C5b9E6434e 0.9997e36 1e36 0.99996e36 true
weETH 0xD5F61bFd890169c28858039f6b6c9b517407C852 0.9997e36 1e36 0.99996e36 false

All four assets start with buyAmount = 0 and sellAmount = 0; trading remains disabled until the operator sets swap limits with setPrices().

Governance

There is no GovernorSix proposal. Ownership of the ARM, CapManager, and all adapter proxies was transferred directly to the mainnet 2/8 multisig during deployment. The proxy implementations and admins have been confirmed on-chain, so 038_DeployWETHARMScript is recorded with proposalId: 1 and tsGovernance: 1.

Post-deployment follow-ups (operator)

  • Enable trading. buyAmount and sellAmount are 0 for every base asset. Talos must set the intended swap limits through setPrices() before swaps are enabled.

Tests

  • forge build
  • forge test --match-contract Fork_WETHARM_Smoke_Test --fork-url "$MAINNET_URL" -vv — 2/2 tests passed.
  • Confirmed on-chain that the ARM, CapManager, and all four adapter proxies point to the implementations recorded above and are administered by the mainnet 2/8 multisig.

Record the mainnet deployment of the WETH-quoted MultiAssetARM, its CapManager, and the four stETH, wstETH, eETH, and weETH adapter stacks. Preserve the legacy ETH_ARM resolver entries and execution history while marking 036 as superseded by 038. All proxies are owned by the 2/8 multisig and their deployed implementations have been confirmed on-chain.
naddison36
naddison36 previously approved these changes Jul 23, 2026

@naddison36 naddison36 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All 12 contract addresses match across:

Verified:

  • All six proxies point to the recorded implementations.
  • Every proxy admin is the mainnet 2/8 multisig.
  • All implementations and proxy bytecode match repository source.
  • Mainnet-fork smoke tests pass: 2/2.
  • Resolver JSON is valid and deployment timestamp is plausible.
  • ARM ownership, operator, fees, caps, assets, adapters, pricing, and disabled initial liquidity match the deployment script.
  • All deployed implementation constructor parameters match 038_DeployWETHARMScript.

✅ Success: Local contract Proxy matches deployment at 0x19D2977a1cc5A73bF5d827aCE07a3BE3e56BdfEa
✅ Success: Local contract CapManager matches deployment at 0x7488F5352207Ba9fA91FF09F6964c51Db2d662d1
✅ Success: Local contract StETHAssetAdapter matches deployment at 0x2b8b088B29349f4a9Af1719f0fb3115587E84c26
✅ Success: Local contract Proxy matches deployment at 0x7b0a90552D2dc01936301A45bFC813717Af7E8a9
✅ Success: Local contract WstETHAssetAdapter matches deployment at 0x4ab7E8c06d651F7462df728419D4293126764Ed4
✅ Success: Local contract Proxy matches deployment at 0xE28ca056A12134b6B872D1CbE04cd1A82fDfeA95
✅ Success: Local contract EtherFiAssetAdapter matches deployment at 0xb1104B6bD6f07D19E6D679e88AD4035CFD1F2A48
✅ Success: Local contract Proxy matches deployment at 0xFa205c9a110a3e82Bd8d223CccCB15C5b9E6434e
✅ Success: Local contract WeETHAssetAdapter matches deployment at 0x20c66066f30fa935B31878A439c53aC76d4C53cB
✅ Success: Local contract Proxy matches deployment at 0xD5F61bFd890169c28858039f6b6c9b517407C852

@naddison36

Copy link
Copy Markdown
Collaborator

I've also verified the contracts with Tenderly by running

pnpm hardhat tenderlySync --network mainnet

And uploading the latest contracts to 4byte Signature Database

@naddison36 naddison36 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

approve

@naddison36
naddison36 merged commit 524e983 into main Jul 23, 2026
7 checks passed
@naddison36
naddison36 deleted the clement/deploy-038-weth-arm branch July 23, 2026 08:34
@clement-ux clement-ux self-assigned this Jul 23, 2026
@clement-ux clement-ux added the Deployment Deploys smart contracts to the network. label Jul 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Deployment Deploys smart contracts to the network.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants