Files
proxmox/docs/11-references/DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES.md
defiQUG e4c9dda0fd
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
chore: update submodule references and documentation
- Marked submodules ai-mcp-pmm-controller, explorer-monorepo, and smom-dbis-138 as dirty to reflect recent changes.
- Updated documentation to clarify operator script usage, including dotenv loading and task execution instructions.
- Enhanced the README and various index files to provide clearer navigation and task completion guidance.

Made-with: Cursor
2026-03-04 02:03:08 -08:00

159 lines
12 KiB
Markdown

# Routes: Deployer Wallet → Public-Network Stablecoins
**Last Updated:** 2026-03-04
**Purpose:** Single reference for **all possible routes** from the deployer wallet as **source** (minted/held tokens on all blockchains) **to** public-network stablecoins (USDT, USDC, DAI, AUSDT, etc.) on each chain. Uses Master Documentation and verifiable sources only.
**Deployer address (source):** `0x4A666F96fC8764181194447A7dFdb7d471b301C8`
**Sources:** [MASTER_INDEX](MASTER_INDEX.md), [EXPLORER_TOKEN_LIST_CROSSCHECK](EXPLORER_TOKEN_LIST_CROSSCHECK.md) §5/§8, [CONTRACT_ADDRESSES_REFERENCE](CONTRACT_ADDRESSES_REFERENCE.md), [ADDRESS_MATRIX_AND_STATUS](ADDRESS_MATRIX_AND_STATUS.md), [DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS](DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS.md), [TOKENS_AND_NETWORKS_MINTABLE_TO_DEPLOYER](TOKENS_AND_NETWORKS_MINTABLE_TO_DEPLOYER.md), [DEPLOYER_WALLET_FUNDING_PLAN_PMM_POOLS](DEPLOYER_WALLET_FUNDING_PLAN_PMM_POOLS.md), [LIQUIDITY_POOLS_MASTER_MAP](LIQUIDITY_POOLS_MASTER_MAP.md).
---
## 1. Deployer-held / mintable tokens by chain
Tokens the deployer **can hold** as source (mintable to deployer on 138/Cronos, or acquirable on other chains):
| Chain ID | Chain name | Source tokens (deployer as holder) |
|----------|-------------------|------------------------------------|
| **138** | DeFi Oracle (SMOM-DBIS-138) | cUSDT, cUSDC, cEURC, cEURT, cGBPC, cGBPT, cAUDC, cJPYC, cCHFC, cCADC, cXAUC, cXAUT, WETH, WETH10, LINK, native ETH |
| **1** | Ethereum Mainnet | WETH (via CCIP from 138), USDT, USDC, DAI (acquire) |
| **651940** | ALL Mainnet (Alltra) | AUSDT, USDC (AUSDC), WETH, WALL (via AlltraAdapter from 138 or acquire) |
| **25** | Cronos | USDW, EURW, GBPW, AUDW, JPYW, CHFW, CADW (D-WIN W; mintable if MINTER_ROLE), WETH9, WETH10, LINK |
| **56** | BSC | cWUSDT, cWUSDC (design; deployment-status empty), USDT, USDC (acquire) |
| **100** | Gnosis | cW* (design), xDAI, USDC (acquire) |
| **137** | Polygon | cW* (design), USDT, USDC (acquire) |
| **10** | Optimism | cW* (design), USDT, USDC (acquire) |
| **42161**| Arbitrum One | cW* (design), USDT, USDC (acquire) |
| **8453** | Base | cW* (design), USDT, USDC (acquire) |
| **43114**| Avalanche C-Chain | cW* (design), USDT, USDC (acquire) |
| **42220**| Celo | (CCIP config 2026-03-04); USDC, cEUR (acquire) |
| **1111** | Wemix | (pending 0.4 WEMIX); WEMIX, USDT/USDC (acquire) |
---
## 2. Public-network stablecoins (destination) by chain
| Chain ID | Chain name | Public stablecoins (destination) |
|----------|--------------|-----------------------------------|
| **138** | DeFi Oracle | cUSDT, cUSDC (compliant stables; no native USDT/USDC contract on 138) |
| **1** | Ethereum | USDT `0xdAC17F958D2ee523a2206206994597C13D831ec7`, USDC `0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`, DAI `0x6B175474E89094C44Da98b954EedeAC495271d0F` |
| **651940** | ALL Mainnet | AUSDT `0x015B1897Ed5279930bC2Be46F661894d219292A6`, USDC (AUSDC) `0xa95EeD79f84E6A0151eaEb9d441F9Ffd50e8e881` |
| **25** | Cronos | USDW, EURW, GBPW, etc. (D-WIN W); native CRO; USDT/USDC if bridged |
| **56** | BSC | USDT, USDC, BUSD (native) |
| **100** | Gnosis | USDC, xDAI |
| **137** | Polygon | USDT, USDC (native) |
| **10** | Optimism | USDT, USDC (native) |
| **42161**| Arbitrum | USDT, USDC (native) |
| **8453** | Base | USDT, USDC (native) |
| **43114**| Avalanche | USDT, USDC (native) |
| **42220**| Celo | USDC, cEUR |
| **1111** | Wemix | USDT, USDC (if listed) |
---
## 3. Routes: deployer source token → public stablecoin
### 3.1 Chain 138 (same-chain)
| From (deployer holds) | To (public stable on 138) | Route | Status |
|------------------------|----------------------------|--------|--------|
| cUSDT | cUSDC | DODOPMMIntegration / pool `0x9fcB06Aa1FD5215DC0E91Fd098aeff4B62fEa5C8` | ✅ Live |
| cUSDC | cUSDT | Same pool | ✅ Live |
| cUSDT | “USDT (official)” | Pool `0xa3Ee6091696B28e5497b6F491fA1e99047250c59` exists; **not usable** — no official USDT contract on 138 | — |
| cUSDC | “USDC (official)” | Pool `0x90bd9Bf18Daa26Af3e814ea224032d015db58Ea5` exists; **not usable** — no official USDC on 138 | — |
**Note:** On 138 the only “public” stablecoin destinations that exist are cUSDT and cUSDC. There is no native USDT/USDC contract on 138.
---
### 3.2 Chain 138 → Ethereum Mainnet (1)
**Prerequisite:** The route 138 WETH → CCIP → Ethereum **requires that the Mainnet bridge be funded first.** CCIPRelayBridge on chain 1 (`0xF9A32F37099c582D28b4dE7Fca6eaC1e5259f939`) **releases** WETH to recipients when relay messages are delivered; it does not mint WETH. So **Mainnet WETH must be sent to CCIPRelayBridge** (or the relay/release mechanism) before 138→Mainnet transfers can complete. Flow: fund bridge with Mainnet WETH → then 138 WETH can be locked/sent via CCIP → relay delivers message → bridge releases pre-funded Mainnet WETH to recipient.
| From (138, deployer holds) | To (Mainnet public stable) | Route | Status |
|----------------------------|----------------------------|--------|--------|
| WETH9 | WETH (then DEX) → USDT / USDC / DAI | CCIP WETH9 bridge `0x971cD9D156f193df8051E48043C476e53ECd4693` → Mainnet → swap via native DEX | ✅ Live (bridge); **requires Mainnet WETH funding of CCIPRelayBridge**; swap via DEX |
| WETH10 | Same | CCIP WETH10 bridge `0xe0E93247376aa097dB308B92e6Ba36bA015535D0` → Mainnet → DEX | ✅ Live; **same prerequisite** |
| cUSDT | USDT / USDC / DAI | **No direct bridge.** Swap 138: cUSDT→cUSDC or cUSDT→WETH (no cUSDT→WETH pool documented); or cUSDT→cUSDC then no bridge for cUSDC. **Indirect:** cUSDT→cUSDC (DODO) then no 138→mainnet bridge for compliant stables. Use: **cUSDT/cUSDC → swap to WETH on 138 (no pool today)** then CCIP WETH→mainnet→DEX→USDT/USDC/DAI. | ⚠️ Swap leg on 138 to WETH not documented; bridge leg ✅ |
| cUSDC | USDT / USDC / DAI | Same as cUSDT; need 138 cUSDC→WETH path (not in docs). Then CCIP WETH→mainnet→DEX. | ⚠️ Same |
**Mainnet relay:** CCIP messages to chain 1 go via CCIPRelayRouter `0xAd9A228CcEB4cbB612cD165FFB72fE090ff10Afb` and CCIPRelayBridge `0xF9A32F37099c582D28b4dE7Fca6eaC1e5259f939` (releases WETH; **must be funded with Mainnet WETH** — see [CONTRACT_ADDRESSES_REFERENCE](CONTRACT_ADDRESSES_REFERENCE.md)).
---
### 3.3 Chain 138 → ALL Mainnet (651940)
| From (138, deployer holds) | To (651940 public stable) | Route | Status |
|----------------------------|----------------------------|--------|--------|
| Any (cUSDT, cUSDC, WETH, etc.) | AUSDT, USDC (AUSDC) | AlltraAdapter `0x66FEBA2fC9a0B47F26DD4284DAd24F970436B8Dc` (138↔651940) → then DEX on 651940 (env placeholders; HYDX present) | ✅ Bridge live; destination swap via ALL Mainnet DEX |
---
### 3.4 Chain 138 → other public chains (56, 100, 137, 10, 42161, 8453, 43114, 25, 42220, 1111)
| From (138) | To (destination chain public stable) | Bridge | Status |
|------------|--------------------------------------|--------|--------|
| WETH9 / WETH10 | WETH on dest → USDT/USDC via DEX | CCIP WETH9/WETH10 to BSC, Polygon, Arbitrum, Optimism, Avalanche, Cronos, **Celo**, **Gnosis** | ✅ Live (Celo + Gnosis 2026-03-04) |
| WETH9 / WETH10 | Wemix USDT/USDC | CCIP when Wemix bridges deployed (deployer needs 0.4 WEMIX) | ⏳ Pending |
| cUSDT / cUSDC | Any dest public stable | No direct bridge for compliant stables; must swap to WETH on 138 then CCIP (see 3.2). | ⚠️ Same as 3.2 |
---
### 3.5 Destination chain → public stable (when deployer holds asset on that chain)
| Chain | Deployer holds there | To public stable (same chain) | Route | Status |
|-------|----------------------|------------------------------|--------|--------|
| **1** | WETH (after CCIP), USDT, USDC, DAI | USDT, USDC, DAI | Native DEX (Uniswap, etc.) | ✅ Standard |
| **651940** | AUSDT, USDC, WETH, WALL | AUSDT, USDC | HYDX / Uniswap (env placeholders) | ✅ DEX present |
| **25** | USDW, EURW, … (D-WIN W) | USDW, EURW, etc. | Same-chain swap / DEX | ✅ If DEX exists |
| **56, 100, 137, 10, 42161, 8453, 43114** | cW* (design only; deployment-status empty) | USDT, USDC | cW*/USDC, cW*/USDT edge pools (pool-matrix) | ❌ Pools not deployed |
| **42220, 1111** | — | USDC, cEUR / USDT, USDC | Acquire then DEX | ✅ Standard (acquire + DEX) |
---
## 4. Summary: deployer → public stablecoin route matrix
| Source chain | Deployer source token | Destination chain | Destination public stable | Route | Live? |
|--------------|------------------------|-------------------|---------------------------|--------|------|
| 138 | cUSDT | 138 | cUSDC | DODO PMM pool cUSDT/cUSDC | ✅ |
| 138 | cUSDC | 138 | cUSDT | Same pool | ✅ |
| 138 | WETH9 | 1 | USDT, USDC, DAI | CCIP WETH9 → Mainnet → DEX; **requires Mainnet WETH funding of CCIPRelayBridge first** | ✅ |
| 138 | WETH10 | 1 | USDT, USDC, DAI | Same; **CCIPRelayBridge must be funded with Mainnet WETH** | ✅ |
| 138 | WETH9/10 | 56, 137, 10, 42161, 43114, 25, 100, 42220 | WETH → USDT/USDC via DEX | CCIP → dest → DEX | ✅ |
| 138 | Any | 651940 | AUSDT, USDC | AlltraAdapter → 651940 DEX | ✅ |
| 138 | cUSDT, cUSDC | Any | USDT, USDC (any chain) | Swap to WETH on 138 (no c*→WETH pool in docs) + CCIP WETH → dest DEX | ⚠️ Bridge leg ✅; 138 swap leg not documented |
| Dest (1, 651940, 25, …) | Deployer-held token on that chain | Same | Public stable | Native DEX | ✅ |
| Dest (56, 100, 137, …) | cW* | Same | USDT, USDC | cW* edge pools | ❌ Not deployed |
---
## 5. Reverse: public stablecoin → deployer (inbound)
| From (chain, public stable) | To (deployer on 138) | Route | Status |
|------------------------------|----------------------|--------|--------|
| Mainnet (1) USDT, USDC, DAI | 138 | No direct bridge for stables; WETH via CCIP receiver on 138 | ✅ WETH only |
| 651940 AUSDT, USDC | 138 | AlltraAdapter 651940→138 | ✅ |
| Other chains WETH | 138 | CCIP receiver bridge on 138 → WETH9/WETH10 | ✅ |
| Any chain USDT/USDC | 138 cUSDT/cUSDC | No canonical bridge; would require lock-mint or third-party bridge | ❌ Not in docs |
---
## 6. Related: routes without pre-funded bridge
For routes where **pre-funding a destination bridge is not required** (same-chain, AlltraAdapter lock-mint, CCIP to chains other than Mainnet with mint-on-receive), see [ROUTES_NO_PREFUNDED_BRIDGE_REQUIRED](ROUTES_NO_PREFUNDED_BRIDGE_REQUIRED.md).
---
## 7. References
| Document | Use |
|----------|-----|
| [ROUTES_NO_PREFUNDED_BRIDGE_REQUIRED](ROUTES_NO_PREFUNDED_BRIDGE_REQUIRED.md) | Routes that do not require bridge pre-funding |
| [DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS](DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS.md) | Full routing map, bridges, DODO/Uniswap LPs |
| [EXPLORER_TOKEN_LIST_CROSSCHECK](EXPLORER_TOKEN_LIST_CROSSCHECK.md) | Canonical token addresses (§5), on-chain verification (§8) |
| [CONTRACT_ADDRESSES_REFERENCE](CONTRACT_ADDRESSES_REFERENCE.md) | Deployer, DODOPMMIntegration, CCIP bridges, relay |
| [TOKENS_AND_NETWORKS_MINTABLE_TO_DEPLOYER](TOKENS_AND_NETWORKS_MINTABLE_TO_DEPLOYER.md) | Mintable-to-deployer tokens (138, Cronos); acquire elsewhere |
| [DEPLOYER_WALLET_FUNDING_PLAN_PMM_POOLS](DEPLOYER_WALLET_FUNDING_PLAN_PMM_POOLS.md) | Deployer address, balances, tokens on all networks |
| [LIQUIDITY_POOLS_MASTER_MAP](LIQUIDITY_POOLS_MASTER_MAP.md) | Pool addresses (138, 651940) |
| [MASTER_INDEX](../MASTER_INDEX.md) | Master documentation entry point |