Audit EOA governance/admin and plan transfer to DEX 2-of-3 #15

Open
opened 2026-08-15 12:42:55 +00:00 by PlasticDigits · 4 comments
PlasticDigits commented 2026-08-15 12:42:55 +00:00 (Migrated from gitlab.com)

Summary

Audit every ustr-cmm columbus-5 contract/token still controlled by cl8y2_admin (terra1xsecn4snv94ezcez0z3vq8an9j4h4kxxcydp8l) and plan handoff of app governance/admin and wasm admin to the DEX 2-of-3 terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7.

DEX factory/router/pairs/faucet/CL8Y/gems are already on that multisig. This issue is the ustr-cmm surface only.

Live state (queried 2026-08-15)

Surface Wasm admin App governance / primary minter Transfer mechanic Status
wrap-mapper terra1xuuuh…nmd2 code 11574 cl8y2_admin cl8y2_admin (fee_wrap_bps=200, fee_unwrap_bps=51) 7-day propose_governance_transfer / accept_governance_transfer Proposed → multisig; execute_after 2026-08-22T12:34:09Z. Accept tracked on DEX #525. Wasm set-contract-admin not done.
CMM treasury terra16j5u6…3lr2 cl8y2_admin cl8y2_admin 7-day ProposeGovernanceTransfer / AcceptGovernanceTransfer Pending already unlocked (new_address = multisig, execute_after 2026-08-15T00:26:12Z). Multisig can accept now. Wasm admin not moved.
USTC→USTR swap terra16ytnk…37lel cl8y2_admin admin = cl8y2_admin 7-day ProposeAdmin / AcceptAdmin Not proposed
USTR CW20 cl8y2_admin primary = cl8y2_admin; extras = swap + DEX multisig update_minter + set-contract-admin Keep swap as extra minter
cUSTC CW20 cl8y2_admin primary = cl8y2_admin; extras = wrap-mapper + DEX multisig same Keep mapper as extra
cLUNC CW20 cl8y2_admin primary = cl8y2_admin; extra = wrap-mapper only same AddMinter(multisig) before dropping primary if DEX still needs mint
vFDUSD CW20 cl8y2_admin primary = cl8y-bridge-v2 (not the EOA) wasm admin only, or AddMinter(bridge) before moving primary Do not steal bridge mint

Audit checklist

  • Confirm execute JSON + any timelock for treasury accept / swap ProposeAdmin / token update_minter
  • List product minters that must remain (mapper, swap, window is ust1-window repo)
  • Decide whether wasm admin moves with app governance or in a second step
  • After treasury accept: pause / withdraw / wrap custody require 2-of-3
  • Mirror addresses + new governance into docs/DEPLOYMENT.md / CONTRACTS.md and DEX deployments/mainnet-ust1-wrap/REGISTRY.md (O6)

