Skip to content

feat: add base (Base mainnet) deploy env and bootstrap release#27

Merged
seanmcgary merged 2 commits into
masterfrom
sm-usdcBase
Jun 23, 2026
Merged

feat: add base (Base mainnet) deploy env and bootstrap release#27
seanmcgary merged 2 commits into
masterfrom
sm-usdcBase

Conversation

@seanmcgary

Copy link
Copy Markdown
Member

Summary

Adds the new zeus base environment (Base mainnet) and a bootstrap release so the existing v1.3.0-usdc-credits release can deploy USDCCredits on the fresh chain.

Why a bootstrap release is needed

v1.3.0-usdc-credits deploys its proxy against an existing ProxyAdmin and is gated from: "1.2.0":

new TransparentUpgradeableProxy(address(impl), address(Env.proxyAdmin()), ...)

A brand-new base env has no ProxyAdmin and sits at VERSION 0.0.0, so v1.3.0 cannot run on its own. The new v1.2.0-base-init release bootstraps the chain and advances the env to 1.2.0 so v1.3.0-usdc-credits (from: 1.2.0) chains afterward.

Changes

  • script/deploys/base/deployment.json — Base mainnet env config.
    • Multisig/billing addresses copied from mainnet-alpha (executorMultisig, computeOpsMultisig, computeWhitelisterMultisig, billingAdmin).
    • USDC_TOKEN = 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 (native USDC on Base mainnet).
    • USDC_TREASURY = 0x83fa243203f1B9B4F0D2806154095Cd765b9cA21 (same treasury used on mainnet-alpha).
    • USDC_MINIMUM_PURCHASE = 1000000, VERSION = 0.0.0 (fresh chain).
  • script/releases/v1.2.0-base-init/ — bootstrap release (0.0.0 → 1.2.0).
    • 1-deployProxyAdmin.s.sol — EOA deployer that deploys a ProxyAdmin, transfers ownership to computeOpsMultisig, and registers it in the zeus Env. Modeled on v0.1.0-base-sepolia-init but deploys only the ProxyAdmin (USDCCredits is left to v1.3.0).
    • upgrade.jsonname: base-init, single EOA phase.

Resulting run order on base

  1. v1.2.0-base-init (0.0.0 → 1.2.0) — creates the ProxyAdmin.
  2. v1.3.0-usdc-credits (1.2.0 → 1.3.0) — deploys USDCCredits against that ProxyAdmin. Shared release left untouched.

Testing

  • forge build passes (only the pre-existing unrelated lint warning in test/AppController.t.sol).
  • forge fmt applied to the new script.

Notes for reviewers

  • The directory name v1.2.0-base-init, its upgrade.json to, and the from: 1.2.0 gate of the shared v1.3.0-usdc-credits all line up so the chain is contiguous.
  • No changes to other environments or to the shared v1.3.0-usdc-credits files.

Add a deployment.json for the new zeus 'base' environment (Base mainnet)
and a v1.2.0-base-init bootstrap release so the shared v1.3.0-usdc-credits
release can deploy USDCCredits on the fresh chain.

- script/deploys/base/deployment.json: Base mainnet env config using the
  mainnet-alpha multisig/billing addresses, native USDC token, and the
  shared treasury. VERSION 0.0.0 (fresh chain).
- script/releases/v1.2.0-base-init: deploys a ProxyAdmin owned by the ops
  multisig and advances the env 0.0.0 -> 1.2.0 so v1.3.0-usdc-credits
  (gated from: 1.2.0) chains afterward.

Run order on base: v1.2.0-base-init (0.0.0 -> 1.2.0) then
v1.3.0-usdc-credits (1.2.0 -> 1.3.0).
@seanmcgary seanmcgary requested review from a team and mcclurejt June 17, 2026 15:56
@seanmcgary seanmcgary merged commit c658d63 into master Jun 23, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants