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

2.8 KiB

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 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 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 scripts/verify/snapshot-mainnet-cwusdc-usdc-preflight.sh
bash scripts/verify/plan-mainnet-cwusdc-usdc-repeg.sh
  1. Only after the defended lane is re-funded should you consider a managed quote-push cycle.
bash scripts/maintenance/run-mainnet-cwusdc-usdc-support.sh --health-only