Suggested order

  1. Treasury AcceptGovernanceTransfer (DEX 2-of-3) — timelock already elapsed
  2. Treasury + wrap-mapper set-contract-admin (EOA, no lock)
  3. Swap ProposeAdmin now → accept +7d
  4. Token primary minter + wasm admin (keep extras; AddMinter on cLUNC first)
  5. Wrap-mapper accept after 2026-08-22 12:34 UTC (DEX #525)
  • DEX wrap accept: cl8y-dex-terraclassic#525
  • Split fees already live on mapper 11574 (#9 / DEX #516)
  • Window/oracle/UST1 token: sister issue on ust1-window
  • Bridge admin / vFDUSD primary: sister issue on cl8y-bridge-monorepo
## Summary Audit every ustr-cmm columbus-5 contract/token still controlled by `cl8y2_admin` (`terra1xsecn4snv94ezcez0z3vq8an9j4h4kxxcydp8l`) and plan handoff of **app governance/admin** and **wasm admin** to the DEX 2-of-3 `terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7`. DEX factory/router/pairs/faucet/CL8Y/gems are already on that multisig. This issue is the **ustr-cmm surface only**. ## Live state (queried 2026-08-15) | Surface | Wasm admin | App governance / primary minter | Transfer mechanic | Status | |---------|------------|----------------------------------|-------------------|--------| | wrap-mapper `terra1xuuuh…nmd2` code **11574** | `cl8y2_admin` | `cl8y2_admin` (`fee_wrap_bps=200`, `fee_unwrap_bps=51`) | 7-day `propose_governance_transfer` / `accept_governance_transfer` | **Proposed** → multisig; `execute_after` **2026-08-22T12:34:09Z**. Accept tracked on DEX [#525](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/525). Wasm `set-contract-admin` not done. | | CMM treasury `terra16j5u6…3lr2` | `cl8y2_admin` | `cl8y2_admin` | 7-day `ProposeGovernanceTransfer` / `AcceptGovernanceTransfer` | **Pending already unlocked** (`new_address` = multisig, `execute_after` **2026-08-15T00:26:12Z**). Multisig can accept **now**. Wasm admin not moved. | | USTC→USTR swap `terra16ytnk…37lel` | `cl8y2_admin` | `admin` = `cl8y2_admin` | 7-day `ProposeAdmin` / `AcceptAdmin` | Not proposed | | USTR CW20 | `cl8y2_admin` | primary = `cl8y2_admin`; extras = swap + **DEX multisig** | `update_minter` + `set-contract-admin` | Keep swap as extra minter | | cUSTC CW20 | `cl8y2_admin` | primary = `cl8y2_admin`; extras = wrap-mapper + **DEX multisig** | same | Keep mapper as extra | | cLUNC CW20 | `cl8y2_admin` | primary = `cl8y2_admin`; extra = wrap-mapper **only** | same | **AddMinter(multisig)** before dropping primary if DEX still needs mint | | vFDUSD CW20 | `cl8y2_admin` | primary = **cl8y-bridge-v2** (not the EOA) | wasm admin only, or AddMinter(bridge) before moving primary | Do not steal bridge mint | ## Audit checklist - [ ] Confirm execute JSON + any timelock for treasury accept / swap `ProposeAdmin` / token `update_minter` - [ ] List product minters that **must remain** (mapper, swap, window is ust1-window repo) - [ ] Decide whether wasm admin moves with app governance or in a second step - [ ] After treasury accept: pause / withdraw / wrap custody require 2-of-3 - [ ] Mirror addresses + new governance into `docs/DEPLOYMENT.md` / `CONTRACTS.md` and DEX `deployments/mainnet-ust1-wrap/REGISTRY.md` (O6) ## Suggested order 1. Treasury `AcceptGovernanceTransfer` (DEX 2-of-3) — timelock already elapsed 2. Treasury + wrap-mapper `set-contract-admin` (EOA, no lock) 3. Swap `ProposeAdmin` now → accept +7d 4. Token primary minter + wasm admin (keep extras; AddMinter on cLUNC first) 5. Wrap-mapper accept after 2026-08-22 12:34 UTC (DEX #525) ## Related - DEX wrap accept: [cl8y-dex-terraclassic#525](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/525) - Split fees already live on mapper 11574 ([#9](https://gitlab.com/PlasticDigits2/ustr-cmm/-/work_items/9) / DEX #516) - Window/oracle/UST1 token: sister issue on **ust1-window** - Bridge admin / vFDUSD primary: sister issue on **cl8y-bridge-monorepo**
PlasticDigits commented 2026-08-15 12:43:42 +00:00 (Migrated from gitlab.com)
mentioned in issue PlasticDigits/cl8y-dex-terraclassic#526
PlasticDigits commented 2026-08-15 12:43:45 +00:00 (Migrated from gitlab.com)
Sister audits: - DEX tracker: https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/526 - Wrap accept (7d): https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/525 - ust1-window: https://gitlab.com/PlasticDigits/ust1-window/-/work_items/30 - bridge: https://gitlab.com/PlasticDigits/cl8y-bridge-monorepo/-/work_items/135
PlasticDigits commented 2026-08-15 12:44:01 +00:00 (Migrated from gitlab.com)
mentioned in issue PlasticDigits/cl8y-bridge-monorepo#135
PlasticDigits commented 2026-08-25 05:56:55 +00:00 (Migrated from gitlab.com)

DEX 2-of-3 accepted the two unlocked app-governance transfers on columbus-5 (2026-08-25).

Still on this issue

  • Wasm set-contract-admin on treasury + mapper (still cl8y2_admin)
  • Swap ProposeAdmin / AcceptAdmin
  • Token primary minter + wasm admin (keep product extras; AddMinter on cLUNC first)

Please mirror governance into docs/DEPLOYMENT.md / CONTRACTS.md. DEX registry: deployments/mainnet-ust1-wrap/REGISTRY.md. Tracker: PlasticDigits/cl8y-dex-terraclassic#526.

DEX 2-of-3 accepted the two unlocked app-governance transfers on columbus-5 (2026-08-25). - CMM treasury AcceptGovernanceTransfer: https://finder.terraclassic.community/columbus-5/tx/E819E59471BCD82A230AF5771F062B2D7F984F6B12EAEB2FD146F83248F4B9A1 height 30101431. config.governance = terra1zlmv2xydxcusurtr6rl78wsvytdc6mfex6hep7. pending proposals = []. - Wrap-mapper accept_governance_transfer: https://finder.terraclassic.community/columbus-5/tx/02F139F16BEA7322EC87C14FC8EB4EEEFB9E66B6CB2DED2D95AEC291FE0F00A2 height 30101435. config.governance = same 2-of-3. pending new_governance = null. DEX #525 closed. Still on this issue - Wasm set-contract-admin on treasury + mapper (still cl8y2_admin) - Swap ProposeAdmin / AcceptAdmin - Token primary minter + wasm admin (keep product extras; AddMinter on cLUNC first) Please mirror governance into docs/DEPLOYMENT.md / CONTRACTS.md. DEX registry: deployments/mainnet-ust1-wrap/REGISTRY.md. Tracker: PlasticDigits/cl8y-dex-terraclassic#526.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
code/ustr-cmm#15
No description provided.