Files
proxmox/docs/runbooks/MAINNET_CWUSDC_USDC_REPEG_RUNBOOK.md
defiQUG b8613905bd
Some checks failed
Deploy to Phoenix / validate (push) Failing after 15s
Deploy to Phoenix / deploy (push) Has been skipped
chore: sync workspace — configs, docs, scripts, CI, pnpm, submodules
- Submodule pins: dbis_core, cross-chain-pmm-lps, mcp-proxmox (local, push may be pending), metamask-integration, smom-dbis-138
- Atomic swap + cross-chain-pmm-lops-publish, deploy-portal workflow, phoenix deploy-targets, routing/aggregator matrices
- Docs, token-lists, forge proxy, phoenix API, runbooks, verify scripts

Made-with: Cursor
2026-04-21 22:01:33 -07:00

84 lines
2.8 KiB
Markdown

# Mainnet cWUSDC/USDC Repeg Runbook
**Purpose:** Turn the latest read-only preflight into an exact inventory plan for restoring the Mainnet `cWUSDC/USDC` rail toward `1:1`.
**Scope:** Defended DODO PMM reserve-gap sizing, public Uniswap V2 floor shortfalls, treasury-manager funding needs, and copy-paste operator commands.
**Safety:** The planner is read-only. It does not broadcast or move funds.
## What this planner answers
- How far the defended PMM is from simple `1:1` reserve parity
- How much USDC is needed to fund one max-sized automated defense cycle
- How far the public pair is below the current policy floor
- Whether the current operator wallet can cover any of those gaps
- Exact commands to fund the manager, top up the defended PMM, and reseed the public pair once inventory exists
## Prereqs
- Run the preflight first:
```bash
bash scripts/verify/snapshot-mainnet-cwusdc-usdc-preflight.sh
```
- `cast` installed
- `python3` installed
- `ETHEREUM_MAINNET_RPC` available
- Optional but useful:
- `PRIVATE_KEY` or `KEEPER_PRIVATE_KEY` so the planner can inspect the current operator wallet
## Command
Run from the repo root:
```bash
bash scripts/verify/plan-mainnet-cwusdc-usdc-repeg.sh
```
## Artifacts
The wrapper writes:
- `reports/status/mainnet-cwusdc-usdc-repeg-plan-<UTC timestamp>.json`
- `reports/status/mainnet-cwusdc-usdc-repeg-plan-latest.json`
## Key fields to inspect
- `defendedVenue.simpleReserveParity.addQuoteUnits`
- `automation.managerFundingForOneMaxCycle.shortfallUnits`
- `publicLane.policyFloorBaseShortfallUnits`
- `publicLane.policyFloorQuoteShortfallUnits`
- `holderState`
- `holderFundingChecks`
- `blockers`
- `operatorCommands`
## Interpretation notes
- The defended-pool `1:1` number is an inference from matched 6-decimal tokens and equal reserve targets.
- DODO PMM price can still differ from reserve ratio because the PMM curve is not a constant-product pool.
- Re-run the preflight after every liquidity move. Treat the planner as a live calculator, not a one-time document.
## Operator sequence once funding exists
1. Fund the treasury manager with at least one max-sized automated tranche.
Use `operatorCommands.fundManagerUsdc`.
2. Sell the planned USDC amount into the defended PMM.
Use `operatorCommands.tradeDefendedPoolQuoteIn`.
3. Reseed the public pair to at least the current policy floor if public routing / discovery should be healthy again.
Use `operatorCommands.reseedPublicPair`.
4. Re-run both read-only checks.
```bash
bash scripts/verify/snapshot-mainnet-cwusdc-usdc-preflight.sh
bash scripts/verify/plan-mainnet-cwusdc-usdc-repeg.sh
```
5. Only after the defended lane is re-funded should you consider a managed quote-push cycle.
```bash
bash scripts/maintenance/run-mainnet-cwusdc-usdc-support.sh --health-only
```