{"postId":"opengov:377","kind":"opengov","title":"Exit Moonbeam Routed Liquidity","body":"Ahead of the Moonbeam parachain exit, this proposal drains Hydration's protocol-owned MRL assets from the para-2034 Moonbeam sovereign account (`0x7369626cf207…0000`) to the TC treasury multisigs over the Wormhole bridge — **where they will be re-issued via NTT** (Wormhole Native Token Transfers, the path replacing the retiring MRL bridge) — and severs all 11 MRL assets from XCM on Hydration.\n\n## What it does\n\nOn enactment (as Root), `Utility.batch_all`:\n\n1. **11× `PolkadotXcm.send`** → a single Moonbeam `Transact` from the sovereign account: `token.approve(sweeper, MAX)` for each MRL token. Approvals fire immediately.\n2. **`Scheduler.schedule_after(20 blocks)`** a second `Utility.batch_all`:\n   - **11× `sweeper.sweep(token)`** — drains each token's full balance to its hardcoded TC-multisig destination via Wormhole, ready for NTT migration.\n   - **11× `AssetRegistry.update(id, WH-origin location)`** — severs each asset from XCM: repoints it to its canonical Wormhole provenance (`parents:0, X3[GeneralKey(\"wh\"), GeneralIndex(chain), GeneralKey(tokenAddress)]`), which has no Moonbeam reserve, so stale-UI `XTokens.transfer` calls atomically reject.\n\nThe **20-block relative delay** (`schedule_after`, not an absolute block — nothing to guess) ensures the approvals are live on Moonbeam before the scheduled sweeps fire. Any pre-sunset stragglers are swept by the sweeper EOA (`0x6720…aeB6`) afterward.\n\n## Sweeper contract\n\n`MrlSweeperHardcoded` — [`0x7120402b…5615505`](https://moonbeam.moonscan.io/address/0x7120402b1a9feaa2b5139a2bf0c81832d5615505#code), verified on Moonscan.\n\n- Per-token treasury **destinations are hardcoded in the bytecode with no setter** — the contract can only ever push funds to the fixed TC-multisig addresses, never redirect them. Even the sweeper key is non-custodial for theft.\n- Callable by the sovereign account (governance) or the sweeper EOA.\n\n## Assets (11)\n\n| Asset | Hydration id | Destination |\n|---|---|---|\n| DAI | 18 | Ethereum — Gnosis Safe (4-of-7) |\n| WBTC | 19 | Ethereum — Gnosis Safe |\n| WETH | 20 | Ethereum — Gnosis Safe |\n| USDC | 21 | Ethereum — Gnosis Safe |\n| USDT | 23 | Ethereum — Gnosis Safe |\n| sUSDS | 1000745 | Ethereum — Gnosis Safe |\n| EURC | 44 | Base — Gnosis Safe |\n| jitoSOL | 40 | Solana — Squads ATA |\n| PRIME | 43 | Solana — Squads ATA |\n| SOL | 1000752 | Solana — Squads ATA |\n| SUI | 1000753 | Sui — native msig |\n\nAll swept to the TC multisigs, then migrated to Wormhole NTT.","bodyFormat":"markdown","tldr":"","labels":[],"linked":[],"author":{"account":{"accountId":"0xbc96ec00952efa8f0e3e08b36bf5096bcb877acac536e478aecb72868db5db02","address":"15GGqTargRm4MwTBQxxakjAcgys9UBL5tJszrFjtwJXfuYs9","emoji":"🐈","tag":null,"identity":{"display":"mrq","verified":true,"email":"","web":"https://github.com/mrq1911","twitter":""},"profile":null},"legacyName":null},"authority":"subsquare","revision":0,"createdAt":"2026-07-31T10:33:24.000Z","editedAt":null,"lastActivityAt":"2026-07-31T15:33:18.000Z","commentsCount":2,"updatesCount":0,"upvotes":0,"threadKey":"opengov:377","source":{"name":"subsquare","id":"6a6c7a31781cee3ac4a04565","cid":null,"removed":false},"bannerCid":null,"banner":null,"poll":null,"locked":false,"media":{},"hidden":false,"generation":"6690c444c3e1fdf2"}