feat: Phase 5 — UST1/wrap production ops hardening (alerts, pause playbooks, registries) #503
Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:implement
agent:implement
agent:open_issues
agent:ready
agent:research
agent:security_audit
agent:verify
architecture
backend
blocker:hybrid
blocker:launch
blocker:limit-orders
blocker:v2
block:log_only
block:security
bug
ci
contracts
correctness
deploy
dev
devops
docs
documentation
duplicate
e2e
enhancement
epic
feature
frontend
functional-completion
gas
good first issue
governance
help wanted
high-risk
hooks
hybrid
indexer
infra
infrastructure
integrators
invalid
launch-blocker
limit-orders
localnet
localterra
low priority
missing-implementation
needs-design
ops
performance
priority
high
priority
medium
product
qa
QA
question
ready
ready
research
scripts
security
security-hardening
smartcontracts
tech-debt
testing
ux
UX
v2
verification
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
code/cl8y-dex-terraclassic#503
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Production ops hardening for the UST1 oracle window, CMM treasury (vFDUSD inventory + wrap backing), wrap-mapper controls, and address registries after Phases 2–4 ship on / around
dex.cl8y.com.This issue is the cross-repo runbook + verification hub hosted on the live DEX repo. Implementation work for contracts/UI remains in Phase 2–4 issues; this issue tracks monitoring, alerting, pause playbooks, and registry completeness.
Phase 0 / 1: Approved architecture; Phase 1 prerequisites confirmed. Parameter targets: window fee 1%, 1000 UST1/tx, 10k UST1/24h; wrap fee 1% — all governance-updatable.
Current codebase / ops surface
dex.cl8y.com+indexer.dex.cl8y.com(Coolify); soft-launch CW20 onlyust1-window/oracle-service— liveness alert if no broadcast ~8h; needs prod host + secretsterra16j5u6…(pre-wrap until Phase 3 migrate); holds future vFDUSD + native wrap backingdeployments/mainnet-soft-launch/; ust1-windowDEPLOYMENT.mdregistry blank; ustr-cmm docs stale on wrapWhy this is needed
Always-on oracle mint/redeem fails closed on stale rates; wrap/unwrap fails closed on pause or insolvency. Without monitoring and rehearsed pause/allowance playbooks, production incidents become user-facing outages or stuck funds. Soft launch did not include these economic systems.
Constraints / guardrails
wrapping_paused) — rehearse before public marketing push.Relevant files / systems
This repo
deployments/mainnet-soft-launch/(+ newdeployments/mainnet-ust1-wrap/or extend registry)docs/runbooks/(add ust1-window + wrap mainnet runbook)docs/user-incident-faq.md(wrap section; add UST1 window FAQ)docs/qa-templates/wrap-unwrap-test-pass.mdscripts/smoke-wrap-mapper-pause.sh/make smoke-wrap-mapper-pauseust1-window
docs/DEPLOYMENT.mdregistryoracle-service/+scripts/verify_oracle_operator_env.shORACLE_MAX_SILENCE_SECS(~8h)ustr-cmm
docs/DEPLOYMENT.md/CONTRACTS.mdpost-migrate wrap addressesRecommended direction
EffectiveSwapfreshness check.uluna/uusdvs CW20 supply solvency check (W1)./ust1and Swap.Acceptance criteria
docs/runbooks/+ user FAQ updates.verify_oracle_operator_envdocumented for prod; wrap pause smoke procedure recorded for columbus-5.Test plan (happy / functional paths)
scripts/verify_oracle_operator_env.shagainst production env (dry secret injection).state.last_updateadvances within policy window after deploy.effective_swapand wrap-mapperconfig/rate_limitfrom a monitored script or dashboard.make smoke-wrap-mapper-pause) then unpause.Test plan (attack / hack / abuse vectors)
Verification criteria
Related
/ust1+ wraps + secondary AMMmentioned in issue PlasticDigits2/ustr-cmm#5
mentioned in issue #502
Cross-repo tracking (Phase 0 approved)
/ust1UI + wraps + secondary AMMApproved params: window
fee_bps=100, per-tx 1000 UST1, 24h 10000 UST1; wrapfee_bps=100(1%). UI atdex.cl8y.com/ust1. Skipcmm-native-wrap. Phase 1 prerequisites confirmed.changed the description
Naming update
Wrapped token symbols are cLUNC and cUSTC (not
LUNC-C/USTC-C).LocalTerra / existing DEX code may still say
LUNC-C/USTC-C— Phase 3–4 implementation must mint and display cLUNC / cUSTC on mainnet and align frontend registry/env naming.mentioned in issue #506
mentioned in commit
25c48526d5mentioned in merge request !1047
mentioned in merge request !1048
In-repo Phase 5 ops pack (MR !1048)
Landed on
feat/503-ust1-wrap-ops-hardening: https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/merge_requests/330Acceptance criteria (this MR)
deployments/mainnet-ust1-wrap/REGISTRY.md+ Coolify example) — no secretsverify_oracle_operator_envin ust1-window)make check-ust1-wrap-ops-healthust1-wrap-production-ops.md,wrap-mapper-pause.md, user FAQ)verify_oracle_operator_envdocumented for prod; columbus-5 wrap pause smoke procedure recorded (wrap-mapper-pause.md)Live LCD probe (VERIFY503_MAINNET=1)
Hard checks green. WARN today: treasury vFDUSD balance very low + allowance→window = 0 (withdraw capacity). Wrap solvency OK. Wrap-mapper
fee_bps=200on-chain (UI must query).Still for operators
Implementation update (in-repo)
MR: https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/merge_requests/330 (
feat/503-ust1-wrap-ops-hardening)Acceptance criteria checkoff
deployments/mainnet-ust1-wrap/REGISTRY.md+coolify.env.exampleverify_oracle_operator_envin ust1-window); needs operator evidence on this issuescripts/check-ust1-wrap-ops-health.shdocs/runbooks/ust1-wrap-production-ops.md,wrap-mapper-pause.md,docs/user-incident-faq.mdverify_oracle_operator_envdocumented for prod; columbus-5 wrap pause smoke procedure recorded — procedure in runbooks (live drill still pending)Verification
make verify-issue-503PASS (retested)VERIFY503_MAINNET=1 make verify-issue-503PASS with WARNs: treasury vFDUSD balance low + allowance to window = 0; wrap-mapperfee_bps=200on-chainFollow-ups (ops, not blocked on this MR)
mentioned in commit
f8bc750665mentioned in commit
19e12121admentioned in issue #523
mentioned in issue #525
marked as related to #525
marked as related to #526
mentioned in merge request ust1-window!731
mentioned in issue #574
marked as related to #574
mentioned in issue #575
marked as related to #575
mentioned in issue #614
marked as related to #614
O6 update after #525/#526 accepts (2026-08-25): wrap-mapper + CMM treasury app governance is now the DEX 2-of-3 terra1zlmv2…hep7. ust1-window / oracle stay cl8y2_admin. Mapper/treasury wasm admin still the EOA.
Pause / set_fees / set_wrapping_paused on mapper + treasury require scripts/multisig-2of3-host-tx.sh. Registry + pause playbooks updated in-repo.