[ARM] Deploy 039 USDC ARM on mainnet - #315
Merged
Merged
Conversation
Record the mainnet deployment of the USDC-quoted MultiAssetARM, its CapManager, and the new PYUSD and USDG PaxosAssetAdapter implementations. Preserve the legacy USD_ARM resolver entries because 039 reuses the existing Paxos-whitelisted adapter proxies, and mark 037 as superseded. The 2/8 multisig must still upgrade both adapter proxies to the newly deployed implementations, so the execution remains pending with tsGovernance 0.
naddison36
previously approved these changes
Jul 23, 2026
naddison36
left a comment
Collaborator
There was a problem hiding this comment.
Result: deployment records are correct, but deployment is not fully operational yet.
- All 8 deployed contracts match the local source recorded by the PR.
ARM proxy points to 0xef40…a96. - CapManager proxy points to 0xDdF1…8bd.
- Both proxies and both adapter proxies are owned by the expected 2/8 multisig.
- ARM metadata, operator, fee, collector, USDC asset, claim delay, thresholds, base assets, prices, adapters, and disabled swap limits match the PR.
- CapManager’s ARM, operator, total cap, account-cap setting, and Treasury LP cap match.
- The seven Paxos ARM smoke tests are present; the fork command completed successfully.
- All GitHub CI checks are green.
✅ Success: Local contract Proxy matches deployment at 0x9E3A7026E5767F2d7Ff5e83b0ed011005f45a170
✅ Success: Local contract MultiAssetARM matches deployment at 0xef40f3548ec3277ade0eb88DbB80ebF63Ea59a96
✅ Success: Local contract Proxy matches deployment at 0x19B1Edb2caD902F103a20A30011f125DCe44F954
✅ Success: Local contract CapManager matches deployment at 0xDdF1954db1Ace4a58E07a4D25C0818aC977cb8bd
✅ Success: Local contract PaxosAssetAdapter matches deployment at 0x0bD1bE3B983DE582291dc16DFB123C74dcd65ae8
✅ Success: Local contract Proxy matches deployment at 0x0C9ac6D63B2b2A1b502E29eC47a53d0966Ea9465
✅ Success: Local contract PaxosAssetAdapter matches deployment at 0xB4723D7a5724D6Ce35AACf6c3A6E6E2BeE0c2E05
✅ Success: Local contract Proxy matches deployment at 0xAb98aC901B8A26636d9cf3Cf38d9aCdcD045788f
naddison36
approved these changes
Jul 23, 2026
naddison36
left a comment
Collaborator
There was a problem hiding this comment.
reapprove after commit
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Record the mainnet deployment of the USDC ARM: a USDC-quoted
MultiAssetARMwith two Paxos-issued base assets. The deployment reuses the existing Paxos-whitelisted adapter proxies and deploys a newPaxosAssetAdapterimplementation for each proxy:Ownership of the ARM, its
CapManager, and both reused adapter proxies is held by 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 USDC remains in the ARM until a market is added in a follow-up deployment.This deployment supersedes the legacy USD ARM deployed by
037_DeployUSDARMScript. The legacy resolver entries and execution history remain recorded because039reuses the existing Paxos adapter proxies, while the old deployment script is explicitly skipped.The following PRs are included in this deployment:
ARM
Deployment
Script
script/deploy/mainnet/039_DeployUSDCARMScript.s.solContracts
MultiAssetARM) proxyMultiAssetARM)CapManagerproxyCapManagerimplementationPaxosAssetAdapter(PYUSD) implementationPaxosAssetAdapter(PYUSD) proxyPaxosAssetAdapter(USDG) implementationPaxosAssetAdapter(USDG) proxyContract diff
Configuration
liquidityAsset0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48claimDelay10 minutesminSharesToRedeem1e6allocateThreshold100e6name/symbolUSDC ARM/ARM-USDC20000xBB077E716A5f1F1B63ed5244eBFf5214E50fec8cBUYBACK_OPERATORowner0x4FF1b9D9ba8558F5EAfCec096318eA0d8b541971operator0x739212d5bAfE6AAC8Be49a60B7d003bD41DBf38bARM_TALOS_RELAYERCapManager: total-assets cap
100,000e6(100,000 USDC), account cap enabled, per-LP cap100,000e6forTREASURY_LP(0x6E3fddab68Bf1EBaf9daCF9F7907c7Bc0951D1dc).addBaseAssetparameters0x0C9ac6D63B2b2A1b502E29eC47a53d0966Ea94650.998e361e360.99997e36true0xAb98aC901B8A26636d9cf3Cf38d9aCdcD045788f0.998e361e360.99997e36trueBoth assets start with
buyAmount = 0andsellAmount = 0; trading remains disabled until the operator sets swap limits withsetPrices().Governance
There is no
GovernorSixproposal. Ownership of the ARM andCapManagerwas transferred directly to the mainnet 2/8 multisig during deployment. The two reused Paxos adapter proxies were already owned by the same multisig.039_DeployUSDCARMScriptis recorded withproposalId: 1andtsGovernance: 0because the adapter proxy upgrades are still pending manual execution by the 2/8 multisig.Required post-deployment actions (2/8 multisig)
The mainnet 2/8 multisig must manually upgrade both reused adapter proxies:
0x0C9ac6D63B2b2A1b502E29eC47a53d0966Ea94650x50223D4f7c027DF74939555E92584C6332c613B20x0bD1bE3B983DE582291dc16DFB123C74dcd65ae8upgradeTo(0x0bD1bE3B983DE582291dc16DFB123C74dcd65ae8)0xAb98aC901B8A26636d9cf3Cf38d9aCdcD045788f0x7c4c0B599E17C3Ad4ae37Ba61Eef50980e13203B0xB4723D7a5724D6Ce35AACf6c3A6E6E2BeE0c2E05upgradeTo(0xB4723D7a5724D6Ce35AACf6c3A6E6E2BeE0c2E05)Until these upgrades are executed, the reused proxies still target the legacy USD ARM adapter implementations, so the new USDC ARM redemption paths are not operational. Once both upgrades are confirmed on-chain, update
tsGovernanceto1inbuild/deployments-1.json.Other post-deployment follow-ups (operator)
buyAmountandsellAmountare0for both assets. Talos must set the intended swap limits throughsetPrices()before swaps are enabled.Tests
forge buildforge test --match-contract Fork_PaxosARM_Smoke_Test --fork-url "$MAINNET_URL" -vv— 7/7 tests passed. BecausetsGovernanceis pending, the deployment framework simulates both 2/8 proxy upgrades on the fork before running the smoke tests.CapManagerproxies point to the implementations recorded above and are administered by the mainnet 2/8 multisig.