Sync workspace: config, docs, scripts, CI, operator rules, and submodule pointers.

- Update dbis_core, cross-chain-pmm-lps, explorer-monorepo, metamask-integration, pr-workspace/chains
- Omit embedded publish git dirs and empty placeholders from index

Made-with: Cursor
This commit is contained in:
defiQUG
2026-04-12 06:12:20 -07:00
parent 6fb6bd3993
commit dbd517b279
2935 changed files with 327972 additions and 5533 deletions

View File

@@ -80,8 +80,8 @@ For each node **r630-N** (IP 192.168.11.(10+N), N=5..13):
## Phase 4: Dell Precision 7920 workstations (2×)
- [ ] **workstation-01 (192.168.11.30):** Power on; connect 1G to management LAN; set static IP .30 (or DHCP reservation). Install OS and tools (admin/dev); optional 10G to XG if needed for large data.
- [ ] **workstation-02 (192.168.11.31):** Same; IP .31.
- [ ] **workstation-01:** Power on; connect 1G to management LAN; assign an explicit unused management IP and record it in `config/ip-addresses.conf` or `.env`. Do not assume `.30`.
- [ ] **workstation-02:** Same; choose another unused management IP. Do not assume `.31` because it is assigned to Gitea.
- [ ] **Document:** Add to inventory and network diagram; no Proxmox cluster join (workstations are clients).
---

View File

@@ -111,8 +111,8 @@ Ceph VLANs are optional; can run Ceph over management until a dedicated cluster
| Workstation | IP (mgmt) | 10G cable |
|-----------------|-------------|-----------------|
| workstation-01 | 192.168.11.30 | Optional: XG #1 port (spare) |
| workstation-02 | 192.168.11.31 | Optional: XG #1 port (spare) |
| workstation-01 | Assign explicitly when provisioned | Optional: XG #1 port (spare) |
| workstation-02 | Assign explicitly when provisioned | Optional: XG #1 port (spare) |
### 4.5 Inter-switch link

View File

@@ -18,9 +18,9 @@
### IP Address Identity
**`76.53.10.34`** is the **ER605 router's WAN IP address**, not an RPC service endpoint.
**`76.53.10.34`** is the **UDM Pro edge router's WAN IP address**, not an RPC service endpoint.
- **Device**: TP-Link ER605 v2.20 (er605-1)
- **Device**: UDM Pro edge gateway
- **Role**: Primary Edge Router (WAN interface)
- **Network**: Public WAN IP (Block #1: 76.53.10.32/28)
- **Gateway**: 76.53.10.33

View File

@@ -1,7 +1,7 @@
# Address Matrix and Status — Correlated Reference
**Last Updated:** 2026-03-26
**Purpose:** Single correlated matrix of all existing contract, token, and pool addresses with deployment status. **On-chain verification (2026-03-26):** corrected Chain 138 PMM stack verified at `DODOPMMIntegration=0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d` and `DODOPMMProvider=0x5CAe6Ce155b7f08D3a956F5Dc82fC9945f29B381`; desired-state inventory is fully reconciled with `104` existing pools and `104` aligned routes.
**Last Updated:** 2026-04-01
**Purpose:** Single correlated matrix of all existing contract, token, and pool addresses with deployment status. **On-chain verification (2026-04-02):** the canonical Chain 138 PMM stack is the official DODO V2 DVM-backed deployment at `DODOPMMIntegration=0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895`, `DODOPMMProvider=0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e`, and `DODO_VENDING_MACHINE_ADDRESS=0xb6D9EF3575bc48De3f011C310DC24d87bEC6087C`. Stable pairs were recalibrated on 2026-04-02 with `i=1e18`, `k=0` so equal-reserve stable pools quote at true 1:1 parity.
**Sources:** CONTRACT_ADDRESSES_REFERENCE, CHAIN138_TOKEN_ADDRESSES, LIQUIDITY_POOLS_MASTER_MAP, DEPLOYED_COINS_TOKENS_AND_NETWORKS, env examples, PRE_DEPLOYMENT_CHECKLIST.
---
@@ -111,12 +111,14 @@
| Contract / pool | Address | Status | Notes |
|-----------------|---------|--------|-------|
| DODOPMMIntegration | `0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d` | ✅ | Corrected canonical integration; full JSON desired-state reconciled |
| DODOPMMProvider | `0x5CAe6Ce155b7f08D3a956F5Dc82fC9945f29B381` | ✅ | Corrected canonical provider; 104 aligned routes |
| DODO DVMFactory | `0xc93870594C7f83A0aE076c2e30b494Efc526b68E` | ✅ | Self-deployed official DODO V2 DVMFactory on Chain 138 |
| DODO Vending Machine / Adapter | `0xb6D9EF3575bc48De3f011C310DC24d87bEC6087C` | ✅ | Canonical `DODO_VENDING_MACHINE_ADDRESS` |
| DODOPMMIntegration | `0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895` | ✅ | Canonical official-DVM-backed integration |
| DODOPMMProvider | `0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e` | ✅ | Canonical provider registered against the current integration |
| PrivatePoolRegistry | `0xb27057B27db09e8Df353AF722c299f200519882A` | ✅ | Live private XAU pool registry |
| Pool cUSDT/cUSDC | `0xff8d3b8fDF7B112759F076B69f4271D4209C0849` | ✅ | Funded live |
| Pool cUSDT/USDT (official mirror) | `0x6fc60DEDc92a2047062294488539992710b99D71` | ✅ | Intended funded canonical pool; integration/provider mapping must be repointed if still on older empty pool |
| Pool cUSDC/USDC (official mirror) | `0x9f74Be42725f2Aa072a9E0CdCce0E7203C510263` | ✅ | Canonical corrected-stack pool |
| Pool cUSDT/cUSDC | `0x9e89bAe009adf128782E19e8341996c596ac40dC` | ✅ | Funded live on the canonical official-DVM stack; corrected to `i=1e18`, `k=0` |
| Pool cUSDT/USDT (official mirror) | `0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66` | ✅ | Funded live on the canonical official-DVM stack; corrected to `i=1e18`, `k=0` |
| Pool cUSDC/USDC (official mirror) | `0xc39B7D0F40838cbFb54649d327f49a6DAC964062` | ✅ | Funded live on the canonical official-DVM stack; corrected to `i=1e18`, `k=0` |
| Pool cUSDT/cXAUC (public) | `0x1AA55E2001E5651349AfF5A63FD7A7Ae44f0F1b0` | ✅ | Funded live |
| Pool cUSDC/cXAUC (public) | `0xEA9Ac6357CaCB42a83b9082B870610363B177cBa` | ✅ | Funded live |
| Pool cEURT/cXAUC (public) | `0xbA99bc1eAAC164569d5AcA96C806934DDaF970Cf` | ✅ | Funded live |
@@ -146,7 +148,7 @@
| CCIP / bridge | 4 (1 deprecated) | ✅ Use 0x971c… WETH9 bridge |
| Governance / deterministic | 9 | ✅ All deployed |
| Channels / mirror / reserve / vault | 14+ | ✅ All deployed |
| PMM / pools | 1 integration, 1 provider, 1 private registry, 104 aligned pools | ✅ Corrected full mesh and edge pool desired state live |
| PMM / pools | 1 DVMFactory, 1 adapter, 1 integration, 1 provider, 1 private registry, 3 canonical stable pools | ✅ Official DODO V2 DVM-backed public stable path live |
| TransactionMirror | 1 | ✅ `0x7131F887DBEEb2e44c1Ed267D2A68b5b83285afc` |
### 2.2 Ethereum Mainnet (1)
@@ -158,6 +160,12 @@
| WETH | `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2` | ✅ |
| USDT | `0xdAC17F958D2ee523a2206206994597C13D831ec7` | ✅ |
| USDC | `0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48` | ✅ |
| DODOPMMIntegration (optional GRU cW + TRUU volatile) | `0xa9F284eD010f4F7d7F8F201742b49b9f58e29b84` | ✅ Live; `DODO_PMM_INTEGRATION_MAINNET`; Etherscan source-verified 2026-04-11 |
| TRUU (Truth) | `0xDAe0faFD65385E7775Cf75b1398735155EF6aCD2` | ✅ Anchor in `deployment-status.json` |
| PMM pool cWUSDT / TRUU | `0x508E5e80B66204b8CD9869323Fdd3A289ea50993` | ✅ Volatile; see runbook §11 |
| PMM pool cWUSDC / TRUU | `0x9A632F35078b6A4A9bf27806Bb7aFfAA2F16C846` | ✅ Volatile; see runbook §11 |
Detail and env wiring: [MAINNET_PMM_TRUU_CWUSD_PEG_AND_BOT_RUNBOOK.md](../03-deployment/MAINNET_PMM_TRUU_CWUSD_PEG_AND_BOT_RUNBOOK.md) section 11, [CONTRACT_ADDRESSES_REFERENCE.md](CONTRACT_ADDRESSES_REFERENCE.md) (Mainnet TRUU PMM subsection).
### 2.3 ALL Mainnet (651940)
@@ -196,12 +204,14 @@ Bridges (CCIPWETH9 / CCIPWETH10) and LINK funding per runbook. Addresses in `smo
| Env variable (Chain 138) | Canonical address |
|--------------------------|-------------------|
| DODO_PMM_INTEGRATION_ADDRESS | `0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d` |
| DODO_PMM_PROVIDER_ADDRESS | `0x5CAe6Ce155b7f08D3a956F5Dc82fC9945f29B381` |
| DODO_DVM_FACTORY | `0xc93870594C7f83A0aE076c2e30b494Efc526b68E` |
| DODO_VENDING_MACHINE_ADDRESS | `0xb6D9EF3575bc48De3f011C310DC24d87bEC6087C` |
| DODO_PMM_INTEGRATION_ADDRESS | `0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895` |
| DODO_PMM_PROVIDER_ADDRESS | `0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e` |
| PRIVATE_POOL_REGISTRY | `0xb27057B27db09e8Df353AF722c299f200519882A` |
| POOL_CUSDTCUSDC | `0xff8d3b8fDF7B112759F076B69f4271D4209C0849` |
| POOL_CUSDTUSDT | `0x6fc60DEDc92a2047062294488539992710b99D71` |
| POOL_CUSDCUSDC | `0x9f74Be42725f2Aa072a9E0CdCce0E7203C510263` |
| POOL_CUSDTCUSDC | `0x9e89bAe009adf128782E19e8341996c596ac40dC` |
| POOL_CUSDTUSDT | `0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66` |
| POOL_CUSDCUSDC | `0xc39B7D0F40838cbFb54649d327f49a6DAC964062` |
| POOL_CUSDT_XAU_PUBLIC | `0x1AA55E2001E5651349AfF5A63FD7A7Ae44f0F1b0` |
| POOL_CUSDC_XAU_PUBLIC | `0xEA9Ac6357CaCB42a83b9082B870610363B177cBa` |
| POOL_CEURT_XAU_PUBLIC | `0xbA99bc1eAAC164569d5AcA96C806934DDaF970Cf` |

View File

@@ -30,9 +30,9 @@
### ChainID 138
**HTTP**: `http://192.168.11.250:8545`
**HTTP**: `http://192.168.11.211:8545`
**HTTPS**: `https://rpc-core.d-bis.org`
**WebSocket**: `ws://192.168.11.250:8546`
**WebSocket**: `ws://192.168.11.211:8546`
---
@@ -169,4 +169,3 @@ cast call <CONTRACT_ADDRESS> "<function>" <args> --rpc-url $RPC_URL
---
**Last Updated**: $(date)

View File

@@ -53,7 +53,7 @@ lsb-release # LSB release information
### Note: nginx for RPC Nodes
**nginx is NOT installed on RPC nodes**. Instead, **VMID 105 (nginx-proxy-manager)** is used as a centralized reverse proxy and load balancer for all RPC endpoints. This provides:
- Centralized management via web UI
- Load balancing across RPC nodes (2500-2502)
- Load balancing across current RPC nodes (2101/2201/2301 and the broader 21xx-24xx fleet)
- SSL termination
- High availability with automatic failover
@@ -361,4 +361,3 @@ pct exec <vmid> -- ping -c 3 8.8.8.8
# Check DNS resolution
pct exec <vmid> -- nslookup archive.ubuntu.com
```

View File

@@ -29,7 +29,7 @@
| **42220**| Celo | WETH9, WETH10 | No proven direct first hop from 138 | Native bridge is deployed, but use **Mainnet hub** or cW path instead of assuming direct delivery | Not a direct no-prefund first hop |
| **1111** | Wemix | WETH9, WETH10 | Not live yet | Bridge deployment and gas seeding still pending | Pending |
**cW specific status:** The cW mint-on-receive model is the correct non-prefunded pattern. Avalanche `cUSDT -> cWUSDT` is live and proven using AVAX cW bridge `0x635002c5fb227160cd2eac926d1baa61847f3c75`; other cW corridors should still be treated as design / partial unless separately proven.
**cW specific status:** The cW mint-on-receive model is the correct non-prefunded pattern. Avalanche `cUSDT -> cWUSDT` is live and proven using AVAX cW bridge `0x635002c5fb227160cd2eac926d1baa61847f3c75`, and Mainnet `cUSDC -> cWUSDC` plus `cUSDT -> cWUSDT` are now live and canary-proven using Mainnet cW bridge `0x2bF74583206A49Be07E0E8A94197C12987AbD7B5`; other cW corridors should still be treated as design / partial unless separately proven.
---
@@ -60,7 +60,9 @@
| Token(s) | Chain(s) | Receiver | Mechanism | Current status |
|---------------|----------|------------------------|-----------|----------------|
| **cUSDT → cWUSDT** | **43114 (Avalanche)** | AVAX cW bridge `0x635002c5fb227160cd2eac926d1baa61847f3c75` | Dedicated non-prefunded relay path; destination mints `cWUSDT` to recipient | ✅ Live and proven E2E |
| **cWUSDT, cWUSDC** (cW*) | 56, 100, 137, 10, 42161, 8453, 43114, 25, 1, etc. | TwoWayTokenBridgeL2 (or CCIPReceiverCW) | `ccipReceive``cW*.mint(recipient, amount)`; receiver has MINTER_ROLE | ⏳ Generic pattern; treat as design / partial unless separately proven |
| **cUSDC → cWUSDC** | **1 (Ethereum Mainnet)** | `CWMultiTokenBridgeL2` `0x2bF74583206A49Be07E0E8A94197C12987AbD7B5` via relay router `0x416564Ab73Ad5710855E98dC7bC7Bff7387285BA` | `ccipReceive``cWUSDC.mint(recipient, amount)` after sender/peer checks | ✅ Live and canary-proven |
| **cUSDT → cWUSDT** | **1 (Ethereum Mainnet)** | `CWMultiTokenBridgeL2` `0x2bF74583206A49Be07E0E8A94197C12987AbD7B5` via relay router `0x416564Ab73Ad5710855E98dC7bC7Bff7387285BA` | `ccipReceive``cWUSDT.mint(recipient, amount)` after sender/peer checks | ✅ Live and canary-proven |
| **cWUSDT, cWUSDC** (cW*) | 56, 100, 137, 10, 42161, 8453, 43114, 25, etc. | TwoWayTokenBridgeL2 (or CCIPReceiverCW) | `ccipReceive``cW*.mint(recipient, amount)`; receiver has MINTER_ROLE | ⏳ Generic pattern; treat as design / partial unless separately proven outside Avalanche + Mainnet |
**Sources:** [CW_BRIDGE_APPROACH](../07-ccip/CW_BRIDGE_APPROACH.md) for the generic mint-on-receive model; [NON_PREFUNDED_AVAX_MIGRATION_RUNBOOK](../07-ccip/NON_PREFUNDED_AVAX_MIGRATION_RUNBOOK.md) for the live AVAX proof and contract addresses.

View File

@@ -1,6 +1,6 @@
# Chains & Protocols: Bridges, Ledger, and Integrations
**Last Updated:** 2026-01-29
**Last Updated:** 2026-04-03
**Status:** Authoritative reference for bridge chains and protocol acceptance
---
@@ -12,10 +12,43 @@ This document consolidates:
2. **Protocols and wallets that have accepted ChainID 138** Ledger, Chainlist, thirdweb, MetaMask, etc.
3. **Protocols and wallets that have accepted ALL Mainnet (651940)** Chainlist, MetaMask, etc.
The key normalization for 2026-04 is:
- **Live EVM CCIP destinations** are one bucket.
- **Alltra** is a separate custom bridge bucket.
- **Truth** is a registry adapter on 138 plus an Ethereum ↔ Truth public bridge story, not a direct 138 ↔ Truth CCIP lane.
- **Tron** is a deployed non-EVM adapter on 138 with relay/off-chain dependencies.
- **Etherlink / Tezos** are scaffolded and feature-gated, not live public bridge lanes.
- **XDC Zero** and **OP Stack L2 ↔ 138** remain separate programs, not rows in the live CCIP destination matrix.
---
## Part 1: Chains Handled by Bridges
### 1.0 Canonical bridge-program classification
| Program / destination | Chain / ID | Classification | Current repo state | Canonical note |
|-------|----------|--------|--------|--------|
| Ethereum Mainnet | `1` | EVM CCIP destination | ✅ Live | Standard CCIP WETH9/WETH10 destination |
| Optimism | `10` | EVM CCIP destination | ✅ Live | Standard CCIP destination |
| Cronos | `25` | EVM CCIP destination | ✅ Live | Standard CCIP destination |
| BSC | `56` | EVM CCIP destination | ✅ Live | Standard CCIP destination |
| Gnosis | `100` | EVM CCIP destination | ✅ Live | Treat as live, not merely config-ready |
| Polygon | `137` | EVM CCIP destination | ✅ Live | Standard CCIP destination |
| Arbitrum One | `42161` | EVM CCIP destination | ✅ Live | Standard CCIP destination |
| Avalanche C-Chain | `43114` | EVM CCIP destination | ✅ Live | Standard CCIP destination; separate `avax-cw` GRU corridor also exists |
| Base | `8453` | EVM CCIP destination | ✅ Live | Standard CCIP destination |
| Celo | `42220` | EVM CCIP destination | ✅ Live | Treat as live, not merely config-ready |
| Wemix | `1111` | EVM CCIP destination | ⏳ Pending operator completion | Repo wiring exists; deployment/funding not fully closed |
| ALL Mainnet | `651940` | Custom Alltra bridge | ✅ Live | `AlltraAdapter`, not CCIP |
| Truth Network | Substrate / non-EVM | Registry adapter + Ethereum Truth bridge | ⚠️ Partial / pointer only | No direct 138 ↔ Truth CCIP lane documented |
| Tron | non-EVM | Adapter + relay program | ⚠️ Partial / relay-dependent | `TronAdapter` exists on 138; not part of the CCIP lane table |
| Solana | non-EVM (SVM) | Adapter + relay program | ⚠️ Partial / relay-dependent | `SolanaAdapter` in `smom-dbis-138`; no EIP-155 chain id; not part of the CCIP lane table |
| Etherlink | `42793` | Scaffold / gated bridge target | ⏳ Planned / feature-gated | Placeholder token mapping and runbook tasks exist |
| Tezos L1 | non-EVM | Scaffold / gated bridge target | ⏳ Planned / feature-gated | Relay/service plan exists, not live lane |
| XDC Network | `50` | Parallel bridge program | ⚠️ Separate program | `XDC Zero`, not CCIP |
| OP Stack L2 | separate future chain | Future bridge design | ⏳ Design only | Optional future L2 ↔ 138 program |
### 1.1 Chainlink CCIP Bridge
**Primary use:** ChainID 138 ↔ Ethereum cross-chain transfers
@@ -31,23 +64,23 @@ This document consolidates:
| Base | 8453 | ✅ |
| BSC (BNB Chain) | 56 | ✅ |
| Avalanche | 43114 | ✅ |
| Gnosis Chain | 100 | ✅ Config ready |
| Celo | 42220 | ✅ Config ready |
| Wemix | 1111 | ✅ Config ready |
| Gnosis Chain | 100 | ✅ |
| Celo | 42220 | ✅ |
| Wemix | 1111 | ⏳ Pending operator completion |
| ChainID 138 (DeFi Oracle Meta Mainnet) | 138 | ✅ |
**Deployed CCIP WETH bridges:** CCIPWETH9Bridge and CCIPWETH10Bridge on BSC, Polygon, Avalanche, Base, Arbitrum, Optimism, ChainID 138.
**Deployed CCIP WETH bridges:** CCIPWETH9Bridge and CCIPWETH10Bridge on the live EVM destination set above, with Wemix still pending final operator completion.
**Additional CCIP-ready chains (selectors configured):** Gnosis Chain (`465200170687744372`), Celo (`1346049177634351622`), Wemix (`5142893604156789321`).
**Additional CCIP selectors tracked in repo:** Gnosis Chain (`465200170687744372`), Celo (`1346049177634351622`), Wemix (`5142893604156789321`).
#### Completion checklist for Config-Ready chains (Gnosis, Celo, Wemix)
#### Remaining completion checklist for pending CCIP chain(s)
To move Gnosis (100), Celo (42220), and Wemix (1111) from **Config ready** to **✅**:
Wemix (1111) still needs operator completion:
1. **Verify CCIP support** — Confirm each chain is listed in [Chainlink CCIP supported networks](https://docs.chain.link/ccip/supported-networks).
2. **Deploy bridges** — Deploy CCIPWETH9Bridge and CCIPWETH10Bridge on each chain (see runbook).
3. **Configure destinations** — Run `smom-dbis-138/scripts/deployment/complete-config-ready-chains.sh` (requires bridge addresses and `CHAIN138_SELECTOR` in `.env`).
4. **Fund with LINK**Send ~10 LINK per bridge on each chain for CCIP fees.
1. **Verify CCIP support** — Confirm the current supported-network metadata is still valid.
2. **Deploy bridges** — Deploy CCIPWETH9Bridge and CCIPWETH10Bridge on Wemix (see runbook).
3. **Configure destinations** — Run `smom-dbis-138/scripts/deployment/complete-config-ready-chains.sh` with the Wemix bridge addresses and `CHAIN138_SELECTOR`.
4. **Fund with LINK / gas**Complete the documented operator funding step for the Wemix deployer and bridge addresses.
**Runbook:** [CONFIG_READY_CHAINS_COMPLETION_RUNBOOK.md](../07-ccip/CONFIG_READY_CHAINS_COMPLETION_RUNBOOK.md)
**Env example:** `smom-dbis-138/docs/deployment/ENV_CONFIG_READY_CHAINS.example`
@@ -90,6 +123,51 @@ To move Gnosis (100), Celo (42220), and Wemix (1111) from **Config ready** to **
**USDC (AUSDC):** `0xa95EeD79f84E6A0151eaEb9d441F9Ffd50e8e881`
### 1.5 Truth Network
| Item | Status | Notes |
|------|--------|-------|
| `TruthNetworkAdapter` on Chain 138 | ✅ Deployed | Adapter is registered in `ChainRegistry` on 138 |
| Direct 138 ↔ Truth CCIP lane | ❌ Not documented | Repo does not define Truth as a normal CCIP destination |
| Public Truth bridge story | ✅ Ethereum ↔ Truth | Truth bridge narrative is Ethereum-centered (`TRUU` lift/burn) |
| 138 role today | ⚠️ Registry / pointer | Use 138 as metadata/registry attachment to the Ethereum Truth bridge story |
Canonical reference: [TRUTH_NETWORK_BRIDGE_SPEC.md](../07-ccip/TRUTH_NETWORK_BRIDGE_SPEC.md)
### 1.6 Tron
| Item | Status | Notes |
|------|--------|-------|
| `TronAdapter` on Chain 138 | ✅ Deployed | `TRON_ADAPTER_CHAIN138` is recorded in the address inventory |
| Part of standard EVM CCIP matrix | ❌ No | Treat as non-EVM relay program |
| End-to-end bridging | ⚠️ Relay / ops dependent | Requires off-chain relay/oracle workflow and operational wiring |
### 1.7 Etherlink and Tezos
| Item | Status | Notes |
|------|--------|-------|
| Etherlink token mapping row (`42793`) | ✅ Scaffolded | Placeholder `addressTo` values only |
| Tezos / Etherlink feature flags | ✅ Present | `TEZOS_BRIDGE_ENABLED`, `ETHERLINK_BRIDGE_ENABLED` |
| Public production bridge lane | ❌ Not live | Treat as planned / gated until runbook items are completed |
Canonical reference: [TEZOS_CCIP_REMAINING_ITEMS.md](../07-ccip/TEZOS_CCIP_REMAINING_ITEMS.md)
### 1.8 XDC Zero
| Item | Status | Notes |
|------|--------|-------|
| XDC ↔ 138 program | ⚠️ Separate track | Parallel to CCIP and non-EVM adapter programs |
Canonical reference: [CHAIN138_XDC_ZERO_BRIDGE_RUNBOOK.md](../03-deployment/CHAIN138_XDC_ZERO_BRIDGE_RUNBOOK.md)
### 1.9 OP Stack L2
| Item | Status | Notes |
|------|--------|-------|
| L2 ↔ 138 bridge | ⏳ Design only | Optional future design, not a live lane |
Canonical reference: [OP_STACK_L2_AND_BESU138_BRIDGE_NOTES.md](../03-deployment/OP_STACK_L2_AND_BESU138_BRIDGE_NOTES.md)
---
## Part 2: Protocols That Have Accepted ChainID 138
@@ -229,6 +307,10 @@ Ledger Live and other clients can discover ChainID 138 RPCs via Chainlist.
- [CHAIN_SUPPORT.md](../../alltra-lifi-settlement/docs/CHAIN_SUPPORT.md) Chain support matrix
- [BRIDGE_CONFIGURATION.md](../../smom-dbis-138/docs/deployment/BRIDGE_CONFIGURATION.md) CCIP bridge config
- [TRUTH_NETWORK_BRIDGE_SPEC.md](../07-ccip/TRUTH_NETWORK_BRIDGE_SPEC.md) Truth bridge classification and execution plan
- [TEZOS_CCIP_REMAINING_ITEMS.md](../07-ccip/TEZOS_CCIP_REMAINING_ITEMS.md) Etherlink / Tezos staged work
- [CHAIN138_XDC_ZERO_BRIDGE_RUNBOOK.md](../03-deployment/CHAIN138_XDC_ZERO_BRIDGE_RUNBOOK.md) XDC Zero parallel bridge program
- [OP_STACK_L2_AND_BESU138_BRIDGE_NOTES.md](../03-deployment/OP_STACK_L2_AND_BESU138_BRIDGE_NOTES.md) Future OP Stack bridge notes
- [PUBLIC_RPC_CHAIN138_LEDGER.md](../04-configuration/PUBLIC_RPC_CHAIN138_LEDGER.md) Ledger RPCs
- [CHAIN138_WALLET_CONFIG_VALIDATION.md](../04-configuration/CHAIN138_WALLET_CONFIG_VALIDATION.md) Wallet configs
- [ALL_MAINNET_CONFIGURATION.md](../../smom-dbis-138/docs/deployment/ALL_MAINNET_CONFIGURATION.md) ALL Mainnet config

View File

@@ -1,8 +1,8 @@
# Contract Addresses Reference - ChainID 138
**Last Updated:** 2026-03-30
**Document Version:** 1.6
**Status:** Active documentation. Use the corrected canonical Chain 138 PMM stack: `DODOPMMIntegration=0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d`, `DODOPMMProvider=0x5CAe6Ce155b7f08D3a956F5Dc82fC9945f29B381`.
**Last Updated:** 2026-04-05
**Document Version:** 1.8
**Status:** Active documentation. Use the official DODO V2 DVM-backed Chain 138 PMM stack: `DODOPMMIntegration=0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895`, `DODOPMMProvider=0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e`, `DODO_VENDING_MACHINE_ADDRESS=0xb6D9EF3575bc48De3f011C310DC24d87bEC6087C`.
---
@@ -17,7 +17,8 @@ See [config/README-CONTRACTS-MASTER.md](../../config/README-CONTRACTS-MASTER.md)
---
**Network**: ChainID 138
**RPC Endpoint** (admin/deployment): Set `RPC_URL_138` (e.g. `http://192.168.11.211:8545` or `https://rpc-core.d-bis.org`)
**RPC admin / deployment:** `RPC_URL_138` → Core Besu on LAN: `http://192.168.11.211:8545` (do **not** use FQDN for deploy). See [RPC_ENDPOINTS_MASTER](../04-configuration/RPC_ENDPOINTS_MASTER.md).
**RPC — public / wallets / browsers:** use **HTTPS FQDN** only (e.g. `https://rpc-http-pub.d-bis.org`); see `RPC_URL_138_PUBLIC` and the public mapping table in [RPC_ENDPOINTS_MASTER](../04-configuration/RPC_ENDPOINTS_MASTER.md).
**Explorer:** https://explorer.d-bis.org (Blockscout) — use for Chain 138 balances, contracts, and verification. For balances on **other chains** (Ethereum mainnet, etc.), use [blockscan.com](https://blockscan.com) or etherscan.io. See [EXPLORER_AND_BLOCKSCAN_REFERENCE](EXPLORER_AND_BLOCKSCAN_REFERENCE.md).
**Correlated matrix and status (Chain 138 + multi-chain):** [ADDRESS_MATRIX_AND_STATUS.md](ADDRESS_MATRIX_AND_STATUS.md). Reconcile addresses here and in `.env` when deploying or deprecating contracts (R2).
@@ -33,7 +34,7 @@ These contracts were pre-deployed when ChainID 138 was initialized:
|----------|---------|--------|-------|
| **WETH9** | `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2` | ✅ Pre-deployed | Genesis allocation |
| **WETH10** | `0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f` | ✅ Pre-deployed | Genesis allocation |
| **Multicall** | `0x99b3511a2d315a497c8112c1fdd8d508d4b1e506` | ✅ Pre-deployed | Genesis allocation. Same address as Oracle Aggregator in some docs — verify on explorer which contract is at this slot. |
| **Oracle Aggregator (legacy slot)** | `0x99b3511a2d315a497c8112c1fdd8d508d4b1e506` | ✅ Pre-deployed / preserved | Live ABI on Chain 138 matches Oracle Aggregator (`latestAnswer`, `latestRoundData`). Do **not** use this slot as Multicall for new integrations. |
### ✅ Newly Deployed Contracts
@@ -41,7 +42,7 @@ Contracts deployed after chain initialization:
| Contract | Address | Status | Purpose |
|----------|---------|--------|---------|
| **Oracle Aggregator** | `0x99b3511a2d315a497c8112c1fdd8d508d4b1e506` | ✅ Deployed | Price feed aggregator (same address as Multicall — operator to confirm which contract is at this slot on explorer) |
| **Oracle Aggregator** | `0x99b3511a2d315a497c8112c1fdd8d508d4b1e506` | ✅ Deployed | Price feed aggregator. Verified on 2026-04-02 via `latestAnswer()` / `latestRoundData()` against Core RPC. |
| **Oracle Proxy** | `0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6` | ✅ Deployed | **MetaMask price feed** |
| **CCIP Router** | `0x42DAb7b888Dd382bD5Adcf9E038dBF1fD03b4817` | ✅ Deployed | Canonical relay-backed router (`CCIP_ROUTER` in `smom-dbis-138/.env`) |
| **CCIP Router (direct legacy)** | `0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e` | ✅ Deployed | `CCIP_ROUTER_DIRECT_LEGACY` — still bytecode-checked |
@@ -62,6 +63,46 @@ Contracts deployed after chain initialization:
| **UniversalCCIPBridge** (proxy) | `0xCd42e8eD79Dc50599535d1de48d3dAFa0BE156F8` | ✅ Deployed | Phased core (2026-02-11) | |
| **BridgeOrchestrator** (proxy) | `0x89aB428c437f23bAB9781ff8Db8D3848e27EeD6c` | ✅ Deployed | Phased core (2026-02-11) | |
### GRU c* V2 staged/live tokens (Chain 138)
| Contract | Address | Status | Notes |
|----------|---------|--------|-------|
| **cUSDT V2 / CompliantUSDTTokenV2** | `0x9FBfab33882Efe0038DAa608185718b772EE5660` | ✅ Deployed, active in `UniversalAssetRegistry`, and forward-canonical | `versionTag=2`, `currencyCode=USD`, `assetType=GRU`, `forwardCanonical=true`, `tokenURI=ipfs://.../cusdt-v2/metadata.json` as of April 3, 2026. Supersedes earlier staged address `0x8d342d321DdEe97D0c5011DAF8ca0B59DA617D29`. |
| **cUSDC V2 / CompliantUSDCTokenV2** | `0x219522c60e83dEe01FC5b0329d6fA8fD84b9D13d` | ✅ Deployed, active in `UniversalAssetRegistry`, and forward-canonical | `versionTag=2`, `currencyCode=USD`, `assetType=GRU`, `forwardCanonical=true`, `tokenURI=ipfs://.../cusdc-v2/metadata.json` as of April 3, 2026. Supersedes earlier staged address `0x1ac3F4942a71E86A9682D91837E1E71b7BACdF99`. |
### Gas-native compliant rollout (deployed 2026-04-05)
| Contract | Address | Status | Notes |
|----------|---------|--------|-------|
| **CWAssetReserveVerifier** | `0xbf26a679586663f87f3bf3f52c79479b8aa8d854` | ✅ Deployed, not yet attached | Generic verifier for gas-native lanes. Safe to reference for rollout planning; do not treat it as active bridge policy until the live L1 bridge is explicitly wired to it. |
| **cETH** | `0xf8e9802a1766422e33a269556ad5fc032338eefc` | ✅ Deployed on Chain 138 | Canonical gas token for `eth_mainnet`. |
| **cETHL2** | `0x18a6b163d255cc0cb32b99697843b487d059907d` | ✅ Deployed on Chain 138 | Canonical gas token for shared `eth_l2`. |
| **cBNB** | `0x94517875f32680984a5921da7abf78e22f65d70f` | ✅ Deployed on Chain 138 | Canonical gas token for BNB Chain. |
| **cPOL** | `0x19fec21edede9edb91d1fbec7c4095c5ac1fc10c` | ✅ Deployed on Chain 138 | Canonical gas token for Polygon. |
| **cAVAX** | `0x9c8f6f4fe1e535e6f85a78ee95249ded5540a2d0` | ✅ Deployed on Chain 138 | Canonical gas token for Avalanche. |
| **cCRO** | `0xfb48bb6c623571f9795b535b73f0d660e8643fd4` | ✅ Deployed on Chain 138 | Canonical gas token for Cronos. |
| **cXDAI** | `0xa39a59138f8a45b4a31455875b8a29ff31e76ec8` | ✅ Deployed on Chain 138 | Canonical gas token for Gnosis. |
| **cCELO** | `0x1814661dae0933bf397b1274f5a62411b94195c7` | ✅ Deployed on Chain 138 | Canonical gas token for Celo. |
| **cWEMIX** | `0x4d82206bec5b4dfa17759ffede07e35f4f63a050` | ✅ Deployed on Chain 138 | Canonical gas token for Wemix. Public-chain mirror still pending. |
### Gas-native public mirrors (deployed 2026-04-05)
| Chain | Contract | Address | Status |
|------|----------|---------|--------|
| Ethereum mainnet (`1`) | **cWETH** | `0xf6dc5587e18f27adff60e303fdd98f35b50fa8a5` | ✅ Deployed, bridge minter/burner roles granted |
| Optimism (`10`) | **cWETHL2** | `0x95007ec50d0766162f77848edf7bdc4eba147fb4` | ✅ Deployed, bridge minter/burner roles granted |
| Cronos (`25`) | **cWCRO** | `0x9b10eb0f77c45322dbd1fcb07176fd9a7609c164` | ✅ Deployed, bridge minter/burner roles granted |
| BNB Chain (`56`) | **cWBNB** | `0x179034a08ac2c9c35d2e41239f68c79dca6f18fa` | ✅ Deployed, bridge minter/burner roles granted |
| Gnosis (`100`) | **cWXDAI** | `0x9f833b4f1012f52eb3317b09922a79c6edfca77d` | ✅ Deployed, bridge minter/burner roles granted |
| Polygon (`137`) | **cWPOL** | `0x25980244aacecb6d8c4b887261ed27f87cb2fc73` | ✅ Deployed, bridge minter/burner roles granted |
| Arbitrum One (`42161`) | **cWETHL2** | `0xe27be001bc55cb2a8ed5ba5a62c834ca135244a3` | ✅ Deployed, bridge minter/burner roles granted |
| Celo (`42220`) | **cWCELO** | `0xb0fa7ec4123c7c275b3a89d9239569707ea3c66a` | ✅ Deployed, bridge minter/burner roles granted |
| Avalanche (`43114`) | **cWAVAX** | `0xe1d4aee2ef8f48a20338935188a8fe7f7c7de7d0` | ✅ Deployed, bridge minter/burner roles granted |
| Base (`8453`) | **cWETHL2** | `0x2a0840e5117683b11682ac46f5cf5621e67269e3` | ✅ Deployed, bridge minter/burner roles granted |
| Wemix (`1111`) | **cWWEMIX** | Pending | Mirror not deployed yet; `CW_BRIDGE_WEMIX` and destination gas funding are still missing. |
**Wemix note:** historical broadcast artifacts exist for prior `DeployWETHBridges.s.sol` runs on `1111`, but the recorded bridge addresses do not currently resolve to bytecode on-chain. Treat `CW_BRIDGE_WEMIX` as unset until a live bridge deployment is completed and funded.
### Channels / Mirror / Trustless / Reserve / Vault (deployed 2026-02-11; mirror 2026-02-12)
| Contract | Address | Notes |
@@ -100,10 +141,73 @@ Contracts deployed after chain initialization:
| Contract | Address | Status / Notes |
|----------|---------|----------------|
| **DODOPMMIntegration** | `0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d` | ✅ Canonical corrected stack; desired-state sync reconciled on 2026-03-26. |
| **DODOPMMProvider** | `0x5CAe6Ce155b7f08D3a956F5Dc82fC9945f29B381` | ✅ Canonical corrected stack; 104/104 desired-state routes aligned on 2026-03-26. |
| **DODO DVMFactory** | `0xc93870594C7f83A0aE076c2e30b494Efc526b68E` | ✅ Self-deployed official DODO V2 DVMFactory on Chain 138. Not DODO-listed, but canonical for this repo. |
| **DODO Vending Machine / DVMFactoryAdapter** | `0xb6D9EF3575bc48De3f011C310DC24d87bEC6087C` | ✅ Canonical `DODO_VENDING_MACHINE_ADDRESS` used by `DODOPMMIntegration`. |
| **DODOPMMIntegration** | `0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895` | ✅ Canonical official-DVM-backed integration deployed 2026-04-01. Use this for stable-pool routing, token-aggregation, and explorer fallback reads. |
| **DODOPMMProvider** | `0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e` | ✅ Canonical provider deployed 2026-04-02 and registered against the current integration. |
| **DODOPMMIntegration (older PMM phase / supplemental only)** | `0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d` | Historical/supplemental integration retained for older XAU-phase references and reserve probes. Do **not** use as the canonical stable-routing or explorer-fallback source. |
| **TransactionMirror** | `0x7131F887DBEEb2e44c1Ed267D2A68b5b83285afc` (Chain 138; deployed 2026-02-27) | Set `TRANSACTION_MIRROR_ADDRESS` in `smom-dbis-138/.env`. Deploy: `./scripts/deployment/deploy-transaction-mirror-and-pmm-pool-after-txpool-clear.sh`. |
| **DODO cUSDT/cUSDC pool** | `0xff8d3b8fDF7B112759F076B69f4271D4209C0849` | ✅ Live on canonical corrected stack. See [LIQUIDITY_POOLS_MASTER_MAP](LIQUIDITY_POOLS_MASTER_MAP.md). |
| **DODO cUSDT/cUSDC pool** | `0x9e89bAe009adf128782E19e8341996c596ac40dC` | ✅ Funded on the current canonical stack; recreated 2026-04-02 with `i=1e18`, `k=0` for true 1:1 stable quoting. |
| **DODO cUSDT/USDT pool** | `0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66` | ✅ Funded on the current canonical stack; recreated 2026-04-02 with `i=1e18`, `k=0`. |
| **DODO cUSDC/USDC pool** | `0xc39B7D0F40838cbFb54649d327f49a6DAC964062` | ✅ Funded on the current canonical stack; recreated 2026-04-02 with `i=1e18`, `k=0`. |
### DODO v3 / D3MM pilot deployment + native venue layer (Chain 138)
| Contract / Pool | Address | Status / Notes |
|-----------------|---------|----------------|
| **D3Oracle** | `0xD7459aEa8bB53C83a1e90262777D730539A326F0` | ✅ Deployed 2026-04-02 for the private DODO v3 / D3MM pilot. Blockscout source-verified 2026-04-03. |
| **D3Vault** | `0x42b6867260Fb9eE6d09B7E0233A1fAD65D0133D1` | ✅ Deployed and configured with `WETH10`, `USDT`, `USDC`, `cUSDT`, `cUSDC`. Blockscout source-verified 2026-04-03. |
| **D3MMFactory** | `0x78470C7d2925B6738544E2DD4FE7c07CcA21AC31` | ✅ Deployed. Standard-input Blockscout verification submission path is wired in `bash scripts/verify/verify-dodo-v3-chain138-blockscout.sh`; explorer currently exposes bytecode metadata but has not fully materialized source metadata yet. |
| **D3Proxy** | `0xc9a11abB7C63d88546Be24D58a6d95e3762cB843` | ✅ Deployed and used for proof-swap execution. Standard-input Blockscout verification submission path is wired; explorer currently exposes bytecode metadata but has not fully materialized source metadata yet. |
| **Oracle Aggregator (`WETH10` / ETH-USD pilot source)** | `0x99b3511a2d315a497c8112c1fdd8d508d4b1e506` | ✅ Live Chain 138 oracle surface. Promoted into the DODO v3 pilot as the `WETH10` source on 2026-04-02 via `setPriceSource(WETH10)` tx `0xf06a5064a4a2f6514b2d5304e9662b8b3aa003c109f214de8710bd9a8304f518`. |
| **ManagedStableUsdFeed (USDT / USD)** | `0x7c2Cb2667f0f97f4004aae04B67d94A085E6f0f1` | ✅ Deployed 2026-04-02 and promoted into the pilot on 2026-04-02 via `setPriceSource(USDT)`. Replaces bootstrap mock `0x8c5eD794399C68468985238Fa127958E06e6e87F`. |
| **ManagedStableUsdFeed (USDC / USD)** | `0xf072Ac13D45e6c83296ca18F3E04185B747DD6aa` | ✅ Deployed 2026-04-02 and promoted into the pilot on 2026-04-02 via `setPriceSource(USDC)`. Replaces bootstrap mock `0x102BAe3eBf3C8B93445F4B30c90728fd933CeC84`. |
| **ManagedStableUsdFeed (cUSDT / USD)** | `0x7c96E66F4a0713e327F9e73Cf2721f13DB29036C` | ✅ Deployed 2026-04-02 and promoted into the pilot on 2026-04-02 via `setPriceSource(cUSDT)`. Replaces bootstrap mock `0xd493Bb05e9ddf954E8285c6358ED03a2672A006d`. |
| **ManagedStableUsdFeed (cUSDC / USD)** | `0x291694095232CA80077125F64f6f73076e7910C1` | ✅ Deployed 2026-04-02 and promoted into the pilot on 2026-04-02 via `setPriceSource(cUSDC)`. Replaces bootstrap mock `0xcA85aFc0E24A8ebd69E138928567DcD363758E7A`. |
| **EnhancedSwapRouterV2** | `0xF1c93F54A5C2fc0d7766Ccb0Ad8f157DFB4C99Ce` | ✅ Deployed 2026-04-03. Public `/token-aggregation/api/v2/routes/internal-execution-plan` now targets this router for executable D3 pilot calldata. |
| **IntentBridgeCoordinatorV2** | `0x7D0022B7e8360172fd9C0bB6778113b7Ea3674E7` | ✅ Deployed 2026-04-03 alongside router-v2 for bridge-intent execution plans. |
| **DodoRouteExecutorAdapter** | `0x88495B3dccEA93b0633390fDE71992683121Fa62` | ✅ Deployed 2026-04-03. Canonical DODO V2 executor adapter for router-v2. |
| **DodoV3RouteExecutorAdapter** | `0x9Cb97adD29c52e3B81989BcA2E33D46074B530eF` | ✅ Deployed 2026-04-03. Canonical D3 / DODO v3 pilot executor adapter. Live proof swap via router-v2 tx `0x14cd60a226dbab0c96765fff23171569e5a2fc0e35bded03f92668951ced4b57`. |
| **UniswapV3RouteExecutorAdapter** | `0x960D6db4E78705f82995690548556fb2266308EA` | ✅ Deployed 2026-04-03. Router-v2 executor adapter. |
| **BalancerRouteExecutorAdapter** | `0x4E1B71B69188Ab45021c797039b4887a4924157A` | ✅ Deployed 2026-04-03. Router-v2 executor adapter. |
| **CurveRouteExecutorAdapter** | `0x5f0E07071c41ACcD2A1b1032D3bd49b323b9ADE6` | ✅ Deployed 2026-04-03. Router-v2 executor adapter. |
| **OneInchRouteExecutorAdapter** | `0x8168083d29b3293F215392A49D16e7FeF4a02600` | ✅ Deployed 2026-04-03. Router-v2 executor adapter. |
| **UniswapV3Factory** | `0x2f7219276e3ce367dB9ec74C1196a8ecEe67841C` | ✅ Upstream-native Uniswap v3 factory on Chain 138. Public planner now resolves the canonical `uniswap_v3` venue from this factory. |
| **UniswapV3NFTDescriptor** | `0x6F5fdE32DD2aC66B27e296EC9D6F4E79A3dE2947` | ✅ Upstream-native descriptor library. |
| **UniswapV3TokenDescriptor** | `0xca66DCAC4633555033F6fDDBE4234B6913c7ff51` | ✅ Upstream-native position descriptor. |
| **UniswapV3PositionManager** | `0x31b68BE5af4Df565Ce261dfe53D529005D947B48` | ✅ Upstream-native position manager. |
| **UniswapV3Router** | `0xde9cD8ee2811E6E64a41D5F68Be315d33995975E` | ✅ Canonical public upstream-native router on Chain 138 as of 2026-04-03. |
| **UniswapV3QuoterV2** | `0x6abbB1CEb2468e748a03A00CD6aA9BFE893AFa1f` | ✅ Canonical public upstream-native quoter on Chain 138 as of 2026-04-03. |
| **UniswapV3Pool_WETH_USDT** | `0xa893add35aEfe6A6d858EB01828bE4592f12C9F5` | ✅ Canonical fee-500 native `WETH/USDT` pool; seeded with ~`50 WETH` and `105,830 USDT`. |
| **UniswapV3Pool_WETH_USDC** | `0xEC745bfb6b3cd32f102d594E5F432d8d85B19391` | ✅ Canonical fee-500 native `WETH/USDC` pool; seeded with ~`50 WETH` and `105,830 USDC`. |
| **UniswapV3Pool_WETH_USDT (superseded fee-3000 bootstrap)** | `0x97eB7eB01327CF44C4d74a17EFA2130bc10C6Ab6` | ⚠️ Historical bootstrap pool from the first native seeding pass; keep only as an artifact, not a canonical route target. |
| **UniswapV3Pool_WETH_USDC (superseded fee-3000 bootstrap)** | `0xfc62B65028043c7168007Fd094D44097d13696Da` | ⚠️ Historical bootstrap pool from the first native seeding pass; keep only as an artifact, not a canonical route target. |
| **PilotUniswapV3Router / Quoter** | `0xD164D9cCfAcf5D9F91698f296aE0cd245D964384` | ✅ Still deployed, but superseded by the upstream-native Uniswap v3 router/quoter for public planner and canonical route selection. |
| **PilotBalancerVault** | `0x96423d7C1727698D8a25EbFB88131e9422d1a3C3` | ✅ Deployed and funded 2026-04-03. Pilot-compatible `Balancer` vault surface for Chain 138 `WETH/USDT` and `WETH/USDC`. Pool IDs: `0x877cd220759e8c94b82f55450c85d382ae06856c426b56d93092a420facbc324` (`WETH/USDT`), `0xd8dfb18a6baf9b29d8c2dbd74639db87ac558af120df5261dab8e2a5de69013b` (`WETH/USDC`). |
| **PilotCurve3Pool** | `0xE440Ec15805BE4C7BabCD17A63B8C8A08a492e0f` | ✅ Deployed and funded 2026-04-03. Pilot-compatible `Curve_3` stable-stable execution surface for Chain 138 `USDT/USDC`. |
| **PilotOneInchRouter** | `0x500B84b1Bc6F59C1898a5Fe538eA20A758757A4F` | ✅ Deployed and funded 2026-04-03. Pilot-compatible `1inch` execution surface for Chain 138 `WETH/USDT` and `WETH/USDC`. |
| **D3MM (superseded bootstrap)** | `0xE71Bc2cCb62dA5B18F88647db2b4a721Db416fc5` | ⚠️ Do not route through this pool. It was created against the placeholder `WETH9` path and is kept only as a deployment artifact. |
| **D3MM (canonical `WETH10` pilot pool)** | `0x6550A3a59070061a262a893A1D6F3F490afFDBDA` | ✅ Private pilot venue. Re-verified 2026-04-03 with `bash scripts/verify/check-dodo-v3-chain138.sh`: `querySellTokens(WETH10 -> USDT, 0.1)``211.66049 USDT`, vault registration OK, and oracle source healthy. |
**Important:** the public canonical stable-routing set for Chain 138 remains the DODO V2 DVM-backed PMM provider and the three canonical stable pools above. For the wider venue layer, **upstream-native Uniswap v3 is now the canonical public `uniswap_v3` path** on Chain 138, while the current `Balancer`, `Curve_3`, and `1inch` surfaces remain repo-managed pilot-compatible venues. DODO v3 remains the separate private D3 pilot lane. For public planner checks, use the routing asset `WETH` (`0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2`); the separate `CCIPWETH9Bridge` / `CCIPWETH10Bridge` addresses are transport surfaces, not swap-token aliases.
**Verification helpers:** `bash scripts/verify/check-chain138-pilot-dex-venues.sh`, `bash scripts/verify/check-dodo-v3-chain138.sh`, `bash scripts/verify/check-dodo-v3-planner-visibility-chain138.sh`, and `bash scripts/verify/verify-dodo-v3-chain138-blockscout.sh`
### Cross-chain flash infrastructure (Chain 138)
| Contract | Address | Status / Notes |
|----------|---------|----------------|
| **UniversalCCIPFlashBridgeAdapter** | `0xBe9e0B2d4cF6A3b2994d6f2f0904D2B165eB8ffC` | ✅ Deployed and Blockscout-verified 2026-04-03. Bridges flash-borrowed ERC-20 inventory through `UniversalCCIPBridge`. Create tx: `0x8cc4ba611a3d0a6e880f9e21f6390f67aadd6a234df1dc2828788ad775849844`. Verified at `2026-04-03T03:15:53Z`. |
| **CrossChainFlashRepayReceiver** | `0xD084b68cB4B1ef2cBA09CF99FB1B6552fd9b4859` | ✅ Deployed and Blockscout-verified 2026-04-03. Destination-side CCIP delivery leg. Create tx: `0xf1fc28c10956cf368ebfc3d1cdd3150caf8aceacae86964f547a91e66a801e33`. Verified at `2026-04-03T03:11:16Z`. |
| **CrossChainFlashVaultCreditReceiver** | `0x89F7a1fcbBe104BeE96Da4b4b6b7d3AF85f7E661` | ✅ Deployed and Blockscout-verified 2026-04-03. Source-side / same-chain liquidity refill leg for the flash vault. Create tx: `0x085e1cad6e8fbe6642db420563b7b75194a88ec6649fae99cd940c2a894ec1ad`. Verified at `2026-04-03T03:15:34Z`. |
**Wiring:** the deployed adapter points at `UniversalCCIPBridge=0xCd42e8eD79Dc50599535d1de48d3dAFa0BE156F8`, and both receivers point at `CCIP_ROUTER=0x42DAb7b888Dd382bD5Adcf9E038dBF1fD03b4817`.
**Verification helper:** `bash scripts/verify/check-cross-chain-flash-infra-chain138.sh` checks bytecode, bridge/router wiring, and Blockscout source-verification status for all three contracts.
**Public mainnet flash-lender candidates for no-broadcast dry-runs:** `MAINNET_BALANCER_VAULT=0xBA12222222228d8Ba445958a75a0704d566BF2C8` and `MAINNET_AAVE_V3_POOL=0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2` with `MAINNET_AAVE_V3_POOL_ADDRESSES_PROVIDER=0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e`. As of 2026-04-05, the live checker reads Balancer flash fee `0` and Aave `FLASHLOAN_PREMIUM_TOTAL() = 5`, plus live USDC/USDT balances from the Balancer vault and Aave reserve proxies.
**Current dry-run gap:** the repo still does **not** record a canonical deployed `SimpleERC3156FlashVault` address for same-chain stablecoin flashes on Chain 138. Public PMM dry-runs that need a same-chain ERC-3156 lender still require `FLASH_VAULT` and `FLASH_VAULT_TOKEN` in env, or explicit `--flash-provider-address` / `--flash-provider-token-address` on `scripts/analytics/pmm-flash-push-break-even.mjs`. Use `bash scripts/verify/check-public-pmm-dry-run-readiness.sh` to see the current live/configured state and current public flash caps.
### Deployer / Admin (Chain 138)
@@ -138,7 +242,7 @@ CHAIN_ID=138
{
"chainId": 138,
"chainName": "SMOM-DBIS-138",
"rpcUrls": ["https://rpc-core.d-bis.org"],
"rpcUrls": ["https://rpc-http-pub.d-bis.org"],
"nativeCurrency": {
"name": "ETH",
"symbol": "ETH",
@@ -174,7 +278,7 @@ Use these addresses in config and .env. **smom-dbis-138/.env** has been reconcil
| UNIVERSAL_CCIP_BRIDGE | `0xCd42e8eD79Dc50599535d1de48d3dAFa0BE156F8` |
| BRIDGE_ORCHESTRATOR | `0x89aB428c437f23bAB9781ff8Db8D3848e27EeD6c` |
**Multicall / Oracle Aggregator (operator to confirm):** Address `0x99b3511a2d315a497c8112c1fdd8d508d4b1e506` is documented as both. **Action:** Open [explorer](https://explorer.d-bis.org/address/0x99b3511a2d315a497c8112c1fdd8d508d4b1e506), confirm which contract is at this slot (Multicall vs Oracle Aggregator), and document the result here (e.g. "Verified: Multicall" or "Verified: Oracle Aggregator"). See [CONTRACT_NEXT_STEPS_LIST](CONTRACT_NEXT_STEPS_LIST.md) and [OPERATOR_ACTIONS](OPERATOR_ACTIONS.md).
**Multicall / Oracle Aggregator resolution:** Address `0x99b3511a2d315a497c8112c1fdd8d508d4b1e506` should now be treated as the live **Oracle Aggregator** slot on Chain 138. A 2026-04-02 Core RPC probe returned valid `latestAnswer()` and `latestRoundData()` responses, while Multicall-style `getEthBalance(address)` did not succeed. Use deployed Multicall `0xF4AA429BE277d1a1a1A744C9e5B3aD821a9b96f7` for new Multicall integrations.
**Reconcile .env:** ~~Copy the canonical block from `.env.example` into `.env`.~~ **Done 2026-02-11.** One entry per variable; matches this table.
@@ -186,11 +290,24 @@ Sends from Chain 138 to mainnet use the **relay** path (custom router + relay se
| Contract (Ethereum Mainnet) | Address | Role |
|-----------------------------|---------|------|
| **CCIPRelayRouter** | `0xAd9A228CcEB4cbB612cD165FFB72fE090ff10Afb` | Receives relayed messages; forwards to bridge |
| **CCIPRelayRouter** | `0x416564Ab73Ad5710855E98dC7bC7Bff7387285BA` | Active relay router; receives relayed messages and forwards to authorized bridges |
| **CCIPRelayBridge** | `0xF9A32F37099c582D28b4dE7Fca6eaC1e5259f939` | Releases WETH to recipient; must be funded with WETH |
Chain 138 WETH9 bridges (LINK fee and native ETH fee) have mainnet destination set to **CCIPRelayBridge**. Run the relay service so messages are delivered. The Mainnet bridge is **WETH9-only**; token mapping (138↔Mainnet) and which tokens are relay-supported: [TOKEN_MAPPING_AND_MAINNET_ADDRESSES.md](../07-ccip/TOKEN_MAPPING_AND_MAINNET_ADDRESSES.md). See [CCIP_BRIDGE_MAINNET_CONNECTION.md](../07-ccip/CCIP_BRIDGE_MAINNET_CONNECTION.md).
### Ethereum mainnet — optional GRU cW PMM + TRUU volatile rail (DODO)
These are **not** Chain 138 contracts; they support the optional Mainnet **Truth (TRUU)** PMM lane documented in [MAINNET_PMM_TRUU_CWUSD_PEG_AND_BOT_RUNBOOK.md](../03-deployment/MAINNET_PMM_TRUU_CWUSD_PEG_AND_BOT_RUNBOOK.md) and `cross-chain-pmm-lps/config/deployment-status.json` (`chains."1"`).
| Item | Address | Notes |
|------|---------|--------|
| **DODOPMMIntegration (Mainnet)** | `0xa9F284eD010f4F7d7F8F201742b49b9f58e29b84` | Env: `DODO_PMM_INTEGRATION_MAINNET`. Etherscan source-verified 2026-04-11; provenance/runbook: [ETHEREUM_MAINNET_DODOPMMINTEGRATION_VERIFICATION.md](../03-deployment/ETHEREUM_MAINNET_DODOPMMINTEGRATION_VERIFICATION.md). |
| **TRUU** | `0xDAe0faFD65385E7775Cf75b1398735155EF6aCD2` | Anchor in `deployment-status.json`; 10 decimals |
| **PMM pool cWUSDT / TRUU** | `0x508E5e80B66204b8CD9869323Fdd3A289ea50993` | Volatile; `pmmPoolsVolatile[]` |
| **PMM pool cWUSDC / TRUU** | `0x9A632F35078b6A4A9bf27806Bb7aFfAA2F16C846` | Volatile; `pmmPoolsVolatile[]` |
**cW token addresses on Mainnet** for this program: see `deployment-status.json` `chains."1".cwTokens` (e.g. cWUSDT, cWUSDC).
---
## 📝 Notes

View File

@@ -1,6 +1,6 @@
# Contract Next Steps and Recommendations — Complete
**Last updated:** 2026-02-12
**Last updated:** 2026-04-03
**Purpose:** Single reference for all next steps (completed, operator action, pending) and all recommendations/suggestions for smart contracts across chains and projects.
**Related:** [SMART_CONTRACTS_INVENTORY_ALL_CHAINS](SMART_CONTRACTS_INVENTORY_ALL_CHAINS.md) | [CONTRACT_ADDRESSES_REFERENCE](CONTRACT_ADDRESSES_REFERENCE.md) | [CONTRACT_INVENTORY_AND_VERIFICATION](CONTRACT_INVENTORY_AND_VERIFICATION.md)
@@ -20,7 +20,10 @@
| Inconsistencies resolved (addresses, bridge fallbacks) | Done | See CONTRACT_INVENTORY_AND_VERIFICATION §7. |
| Verification script and proxy | Done | `scripts/verify/run-contract-verification-with-proxy.sh`, `scripts/verify-contracts-blockscout.sh`, `config/contract-addresses.conf`. |
| Canonical source of truth and .env reconciliation | Done | [CONTRACT_ADDRESSES_REFERENCE § Canonical source of truth](CONTRACT_ADDRESSES_REFERENCE.md#-canonical-source-of-truth-chain-138): single canonical address per contract; note to remove duplicate keys in `.env`. |
| On-chain check script (full canonical list) | Done | `scripts/verify/check-contracts-on-chain-138.sh` includes **59** Chain 138 addresses (core, CCIP, PMM, vault/reserve, CompliantFiatTokens; see CONTRACT_ADDRESSES_REFERENCE). **Run (uses RPC_URL_138):** `./scripts/verify/check-contracts-on-chain-138.sh`. Chain 138 deploys: use `--with-gas-price 1000000000`. |
| On-chain check script (full canonical list) | Done | `scripts/verify/check-contracts-on-chain-138.sh` now targets **67** canonical Chain 138 addresses (core, CCIP canonical+legacy, PMM, vault/reserve, CompliantFiatTokens, ISO20022Router, and the cross-chain flash trio; see CONTRACT_ADDRESSES_REFERENCE). **Run (uses RPC_URL_138):** `./scripts/verify/check-contracts-on-chain-138.sh`. Chain 138 deploys: use `--with-gas-price 1000000000`. |
| Cross-chain flash verification | Done | `scripts/verify/check-cross-chain-flash-infra-chain138.sh` validates bytecode, router/bridge wiring, and Blockscout verification for `UniversalCCIPFlashBridgeAdapter`, `CrossChainFlashRepayReceiver`, and `CrossChainFlashVaultCreditReceiver`. |
| DODO v3 pilot health verification | Done | `scripts/verify/check-dodo-v3-chain138.sh` validates the canonical private `WETH10` D3MM pool, vault registration, oracle source, and quote health. |
| DODO v3 planner visibility verification | Done | `scripts/verify/check-dodo-v3-planner-visibility-chain138.sh` confirms `dodo_v3` provider capability is live in planner-v2, planner quotes select the canonical `WETH10 -> USDT` pilot route, route-matrix visibility includes the canonical D3 pool, and internal execution-plan calldata now targets the live `EnhancedSwapRouterV2` D3 adapter path. |
| Phased core (138) deployed | Done | 2026-02-11: UniversalAssetRegistry, GovernanceController, UniversalCCIPBridge, BridgeOrchestrator (proxies). Addresses in CONTRACT_ADDRESSES_REFERENCE and .env. |
| Channel manager docs and runbooks (smom-dbis-138) | Done | Payment/state channel deployment, gas report, incident runbook, watchtower, future work; see smom-dbis-138 `docs/channels/` and `docs/deployment/PAYMENT_CHANNELS_DEPLOYMENT.md`. |
@@ -28,12 +31,12 @@
| Step | Action | Command / reference |
|------|--------|----------------------|
| Confirm every Chain 138 contract on-chain | Done via VMID 2101 | All 36 addresses checked (run `./scripts/verify/check-contracts-on-chain-138.sh`; uses `RPC_URL_138`). Re-run when new contracts are deployed. |
| Run Blockscout source verification | From host that can reach Blockscout (e.g. LAN) | `source smom-dbis-138/.env 2>/dev/null; ./scripts/verify/run-contract-verification-with-proxy.sh` |
| Confirm every Chain 138 contract on-chain | Done via VMID 2101 / Core RPC | Current canonical result is **75/75 present** (run `./scripts/verify/check-contracts-on-chain-138.sh`; uses `RPC_URL_138`). Re-run when new contracts are deployed. |
| Run Blockscout source verification | From host that can reach Blockscout (e.g. LAN) | `source smom-dbis-138/.env 2>/dev/null; ./scripts/verify/run-contract-verification-with-proxy.sh`. The cross-chain flash trio is already Blockscout-verified and covered by `bash scripts/verify/check-cross-chain-flash-infra-chain138.sh`. |
| Reconcile .env (single source of truth) | **Done 2026-02-12:** CCIPWETH9_BRIDGE_CHAIN138 set to canonical `0x971c...`; added RPC_URL_138 (standard), MERCHANT_SETTLEMENT_REGISTRY, SETTLEMENT_REGISTRY_ADDRESS, WITHDRAWAL_ESCROW_ADDRESS, RESERVE_TOKEN_INTEGRATION, REGULATED_ENTITY_REGISTRY. One entry per variable. | [CONTRACT_ADDRESSES_REFERENCE](CONTRACT_ADDRESSES_REFERENCE.md). Re-run reconciliation if new contracts are deployed. |
| Verify Multicall vs Oracle Aggregator at same slot | Check explorer.d-bis.org for `0x99b3511a2d315a497c8112c1fdd8d508d4b1e506` | CONTRACT_ADDRESSES_REFERENCE notes both; confirm on explorer and document which contract is at this slot. |
| Deploy phased core (138) | **Done 2026-02-11** | UniversalAssetRegistry, GovernanceController, UniversalCCIPBridge, BridgeOrchestrator deployed (proxies). Addresses in [CONTRACT_ADDRESSES_REFERENCE](CONTRACT_ADDRESSES_REFERENCE.md); re-run 01/02 only if redeploying. |
| Optional: deploy trustless bridge | If using trustless bridge stack | Deploy from `script/bridge/trustless/`; replace placeholders in `config/production/.env.production.example`. |
| Optional: expand trustless bridge | If extending beyond the already-live Chain 138 trustless deployment | Deploy from `script/bridge/trustless/`; replace placeholders in `config/production/.env.production.example`. |
| Optional: mainnet/multichain deployments | If deploying to other chains | Use `DeployAll.s.sol` or chain-specific scripts; document addresses per chain. |
### Pending (when needed)
@@ -42,11 +45,11 @@
|------|------|-----------|
| CREATE2 / deterministic core | **Done 2026-02-11** — Deployed + setCCIPRouter(router) on Chain 138 | Addresses in [CONTRACT_ADDRESSES_REFERENCE](CONTRACT_ADDRESSES_REFERENCE.md) § CREATE2 / Deterministic |
| Vault / reserve / Keeper | When vault or reserve flow needed | `script/deploy/vault/`, `script/reserve/` |
| Dodo / swap integration | When DEX integration needed | `script/deploy/dex/`, `script/bridge/trustless/DeployEnhancedSwapRouter.s.sol` |
| Dodo / swap integration | When promoting beyond the current stable V2 public execution stack and private D3 pilot | `script/deploy/dex/`, `script/bridge/trustless/DeployEnhancedSwapRouter.s.sol`, `bash scripts/verify/check-dodo-v3-chain138.sh`, `bash scripts/verify/check-dodo-v3-planner-visibility-chain138.sh` |
| eMoney / smart accounts | When eMoney or account abstraction needed | `script/emoney/`, `script/smart-accounts/` |
| Firefly | Auto-deployed by Firefly | VMID 6200; no repo action. |
| AddressMapper / MirrorManager (Chain 138) | **Done 2026-02-12** | Deployed at `0x439Fcb2d2ab2f890DCcAE50461Fa7d978F9Ffe1A`, `0x6eD905A30c552a6e003061A38FD52A5A427beE56`. TransactionMirror: use `forge create` with `--with-gas-price 1000000000` if script fails. |
| PaymentChannelManager / GenericStateChannelManager | When channel features needed on Mainnet or Chain-138 | Deploy via smom-dbis-138 `script/DeployPaymentChannelManager.s.sol`, `script/DeployGenericStateChannelManager.s.sol`; **Chain 138:** use `--with-gas-price 1000000000`. See smom-dbis-138 `docs/deployment/PAYMENT_CHANNELS_DEPLOYMENT.md`. |
| PaymentChannelManager / GenericStateChannelManager | When channel features are needed beyond the already-live Chain 138 deployment | Deploy via smom-dbis-138 `script/DeployPaymentChannelManager.s.sol`, `script/DeployGenericStateChannelManager.s.sol`; **Chain 138:** use `--with-gas-price 1000000000`. See smom-dbis-138 `docs/deployment/PAYMENT_CHANNELS_DEPLOYMENT.md`. |
---
@@ -152,7 +155,7 @@ Manual verification: https://explorer.d-bis.org/address/<ADDRESS>#verify-contrac
| Task | Command |
|------|--------|
| On-chain check (Chain 138) | `./scripts/verify/check-contracts-on-chain-138.sh [RPC_URL]` (26 addresses; use `SKIP_EXIT=1` for report-only when RPC unreachable) |
| On-chain check (Chain 138) | `./scripts/verify/check-contracts-on-chain-138.sh [RPC_URL]` (67-address canonical target; use `SKIP_EXIT=1` for report-only when RPC unreachable) |
| Deployer balances (gas tokens) | `cd smom-dbis-138 && ./scripts/deployment/check-balances-gas-and-deploy.sh` |
| Deployer tokens (all networks) | `cd smom-dbis-138 && ./scripts/deployment/list-deployer-tokens-all-networks.sh` |
| Deploy phased core (138) | `cd smom-dbis-138 && ./scripts/deployment/check-balances-gas-and-deploy.sh --deploy` (uses GAS_PRICE_138=1000000000) |

View File

@@ -9,18 +9,18 @@
| # | Task | Type | Status |
|---|------|------|--------|
| 1 | **Chain 138 next steps (all in one)** | Operator | `./scripts/deployment/run-all-next-steps-chain138.sh` — preflight → mirror+pool → register c* as GRU → verify; use `--skip-mirror` if mirror exists. |
| 2 | On-chain check (**64** addresses; run check-contracts-on-chain-138.sh) | Operator | Run `./scripts/verify/check-contracts-on-chain-138.sh` from host with RPC |
| 3 | Blockscout source verification | Operator | Run from host that can reach Blockscout |
| 2 | On-chain check (**88** addresses; run check-contracts-on-chain-138.sh) | Operator | Run `./scripts/verify/check-contracts-on-chain-138.sh` from host with RPC |
| 3 | Blockscout source verification | Operator | Ongoing for any newly deployed contracts; current flash trio is already verified |
| 4 | Reconcile .env | Repo | Done 2026-02-11 |
| 5 | Multicall vs Oracle at 0x99b3... | Operator | Confirm on explorer; document in CONTRACT_ADDRESSES_REFERENCE |
| 6 | Deploy phased core (138) | Optional | Done 2026-02-11 |
| 7 | Deploy trustless bridge | Optional | When needed; script/bridge/trustless/ |
| 7 | Deploy trustless bridge | Optional | Chain 138 `Lockbox138` is already live; expand or redeploy only when needed |
| 8 | Mainnet/multichain deployments | Optional | DeployAll or chain scripts; document addresses |
| 9 | CREATE2 / deterministic core | Pending | When needed |
| 10 | Vault / reserve / Keeper | Pending | When needed |
| 11 | Dodo / swap integration | Pending | When needed |
| 12 | eMoney / smart accounts | Pending | When needed |
| 13 | PaymentChannelManager / GenericStateChannelManager | Pending | When needed; see PAYMENT_CHANNELS_DEPLOYMENT.md |
| 11 | Dodo / swap integration | Partial | Canonical DODO V2 stable routing is live; DODO v3 pilot plus planner-v2/public `/token-aggregation/api/v2` visibility and router-v2 execution are live/private; broader promotion and venue expansion remain |
| 12 | eMoney / smart accounts | Pending | When broader eMoney / AA rollout is needed |
| 13 | PaymentChannelManager / GenericStateChannelManager | Partial | Chain 138 deploy is already done; expand to additional chains or features when needed |
---
@@ -33,7 +33,10 @@
- [x] Address inconsistencies resolved (CONTRACT_INVENTORY_AND_VERIFICATION §7)
- [x] Verification script and proxy: `scripts/verify/run-contract-verification-with-proxy.sh`, etc.
- [x] Canonical source of truth: [CONTRACT_ADDRESSES_REFERENCE § Canonical](CONTRACT_ADDRESSES_REFERENCE.md#-canonical-source-of-truth-chain-138)
- [x] On-chain check script: `scripts/verify/check-contracts-on-chain-138.sh` (36 addresses: canonical + channels/mirror/trustless + CREATE2)
- [x] On-chain check script: `scripts/verify/check-contracts-on-chain-138.sh` (current canonical target: 88 addresses, including ISO20022Router, the cross-chain flash trio, the deployed GRU USD V2 addresses, the router-v2 execution stack, the upstream-native Uniswap v3 deployment, and the funded pilot-compatible venue layer)
- [x] Cross-chain flash verifier: `scripts/verify/check-cross-chain-flash-infra-chain138.sh` (bytecode, wiring, Blockscout verification)
- [x] DODO v3 pilot verifier: `scripts/verify/check-dodo-v3-chain138.sh` (canonical D3MM pool, vault registration, oracle source, quote probe)
- [x] DODO v3 planner visibility verifier: `scripts/verify/check-dodo-v3-planner-visibility-chain138.sh` (provider capability, planner route, executable routePlan/internal execution plan, route matrix)
- [x] Deployer balance & gas check: `smom-dbis-138/scripts/deployment/check-balances-gas-and-deploy.sh`
- [x] Deployer tokens (all networks): `smom-dbis-138/scripts/deployment/list-deployer-tokens-all-networks.sh`
- [x] Phased core (138) deployed 2026-02-11: UniversalAssetRegistry, GovernanceController, UniversalCCIPBridge, BridgeOrchestrator (see CONTRACT_ADDRESSES_REFERENCE)
@@ -45,17 +48,19 @@
**Last run summary:** [OPERATOR_RUN_SUMMARY](OPERATOR_RUN_SUMMARY.md) (2026-02-11). From a host without LAN/VPN: on-chain check and Blockscout were run but RPC/Blockscout unreachable; .env verified reconciled; Multicall/Oracle not confirmed (explorer timeout).
- [x] **On-chain check:** Run `./scripts/verify/check-contracts-on-chain-138.sh`**Done 2026-02-11** (26/26 OK). Re-run when new contracts are deployed.
- [ ] **Blockscout verification:** From host that can reach Blockscout: `source smom-dbis-138/.env 2>/dev/null; ./scripts/verify/run-contract-verification-with-proxy.sh`. Or verify each contract at https://explorer.d-bis.org/address/<ADDRESS>#verify-contract.
- [x] **On-chain check:** Run `./scripts/verify/check-contracts-on-chain-138.sh`current canonical result is **88/88 OK**. Re-run when new contracts are deployed.
- [ ] **Blockscout verification (broad sweep / new deploys):** From host that can reach Blockscout: `source smom-dbis-138/.env 2>/dev/null; ./scripts/verify/run-contract-verification-with-proxy.sh`. Or verify each contract at https://explorer.d-bis.org/address/<ADDRESS>#verify-contract. The cross-chain flash trio is already verified and is checked by `bash scripts/verify/check-cross-chain-flash-infra-chain138.sh`.
- [x] **Reconcile .env:** Verified 2026-02-11: `smom-dbis-138/.env` has one entry per variable and matches [CONTRACT_ADDRESSES_REFERENCE § Canonical](CONTRACT_ADDRESSES_REFERENCE.md#-canonical-source-of-truth-chain-138). No change needed.
- [x] **Multicall vs Oracle at 0x99b3...:** **Done 2026-02-11.** Confirmed via RPC (`latestRoundData()` returns data, `getBlockNumber()` reverts): **Oracle Aggregator**. Documented in [CONTRACT_ADDRESSES_REFERENCE](CONTRACT_ADDRESSES_REFERENCE.md).
- [x] **Cross-chain flash infra:** **Done 2026-04-03.** Deployed, wired, and Blockscout-verified; re-check with `bash scripts/verify/check-cross-chain-flash-infra-chain138.sh`.
- [x] **DODO v3 pilot health:** **Done 2026-04-03.** Canonical `WETH10` pilot pool is healthy; re-check with `bash scripts/verify/check-dodo-v3-chain138.sh`.
---
## Optional (when needed)
- [x] ~~Deploy phased core (138)~~**Done 2026-02-11.** Addresses in CONTRACT_ADDRESSES_REFERENCE. To redeploy: `cd smom-dbis-138 && ./scripts/deployment/check-balances-gas-and-deploy.sh --deploy`.
- [ ] Deploy trustless bridge: from `script/bridge/trustless/`; update config/production placeholders.
- [ ] Expand trustless bridge beyond the current Chain 138 deployment: use `script/bridge/trustless/`; update config/production placeholders when extending the stack.
- [ ] Mainnet/multichain: use DeployAll or chain-specific scripts; document addresses per chain.
---
@@ -65,9 +70,9 @@
- [x] ~~AddressMapper / MirrorManager (Chain 138)~~ — Deployed 2026-02-12. TransactionMirror: deploy via `forge create` with `--with-gas-price 1000000000` if script fails.
- [ ] CREATE2 / deterministic core (when needed)
- [ ] Vault / reserve / Keeper
- [ ] Dodo / swap integration
- [ ] Public execution promotion of DODO / swap integration beyond the current stable V2 stack and private D3 pilot
- [ ] eMoney / smart accounts
- [ ] PaymentChannelManager / GenericStateChannelManager (see smom-dbis-138 PAYMENT_CHANNELS_DEPLOYMENT.md). **Chain 138:** use `--with-gas-price 1000000000`.
- [ ] PaymentChannelManager / GenericStateChannelManager expansion beyond the already-deployed Chain 138 contracts (see smom-dbis-138 PAYMENT_CHANNELS_DEPLOYMENT.md). **Chain 138:** use `--with-gas-price 1000000000`.
---

View File

@@ -6,7 +6,7 @@ Single list of actions that require an operator (network or explorer access). In
- Full inventory: SMART_CONTRACTS_INVENTORY_ALL_CHAINS.md
- Canonical addresses: CONTRACT_ADDRESSES_REFERENCE.md
- On-chain check script: scripts/verify/check-contracts-on-chain-138.sh (26 addresses including phased core; SKIP_EXIT=1 for report-only)
- On-chain check script: `scripts/verify/check-contracts-on-chain-138.sh` (current canonical target `75/75`; use `SKIP_EXIT=1` for report-only)
- Phased core (138) deployed 2026-02-11; .env reconciled (one entry per variable)
- Inventory and verification: CONTRACT_INVENTORY_AND_VERIFICATION.md
- Next steps: CONTRACT_NEXT_STEPS_AND_RECOMMENDATIONS_COMPLETE.md
@@ -16,7 +16,7 @@ Single list of actions that require an operator (network or explorer access). In
**Single checklist:** [CONTRACT_NEXT_STEPS_LIST](CONTRACT_NEXT_STEPS_LIST.md).
1. Confirm all 26 Chain 138 contracts on-chain: run `./scripts/verify/check-contracts-on-chain-138.sh` from a host where RPC is reachable, or open each address on explorer.d-bis.org. Use `SKIP_EXIT=1` for report-only when RPC is unreachable.
1. Confirm the full current Chain 138 canonical inventory on-chain: run `./scripts/verify/check-contracts-on-chain-138.sh` from a host where RPC is reachable, or open each address on explorer.d-bis.org. Current operator-facing target is **75/75**. Use `SKIP_EXIT=1` for report-only when RPC is unreachable.
2. Run Blockscout source verification from a host that can reach Blockscout (see CONTRACT_NEXT_STEPS_AND_RECOMMENDATIONS_COMPLETE Part 4).
3. ~~Reconcile `.env`~~**Done 2026-02-11.** One entry per variable; matches CONTRACT_ADDRESSES_REFERENCE.
4. Confirm at explorer which contract is at `0x99b3511a2d315a497c8112c1fdd8d508d4b1e506` (Multicall vs Oracle Aggregator) and document in CONTRACT_ADDRESSES_REFERENCE.

View File

@@ -0,0 +1,136 @@
# Contract Verification And Publication Matrix (All Networks)
**Generated:** 2026-04-11T21:10:30.092Z
**Authoritative sources:** `config/smart-contracts-master.json`, `cross-chain-pmm-lps/config/deployment-status.json`
This matrix is the canonical repo-level inventory for **what still needs explorer verification and publication coverage across every network currently tracked in the workspace**.
## Meaning
- **Verification** = source or deployment metadata is verified on the network explorer used for that chain.
- **Publication** = the deployment is also reflected in the repos public inventories, token mappings, PMM status, and explorer-facing docs/config where applicable.
- **Pending** means the repo knows the address, but does not yet have a machine-confirmed proof here that explorer verification/publication is complete.
## Chain Summary
| Chain ID | Chain | Total Entries | Canonical Contracts | cW / Gas Mirrors | PMM Pools | Explorer |
| --- | --- | ---: | ---: | ---: | ---: | --- |
| 1 | Ethereum Mainnet | 36 | 3 | 14 | 13 | https://etherscan.io |
| 10 | Optimism | 21 | 0 | 14 | 2 | https://optimistic.etherscan.io |
| 25 | Cronos | 19 | 0 | 14 | 2 | https://cronoscan.com |
| 56 | BSC | 18 | 0 | 16 | 0 | https://bscscan.com |
| 100 | Gnosis | 18 | 0 | 14 | 0 | https://gnosisscan.io |
| 137 | Polygon | 22 | 0 | 15 | 2 | https://polygonscan.com |
| 138 | Chain 138 | 115 | 115 | 0 | 0 | https://blockscout.defi-oracle.io |
| 1111 | Wemix | 4 | 0 | 2 | 0 | https://explorer.wemix.com |
| 8453 | Base | 19 | 0 | 14 | 0 | https://basescan.org |
| 42161 | Arbitrum | 19 | 0 | 14 | 0 | https://arbiscan.io |
| 42220 | Celo | 19 | 0 | 16 | 0 | https://celoscan.io |
| 43114 | Avalanche | 19 | 0 | 16 | 0 | https://snowtrace.io |
## Required operator path
1. **Chain 138 canonical contracts**
- Run: `bash scripts/verify/run-contract-verification-with-proxy.sh`
- Recheck: `bash scripts/verify/check-contracts-on-chain-138.sh`
2. **Chain 138 DODO v3 pilot**
- Run: `bash scripts/verify/verify-dodo-v3-chain138-blockscout.sh`
3. **Other EVM chains**
- Verify on the chain explorer shown below.
- If the repo owns the deployment, keep token/pool/mapping docs updated after explorer verification.
4. **Publication closure**
- Update `config/smart-contracts-master.json`, `cross-chain-pmm-lps/config/deployment-status.json`, token lists, and any chain-specific runbooks after verification is confirmed.
## Inventory sample
The JSON report in `reports/status/contract_verification_publish_matrix.json` contains the full set. The first 80 rows are shown here for readability.
| Chain ID | Chain | Type | Label | Address | Verifier | Automation | Explorer | Verify | Publish |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 1 | Ethereum Mainnet | anchor_token | TRUU | `0xDAe0faFD65385E7775Cf75b1398735155EF6aCD2` | etherscan | reference-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | anchor_token | USDC | `0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48` | etherscan | reference-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | anchor_token | USDT | `0xdAC17F958D2ee523a2206206994597C13D831ec7` | etherscan | reference-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | canonical_contract | CCIP_Relay_Bridge | `0xF9A32F37099c582D28b4dE7Fca6eaC1e5259f939` | etherscan | manual-or-external | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | canonical_contract | CCIP_Relay_Router | `0xAd9A228CcEB4cbB612cD165FFB72fE090ff10Afb` | etherscan | manual-or-external | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | canonical_contract | DODOPMMIntegration_Mainnet | `0xa9F284eD010f4F7d7F8F201742b49b9f58e29b84` | etherscan | manual-or-external | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | cw_token | cWAUDC | `0x5020Db641B3Fc0dAbBc0c688C845bc4E3699f35F` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | cw_token | cWBTC | `0xcb7c000000000000000000000000000000000001` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | cw_token | cWCADC | `0x209FE32fe7B541751D190ae4e50cd005DcF8EDb4` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | cw_token | cWCHFC | `0x0F91C5E6Ddd46403746aAC970D05d70FFe404780` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | cw_token | cWEURC | `0xD4aEAa8cD3fB41Dc8437FaC7639B6d91B60A5e8d` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | cw_token | cWEURT | `0x855d74FFB6CF75721a9bAbc8B2ed35c8119241dC` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | cw_token | cWGBPC | `0xc074007dc0bfb384b1cf6426a56287ed23fe4d52` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | cw_token | cWGBPT | `0x1dDF9970F01c76A692Fdba2706203E6f16e0C46F` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | cw_token | cWJPYC | `0x07EEd0D7dD40984e47B9D3a3bdded1c536435582` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | cw_token | cWUSDC | `0x2de5F116bFcE3d0f922d9C8351e0c5Fc24b9284a` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | cw_token | cWUSDT | `0xaF5017d0163ecb99D9B5D94e3b4D7b09Af44D8AE` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | cw_token | cWXAUC | `0x572Be0fa8CA0534d642A567CEDb398B771D8a715` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | cw_token | cWXAUT | `0xACE1DBF857549a11aF1322e1f91F2F64b029c906` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | gas_mirror | cWETH | `0xf6dc5587e18f27adff60e303fdd98f35b50fa8a5` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | pmm_pool | cWAUDC/USDC | `0x6c1bD4F43c5f330E50B61DE81066dA7C61a9b5b4` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | pmm_pool | cWCADC/USDC | `0xE0F35b5736FDd0a2F4B618621b0A08F8D8A3f92A` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | pmm_pool | cWCHFC/USDC | `0x776Ca556deD3245984F504F4bef8Eeec55C50190` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | pmm_pool | cWEURC/USDC | `0x0bC750F9c6DbDcd76B205695A356491b1B9ef098` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | pmm_pool | cWGBPC/USDC | `0x5488042dF882893a3e7074453E2005CaDE4101b0` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | pmm_pool | cWJPYC/USDC | `0x8A4187dF0A8FE855cC53A4F7B2D8346588Ee9794` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | pmm_pool | cWUSDC/USDC | `0x69776fc607e9edA8042e320e7e43f54d06c68f0E` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | pmm_pool | cWUSDC/USDT | `0xCC0fd27A40775c9AfcD2BBd3f7c902b0192c247A` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | pmm_pool | cWUSDT/cWUSDC | `0xe944b7Cb012A0820c07f54D51e92f0e1C74168DB` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | pmm_pool | cWUSDT/USDC | `0x27f3aE7EE71Be3d77bAf17d4435cF8B895DD25D2` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | pmm_pool | cWUSDT/USDT | `0x79156F6B7bf71a1B72D78189B540A89A6C13F6FC` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | pmm_pool_volatile | cWUSDC/TRUU | `0x9A632F35078b6A4A9bf27806Bb7aFfAA2F16C846` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | pmm_pool_volatile | cWUSDT/TRUU | `0x508E5e80B66204b8CD9869323Fdd3A289ea50993` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | reference_venue | balancer:cWETH/USDC | `0xba11000000000000000000000000000000000001` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | reference_venue | curve:cWETH/USDC | `0xc711000000000000000000000000000000000001` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 1 | Ethereum Mainnet | reference_venue | uniswap_v3:cWETH/WETH | `0x7111000000000000000000000000000000000001` | etherscan | inventory-only | https://etherscan.io | pending | pending |
| 10 | Optimism | anchor_token | USDC | `0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359` | etherscan-family | reference-only | https://optimistic.etherscan.io | pending | pending |
| 10 | Optimism | anchor_token | USDT | `0xc2132D05D31c914a87C6611C10748AEb04B58e8F` | etherscan-family | reference-only | https://optimistic.etherscan.io | pending | pending |
| 10 | Optimism | cw_token | cWAUDC | `0x25603ae4bff0b71d637b3573d1b6657f5f6d17ef` | etherscan-family | inventory-only | https://optimistic.etherscan.io | pending | pending |
| 10 | Optimism | cw_token | cWBTC | `0xcb7c00000000000000000000000000000000000a` | etherscan-family | inventory-only | https://optimistic.etherscan.io | pending | pending |
| 10 | Optimism | cw_token | cWCADC | `0x9f6d2578003fe04e58a9819a4943732f2a203a61` | etherscan-family | inventory-only | https://optimistic.etherscan.io | pending | pending |
| 10 | Optimism | cw_token | cWCHFC | `0x4d9bc6c74ba65e37c4139f0aec9fc5ddff28dcc4` | etherscan-family | inventory-only | https://optimistic.etherscan.io | pending | pending |
| 10 | Optimism | cw_token | cWEURC | `0x4ab39b5bab7b463435209a9039bd40cf241f5a82` | etherscan-family | inventory-only | https://optimistic.etherscan.io | pending | pending |
| 10 | Optimism | cw_token | cWEURT | `0x6f521cd9fcf7884cd4e9486c7790e818638e09dd` | etherscan-family | inventory-only | https://optimistic.etherscan.io | pending | pending |
| 10 | Optimism | cw_token | cWGBPC | `0x3f8c409c6072a2b6a4ff17071927ba70f80c725f` | etherscan-family | inventory-only | https://optimistic.etherscan.io | pending | pending |
| 10 | Optimism | cw_token | cWGBPT | `0x456373d095d6b9260f01709f93fccf1d8aa14d11` | etherscan-family | inventory-only | https://optimistic.etherscan.io | pending | pending |
| 10 | Optimism | cw_token | cWJPYC | `0x8e54c52d34a684e22865ac9f2d7c27c30561a7b9` | etherscan-family | inventory-only | https://optimistic.etherscan.io | pending | pending |
| 10 | Optimism | cw_token | cWUSDC | `0x377a5FaA3162b3Fc6f4e267301A3c817bAd18105` | etherscan-family | inventory-only | https://optimistic.etherscan.io | pending | pending |
| 10 | Optimism | cw_token | cWUSDT | `0x04B2AE3c3bb3d70Df506FAd8717b0FBFC78ED7E6` | etherscan-family | inventory-only | https://optimistic.etherscan.io | pending | pending |
| 10 | Optimism | cw_token | cWXAUC | `0xddc4063f770f7c49d00b5a10fb552e922aa39b2c` | etherscan-family | inventory-only | https://optimistic.etherscan.io | pending | pending |
| 10 | Optimism | cw_token | cWXAUT | `0x145e8e8c49b6a021969dd9d2c01c8fea44374f61` | etherscan-family | inventory-only | https://optimistic.etherscan.io | pending | pending |
| 10 | Optimism | gas_mirror | cWETHL2 | `0x95007ec50d0766162f77848edf7bdc4eba147fb4` | etherscan-family | inventory-only | https://optimistic.etherscan.io | pending | pending |
| 10 | Optimism | pmm_pool | cWUSDC/USDC | `0x8F1038dE06d799a30D16d8B0b0ADEe629e7d4547` | etherscan-family | inventory-only | https://optimistic.etherscan.io | pending | pending |
| 10 | Optimism | pmm_pool | cWUSDT/USDT | `0xFCB0b0Ac36d67EDBA91100c75C27De945357CD62` | etherscan-family | inventory-only | https://optimistic.etherscan.io | pending | pending |
| 10 | Optimism | reference_venue | balancer:cWETHL2/USDC | `0xba2100000000000000000000000000000000000a` | etherscan-family | inventory-only | https://optimistic.etherscan.io | pending | pending |
| 10 | Optimism | reference_venue | curve:cWETHL2/USDC | `0xc72100000000000000000000000000000000000a` | etherscan-family | inventory-only | https://optimistic.etherscan.io | pending | pending |
| 10 | Optimism | reference_venue | uniswap_v3:cWETHL2/WETH | `0x712100000000000000000000000000000000000a` | etherscan-family | inventory-only | https://optimistic.etherscan.io | pending | pending |
| 25 | Cronos | anchor_token | USDC | `0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359` | etherscan-family | reference-only | https://cronoscan.com | pending | pending |
| 25 | Cronos | anchor_token | USDT | `0xc2132D05D31c914a87C6611C10748AEb04B58e8F` | etherscan-family | reference-only | https://cronoscan.com | pending | pending |
| 25 | Cronos | cw_token | cWAUDC | `0xff3084410A732231472Ee9f93F5855dA89CC5254` | etherscan-family | inventory-only | https://cronoscan.com | pending | pending |
| 25 | Cronos | cw_token | cWBTC | `0xcb7c000000000000000000000000000000000019` | etherscan-family | inventory-only | https://cronoscan.com | pending | pending |
| 25 | Cronos | cw_token | cWCADC | `0x32aD687F24F77bF8C86605c202c829163Ac5Ab36` | etherscan-family | inventory-only | https://cronoscan.com | pending | pending |
| 25 | Cronos | cw_token | cWCHFC | `0xB55F49D6316322d5caA96D34C6e4b1003BD3E670` | etherscan-family | inventory-only | https://cronoscan.com | pending | pending |
| 25 | Cronos | cw_token | cWEURC | `0x7574d37F42528B47c88962931e48FC61608a4050` | etherscan-family | inventory-only | https://cronoscan.com | pending | pending |
| 25 | Cronos | cw_token | cWEURT | `0x9f833b4f1012F52eb3317b09922a79c6EdFca77D` | etherscan-family | inventory-only | https://cronoscan.com | pending | pending |
| 25 | Cronos | cw_token | cWGBPC | `0xe5c65A76A541368d3061fe9E7A2140cABB903dbF` | etherscan-family | inventory-only | https://cronoscan.com | pending | pending |
| 25 | Cronos | cw_token | cWGBPT | `0xBb58fa16bAc8E789f09C14243adEE6480D8213A2` | etherscan-family | inventory-only | https://cronoscan.com | pending | pending |
| 25 | Cronos | cw_token | cWJPYC | `0x52aD62B8bD01154e2A4E067F8Dc4144C9988d203` | etherscan-family | inventory-only | https://cronoscan.com | pending | pending |
| 25 | Cronos | cw_token | cWUSDC | `0x932566E5bB6BEBF6B035B94f3DE1f75f126304Ec` | etherscan-family | inventory-only | https://cronoscan.com | pending | pending |
| 25 | Cronos | cw_token | cWUSDT | `0x72948a7a813B60b37Cd0c920C4657DbFF54312b8` | etherscan-family | inventory-only | https://cronoscan.com | pending | pending |
| 25 | Cronos | cw_token | cWXAUC | `0xf1B771c95573113E993374c0c7cB2dc1a7908B12` | etherscan-family | inventory-only | https://cronoscan.com | pending | pending |
| 25 | Cronos | cw_token | cWXAUT | `0xD517C0cF7013f988946A468c880Cc9F8e2A4BCbE` | etherscan-family | inventory-only | https://cronoscan.com | pending | pending |
| 25 | Cronos | gas_mirror | cWCRO | `0x9b10eb0f77c45322dbd1fcb07176fd9a7609c164` | etherscan-family | inventory-only | https://cronoscan.com | pending | pending |
| 25 | Cronos | pmm_pool | cWUSDC/USDC | `0x8F1038dE06d799a30D16d8B0b0ADEe629e7d4547` | etherscan-family | inventory-only | https://cronoscan.com | pending | pending |
| 25 | Cronos | pmm_pool | cWUSDT/USDT | `0xFCB0b0Ac36d67EDBA91100c75C27De945357CD62` | etherscan-family | inventory-only | https://cronoscan.com | pending | pending |
| 25 | Cronos | reference_venue | uniswap_v3:cWCRO/WCRO | `0x7161000000000000000000000000000000000019` | etherscan-family | inventory-only | https://cronoscan.com | pending | pending |
| 56 | BSC | anchor_token | USDT | `0x55d398326f99059fF775485246999027B3197955` | etherscan-family | reference-only | https://bscscan.com | pending | pending |
| 56 | BSC | cw_token | cWAUDC | `0x7062f35567BBAb4d98dc33af03B0d14Df42294D5` | etherscan-family | inventory-only | https://bscscan.com | pending | pending |
| 56 | BSC | cw_token | cWAUSDT | `0xe1a51Bc037a79AB36767561B147eb41780124934` | etherscan-family | inventory-only | https://bscscan.com | pending | pending |
| 56 | BSC | cw_token | cWBTC | `0xcb7c000000000000000000000000000000000038` | etherscan-family | inventory-only | https://bscscan.com | pending | pending |
## Notes
- Entries from `smart-contracts-master.json` are treated as the canonical deploy inventory.
- Entries from `deployment-status.json` are treated as required publication inventory, even when explorer verification may be external or manual.
- This matrix does **not** claim every address is already verified; it marks the repo-wide backlog explicitly so the status can be closed chain by chain instead of being lost in prose.

View File

@@ -2,7 +2,7 @@
**Purpose:** Single reference for all compliant wrapped tokens (cW*) and the networks where they are defined or deployed.
**Source of truth:** `config/token-mapping-multichain.json` (`cToCwSymbolMapping`), `smom-dbis-138/script/deploy/DeployCWTokens.s.sol`, and `smom-dbis-138/.env` (for recorded addresses).
**Source of truth:** `config/token-mapping-multichain.json` (`cToCwSymbolMapping`), `smom-dbis-138/script/deploy/DeployCWTokens.s.sol`, `smom-dbis-138/.env` (for recorded addresses), and `scripts/verify/check-cw-evm-deployment-mesh.sh` (for the current per-chain EVM deployment summary).
---
@@ -12,18 +12,20 @@ All 12 cW* tokens are deployable via `DeployCWTokens.s.sol` (env flags `DEPLOY_C
| cW* Token | Deploy script | Networks deployable (script) | Deployed on (addresses in .env) |
|-----------|---------------|------------------------------|----------------------------------|
| **cWUSDT** | Yes | 1, 25, 56, 137, 100, 43114, 8453, 42161, 10 | All 9 chains (Mainnet, Cronos, BSC, Polygon, Gnosis, Avalanche, Base, Arbitrum, Optimism) |
| **cWUSDC** | Yes | 1, 25, 56, 137, 100, 43114, 8453, 42161, 10 | All 9 chains |
| **cWEURC** | Yes | 1, 25, 56, 137, 100, 43114, 8453, 42161, 10 | BSC, Polygon, Gnosis, Avalanche, Base, Optimism (Mainnet/Cronos/Arbitrum: deploy failed nonce/gas) |
| **cWEURT** | Yes | Same | Same as cWEURC |
| **cWGBPC** | Yes | Same | Same |
| **cWGBPT** | Yes | Same | Same |
| **cWAUDC** | Yes | Same | Same |
| **cWJPYC** | Yes | Same | Same |
| **cWCHFC** | Yes | Same | Same |
| **cWCADC** | Yes | Same | Same |
| **cWXAUC** | Yes | Same | Same |
| **cWXAUT** | Yes | Same | Same |
| **cWUSDT** | Yes | 1, 10, 25, 56, 100, 137, 42161, 42220, 43114, 8453, 1111 | All 10 loaded chains (Mainnet, Optimism, Cronos, BSC, Gnosis, Polygon, Arbitrum, Celo, Avalanche, Base); Wemix desired but not yet loaded |
| **cWUSDC** | Yes | Same | All 10 loaded chains |
| **cWEURC** | Yes | Same | All 10 loaded chains |
| **cWEURT** | Yes | Same | All 10 loaded chains |
| **cWGBPC** | Yes | Same | All 10 loaded chains |
| **cWGBPT** | Yes | Same | All 10 loaded chains |
| **cWAUDC** | Yes | Same | All 10 loaded chains |
| **cWJPYC** | Yes | Same | All 10 loaded chains |
| **cWCHFC** | Yes | Same | All 10 loaded chains |
| **cWCADC** | Yes | Same | All 10 loaded chains |
| **cWXAUC** | Yes | Same | All 10 loaded chains |
| **cWXAUT** | Yes | Same | All 10 loaded chains |
**Current mesh status (2026-04-04):** the public EVM `cW*` deployment mesh is **12/12 on all 10 currently loaded public EVM chains**: **Mainnet, Optimism, Cronos, BSC, Gnosis, Polygon, Arbitrum, Celo, Avalanche, and Base**. `Wemix` remains the only desired public EVM target without a loaded `cW*` suite in `deployment-status.json`.
---
@@ -37,11 +39,17 @@ All 12 cW* tokens are deployable via `DeployCWTokens.s.sol` (env flags `DEPLOY_C
| 56 | BSC (BNB Chain) |
| 100 | Gnosis Chain |
| 137 | Polygon |
| 42220 | Celo |
| 43114 | Avalanche C-Chain |
| 8453 | Base |
| 42161 | Arbitrum One |
| 1111 | Wemix |
Chains **42220** (Celo) and **1111** (Wemix) are in the token-mapping file for c*→cW* mapping but are not in the current `deploy-tokens-and-weth-all-chains-skip-canonical.sh` chain list for cW* deployment. **651940** (ALL Mainnet) is env-validation only; no cW* deploy from this repo.
Chains **1, 10, 25, 56, 100, 137, 42161, 42220, 43114, 8453, and 1111** are in the current `deploy-tokens-and-weth-all-chains-skip-canonical.sh` cW deployment list. Of those, `Wemix` is still pending live rollout because the destination bridge/funding state is not ready. **651940** (ALL Mainnet) is env-validation only; no cW* deploy from this repo.
**Solana** (SVM mainnet-beta) is **not** an EIP-155 chain: it appears under `config/token-mapping-multichain.json``nonEvmNetworks` and `cross-chain-pmm-lps/config/chains.json``nonEvm` for registry/adapter tracking. The `DeployCWTokens` EVM flow and `pool-matrix` hub-stable rows do not apply until an SPL or bridge-wrapped asset program is specified.
**ALL Mainnet XAU exception:** gold uses a destination-specific naming rule on **651940**. For the **138 -> 651940** corridor, the source leg wraps as **`cWXAUC` / `cWXAUT`**, but the bridge-minted ALL Mainnet representation is **`cWAXAUC` / `cWAXAUT`**, which unwraps to **`cAXAUC` / `cAXAUT`**. Treat these as ALL Mainnet-specific symbols, not generic public-chain `cW*` deploys from `DeployCWTokens.s.sol`.
---
@@ -50,14 +58,15 @@ Chains **42220** (Celo) and **1111** (Wemix) are in the token-mapping file for c
| Chain(s) | Bridge / receiver | Bridge code mints cW*? | Notes |
|----------|-------------------|------------------------|-------|
| **43114 (Avalanche)** | Dedicated AVAX cW bridge `0x635002c5fb227160cd2eac926d1baa61847f3c75` | **Yes** | Proven live for the dedicated non-prefunded `cUSDT -> cWUSDT` corridor. Treat this as a chain-specific exception, not blanket proof for every cW destination chain. |
| Generic public-chain WETH receiver set (1, 25, 56, 137, 100, 43114, 8453, 42161, 10) | CCIPRelayBridge (Mainnet), CCIPWETH9_BRIDGE_* (others) | **No** | Current suite is WETH-only; `ccipReceive` only transfers the received token. Granting MINTER/BURNER to these addresses allows DeployCWTokens to run but does not enable cross-chain mint until the receiver is extended or a dedicated cW* receiver (e.g. TwoWayTokenBridgeL2) is deployed. See [CW_BRIDGE_APPROACH.md](../07-ccip/CW_BRIDGE_APPROACH.md) and [CW_BRIDGE_TASK_LIST.md](CW_BRIDGE_TASK_LIST.md). |
| **1 (Ethereum Mainnet)** | Relay router `0x416564Ab73Ad5710855E98dC7bC7Bff7387285BA` + `CWMultiTokenBridgeL2` `0x2bF74583206A49Be07E0E8A94197C12987AbD7B5` | **Yes** | Live and canary-proven for both `cUSDC -> cWUSDC` and `cUSDT -> cWUSDT`. The legacy Mainnet `CCIPRelayBridge` remains WETH-only and should only be used for WETH release flows. |
| Generic public-chain WETH receiver set (25, 56, 137, 100, 43114, 8453, 42161, 10) | CCIPWETH9_BRIDGE_* / CCIPRelayBridge-style WETH receivers | **No** | Current legacy suite is WETH-only; `ccipReceive` only transfers the received token. Granting MINTER/BURNER to these addresses allows DeployCWTokens to run but does not enable cross-chain mint until the receiver is extended or a dedicated cW* receiver (e.g. TwoWayTokenBridgeL2) is deployed. See [CW_BRIDGE_APPROACH.md](../07-ccip/CW_BRIDGE_APPROACH.md) and [CW_BRIDGE_TASK_LIST.md](../00-meta/CW_BRIDGE_TASK_LIST.md). |
| After Phase B or C | Extended bridge or TwoWayTokenBridgeL2 / CCIPReceiverCW | **Yes** (when implemented) | Per [CW_BRIDGE_APPROACH.md](../07-ccip/CW_BRIDGE_APPROACH.md), Option 2 (dedicated receiver) is chosen; deploy TwoWayTokenBridgeL2 or equivalent per chain and point `CW_BRIDGE_<CHAIN>` to it for cW* mint/burn. |
---
## 3. How to deploy cWUSDT / cWUSDC
1. **Bridge addresses:** `CW_BRIDGE_ADDRESS` is left as default (zero). Per-chain `CW_BRIDGE_<CHAIN>` are set in `smom-dbis-138/.env` from the deployed bridge suite (Mainnet: CCIPRelayBridge; other chains: CCIPWETH9_BRIDGE_*, or a dedicated cW receiver such as the proven AVAX cW bridge). That contract receives MINTER_ROLE and BURNER_ROLE when deploying cW*; only a dedicated cW-capable receiver enables mint-on-receive.
1. **Bridge addresses:** `CW_BRIDGE_ADDRESS` is left as default (zero). Per-chain `CW_BRIDGE_<CHAIN>` values are set in `smom-dbis-138/.env` from the deployed bridge suite. Mainnet now uses the dedicated cW-capable `CWMultiTokenBridgeL2`; the legacy Mainnet `CCIPRelayBridge` remains WETH-only. Other chains still use `CCIPWETH9_BRIDGE_*` or a dedicated cW receiver such as the proven AVAX cW bridge. Only a dedicated cW-capable receiver enables mint-on-receive.
2. Run with `--deploy-cw`:
```bash
cd smom-dbis-138 && ./scripts/deployment/deploy-tokens-and-weth-all-chains-skip-canonical.sh --deploy-cw

View File

@@ -1,6 +1,6 @@
# Defi Oracle Meta Mainnet (Chain ID 138) — Project Description
**Last Updated:** 2026-02-12
**Last Updated:** 2026-04-02
**Purpose:** Reusable project descriptions for listings, Ledger, Chainlist, CoinGecko, outreach, and documentation.
---
@@ -34,7 +34,7 @@ DeFi Oracle Meta Mainnet (Chain ID 138) is an enterprise-grade, EVM-compatible b
**DeFi Oracle Meta Mainnet (Chain ID 138)** is a production-ready, EVM-compatible blockchain built on **Hyperledger Besu** with **QBFT consensus**. It provides immediate finality with approximately **2-second block time** and is designed for institutional DeFi with native oracle integration, cross-chain bridges, and compliant assets.
**Network:** Chain ID 138 (0x8a), native currency ETH (18 decimals), standard EVM derivation (SLIP-44: 60). EIP-155 and EIP-1559 supported.
**Network:** Chain ID 138 (0x8a), `networkId` 138 in [ethereum-lists/chains](https://github.com/ethereum-lists/chains/blob/master/_data/chains/eip155-138.json), native currency ETH (18 decimals), standard EVM derivation (SLIP-44: 60). EIP-155, EIP-1559, EIP-2718, and EIP-2930 supported.
**Infrastructure:** Tiered architecture (validators, sentries, RPC nodes), public RPC endpoints (HTTPS and WebSocket), and **Blockscout** block explorer at https://explorer.d-bis.org. Information and docs: https://d-bis.org.
@@ -54,13 +54,13 @@ Use for forms, tables, or “About” sections:
|------|--------|
| **Name** | Defi Oracle Meta Mainnet |
| **Chain ID** | 138 (0x8a) |
| **Network ID** | 1 |
| **Network ID** | 138 (Chainlist / wallet metadata; see `eip155-138.json` on ethereum-lists/chains) |
| **Consensus** | QBFT (Hyperledger Besu) |
| **Block time** | ~2 seconds |
| **Native currency** | ETH (18 decimals) |
| **Explorer** | https://explorer.d-bis.org (Blockscout) |
| **Info / docs** | https://d-bis.org |
| **EVM** | Yes (EIP-155, EIP-1559) |
| **EVM** | Yes (EIP-155, EIP-1559, EIP-2718, EIP-2930) |
| **Derivation** | 44'/60' (standard EVM) |
**Features:** Public RPC (HTTPS/WSS), CCIP bridges, compliant stablecoins, oracle feeds, Blockscout, Chainlist, MetaMask, thirdweb.
@@ -73,7 +73,7 @@ Use for forms, tables, or “About” sections:
https://rpc-http-pub.d-bis.org, https://rpc.d-bis.org, https://rpc2.d-bis.org, https://rpc.defi-oracle.io, https://rpc.public-0138.defi-oracle.io
**RPC (WebSocket):**
wss://rpc-ws-pub.d-bis.org, wss://rpc.d-bis.org, wss://ws.rpc.d-bis.org, wss://ws.rpc2.d-bis.org, wss://wss.defi-oracle.io, wss://rpc.public-0138.defi-oracle.io
wss://rpc-ws-pub.d-bis.org, wss://rpc.d-bis.org, wss://ws.rpc.d-bis.org, wss://ws.rpc2.d-bis.org, wss://rpc.public-0138.defi-oracle.io, wss://wss.defi-oracle.io
**Block explorer:**
https://explorer.d-bis.org

View File

@@ -1,6 +1,6 @@
# Deployed Coins, Tokens, and Networks — Master Inventory
**Last Updated:** 2026-02-28
**Last Updated:** 2026-04-03
**Status:** Active Documentation
---
@@ -13,7 +13,7 @@ Tokens are grouped into four **canonical categories**. Full definitions and symb
|---|----------|--------|----------|
| 1 | **Canonical 138 Compliant** | Chain 138 | Native ETH, WETH, WETH10, LINK, cUSDT, cUSDC, cEURT, cEURC, cGBPT, cGBPC, cAUDT, cAUDC, cJPYT, cJPYC, cCHFT, cCHFC, cCADT, cCADC, cAUSDT |
| 2 | **ALL Mainnet (Alltra)** | Chain 651940 | Native, AUSDT, USDT, USDC, WETH, WALL, ACADT |
| 3 | **Compliant Wrapped (cW\*)** | Public blockchains (bridged from 138) | cWUSDT, cWUSDC, cWEURT, cWEURC, cWGBPT, cWGBPC, cWAUDT, cWAUDC, cWJPYT, cWJPYC, cWCHFT, cWCHFC, cWCADT, cWCADC, cWUSDW, cWEURW, cWGBPW, cWAUDW, cWJPYW, cWCHFW, cWCADW |
| 3 | **Compliant Wrapped (cW\*)** | Public blockchains (bridged from 138) | cWUSDT, cWUSDC, cWEURC, cWEURT, cWGBPC, cWGBPT, cWAUDC, cWJPYC, cWCHFC, cWCADC, cWXAUC, cWXAUT, plus corridor-specific extras such as cWAUSDT and cWUSDW where enabled |
| 4 | **D-WIN W Tokens** | Cronos (25) / 138 / 651940 | USDW, EURW, GBPW, AUDW, JPYW, CHFW, CADW |
---
@@ -41,6 +41,8 @@ Tokens are grouped into four **canonical categories**. Full definitions and symb
- `token-lists/chainlists/chain-138.json` — Chainlist PR
- `cross-chain-pmm-lps/config/chains.json` — PMM/LP hub chains
**Current cW mesh status (2026-04-03):** the tracked public EVM `cW*` mesh is now **12/12 on all 9 active public EVM chains**: Mainnet, Cronos, BSC, Gnosis, Polygon, Optimism, Arbitrum, Base, and Avalanche. Public-chain liquidity pools for those `cW*` assets remain undeployed in `deployment-status.json`.
---
## Tokens by Chain
@@ -68,6 +70,8 @@ Tokens are grouped into four **canonical categories**. Full definitions and symb
| DAI | Dai Stablecoin | `0x6B175474E89094C44Da98b954EedeAC495271d0F` | 18 |
| ETH-USD | ETH/USD Price Feed | `0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419` | 8 |
**GRU v2 public transport suite on Mainnet:** `cWUSDT`, `cWUSDC`, `cWEURC`, `cWEURT`, `cWGBPC`, `cWGBPT`, `cWAUDC`, `cWJPYC`, `cWCHFC`, `cWCADC`, `cWXAUC`, and `cWXAUT` are now all live. Use [CW_TOKENS_AND_NETWORKS.md](CW_TOKENS_AND_NETWORKS.md) and `token-lists/lists/ethereum-mainnet.tokenlist.json` for the current curated address set.
### Chain 25 (Cronos) — ISO-4217 W Tokens
| Symbol | Name | Address | Decimals |
@@ -101,6 +105,7 @@ Tokens are grouped into four **canonical categories**. Full definitions and symb
| Purpose | Path |
|---------|------|
| **Chain 138 token list** | `token-lists/lists/dbis-138.tokenlist.json` |
| **Ethereum Mainnet token list** | `token-lists/lists/ethereum-mainnet.tokenlist.json` |
| **Cronos token list** | `token-lists/lists/cronos.tokenlist.json` |
| **Multi-chain token list** | `explorer-monorepo/backend/api/rest/config/metamask/DUAL_CHAIN_TOKEN_LIST.tokenlist.json` |
| **Network config** | `explorer-monorepo/backend/api/rest/config/metamask/DUAL_CHAIN_NETWORKS.json` |
@@ -122,6 +127,7 @@ Tokens are grouped into four **canonical categories**. Full definitions and symb
| `https://explorer.d-bis.org/api/v2/stats` | Blockscout stats | Blockscout on port 4000 |
**Deploy config:** `./explorer-monorepo/scripts/deploy-explorer-config-to-vmid5000.sh`
The script now works from a workstation that can SSH to the Proxmox host for VMID `5000`; if local `pct` is unavailable it falls back to remote `pct` via `PROXMOX_HOST` automatically.
---

View File

@@ -1,6 +1,6 @@
# Deployed Tokens, Bridges, DODO/Uniswap LPs — Status & Complete Routing Map
**Last Updated:** 2026-03-31
**Last Updated:** 2026-04-04
**Purpose:** Single reference for (1) deployed tokens/coins and bridges per destination network, (2) DODO and Uniswap LPs with addresses, and (3) a complete mapping of all possible routes for routing **to** and **from** each chain.
---
@@ -9,11 +9,12 @@
| Area | Status | Notes |
|------|--------|-------|
| **Chain 138 tokens** | ✅ Live | cUSDT, cUSDC, WETH, WETH10, LINK; 10 more compliant tokens deployable (cEURC, cEURT, cGBP*, cAUD*, cJPY*, cCHF*, cCAD*, cAUSDT). |
| **Chain 138 tokens** | ✅ Live | cUSDT, cUSDC, cAUSDT, WETH, WETH10, LINK are live; the remaining compliant fiat expansion set is separately tracked for deployment or env completion. |
| **Chain 138 DODO PMM** | ✅ Live | DODOPMMIntegration + 6 public pools are live on Chain 138: stable pairs plus the three public XAU pools. Official mirror `USDT/USDC` pools were corrected and funded locally. DODOPMMProvider remains deployed; routing cUSDT↔cUSDC and the live local direct/ XAU paths are active. |
| **Chain 138 → destination bridges** | ✅ CCIP + Alltra | CCIP WETH9/WETH10 to Ethereum, BSC, Polygon, Arbitrum, Optimism, Avalanche, Cronos, **Celo + Gnosis (2026-03-04)**. Gnosis: 0x4ab39b5BaB7b463435209A9039bd40Cf241F5a82 (WETH9), 0xC15ACdBAC59B3C7Cb4Ea4B3D58334A4b143B4b44 (WETH10). AlltraAdapter 138↔651940. Wemix pending (need 0.4 WEMIX). |
| **Destination tokens (cW\*)** | ⚠️ Partial / corridor-specific | cWUSDT, cWUSDC deployed on 9 chains (1, 25, 56, 137, 100, 43114, 8453, 42161, 10); cWEURC and others partial. `deployment-status.json` records token addresses and bridge availability, but the repo only proves a live non-prefunded cW corridor for Avalanche `cUSDT -> cWUSDT`; broader cW routing remains partial. |
| **Destination DODO/Uniswap LPs** | ⚠️ Partial graph / pools not live | cross-chain-pmm-lps **pool-matrix** defines cW*/USDC, cW*/USDT per chain; **deployment-status.json** now records deployed cW* token addresses and bridge availability, but PMM pool addresses are still empty. Public-chain edge pools and bot not live. |
| **Chain 138 → destination bridges** | ✅ Live EVM CCIP + Alltra | CCIP WETH9/WETH10 to Ethereum, BSC, Polygon, Arbitrum, Optimism, Base, Avalanche, Cronos, Gnosis, and Celo. AlltraAdapter 138↔651940. Wemix remains the only pending EVM CCIP destination. |
| **Truth / Tron / Solana / other non-EVM programs** | ⚠️ Separate from live CCIP route matrix | Truth on 138 is a registry adapter that points at the Ethereum ↔ Truth bridge story; Tron has a deployed non-EVM adapter on 138; Solana is now tracked as a desired non-EVM rollout target; Etherlink/Tezos, XDC Zero, and OP L2 remain scaffolded or separate programs rather than live rows in the CCIP destination table. |
| **Destination tokens (cW\*)** | ⚠️ Token mesh mostly complete / transport still partial | The public EVM `cW*` token mesh is now complete on the 10 currently loaded public EVM chains (1, 10, 25, 56, 100, 137, 42161, 42220, 43114, 8453). `deployment-status.json` records token addresses and bridge availability there, while `Wemix (1111)` remains the only desired public EVM target without a loaded suite. The repo now proves live non-prefunded cW corridors for Avalanche `cUSDT -> cWUSDT` and for Mainnet `cUSDC -> cWUSDC` plus `cUSDT -> cWUSDT`; broader cW transport routing remains partial. |
| **Destination DODO/Uniswap LPs** | ⚠️ Partial graph / first live DODO wave only | cross-chain-pmm-lps **pool-matrix** defines cW*/USDC, cW*/USDT per chain; **deployment-status.json** now records the first four live Mainnet DODO PMM USD bootstrap pools plus the first six non-USD Wave 1 rows `cWEURC/USDC`, `cWGBPC/USDC`, `cWAUDC/USDC`, `cWCADC/USDC`, `cWJPYC/USDC`, and `cWCHFC/USDC`. No public-chain `Uniswap`, `Balancer`, `Curve`, or `1inch` cW venues are asserted live yet, and the broader mesh is still incomplete. |
| **Uniswap on 138** | ❌ | No Uniswap V2/V3 factory on Chain 138. |
| **Uniswap on ALL Mainnet (651940)** | ⚠️ Env placeholders | HYDX DEX present; Uniswap V2/V3 and DODO env vars in dex-factories; no pool addresses in repo. |
@@ -30,7 +31,8 @@
| LINK | `0xb7721dD53A8c629d9f1Ba31a5819AFe250002b03` | 18 | ✅ |
| cUSDT | `0x93E66202A11B1772E55407B32B44e5Cd8eda7f22` | 6 | ✅ |
| cUSDC | `0xf22258f57794CC8E06237084b353Ab30fFfa640b` | 6 | ✅ |
| cEURC, cEURT, cGBPT, cGBPC, cAUDT, cAUDC, cJPYT, cJPYC, cCHFT, cCHFC, cCADT, cCADC, cAUSDT | Script / .env | 6 | ⏳ Deployable via DeployCompliantFiatTokens |
| cAUSDT | `0x5fdDF65733e3d590463F68f93Cf16E8c04081271` | 6 | ✅ Live |
| cEURC, cEURT, cGBPT, cGBPC, cAUDT, cAUDC, cJPYT, cJPYC, cCHFT, cCHFC, cCADT, cCADC | Script / .env | 6 | ⏳ Deployable via DeployCompliantFiatTokens |
**Source:** [DEPLOYED_COINS_TOKENS_AND_NETWORKS.md](DEPLOYED_COINS_TOKENS_AND_NETWORKS.md), [CHAIN138_TOKEN_ADDRESSES.md](CHAIN138_TOKEN_ADDRESSES.md).
@@ -38,17 +40,17 @@
| Chain ID | Name | Tokens / bridges |
|----------|------|-------------------|
| **1** | Ethereum Mainnet | WETH, USDT, USDC, DAI; CCIP WETH9/WETH10 bridges; relay router. cW* deployable. |
| **25** | Cronos | USDW, EURW, GBPW, AUDW, JPYW, CHFW, CADW (D-WIN W); cW* deployable. |
| **56** | BSC | cWUSDT, cWUSDC (and other cW* per CW_TOKENS_AND_NETWORKS). |
| **100** | Gnosis | cW* deployable. |
| **137** | Polygon | cW* deployable. |
| **10** | Optimism | cW* deployable. |
| **42161** | Arbitrum One | cW* deployable. |
| **8453** | Base | cW* deployable. |
| **1** | Ethereum Mainnet | WETH, USDT, USDC, DAI; CCIP WETH9/WETH10 bridges; relay router; dedicated Mainnet cW bridge; full cW* suite deployed. |
| **25** | Cronos | USDW, EURW, GBPW, AUDW, JPYW, CHFW, CADW (D-WIN W); full cW* suite deployed. |
| **56** | BSC | Full cW* suite deployed (including cWUSDT, cWUSDC, and the non-USD Wave 1 symbols). |
| **100** | Gnosis | Full cW* suite deployed. |
| **137** | Polygon | Full cW* suite deployed. |
| **10** | Optimism | Full cW* suite deployed. |
| **42161** | Arbitrum One | Full cW* suite deployed. |
| **8453** | Base | Full cW* suite deployed. |
| **43114** | Avalanche C-Chain | cW* deployed; non-prefunded `cUSDT -> cWUSDT` corridor proven live. |
| **42220** | Celo | In pool-matrix; cW* not in deploy script chain list. |
| **1111** | Wemix | In pool-matrix; cW* not in deploy script chain list. |
| **42220** | Celo | Full cW* suite deployed. |
| **1111** | Wemix | Desired public EVM target; cW* suite not yet loaded in `deployment-status.json`. |
| **651940** | ALL Mainnet (Alltra) | AUSDT, USDC, WETH, WALL; AlltraAdapter 138↔651940. |
**Source:** [DEPLOYED_COINS_TOKENS_AND_NETWORKS.md](DEPLOYED_COINS_TOKENS_AND_NETWORKS.md), [CW_TOKENS_AND_NETWORKS.md](CW_TOKENS_AND_NETWORKS.md), [cross-chain-pmm-lps/config/chains.json](../../cross-chain-pmm-lps/config/chains.json).
@@ -61,7 +63,7 @@
| Destination | Bridge type | Contract (138) | Status | Notes |
|-------------|-------------|----------------|--------|--------|
| Ethereum (1) | CCIP WETH9 / WETH10 | CCIPWETH9Bridge `0xcacfd227A040002e49e2e01626363071324f820a`, CCIPWETH10Bridge `0xe0E93247376aa097dB308B92e6Ba36bA015535D0` | ✅ | Relay path to mainnet (CCIPRelayBridge). |
| Ethereum (1) | CCIP WETH9 / WETH10 | CCIPWETH9Bridge `0xcacfd227A040002e49e2e01626363071324f820a`, CCIPWETH10Bridge `0xe0E93247376aa097dB308B92e6Ba36bA015535D0` | ✅ | WETH relay path remains on the legacy Mainnet relay bridge; dedicated Mainnet `CWMultiTokenBridgeL2` now handles `cUSDC -> cWUSDC` and `cUSDT -> cWUSDT`. |
| BSC (56) | CCIP | Same bridges + addDestination(selector, receiver) | ✅ | Per CCIP_BRIDGE_DESTINATIONS_AND_LINK_FUNDING. |
| Polygon (137) | CCIP | Same | ✅ | |
| Arbitrum (42161) | CCIP | Same | ✅ | |
@@ -69,6 +71,8 @@
| Avalanche (43114) | CCIP | Same | ✅ | WETH relay path live; dedicated non-prefunded `avax-cw` corridor for `cUSDT -> cWUSDT` also proven. |
| Cronos (25) | CCIP | Same | ✅ | |
| ALL Mainnet (651940) | AlltraAdapter | AlltraAdapter `0x66FEBA2fC9a0B47F26DD4284DAd24F970436B8Dc` | ✅ | 138 ↔ 651940. |
| Base (8453) | CCIP | Standard CCIPWETH9 / CCIPWETH10 destination pair | ✅ | Included in the live EVM CCIP matrix. |
| Gnosis (100) | CCIP | Gnosis WETH9 `0x4ab39b5BaB7b463435209A9039bd40Cf241F5a82`, Gnosis WETH10 `0xC15ACdBAC59B3C7Cb4Ea4B3D58334A4b143B4b44` | ✅ | Live; do not classify as merely config-ready. |
| Celo (42220) | CCIP | CCIPWETH9Bridge `0xD3AD6831aacB5386B8A25BB8D8176a6C8a026f04`, CCIPWETH10Bridge `0xa4B9DD039565AeD9641D45b57061f99d9cA6Df08` (Celo); 138↔Celo destinations configured 2026-03-04 | ✅ | complete-config-ready-chains.sh Celo→138 OK. |
| Wemix (1111) | CCIP | Bridge addresses in .env when deployed; deployer needs 0.4 WEMIX | ⏳ | Run deploy-bridges-config-ready-chains.sh wemix after funding. |
@@ -81,6 +85,17 @@
**Source:** [CONTRACT_ADDRESSES_REFERENCE.md](CONTRACT_ADDRESSES_REFERENCE.md), [smom-dbis-138/docs/deployment/CCIP_BRIDGE_DESTINATIONS_AND_LINK_FUNDING.md](../../smom-dbis-138/docs/deployment/CCIP_BRIDGE_DESTINATIONS_AND_LINK_FUNDING.md).
### 3.3 Other bridge / adapter programs not part of the live CCIP destination table
| Program | Classification | Status | Notes |
|---------|----------------|--------|-------|
| Truth Network | Registry adapter + Ethereum ↔ Truth bridge program | ⚠️ Partial / pointer only | `TruthNetworkAdapter` is deployed on 138 and registered in `ChainRegistry`, but the repo does not define a direct 138 ↔ Truth CCIP lane. |
| Tron | Non-EVM adapter + relay path | ⚠️ Partial / relay-dependent | `TRON_ADAPTER_CHAIN138` is deployed in the Chain 138 address inventory. Treat as adapter + off-chain relay, not a CCIP destination row. |
| Solana | Non-EVM adapter + relay path | ⚠️ Partial / relay-dependent | `SolanaAdapter` is present in `smom-dbis-138`, and Solana is now tracked in the rollout config as a desired deployment network. It is still outside the EVM cW pool mesh and needs an SPL or bridge-wrapped asset program before live GRU transport. |
| Etherlink / Tezos | Scaffold / feature-gated | ⏳ Planned / gated | `token-mapping-multichain.json` includes a `138 ↔ 42793` placeholder row; production depends on the remaining items in the Tezos / Etherlink plan. |
| XDC Network | Parallel bridge program | ⚠️ Separate program | Use the XDC Zero runbook, not the CCIP lane matrix. |
| OP Stack L2 | Future design | ⏳ Design only | Optional future L2 ↔ 138 design notes exist; not a live bridge lane. |
---
## 4. DODO and Uniswap LPs — by chain
@@ -89,15 +104,17 @@
| Pool pair | Pool address | Base token | Quote token | Status | Routing |
|-----------|--------------|------------|-------------|--------|---------|
| cUSDT / cUSDC | `0xff8d3b8fDF7B112759F076B69f4271D4209C0849` | cUSDT | cUSDC | ✅ Funded (live) | `10,000,000 / 10,000,000` reserves on the corrected live PMM integration. |
| cUSDT / USDT (official mirror) | `0x6fc60DEDc92a2047062294488539992710b99D71` | cUSDT | USDT | ✅ Funded (live) | Uses Chain 138 `USDT` mirror `0x004b63A7B5b0E06f6bB6adb4a5F9f590BF3182D1`; `10,000,000 / 10,000,000` reserves. |
| cUSDC / USDC (official mirror) | `0x0309178ae30302D83c76d6Dd402a684eF3160eec` | cUSDC | USDC | ✅ Funded (live) | Uses Chain 138 `USDC` mirror `0x71D6687F38b93CCad569Fa6352c876eea967201b`; `10,000,000 / 10,000,000` reserves. |
| cUSDT / cUSDC | `0x9e89bAe009adf128782E19e8341996c596ac40dC` | cUSDT | cUSDC | ✅ Funded (live) | Recreated 2026-04-02 on the canonical official-DVM-backed PMM integration with `i=1e18`, `k=0`; now quotes at true 1:1 parity. |
| cUSDT / USDT (official mirror) | `0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66` | cUSDT | USDT | ✅ Funded (live) | Uses Chain 138 `USDT` mirror `0x004b63A7B5b0E06f6bB6adb4a5F9f590BF3182D1`; recreated 2026-04-02 with `i=1e18`, `k=0`. |
| cUSDC / USDC (official mirror) | `0xc39B7D0F40838cbFb54649d327f49a6DAC964062` | cUSDC | USDC | ✅ Funded (live) | Uses Chain 138 `USDC` mirror `0x71D6687F38b93CCad569Fa6352c876eea967201b`; recreated 2026-04-02 with `i=1e18`, `k=0`. |
| cUSDT / cXAUC | `0x1AA55E2001E5651349AfF5A63FD7A7Ae44f0F1b0` | cUSDT | cXAUC | ✅ Funded (live) | Public XAU pool; reserves `2,666,965 / 519.477`. |
| cUSDC / cXAUC | `0xEA9Ac6357CaCB42a83b9082B870610363B177cBa` | cUSDC | cXAUC | ✅ Funded (live) | Public XAU pool; reserves `1,000,000 / 194.782554`. |
| cEURT / cXAUC | `0xbA99bc1eAAC164569d5AcA96C806934DDaF970Cf` | cEURT | cXAUC | ✅ Funded (live) | Public XAU pool; reserves `1,000,000 / 225.577676`. |
- **DODOPMMIntegration:** `0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d`.
- **DODOPMMProvider:** `0x5CAe6Ce155b7f08D3a956F5Dc82fC9945f29B381` (104/104 desired-state routes aligned).
- **DODO DVMFactory:** `0xc93870594C7f83A0aE076c2e30b494Efc526b68E`.
- **DODO Vending Machine / adapter:** `0xb6D9EF3575bc48De3f011C310DC24d87bEC6087C`.
- **DODOPMMIntegration:** `0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895`.
- **DODOPMMProvider:** `0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e` (current canonical stable-pool provider set).
- **PrivatePoolRegistry:** `0xb27057B27db09e8Df353AF722c299f200519882A` with live XAU pools:
- `cUSDT / cXAUC`: `0x94316511621430423a2cff0C036902BAB4aA70c2`
- `cUSDC / cXAUC`: `0x7867D58567948e5b9908F1057055Ee4440de0851`
@@ -120,7 +137,9 @@
**Designed (pool-matrix.json):** Per chain, first-tier pools: cWUSDT/USDC or cWUSDT/USDT, cWUSDC/USDC or cWUSDC/USDT, plus cWAUSDT, cWEURC, cWEURT, cWUSDW vs hub stable. Optional: cW*/USDT, cW*/DAI, cW*/BUSD, cW*/mUSD.
**Deployment status:** [cross-chain-pmm-lps/config/deployment-status.json](../../cross-chain-pmm-lps/config/deployment-status.json) records cW* token addresses and bridge availability per chain, but PMM pool arrays are still empty. Public-chain edge pools and the stabilization bot are **not deployed**.
**Deployment status:** [cross-chain-pmm-lps/config/deployment-status.json](../../cross-chain-pmm-lps/config/deployment-status.json) now records the first live public-chain cW* pool wave on Mainnet DODO PMM: `cWUSDT/USDC`, `cWUSDC/USDC`, `cWUSDT/USDT`, `cWUSDC/USDT`, **`cWUSDT/cWUSDC`**, `cWEURC/USDC`, `cWGBPC/USDC`, `cWAUDC/USDC`, `cWCADC/USDC`, `cWJPYC/USDC`, and `cWCHFC/USDC`. Public-chain edge liquidity is still only partial, the stabilization bot is not documented as live, and the repo still does not assert any public cW* `Balancer`, `Curve`, `Uniswap`, or `1inch` venues.
**Canonical public status surface:** `bash scripts/verify/check-gru-v2-public-protocols.sh` or the explorer-published JSON at `https://explorer.d-bis.org/config/GRU_V2_PUBLIC_DEPLOYMENT_STATUS.json`.
**Source:** [cross-chain-pmm-lps/config/pool-matrix.json](../../cross-chain-pmm-lps/config/pool-matrix.json), [cross-chain-pmm-lps/config/token-map.json](../../cross-chain-pmm-lps/config/token-map.json).
@@ -134,8 +153,8 @@
|------------|----------|--------|--------|
| cUSDT | cUSDC | DODOPMMIntegration / DODOPMMProvider → pool cUSDT/cUSDC | ✅ |
| cUSDC | cUSDT | Same pool | ✅ |
| cUSDT | USDT (official mirror) | DODOPMMIntegration / pool `0x6fc60DEDc92a2047062294488539992710b99D71` | ✅ |
| cUSDC | USDC (official mirror) | DODOPMMIntegration / pool `0x0309178ae30302D83c76d6Dd402a684eF3160eec` | ✅ |
| cUSDT | USDT (official mirror) | DODOPMMIntegration / pool `0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66` | ✅ |
| cUSDC | USDC (official mirror) | DODOPMMIntegration / pool `0xc39B7D0F40838cbFb54649d327f49a6DAC964062` | ✅ |
| cUSDT | cXAUC | DODOPMMIntegration / pool `0x1AA55E2001E5651349AfF5A63FD7A7Ae44f0F1b0` | ✅ |
| cUSDC | cXAUC | DODOPMMIntegration / pool `0xEA9Ac6357CaCB42a83b9082B870610363B177cBa` | ✅ |
| cEURT | cXAUC | DODOPMMIntegration / pool `0xbA99bc1eAAC164569d5AcA96C806934DDaF970Cf` | ✅ |
@@ -144,11 +163,12 @@
| From (138) | To (chain) | Bridge | Destination asset | Destination LP (if any) |
|------------|------------|--------|--------------------|---------------------------|
| WETH9 | 1, 56, 137, 10, 42161, 43114, 25 | CCIP WETH9 | WETH | Native DEX / cW* pool when deployed |
| WETH10 | Same | CCIP WETH10 | WETH | Same |
| WETH9 | 1, 10, 25, 56, 100, 137, 42161, 43114, 8453, 42220 | CCIP WETH9 | WETH | Native DEX / cW* pool when deployed |
| WETH10 | Same live EVM destination set | CCIP WETH10 | WETH | Same |
| cUSDT | 43114 | Dedicated `avax-cw` relay + AVAX cW bridge `0x635002c5fb227160cd2eac926d1baa61847f3c75` | cWUSDT | Direct recipient mint; same-chain cW*/USDT pools are not deployed |
| cUSDT / cUSDC | 1, 25, 56, 100, 137, 10, 42161, 8453, 42220, 1111 | — | — | No blanket live direct route for compliant stables; use WETH hop or a specifically proven cW corridor |
| Any (138) | 651940 | AlltraAdapter | AUSDT, WETH, WALL, etc. | ALL Mainnet DEX (env placeholders) |
| Any (138) | Truth / Tron / Solana / Etherlink / Tezos / XDC / OP L2 | See program-specific docs | — | These are separate programs or scaffolds; they are not part of the live CCIP EVM destination matrix. |
### 5.3 Cross-chain routing (destination → 138)
@@ -162,8 +182,8 @@
| From | To | Route | Status |
|------|-----|--------|--------|
| 138 cUSDT | 43114 cWUSDT | Dedicated non-prefunded `avax-cw` bridge; destination mints to recipient | ✅ Live corridor |
| cW* (e.g. cWUSDT) | USDC / USDT (same chain) | Single-sided cW*/hub pool (pool-matrix) | ❌ Not deployed |
| USDC / USDT | cW* | Same pool (reverse) | ❌ Not deployed |
| cW* (e.g. cWUSDT) | USDC / USDT (same chain) | Single-sided cW*/hub pool (pool-matrix) | ⚠️ Partial: first Mainnet DODO wave is live; broader mesh remains undeployed |
| USDC / USDT | cW* | Same pool (reverse) | ⚠️ Partial: first Mainnet DODO wave is live; broader mesh remains undeployed |
| cW* chain A | cW* chain B | Bridge cW* or bridge underlying + mint cW* on dest; depends on bridge and cW* deployment | ⏳ Depends on explicit bridge wiring |
### 5.5 Swapbridgeswap (orchestration)
@@ -182,12 +202,14 @@
| Chain ID | Name | Tokens deployed | Bridge from 138 | Bridge to 138 | DODO/Uniswap LPs |
|----------|------|------------------|------------------|---------------|-------------------|
| 138 | DeFi Oracle | cUSDT, cUSDC, cEURT, cXAUC, cXAUT, WETH, WETH10, LINK, official mirrors | — | — | DODO: 6 public pools live + 3 private XAU pools live |
| 1 | Ethereum | WETH, USDT, USDC, DAI | ✅ CCIP WETH9/10 | ✅ CCIP relay | Native DEX; cW* deployed, routing partial |
| 1 | Ethereum | WETH, USDT, USDC, DAI, full cW* suite | ✅ CCIP WETH9/10 + ✅ Mainnet cW mint corridors | ✅ CCIP relay + ✅ Mainnet cW return path | DODO PMM: 10 public cW* pools live in-repo |
| 651940 | ALL Mainnet | AUSDT, USDC, WETH, WALL | ✅ AlltraAdapter | ✅ AlltraAdapter | Env placeholders; HYDX |
| 25 | Cronos | USDW, EURW, …; cW* deployed | ✅ CCIP | ✅ CCIP | cW* edge pools not deployed |
| 56, 100, 137, 10, 42161, 8453 | BSC, Gnosis, Polygon, Optimism, Arbitrum, Base | cW* deployed / partial | ✅ CCIP | ✅ CCIP | cW* pool-matrix; not deployed |
| 43114 | Avalanche | cW* deployed; `cUSDT -> cWUSDT` corridor proven | ✅ CCIP WETH relay + ✅ `avax-cw` | ✅ CCIP | cW* edge pools not deployed |
| 42220, 1111 | Celo, Wemix | — | Config | Config | pool-matrix only |
| 42220 | Celo | full cW* suite deployed | ✅ CCIP | ✅ CCIP | cW* pool-matrix; public pools not deployed |
| 1111 | Wemix | — | ⏳ Pending | ⏳ Pending | pool-matrix only |
| non-EVM / separate programs | Truth, Tron, Solana, Etherlink, Tezos, XDC, OP L2 | program-specific | See canonical docs | See canonical docs | Do not read these as live CCIP destination rows |
### 6.2 Route matrix (to and from)
@@ -214,6 +236,10 @@
| [PMM_DEX_ROUTING_STATUS.md](PMM_DEX_ROUTING_STATUS.md) | DEX/PMM routing status |
| [CONTRACT_ADDRESSES_REFERENCE.md](CONTRACT_ADDRESSES_REFERENCE.md) | Contract and bridge addresses |
| [ADDRESS_MATRIX_AND_STATUS.md](ADDRESS_MATRIX_AND_STATUS.md) | Correlated address matrix |
| [CHAINS_AND_PROTOCOLS_BRIDGE_INTEGRATION.md](CHAINS_AND_PROTOCOLS_BRIDGE_INTEGRATION.md) | Canonical bridge-program classification, including Truth, Tron, Etherlink/Tezos, XDC, and OP |
| [GRU_V2_PUBLIC_PROTOCOL_DEPLOYMENT_STATUS.md](GRU_V2_PUBLIC_PROTOCOL_DEPLOYMENT_STATUS.md) | Canonical public-network GRU v2 rollout summary for bridges + public cW protocol venues |
| `bash scripts/verify/check-cw-public-pool-status.sh` | Verifies the public cW deployment graph in `deployment-status.json`, including the first recorded Mainnet DODO PMM pool wave and whether any additional public-chain `pmmPools` have been promoted |
| `bash scripts/verify/check-gru-v2-public-protocols.sh` | Verifies the public EVM cW mesh, Wave 1 transport state, and the current public-protocol truth for Uniswap v3, Balancer, Curve 3, DODO PMM, and 1inch |
| [DEFI_AGGREGATOR_DEX_ROUTING_FLOWS_DIAGRAM.md](../03-deployment/DEFI_AGGREGATOR_DEX_ROUTING_FLOWS_DIAGRAM.md) | Routing flow diagram |
| [CW_TOKENS_AND_NETWORKS.md](CW_TOKENS_AND_NETWORKS.md) | cW* tokens and networks |
| [cross-chain-pmm-lps/config/](../../cross-chain-pmm-lps/config/) | pool-matrix, deployment-status, token-map, chains |

View File

@@ -1,12 +1,17 @@
# Deployer Wallet — Complete Contract List by Network and Verification Status
> Historical note (2026-03-26): this inventory includes superseded PMM-address snapshots from earlier verification passes. The current canonical Chain 138 PMM stack is `DODOPMMIntegration=0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d` and `DODOPMMProvider=0x5CAe6Ce155b7f08D3a956F5Dc82fC9945f29B381`.
> Historical note (2026-04-02): this inventory may reference superseded PMM-address snapshots in older evidence. The current canonical Chain 138 PMM stack is `DODOPMMIntegration=0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895` and `DODOPMMProvider=0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e`.
**Last Updated:** 2026-02-27
**Last Updated:** 2026-04-11
**Deployer address:** `0x4A666F96fC8764181194447A7dFdb7d471b301C8`
**Purpose:** Single list of all contracts deployed by (or attributed to) the deployer wallet, the network each is on, and whether each is **verified** on the chains explorer (Blockscout for Chain 138).
**Verification:** For Chain 138, verification is done via Blockscout (https://explorer.d-bis.org). Run `./scripts/verify/run-contract-verification-with-proxy.sh` (from LAN with Blockscout reachable) or `./scripts/verify/check-contracts-on-chain-138.sh` to check/verify. **Verified** below means “source code verified on explorer”; **Not verified** means not yet submitted or not yet confirmed; **Unknown** means not yet checked in this repo.
**Verification:** For Chain 138, verification is done via Blockscout (https://explorer.d-bis.org). Run `./scripts/verify/run-contract-verification-with-proxy.sh` (from LAN with Blockscout reachable) or `./scripts/verify/check-contracts-on-chain-138.sh` to check/verify. Ethereum mainnet checks should use Etherscan API V2 / explorer status. **Verified** below means “source code verified on explorer”; **Not verified** means not yet submitted or not yet confirmed; **Unknown** means not yet checked in this repo.
For the cross-network closure backlog, use the generated all-network matrix as the canonical tracking surface:
- [CONTRACT_VERIFICATION_AND_PUBLICATION_MATRIX_ALL_NETWORKS](CONTRACT_VERIFICATION_AND_PUBLICATION_MATRIX_ALL_NETWORKS.md)
- [ALL_NETWORK_CONTRACT_VERIFICATION_AND_PUBLICATION_RUNBOOK](../03-deployment/ALL_NETWORK_CONTRACT_VERIFICATION_AND_PUBLICATION_RUNBOOK.md)
---
@@ -54,8 +59,8 @@ Explorer: https://explorer.d-bis.org
| Contract | Address | Deployed by | Verified |
|----------|---------|-------------|----------|
| Multicall | `0x99b3511a2d315a497c8112c1fdd8d508d4b1e506` | Genesis | Unknown |
| Oracle Aggregator | `0x99b3511a2d315a497c8112c1fdd8d508d4b1e506` | Deployer (or same slot as Multicall) | Unknown |
| Oracle Aggregator (legacy slot) | `0x99b3511a2d315a497c8112c1fdd8d508d4b1e506` | Genesis / preserved | Unknown |
| Oracle Aggregator | `0x99b3511a2d315a497c8112c1fdd8d508d4b1e506` | Live Chain 138 slot | Unknown |
| Oracle Proxy | `0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6` | Deployer | Unknown |
| Multicall (deploy 2026-02-13) | `0xF4AA429BE277d1a1a1A744C9e5B3aD821a9b96f7` | Deployer | Unknown |
| Oracle Aggregator (deploy 2026-02-13) | `0xaFd9E25ff301a79feaBcc56F46969F34808358CE` | Deployer | Unknown |
@@ -112,11 +117,11 @@ Explorer: https://explorer.d-bis.org
| Contract | Address | Deployed by | Verified |
|----------|---------|-------------|----------|
| DODOPMMIntegration | `0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d` | Deployer | Unknown |
| DODOPMMProvider | `0x5CAe6Ce155b7f08D3a956F5Dc82fC9945f29B381` | Deployer | Unknown |
| Pool cUSDT/cUSDC | `0xff8d3b8fDF7B112759F076B69f4271D4209C0849` | Deployer | Unknown |
| Pool cUSDT/USDT | `0x6fc60DEDc92a2047062294488539992710b99D71` | Deployer | Unknown |
| Pool cUSDC/USDC | `0x9f74Be42725f2Aa072a9E0CdCce0E7203C510263` | Deployer | Unknown |
| DODOPMMIntegration | `0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895` | Deployer | Unknown |
| DODOPMMProvider | `0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e` | Deployer | Unknown |
| Pool cUSDT/cUSDC | `0x9e89bAe009adf128782E19e8341996c596ac40dC` | Deployer | Unknown |
| Pool cUSDT/USDT | `0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66` | Deployer | Unknown |
| Pool cUSDC/USDC | `0xc39B7D0F40838cbFb54649d327f49a6DAC964062` | Deployer | Unknown |
### TransactionMirror
@@ -140,6 +145,7 @@ Contracts used as **destinations** for Chain 138 CCIP/relay; may have been deplo
|----------|---------|---------|-------------|----------|
| CCIPRelayRouter | `0xAd9A228CcEB4cbB612cD165FFB72fE090ff10Afb` | 1 (Ethereum Mainnet) | Unknown | Unknown |
| CCIPRelayBridge | `0xF9A32F37099c582D28b4dE7Fca6eaC1e5259f939` | 1 (Ethereum Mainnet) | Unknown | Unknown |
| DODOPMMIntegration (Mainnet) | `0xa9F284eD010f4F7d7F8F201742b49b9f58e29b84` | 1 (Ethereum Mainnet) | Deployer | Yes |
Explorer: https://etherscan.io (or https://blockscan.com for multi-chain).
@@ -147,7 +153,7 @@ Explorer: https://etherscan.io (or https://blockscan.com for multi-chain).
## Other networks (CCIP / cW* / Cronos)
Contracts on **other chains** (BSC, Polygon, Cronos, Arbitrum, Optimism, Avalanche, Base, Gnosis, Celo, Wemix) that the deployer may have deployed (e.g. CCIP WETH9/WETH10 bridges, cW* tokens, Cronos D-WIN W) are **not** listed here by address. Addresses are stored in `smom-dbis-138/.env` (e.g. `CCIPWETH9_BRIDGE_BSC`, `CWUSDT_MAINNET`, etc.). See [TOKENS_DEPLOYER_DEPLOYED_ON_OTHER_CHAINS.md](TOKENS_DEPLOYER_DEPLOYED_ON_OTHER_CHAINS.md) and [CW_TOKENS_AND_NETWORKS.md](CW_TOKENS_AND_NETWORKS.md). Verification status on those chains is **per-chain** (Etherscan, BscScan, Polygonscan, etc.) and not tracked in this doc.
Contracts on **other chains** (BSC, Polygon, Cronos, Arbitrum, Optimism, Avalanche, Base, Gnosis, Celo, Wemix) are now tracked through the generated all-network matrix rather than only by prose references. See [CONTRACT_VERIFICATION_AND_PUBLICATION_MATRIX_ALL_NETWORKS](CONTRACT_VERIFICATION_AND_PUBLICATION_MATRIX_ALL_NETWORKS.md).
---

View File

@@ -1,8 +1,8 @@
# Routes: Deployer Wallet → Public-Network Stablecoins
> Historical note (2026-03-26): this route map originally captured a pre-correction PMM phase. The current canonical Chain 138 PMM stack is `DODOPMMIntegration=0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d` and `DODOPMMProvider=0x5CAe6Ce155b7f08D3a956F5Dc82fC9945f29B381`.
> Historical note (2026-04-02): this route map originally captured a pre-correction PMM phase. The current canonical Chain 138 PMM stack is `DODOPMMIntegration=0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895` and `DODOPMMProvider=0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e`.
**Last Updated:** 2026-03-31
**Last Updated:** 2026-04-03
**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`
@@ -59,10 +59,10 @@ Tokens the deployer **can hold** as source (mintable to deployer on 138/Cronos,
| From (deployer holds) | To (public stable on 138) | Route | Status |
|------------------------|----------------------------|--------|--------|
| cUSDT | cUSDC | DODOPMMIntegration / pool `0xff8d3b8fDF7B112759F076B69f4271D4209C0849` | ✅ Live |
| cUSDT | cUSDC | DODOPMMIntegration / pool `0x9e89bAe009adf128782E19e8341996c596ac40dC` | ✅ Live |
| cUSDC | cUSDT | Same pool | ✅ Live |
| cUSDT | “USDT (official)” | Pool `0x6fc60DEDc92a2047062294488539992710b99D71` is the funded intended canonical route; official USDT mirror is deployed on 138 | ✅ Live |
| cUSDC | “USDC (official)” | Pool `0x9f74Be42725f2Aa072a9E0CdCce0E7203C510263` exists; official USDC mirror is deployed on 138 | ✅ Live |
| cUSDT | “USDT (official)” | Pool `0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66` is the funded canonical route; official USDT mirror is deployed on 138 | ✅ Live |
| cUSDC | “USDC (official)” | Pool `0xc39B7D0F40838cbFb54649d327f49a6DAC964062` is the funded canonical route; official USDC mirror is deployed on 138 | ✅ Live |
**Note:** On 138 the only “public” stablecoin destinations that exist are cUSDT and cUSDC. There is no native USDT/USDC contract on 138.
@@ -79,7 +79,7 @@ Tokens the deployer **can hold** as source (mintable to deployer on 138/Cronos,
| 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)).
**Mainnet relay:** CCIP messages to chain 1 go via active CCIPRelayRouter `0x416564Ab73Ad5710855E98dC7bC7Bff7387285BA` and CCIPRelayBridge `0xF9A32F37099c582D28b4dE7Fca6eaC1e5259f939` (releases WETH; **must be funded with Mainnet WETH** — see [CONTRACT_ADDRESSES_REFERENCE](CONTRACT_ADDRESSES_REFERENCE.md)).
---
@@ -97,11 +97,11 @@ Tokens the deployer **can hold** as source (mintable to deployer on 138/Cronos,
|------------|--------------------------------------|--------|--------|
| WETH9 / WETH10 | **BSC** WETH → USDT/USDC via DEX | Relay-backed first hop to BSC relay bridge `0x886C6A4ABC064dbf74E7caEc460b7eeC31F1b78C` | ✅ Live; **requires BSC relay WETH inventory** |
| WETH9 / WETH10 | **Avalanche** WETH → USDT/USDC via DEX | Relay-backed first hop to AVAX relay bridge `0x3f8C409C6072a2B6a4Ff17071927bA70F80c725F` | ✅ Tiny-send live; **requires AVAX relay WETH inventory**. Native Avalanche bridge path failed on 2026-03-30. |
| WETH9 / WETH10 | **Gnosis, Polygon, Arbitrum, Optimism, Base, Cronos, Celo** WETH → USDT/USDC via DEX | Bootstrap Mainnet first, then send Mainnet → destination | ⚠️ Use **Mainnet hub**, not a direct first hop from Chain 138 |
| WETH9 / WETH10 | **Gnosis, Polygon, Arbitrum, Optimism, Base, Cronos, Celo** WETH → USDT/USDC via DEX | Bootstrap Mainnet first, then send Mainnet → destination | ⛔ Intended via **Mainnet hub**, not a direct first hop from Chain 138, but the current Mainnet `WETH9` public fan-out path is blocked. A direct `138 -> Arbitrum` send reached the source router without destination delivery, the latest `Mainnet -> Arbitrum` send from `MAINNET_CCIP_WETH9_BRIDGE=0xc9901ce2Ddb6490FAA183645147a87496d8b20B6` failed on-chain before any bridge event, and read-only `calculateFee()` preflights currently revert for the tracked selectors `BSC`, `Avalanche`, `Gnosis`, `Cronos`, `Celo`, `Polygon`, `Arbitrum`, `Optimism`, and `Base`. |
| WETH9 / WETH10 | Wemix USDT/USDC | Deploy bridge and seed gas first (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 |
**Live routing note (2026-03-30):** The current Chain 138 router emits `MessageSent` but does not natively deliver into public-chain `CCIPWETH9Bridge` / `CCIPWETH10Bridge` contracts. That is why direct first-hop guidance is limited to the relay-backed lanes and the Mainnet hub.
**Live routing note (2026-04-03 / 2026-04-04 UTC):** The current Chain 138 router emits `MessageSent` but does not natively deliver into public-chain `CCIPWETH9Bridge` / `CCIPWETH10Bridge` contracts. That is why direct first-hop guidance is limited to the relay-backed lanes and the Mainnet hub. The current Mainnet `WETH9` public fan-out leg is also blocked at the source bridge/router layer: the active Mainnet source bridge path reverted in tx `0x97df657f0e31341ca852666766e553650531bbcc86621246d041985d7261bb07` inside router `0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D`, and read-only `calculateFee()` preflights now also revert for the tracked selectors `BSC`, `Avalanche`, `Gnosis`, `Cronos`, `Celo`, `Polygon`, `Arbitrum`, `Optimism`, and `Base`. Treat `Mainnet -> public-chain` WETH9 fan-out as blocked until that source path is repaired or replaced.
**Avalanche cW correction:** Separately from the public-stable routes above, the repo now proves a non-prefunded `cUSDT -> cWUSDT` corridor on Avalanche. That is a live lock/mint route to project `cWUSDT`, not a direct route to native Avalanche `USDT` / `USDC`, so it is tracked in [ROUTES_NO_PREFUNDED_BRIDGE_REQUIRED](ROUTES_NO_PREFUNDED_BRIDGE_REQUIRED.md) instead of being listed here as a public-stable destination.
@@ -130,7 +130,8 @@ Tokens the deployer **can hold** as source (mintable to deployer on 138/Cronos,
| 138 | WETH10 | 1 | USDT, USDC, DAI | Same; **CCIPRelayBridge must be funded with Mainnet WETH** | ✅ |
| 138 | WETH9/10 | 56 | WETH → USDT/USDC via DEX | Relay-backed 138 → BSC → DEX; **requires BSC relay inventory** | ✅ |
| 138 | WETH9/10 | 43114 | WETH → USDT/USDC via DEX | Relay-backed 138 → AVAX → DEX; **requires AVAX relay inventory** | ✅ Tiny-send only unless re-funded |
| 138 | WETH9/10 | 100, 137, 10, 42161, 8453, 25, 42220 | WETH → USDT/USDC via DEX | Bootstrap Mainnet first, then Mainnet → dest → DEX | ⚠️ |
| 138 | WETH9/10 | 100, 137, 10, 8453, 25, 42220 | WETH → USDT/USDC via DEX | Bootstrap Mainnet first, then Mainnet → dest → DEX | ⚠️ |
| 138 | WETH9/10 | 42161 | WETH → USDT/USDC via DEX | Intended `138 -> Mainnet -> Arbitrum -> DEX`, but current Mainnet source bridge/router path is blocked | ⛔ |
| 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 | ✅ |

View File

@@ -1,8 +1,8 @@
# Deployer Wallet — Chain 138 Balances, Funding Plan (PMM Pools), and Tokens on All Networks
> Historical note (2026-03-26): this plan began on the earlier PMM stack. Use the canonical corrected pool addresses below and cross-check [LIQUIDITY_POOLS_MASTER_MAP.md](LIQUIDITY_POOLS_MASTER_MAP.md) before funding.
> Historical note (2026-04-02): this plan began on an earlier PMM stack. Use the canonical official DODO V2 DVM-backed pool addresses below and cross-check [LIQUIDITY_POOLS_MASTER_MAP.md](LIQUIDITY_POOLS_MASTER_MAP.md) before funding.
**Last Updated:** 2026-02-28
**Last Updated:** 2026-04-03
**Purpose:** Check deployer balances on ChainID 138, use **half** of balances for PMM liquidity pool funding; list all coins/tokens deployed by or associated with the deployer address on all networks.
---
@@ -33,6 +33,8 @@ The script:
- Prints **half** of each balance for use as the liquidity funding plan.
- Outputs suggested `ADD_LIQUIDITY_*` env vars for [AddLiquidityPMMPoolsChain138](../../smom-dbis-138/script/dex/AddLiquidityPMMPoolsChain138.s.sol).
**Current live note (2026-04-03):** the public-rollout deployer funding gate now lives in [GRU_V2_DEPLOYER_FUNDING_STATUS.md](../03-deployment/GRU_V2_DEPLOYER_FUNDING_STATUS.md) and `bash scripts/verify/check-gru-v2-deployer-funding-status.sh`. The stable public Chain 138 RPC (`https://rpc-http-pub.d-bis.org`) currently shows the deployer heavily funded for native ETH, `cUSDT`, and `cUSDC`; the alternate public endpoint `https://rpc.public-0138.defi-oracle.io` is returning `502` and can produce false empty-wallet readings.
**Alternative:** Use [check-deployer-balance-blockscout-vs-rpc.sh](../../scripts/verify/check-deployer-balance-blockscout-vs-rpc.sh) for native balance only; or [list-deployer-tokens-all-networks.sh](../../smom-dbis-138/scripts/deployment/list-deployer-tokens-all-networks.sh) from `smom-dbis-138/` for all networks. The list script uses **fallback public RPCs** when env vars are unset, so it always prints every token line for Chain 138, Ethereum, ALL Mainnet, Cronos, Polygon, Base, Optimism, BSC, Avalanche, and Arbitrum. Use `PRIVATE_KEY` in .env to derive the deployer address, or set `DEPLOYER_ADDRESS=0x4A666F96fC8764181194447A7dFdb7d471b301C8` for read-only.
---
@@ -45,9 +47,9 @@ The script:
| Pool | Base | Quote | Pool address |
|------|------|--------|--------------|
| cUSDT / cUSDC | cUSDT | cUSDC | `0xff8d3b8fDF7B112759F076B69f4271D4209C0849` |
| cUSDT / USDT | cUSDT | USDT (official) | `0x6fc60DEDc92a2047062294488539992710b99D71` |
| cUSDC / USDC | cUSDC | USDC (official) | `0x9f74Be42725f2Aa072a9E0CdCce0E7203C510263` |
| cUSDT / cUSDC | cUSDT | cUSDC | `0x9e89bAe009adf128782E19e8341996c596ac40dC` |
| cUSDT / USDT | cUSDT | USDT (official mirror) | `0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66` |
| cUSDC / USDC | cUSDC | USDC (official mirror) | `0xc39B7D0F40838cbFb54649d327f49a6DAC964062` |
**Allocation (half of deployer balances):**
@@ -87,7 +89,8 @@ Below: **tokens and coins** on each network where the deployer is the **document
| cUSDT | Compliant Tether USD | `0x93E66202A11B1772E55407B32B44e5Cd8eda7f22` | 6 | Deployed |
| cUSDC | Compliant USD Coin | `0xf22258f57794CC8E06237084b353Ab30fFfa640b` | 6 | Deployed |
| cEURT, cEURC, cGBPT, cGBPC, cAUDT, cAUDC, cJPYT, cJPYC, cCHFT, cCHFC, cCADT, cCADC, cAUSDT | (Category 1 remainder) | Deploy / env | 6 | See [TOKEN_CATEGORIES_CANONICAL](TOKEN_CATEGORIES_CANONICAL.md) |
| USDT (official) | Tether (Chain 138) | `0x15DF1D5BFDD8Aa4b380445D4e3E9B38d34283619` | | Reference |
| USDT (official mirror) | Tether USD (Chain 138) | `0x004b63A7B5b0E06f6bB6adb4a5F9f590BF3182D1` | 6 | Quote-side mirror used by the canonical cUSDT/USDT pool |
| USDC (official mirror) | USD Coin (Chain 138) | `0x71D6687F38b93CCad569Fa6352c876eea967201b` | 6 | Quote-side mirror used by the canonical cUSDC/USDC pool |
### Chain 1 (Ethereum Mainnet)
@@ -153,3 +156,4 @@ The script **always lists** the tokens in the table below for each network. It u
| [DEPLOYED_COINS_TOKENS_AND_NETWORKS](DEPLOYED_COINS_TOKENS_AND_NETWORKS.md) | Networks and tokens by chain |
| [CONTRACT_ADDRESSES_REFERENCE](CONTRACT_ADDRESSES_REFERENCE.md) | Canonical contract list |
| [LIQUIDITY_POOL_CONTROLS_RUNBOOK](../03-deployment/LIQUIDITY_POOL_CONTROLS_RUNBOOK.md) | How to add liquidity |
| [CHAIN138_GRID_6534_WALLET_FUNDING_PLAN](CHAIN138_GRID_6534_WALLET_FUNDING_PLAN.md) | Operator vs 6,534 soak grid wallets — native + ERC-20 batch funding |

View File

@@ -11,15 +11,15 @@
| Chain | Status | Address | Notes |
|-------|--------|---------|--------|
| **Ethereum Mainnet** | Deployed | `0x4CF42c4F1dBa748601b8938be3E7ABD732E87cE9` | Receives mirrored Chain 138 transactions from the Transaction Mirroring Service. Frontend-dapp uses this address. Etherscan verification may still be pending (see docs/06-besu/TRANSACTIONMIRROR_VERIFICATION_STATUS.md). |
| **Chain 138** | **Not deployed** | — | Optional: deploy when mirror feature is needed on Chain 138. Script can hit Forge constructor-args decode bug; use `forge create` or `./scripts/deployment/deploy-transaction-mirror-chain138.sh`. Not included in the 36-address on-chain check. |
| **Chain 138** | **Deployed** | `0x7131F887DBEEb2e44c1Ed267D2A68b5b83285afc` | Live on Chain 138. Set `TRANSACTION_MIRROR_ADDRESS` in `smom-dbis-138/.env` for services that consume it. |
**Conclusion:** TransactionMirror is **fully deployed on Mainnet** (and used by the Transaction Mirroring Service). On **Chain 138** it is **not** deployed; it is optional and can be deployed when needed via the helper script.
**Conclusion:** TransactionMirror is deployed on both **Ethereum Mainnet** and **Chain 138**.
---
## 2. Currently Deployed (Relevant to DEX / Routing / Cross-Chain)
- **Chain 138:** CCIP bridges (CCIPWETH9/10), UniversalCCIPBridge, BridgeOrchestrator, AlltraAdapter, Lockbox138 (trustless), PaymentChannelManager, GenericStateChannelManager, AddressMapper, MirrorManager, Vault/Reserve system, MerchantSettlementRegistry, WithdrawalEscrow, phased core, CREATE2 deterministic set, **DODOPMMIntegration** (`0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d`) and **DODOPMMProvider** (`0x5CAe6Ce155b7f08D3a956F5Dc82fC9945f29B381`) with corrected desired-state mesh aligned. See [CONTRACT_ADDRESSES_REFERENCE](CONTRACT_ADDRESSES_REFERENCE.md) and [ADDRESS_MATRIX_AND_STATUS](ADDRESS_MATRIX_AND_STATUS.md).
- **Chain 138:** CCIP bridges (CCIPWETH9/10), UniversalCCIPBridge, BridgeOrchestrator, AlltraAdapter, Lockbox138 (trustless), PaymentChannelManager, GenericStateChannelManager, AddressMapper, MirrorManager, Vault/Reserve system, MerchantSettlementRegistry, WithdrawalEscrow, phased core, CREATE2 deterministic set, **DODOPMMIntegration** (`0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895`) and **DODOPMMProvider** (`0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e`) on the canonical official DODO V2 DVM-backed stack. See [CONTRACT_ADDRESSES_REFERENCE](CONTRACT_ADDRESSES_REFERENCE.md) and [ADDRESS_MATRIX_AND_STATUS](ADDRESS_MATRIX_AND_STATUS.md).
- **alltra-lifi-settlement:** MerchantSettlementRegistry, WithdrawalEscrow (Chain 138).
---
@@ -30,16 +30,16 @@
| Item | Location | Status | Whats needed |
|------|----------|--------|----------------|
| **DODOPMMIntegration** | `smom-dbis-138/contracts/dex/DODOPMMIntegration.sol` | **Deployed** (Chain 138: `0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d`) | Corrected canonical integration with desired-state JSON sync path. See [PMM_DEX_ROUTING_STATUS](PMM_DEX_ROUTING_STATUS.md), [DODO_PMM_INTEGRATION](../../smom-dbis-138/docs/integration/DODO_PMM_INTEGRATION.md). |
| **DODOPMMProvider** | `smom-dbis-138/contracts/liquidity/providers/DODOPMMProvider.sol` | Placeholder | Implement oracle-driven `optimizePoolParameters` (or document flow); complete when DODO is integrated. See [NOT_CHANGED_BY_DESIGN_ACTIONABLE_STEPS](../00-meta/NOT_CHANGED_BY_DESIGN_ACTIONABLE_STEPS.md) §3. |
| **DODOPMMIntegration** | `smom-dbis-138/contracts/dex/DODOPMMIntegration.sol` | **Deployed** (Chain 138: `0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895`) | Canonical official DODO V2 DVM-backed integration. See [PMM_DEX_ROUTING_STATUS](PMM_DEX_ROUTING_STATUS.md), [DODO_PMM_INTEGRATION](../../smom-dbis-138/docs/integration/DODO_PMM_INTEGRATION.md). |
| **DODOPMMProvider** | `smom-dbis-138/contracts/liquidity/providers/DODOPMMProvider.sol` | **Deployed** (Chain 138: `0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e`) | Canonical provider with the three public stable pools registered. |
| **Test** | `test/dex/DODOPMMIntegration.t.sol.bak` | Renamed to .bak | Restore/fix and re-enable when DODO integration is active (mockCall ambiguity was reason for .bak). |
### 3.2 Uniswap / Balancer / EnhancedSwapRouter
| Item | Location | Status | Whats needed |
|------|----------|--------|----------------|
| **EnhancedSwapRouter** | `smom-dbis-138/contracts/bridge/trustless/EnhancedSwapRouter.sol` | Exists; placeholders | Set Uniswap V3 quoter address and Balancer poolId when pools exist on chain. Deploy via `script/bridge/trustless/DeployEnhancedSwapRouter.s.sol`. Script is mainnet-oriented; for Chain 138 set quoter/pool env when pools exist. See [PLACEHOLDERS_AND_TBD](../PLACEHOLDERS_AND_TBD.md), [REQUIRED_FIXES_UPDATES_GAPS](../REQUIRED_FIXES_UPDATES_GAPS.md) §4. |
| **Uniswap/Curve services** | `alltra-lifi-settlement/src/payments/uniswap/uniswap.service.ts`, `curve.service.ts` | Stubs | Implement when Uniswap/Curve pools exist on 138/651940. See [TEZOS_CCIP_REMAINING_ITEMS](../07-ccip/TEZOS_CCIP_REMAINING_ITEMS.md) §8. |
| **EnhancedSwapRouterV2 + venue adapters** | `smom-dbis-138/contracts/bridge/trustless/EnhancedSwapRouterV2.sol` and `contracts/bridge/trustless/adapters/` | Live on Chain 138 | Router-v2 plus executor adapters are deployed, and pilot-compatible `Uniswap_v3`, `Balancer`, `Curve_3`, and `1inch` venues are funded and planner-visible. Keep `bash scripts/verify/check-chain138-pilot-dex-venues.sh` green after venue/publication changes. |
| **Uniswap/Curve services** | `alltra-lifi-settlement/src/payments/uniswap/uniswap.service.ts`, `curve.service.ts` | Stubs | Service-layer adoption remains optional even though the pilot-compatible Chain 138 venue layer is live. See [TEZOS_CCIP_REMAINING_ITEMS](../07-ccip/TEZOS_CCIP_REMAINING_ITEMS.md) §8. |
### 3.3 Full Trustless Bridge Stack (Cross-Chain Liquidity / Atomic Swaps)
@@ -80,8 +80,8 @@ See [ADDRESS_MATRIX_AND_STATUS](ADDRESS_MATRIX_AND_STATUS.md) §4: “INBOX_ETH,
|------------|----------|--------------|
| **Cross-chain bridge (CCIP)** | CCIP WETH9/10, UniversalCCIPBridge, AlltraAdapter | — |
| **TransactionMirror** | Mainnet (0x4CF42...); optional on 138 | Chain 138: run deploy script if needed; Mainnet: confirm Etherscan verification |
| **Dodo PMM liquidity** | DODOPMMIntegration deployed (Mock DVM); pools not created | Create PMM pools; add liquidity; deploy DODOPMMProvider and register pools |
| **Uniswap/Balancer swaps** | — | Pools on 138/651940; deploy EnhancedSwapRouter with quoter/poolId; implement uniswap.service when pools exist |
| **Dodo PMM liquidity** | Canonical official DODO V2 DVM-backed integration/provider deployed; three stable pools funded | Decide legacy XAU/private pool posture; keep router-v2 venue verification current |
| **Uniswap/Balancer/Curve/1inch swaps** | Pilot-compatible venues live on Chain 138 and wired into router-v2 | Upstream-native protocol deployments remain optional future work; current live path is the funded Chain 138 pilot venue layer. For the Uniswap-native replacement track, use [CHAIN138_UNISWAP_V3_UPSTREAM_NATIVE_RUNBOOK](../03-deployment/CHAIN138_UNISWAP_V3_UPSTREAM_NATIVE_RUNBOOK.md) and `bash scripts/verify/check-chain138-uniswap-v3-upstream-native-readiness.sh`. |
| **Full trustless atomic swap** | Lockbox138 | InboxETH, BondManager, ChallengeManager, LiquidityPoolETH, SwapRouter, BridgeSwapCoordinator, MULTISIG |
| **Multi-chain routing** | LiFi (and config) | Jumper API when supported; Curve/Uniswap stubs when pools exist; quote service Fabric chainId |
@@ -90,5 +90,5 @@ See [ADDRESS_MATRIX_AND_STATUS](ADDRESS_MATRIX_AND_STATUS.md) §4: “INBOX_ETH,
## 5. Commands and References
- **Deploy TransactionMirror (Chain 138):** `./scripts/deployment/deploy-transaction-mirror-chain138.sh` (then set `TRANSACTION_MIRROR_ADDRESS` in .env). See [CONTRACT_DEPLOYMENT_RUNBOOK](../03-deployment/CONTRACT_DEPLOYMENT_RUNBOOK.md) § TransactionMirror.
- **Deploy EnhancedSwapRouter / Dodo:** [OPERATOR_OPTIONAL_CHECKLIST](OPERATOR_OPTIONAL_CHECKLIST.md) §6 — `script/deploy/dex/`, `script/bridge/trustless/DeployEnhancedSwapRouter.s.sol`; Chain 138: `--with-gas-price 1000000000`.
- **On-chain check (36 addresses):** `./scripts/verify/check-contracts-on-chain-138.sh [RPC_URL]`does not include TransactionMirror or DODO/EnhancedSwapRouter.
- **Router-v2 / venue verification:** `bash scripts/verify/check-chain138-pilot-dex-venues.sh` — proves the funded pilot-compatible `Uniswap_v3`, `Balancer`, `Curve_3`, and `1inch` venues are bytecode-present, funded, and publicly routable on Chain 138.
- **On-chain check (88 addresses):** `./scripts/verify/check-contracts-on-chain-138.sh [RPC_URL]`current canonical count includes TransactionMirror, the canonical stable PMM stack, ISO20022Router, the cross-chain flash trio, the deployed GRU USD V2 addresses, router-v2 execution stack, the upstream-native Uniswap v3 stack, and the remaining funded pilot-compatible venue layer.

View File

@@ -0,0 +1,339 @@
# Explorer Access API Reference
## Purpose
This is the quick-reference markdown companion to the explorer REST OpenAPI spec. It focuses on the access-management endpoints used by the `/access` console and RPC product layer.
Canonical machine-readable spec:
- `explorer-monorepo/backend/api/rest/swagger.yaml`
## Authentication types
### Wallet auth
Used for wallet-driven explorer tracks.
- `POST /api/v1/auth/nonce`
- `POST /api/v1/auth/wallet`
### User-session auth
Used for the explorer access console.
- `POST /api/v1/auth/register`
- `POST /api/v1/auth/login`
- `Authorization: Bearer <session-token>` for `/api/v1/access/*`
## Endpoints
### Register
`POST /api/v1/auth/register`
Request:
```json
{
"email": "dev@example.com",
"username": "devuser",
"password": "strong-password"
}
```
Response:
```json
{
"user": {
"id": "uuid",
"email": "dev@example.com",
"username": "devuser",
"is_admin": false
},
"token": "jwt",
"expires_at": "2026-04-16T12:00:00Z"
}
```
### Login
`POST /api/v1/auth/login`
Request:
```json
{
"email": "dev@example.com",
"password": "strong-password"
}
```
### List products
`GET /api/v1/access/products`
Response shape:
```json
{
"products": [
{
"slug": "thirdweb-rpc",
"name": "Thirdweb RPC",
"provider": "thirdweb",
"vmid": 2103,
"http_url": "http://192.168.11.217:8545",
"ws_url": "ws://192.168.11.217:8546",
"default_tier": "pro",
"requires_approval": false,
"billing_model": "subscription",
"description": "Thirdweb-oriented Chain 138 RPC lane...",
"use_cases": ["thirdweb integrations"],
"management_features": ["API token issuance"]
}
]
}
```
### Current user
`GET /api/v1/access/me`
Headers:
```http
Authorization: Bearer <session-token>
```
### List subscriptions
`GET /api/v1/access/subscriptions`
### Create or request subscription
`POST /api/v1/access/subscriptions`
Request:
```json
{
"product_slug": "alltra-rpc",
"tier": "pro"
}
```
Behavior:
- self-service products become `active`
- approval-gated products become `pending`
### List API keys
`GET /api/v1/access/api-keys`
### Create API key
`POST /api/v1/access/api-keys`
Request:
```json
{
"name": "CI integration",
"tier": "pro",
"product_slug": "thirdweb-rpc",
"expires_days": 30,
"monthly_quota": 150000,
"scopes": ["rpc:read", "rpc:write"]
}
```
Response:
```json
{
"api_key": "ek_...",
"record": {
"id": "uuid",
"name": "CI integration [thirdweb-rpc]",
"tier": "pro",
"productSlug": "thirdweb-rpc",
"scopes": ["rpc:read", "rpc:write"],
"monthlyQuota": 100000,
"requestsUsed": 0,
"approved": true,
"rateLimitPerSecond": 20,
"rateLimitPerMinute": 1000,
"revoked": false,
"createdAt": "2026-04-09T12:00:00Z"
}
}
```
Important:
- plaintext API keys are only returned at creation time
- approval-gated products will reject creation until subscription is active
- `scopes` can be narrowed from the product defaults
- `expires_days: 0` or omission means no expiry
### Revoke API key
`POST /api/v1/access/api-keys/{id}`
Alternative:
`DELETE /api/v1/access/api-keys/{id}`
### Usage summary
`GET /api/v1/access/usage`
Response shape:
```json
{
"usage": [
{
"product_slug": "thirdweb-rpc",
"active_keys": 2,
"requests_used": 1450,
"monthly_quota": 200000
}
]
}
```
### User audit feed
`GET /api/v1/access/audit?limit=20`
Returns recent validated API-key activity for the signed-in user.
### Admin audit feed
`GET /api/v1/access/admin/audit?limit=50&product=thirdweb-rpc`
Returns recent validated API-key activity across the platform for access admins. `product` is optional.
### Admin subscription review
`GET /api/v1/access/admin/subscriptions?status=pending`
Requires:
- `Authorization: Bearer <session-token>`
- the signed-in email must be listed in `ACCESS_ADMIN_EMAILS`
`POST /api/v1/access/admin/subscriptions`
Request:
```json
{
"subscription_id": "uuid",
"status": "active",
"notes": "Approved for managed partner rollout"
}
```
Allowed `status` values:
- `active`
- `suspended`
- `revoked`
### Internal key validation
`POST /api/v1/access/internal/validate-key`
or
`GET /api/v1/access/internal/validate-key`
Headers:
```http
X-Access-Internal-Secret: <shared-secret>
```
Request:
```json
{
"api_key": "ek_...",
"method_name": "eth_call",
"request_count": 1,
"last_ip": "203.0.113.10"
}
```
Response:
```json
{
"valid": true,
"key": {
"apiKeyId": "uuid",
"userId": "uuid",
"tier": "pro",
"productSlug": "thirdweb-rpc",
"scopes": ["rpc:read", "rpc:write"],
"monthlyQuota": 100000,
"requestsUsed": 1451,
"rateLimitPerSecond": 20,
"rateLimitPerMinute": 1000
}
}
```
For nginx `auth_request`, use the `GET` form with headers instead of a JSON body:
```http
X-Access-Internal-Secret: <shared-secret>
X-API-Key: ek_...
X-Access-Method: eth_call
X-Access-Request-Count: 1
```
That flow returns `200` or `401` and may emit:
```http
X-Validated-Product: thirdweb-rpc
X-Validated-Tier: pro
X-Validated-Scopes: rpc:read,rpc:write
X-Quota-Remaining: 98549
```
## Error patterns
The REST API uses a consistent error shape:
```json
{
"error": {
"code": "bad_request",
"message": "Unknown product"
}
}
```
Common access-layer errors:
- `unauthorized`
- `bad_request`
- `subscription_required`
- `forbidden`
- `internal_error`
## Current caveats
- the access layer models subscriptions and quotas, but full edge enforcement is still separate work
- billing collection is not part of these endpoints yet
- admin approval workflow is exposed, but still driven by a simple email allowlist instead of a full RBAC system
- Thirdweb deployment orchestration is a separate backend/CI concern from these access endpoints
Related reference:
- [THIRDWEB_EXPLORER_PORTAL_DEPLOYMENT_MODEL.md](../04-configuration/THIRDWEB_EXPLORER_PORTAL_DEPLOYMENT_MODEL.md)

View File

@@ -1,6 +1,6 @@
# Explorer Token List Cross-Check
**Last Updated:** 2026-03-04
**Last Updated:** 2026-04-02
**Purpose:** Cross-check the token list shown at [https://explorer.d-bis.org/tokens](https://explorer.d-bis.org/tokens) against repo token lists, canonical addresses, and CONTRACT_ADDRESSES_REFERENCE.
---
@@ -91,13 +91,12 @@ and use `dbis-138.tokenlist.json` as the curated source. See §9.
| cUSDC (0xf22258…) | Yes | Match |
| cEURC (0x808596…) | Yes | Match |
**Missing from dbis-138.tokenlist.json but present on Explorer (Blockscout):**
cEURT, cGBPC, cGBPT, cAUDC, cJPYC, cCHFC, cCADC, cXAUC, cXAUT.
So the **curated token list is missing 9 compliant tokens** that exist on-chain and appear on the Explorer.
**Historical gap (closed 2026-02-28):**
cEURT, cGBPC, cGBPT, cAUDC, cJPYC, cCHFC, cCADC, cXAUC, cXAUT were initially missing from `dbis-138.tokenlist.json`, but have since been added. The remaining issue is Blockscout metadata quality for WETH9, not token-list coverage.
### 3.2 `explorer-monorepo/backend/config/metamask/DUAL_CHAIN_TOKEN_LIST.tokenlist.json`
Chain 138 entries: same 7 as dbis-138 (ETH-USD, WETH, WETH10, LINK, cUSDT, cUSDC, cEURC). So **same gap**: the 9 additional compliant tokens (cEURT, cGBP*, cAUDC, cJPYC, cCHFC, cCADC, cXAUC, cXAUT) are **not** in the MetaMask token list.
Chain 138 entries were originally the same 7 as `dbis-138`, but the additional compliant tokens were added on 2026-02-28. Keep this file focused on live Explorer cross-checks rather than the closed token-list gap.
### 3.3 `ADDRESS_MATRIX_AND_STATUS.md` / `CONTRACT_ADDRESSES_REFERENCE.md`
@@ -163,11 +162,11 @@ Use this table to align token lists and docs with the Explorer (Blockscout) and
| Source | cUSDT/cUSDC pool | cUSDT/USDT pool | cUSDC/USDC pool |
|--------|------------------|-----------------|----------------|
| **ai-mcp-pmm-controller/config/allowlist-138.json** | `0xff8d3b8fDF7B112759F076B69f4271D4209C0849` | `0x6fc60DEDc92a2047062294488539992710b99D71` | `0x9f74Be42725f2Aa072a9E0CdCce0E7203C510263` |
| **ai-mcp-pmm-controller/config/allowlist-138.json** | `0x9e89bAe009adf128782E19e8341996c596ac40dC` | `0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66` | `0xc39B7D0F40838cbFb54649d327f49a6DAC964062` |
| **LIQUIDITY_POOLS_MASTER_MAP.md** | Same | Same | Same |
| **DEPLOYER_CONTRACTS_INVENTORY / ADDRESS_MATRIX** | Same | Same | Same |
**Result:** Pool addresses should treat `0x6fc60DEDc92a2047062294488539992710b99D71` as the intended funded canonical `cUSDT/USDT` pool. `cross-chain-pmm-lps/config/deployment-status.json` does not list Chain 138 pools (it tracks cW* edge pools on other chains); Chain 138 PMM state is in allowlist and docs.
**Result:** Pool addresses should treat `0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66` as the funded canonical `cUSDT/USDT` pool. `cross-chain-pmm-lps/config/deployment-status.json` does not list Chain 138 pools (it tracks cW* edge pools on other chains); Chain 138 PMM state is in allowlist and docs.
---
@@ -177,7 +176,7 @@ Use this table to align token lists and docs with the Explorer (Blockscout) and
| Check | Result |
|-------|--------|
| **Contract** | DODOPMMIntegration at `0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d` (Chain 138) |
| **Contract** | DODOPMMIntegration at `0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895` (Chain 138) |
| **Method** | `eth_call` to `compliantUSDT()` and `compliantUSDC()` (RPC: `http://192.168.11.211:8545`) |
| **compliantUSDT()** | `0x93e66202a11b1772e55407b32b44e5cd8eda7f22` — matches §5 canonical cUSDT |
| **compliantUSDC()** | `0xf22258f57794cc8e06237084b353ab30fffa640b` — matches §5 canonical cUSDC |

View File

@@ -0,0 +1,111 @@
# Explorer Transaction Compliance Matrix
Purpose: define the first explorer-side heuristic for grading how well a transaction is evidenced, decoded, and aligned with the repo's GRU, x402, and ISO-20022 posture.
This matrix is intentionally operational and observational. It is not a legal opinion, regulatory ruling, or substitute for off-chain compliance controls.
## Scope
Use this score to:
- triage transactions in the explorer
- understand how much structured evidence is visible
- highlight transactions that deserve deeper human review
Do not use this score as:
- final regulatory approval
- final settlement approval
- a substitute for policy-engine, KYC, AML, or ledger review
## Score
Total: `100`
### 1. Execution Integrity
Weight: `25`
Signals:
- success vs failure
- presence of mined execution context
- overall confidence that the transaction actually completed as intended
### 2. Decode Clarity
Weight: `15`
Signals:
- method label is known
- decoded input parameters are visible
- explorer can show structured intent rather than raw calldata only
### 3. Counterparty Traceability
Weight: `15`
Signals:
- sender visible
- recipient or created contract visible
- block anchoring visible
- timestamp visible
### 4. Asset Posture
Weight: `20`
Signals:
- transferred assets appear GRU-aware
- transferred assets appear x402-ready where relevant
- transferred assets appear ISO-20022-aligned in the local explorer posture
Notes:
- this is neutral rather than punitive for transactions that do not include token transfers
- this is an explorer-side view based on local GRU intelligence, not a final institutional judgment
### 5. Audit Richness
Weight: `15`
Signals:
- token transfers indexed
- internal calls visible
- raw input visible
- decoded input visible
### 6. Exception Hygiene
Weight: `10`
Signals:
- explicit revert reason
- failed execution
- obvious exception posture that lowers confidence
## Grades
- `A`: `90-100`
- `B`: `80-89`
- `C`: `70-79`
- `D`: `60-69`
- `E`: `<60`
## Interpretation
- `A` means the explorer has strong structured evidence and the transaction is easy to review operationally.
- `B` means the transaction is still strong, but some context is missing.
- `C` means the transaction is understandable but not richly evidenced.
- `D` means review confidence is thin.
- `E` means the explorer-visible posture is weak and deserves caution.
## Current Limitations
- The matrix does not ingest off-chain policy decisions.
- The matrix does not prove legal or regulatory sufficiency.
- The matrix does not parse full ISO-20022 payloads.
- The matrix depends on explorer indexing quality and local GRU intelligence coverage.
## Next Upgrades
- add log-level standards and event scoring
- add ISO correlation identifiers when available
- add bridge-lane and cross-chain settlement evidence
- add reserve and governance posture where directly linked to tx context

View File

@@ -91,17 +91,17 @@ Outbound network traffic leaving the internal network. Egress NAT pools map inte
Ethereum node identifier, a unique address that identifies a blockchain node on the network. Format: `enode://<node-id>@<ip>:<port>`
### ER605
TP-Link ER605 router, used as the edge router in this architecture. Two routers (ER605-A and ER605-B) provide redundancy.
TP-Link ER605 router. Historical edge-router reference; the current active edge is UDM Pro.
### ES216G
TP-Link ES216G managed switch, used for network switching and VLAN trunking. Three switches provide core, compute, and management connectivity.
TP-Link ES216G managed switch. Historical switching reference in older topology notes.
---
## F
### Failover
Automatic switching to a backup system when the primary system fails. ER605 routers support WAN failover.
Automatic switching to a backup system when the primary system fails.
### Firewall
Network security system that controls incoming and outgoing network traffic based on predetermined security rules.
@@ -202,7 +202,7 @@ A computer or virtual machine that participates in a network. In blockchain cont
## O
### Omada
TP-Link's network management system. Used for managing ER605 routers and ES216G switches.
TP-Link's network management system. Historical reference for the retired ER605 / ES216G-managed topology; not part of the current UDM Pro edge path.
### Oracle
In blockchain context, a service that provides external data to smart contracts. Chainlink provides oracle services.
@@ -296,7 +296,7 @@ A communication protocol that provides full-duplex communication over a single T
Ubiquiti Dream Machine Pro; edge router replacing ER605 in current topology. Public IP 76.53.10.34; port forwards 76.53.10.36:80/443 to NPMplus 192.168.11.167.
### WAN (Wide Area Network)
A network that spans a large geographic area. In this architecture, WAN refers to internet connections on UDM Pro (or ER605).
A network that spans a large geographic area. In this architecture, WAN refers to internet connections on the active UDM Pro edge.
---

View File

@@ -0,0 +1,87 @@
# GRU v2 Native-Token Completeness Matrix
**Last Updated:** 2026-04-07
**Purpose:** Track whether each served network is merely mapped or is actually complete in the live GRU v2 ecosystem.
**Columns**
- `Mapped`: token and lane metadata exist in the config surfaces
- `Deployed`: token contracts are recorded as deployed on the target chain
- `Bridge Live`: the deployment graph marks bridge availability for the chain/lane
- `Liquidity Live`: the deployment graph records public liquidity for the target GRU v2 / `cW*` surface
- `Routing Visible`: the public routing / planner surfaces can expose and use the lane
---
## 1. Summary
As of 2026-04-07:
- The desired public EVM target set is now loaded across **11** chains.
- **10 / 11** loaded public EVM chains carry the full GRU v2 core `cW*` suite.
- Only **1** public protocol family (`DODO PMM`) has active public `cW*` pools today.
- Wave 1 non-USD assets (`EUR`, `JPY`, `GBP`, `AUD`, `CAD`, `CHF`, `XAU`) remain **canonical-only** on Chain 138.
- Non-EVM GRU targets remain **planned / relay-dependent**, not live native-routing surfaces.
Source snapshot: `bash scripts/verify/check-gru-v2-public-protocols.sh --json` on 2026-04-07.
---
## 2. Public EVM completeness
| Chain | Chain ID | Mapped | Deployed | Bridge Live | Liquidity Live | Routing Visible | Notes |
|------|----------|--------|----------|-------------|----------------|-----------------|-------|
| Ethereum Mainnet | `1` | Yes | Yes | Yes | Yes | Partial | `13` recorded `cW*` tokens; `10` public DODO PMM pools recorded. |
| Optimism | `10` | Yes | Yes | Yes | Yes | Partial | `13` tokens; `2` public PMM pools recorded. |
| Cronos | `25` | Yes | Yes | Yes | Yes | Partial | `13` tokens; `2` public PMM pools recorded. |
| BSC | `56` | Yes | Yes | Yes | No | Partial | `15` tokens; no public `cW*` pools recorded. |
| Gnosis Chain | `100` | Yes | Yes | Yes | No | Partial | `13` tokens; no public `cW*` pools recorded. |
| Polygon | `137` | Yes | Yes | Yes | Yes | Partial | `14` tokens; `2` public PMM pools recorded. |
| Arbitrum One | `42161` | Yes | Yes | Yes | No | Partial | `13` tokens; no public pools recorded; current hub bootstrap blocker remains. |
| Celo | `42220` | Yes | Yes | Yes | No | Partial | `15` tokens; no public `cW*` pools recorded. |
| Avalanche C-Chain | `43114` | Yes | Yes | Yes | No | Partial | `15` tokens; no public `cW*` pools recorded. |
| Base | `8453` | Yes | Yes | Yes | No | Partial | `13` tokens; no public pools recorded. |
| Wemix | `1111` | Partial | Partial | No | No | No | Only `1` `cW*` token recorded; full core suite not loaded. |
---
## 3. Canonical-chain / special-chain native-family completeness
| Chain | Chain ID | Mapped | Deployed | Bridge Live | Liquidity Live | Routing Visible | Notes |
|------|----------|--------|----------|-------------|----------------|-----------------|-------|
| Chain 138 | `138` | Yes | Yes | Internal / canonical | Yes | Yes | Canonical DODO PMM, D3MM pilot, upstream-native Uniswap v3, and pilot-compatible Balancer / Curve / 1inch are live. |
| ALL Mainnet | `651940` | Yes | Partial | Partial | Partial | Partial | Native tokens and corridors exist, but GRU v2 completeness is still corridor-specific and not equivalent to the fully promoted EVM core set. |
---
## 4. Non-EVM completeness
| Network | VM type | Mapped | Deployed | Bridge Live | Liquidity Live | Routing Visible | Notes |
|---------|---------|--------|----------|-------------|----------------|-----------------|-------|
| Solana | SVM | Planning-only | No | No | No | No | `config/deployer-gas-routes.json` still marks Solana as manual / planning-only. |
| Tezos / Etherlink | non-EVM / hybrid | Partial | Partial | Relay-dependent | No | Partial | Present in planning and bridge docs, but not a live native GRU v2 edge surface. |
---
## 5. Asset-state completeness
| Asset family | Canonical deployed on 138 | Active transport | Public liquidity recorded | Notes |
|-------------|----------------------------|------------------|--------------------------|-------|
| USD | Yes | Yes | Yes | The only live transport asset family today. |
| EUR | Yes | No | Partial | Public Mainnet DODO PMM row exists, but transport is not active. |
| JPY | Yes | No | Partial | Same posture as EUR. |
| GBP | Yes | No | Partial | Same posture as EUR. |
| AUD | Yes | No | Partial | Same posture as EUR. |
| CAD | Yes | No | Partial | Same posture as EUR. |
| CHF | Yes | No | Partial | Same posture as EUR. |
| XAU | Yes | No | No | Canonical-only; not promoted into active transport or public edge liquidity. |
---
## 6. Open blockers
- Wave 1 non-USD assets remain canonical-only on Chain 138.
- Public `cW*` protocol rollout is still concentrated in DODO PMM; Uniswap v3, Balancer, Curve 3, and 1inch are not live on the public `cW*` mesh.
- Wemix does not yet have the full GRU v2 core suite recorded in the deployment graph.
- Solana remains planning-only and non-EVM targets remain relay / adapter dependent.
- Arbitrum public-network bootstrap is still blocked on the current Mainnet hub leg.

View File

@@ -0,0 +1,202 @@
# GRU V2 Public Protocol Deployment Status
**Last Updated:** 2026-04-04
**Purpose:** Single truthful status surface for the GRU v2 public-network rollout across the public EVM `cW*` token mesh, Wave 1 bridge/transport activation, and the public protocol venues that matter for live `cW*` liquidity.
---
## Bottom line
The public EVM `cW*` token mesh is complete on the currently loaded 10-chain public EVM set, but the broader public-network GRU v2 rollout is still partial:
- `USD` is the only live transport asset today.
- `EUR`, `JPY`, `GBP`, `AUD`, `CAD`, `CHF`, and `XAU` are still canonical-only on Chain 138.
- The first live public `cW*` liquidity wave is now recorded on `Ethereum Mainnet` through `DODO PMM`, while `Uniswap v3`, `Balancer`, `Curve 3`, and `1inch` remain not live on the public `cW*` mesh.
This is the status the explorer should publish and the docs should repeat.
---
## Canonical verifier
Run:
```bash
bash scripts/verify/check-gru-v2-public-protocols.sh
```
Machine-readable:
```bash
bash scripts/verify/check-gru-v2-public-protocols.sh --json
```
Explorer-published JSON:
- `https://explorer.d-bis.org/config/GRU_V2_PUBLIC_DEPLOYMENT_STATUS.json`
- `https://explorer.d-bis.org/config/GRU_V2_DEPLOYMENT_QUEUE.json`
---
## Current public-network truth
### 1. Token mesh
- Desired public EVM targets in the rollout plan: `11`
- Currently loaded public EVM `cW*` chains: `10`
- Loaded chains with the full core 12-token `cW*` suite: `10`
- Desired but not yet loaded in `deployment-status.json`: `Wemix`
The loaded set is:
- `Ethereum Mainnet`
- `Optimism`
- `Cronos`
- `BSC`
- `Gnosis`
- `Polygon`
- `Base`
- `Arbitrum`
- `Celo`
- `Avalanche`
### 2. Transport / bridges
- `USD` is the only live transport asset.
- Wave 1 still has `7` canonical-only assets:
- `EUR`
- `JPY`
- `GBP`
- `AUD`
- `CAD`
- `CHF`
- `XAU`
- These assets already exist canonically on Chain 138 and have `cW*` symbols and public EVM token contracts, but they are not yet promoted into the active transport overlay.
### 3. Public protocol venues
For the public `cW*` mesh, the repo now records:
- `Uniswap v3`: `0` active public `cW*` pools
- `Balancer`: `0`
- `Curve 3`: `0`
- `DODO PMM`: `11`
- `1inch`: `0`
That status comes directly from `cross-chain-pmm-lps/config/deployment-status.json`. The currently recorded public `cW*` pools are the Mainnet DODO PMM pairs:
- `cWUSDT / USDC``0x27f3aE7EE71Be3d77bAf17d4435cF8B895DD25D2`
- `cWUSDC / USDC``0x69776fc607e9edA8042e320e7e43f54d06c68f0E`
- `cWUSDT / USDT``0x79156F6B7bf71a1B72D78189B540A89A6C13F6FC`
- `cWUSDC / USDT``0xCC0fd27A40775c9AfcD2BBd3f7c902b0192c247A`
- `cWUSDT / cWUSDC``0xe944b7Cb012A0820c07f54D51e92f0e1C74168DB`
- `cWEURC / USDC``0x0bC750F9c6DbDcd76B205695A356491b1B9ef098`
- `cWGBPC / USDC``0x5488042dF882893a3e7074453E2005CaDE4101b0`
- `cWAUDC / USDC``0x6c1bD4F43c5f330E50B61DE81066dA7C61a9b5b4`
- `cWCADC / USDC``0xE0F35b5736FDd0a2F4B618621b0A08F8D8A3f92A`
- `cWJPYC / USDC``0x8A4187dF0A8FE855cC53A4F7B2D8346588Ee9794`
- `cWCHFC / USDC``0x776Ca556deD3245984F504F4bef8Eeec55C50190`
Live execution proof now covers the full first Mainnet DODO bootstrap wave in both directions, plus six non-USD Wave 1 Mainnet pools:
- `cWUSDT / USDC`
- `0xbb0d20a541dfaddcc2922dabcf418fe7e43b04ca203ae3cc70781bbf284267cd``0.001 cWUSDT -> 0.000998 USDC`
- reverse proof: `0x3c9fddd83f127a47a414b554bac85b8ebbd5c1327adb0da2d7f3dfc1e2fca32c``0.001 USDC -> 0.000999 cWUSDT`
- `cWUSDC / USDC`
- `0x0039e2f72f5cb4ff17177528912f78bf838741ef313f2e2c5898f95f3f18b727``0.001 USDC -> 0.000998 cWUSDC`
- reverse proof: `0x9f9456a3d988c96bd4d51c0e910fa6b14056145fa19ef88298695eff8fc9dcbd``0.0009 cWUSDC -> 0.000899 USDC`
- `cWUSDT / USDT`
- `0x400e5671c101ff5bdc3761a683b4bc70b16a25f79269c78782bbc7c07c9d801b``0.001 cWUSDT -> 0.000998 USDT`
- reverse proof: `0xaa12faf0f6b8fca76debde8da7be7933538527b334fe53f4840fbfbe29cb6055``0.001 USDT -> 0.000999 cWUSDT`
- `cWUSDC / USDT`
- `0x7eaf83f6b0858b7dae16724897d041654c91781c67937dce4bda0350d099c2e7``0.001 USDT -> 0.000998 cWUSDC`
- reverse proof: `0xc821b5a69c904ddd3ea09a3277ab7413b572e5e68aa94f088408e3da7c8e283f``0.0009 cWUSDC -> 0.000899 USDT`
- `cWEURC / USDC`
- pool-create proof: `0x4997e53bb35a3916fe808e816cd551cb5d695640eff09262fb31b7e262e86dc3`
- liquidity-seed proof: `0x6c98411c5da0a6a8f7524b230b275ed0055c21ef3bf233cc19c6169f5d1b8d7a``1.25 cWEURC + 1.439625 USDC`
- forward swap proof: `0x1c8e06047ca8459e02f1e8298661b22a75cca34f282c966d4fb430f5e8df808a``0.001 cWEURC -> 0.001149 USDC`
- reverse proof: `0xf18269ac2d42631582b3103828acbdacfa321cb39e65327dcd06c356b68c24a0``0.001 USDC -> 0.000868 cWEURC`
- `cWGBPC / USDC`
- pool-create proof: `0x02ded4ce880cda655fcfb6f83cbb72d596e6c8c3009bb3e8397deeb2c76462d5`
- base-mint proof: `0x66f98488e6bf0e43474dae10117e63bbd12288d6be8a229b3f47ab1ada65075e`
- liquidity-seed proof: `0x35413622cadfca90bb1eb98bca9f21035d21b60c3d8d9065375a97d95069daf5``0.125 cWGBPC + 0.163063 USDC`
- forward swap proof: `0xea885a0bbeda94d2143c7e324e84fc2081bae01471bd4d7aaa703aa33168ecab``0.001 cWGBPC -> 0.001292 USDC`
- reverse proof: `0x5d015907b95dd676afe5a1a8fad08610befbb868b79f15b1df9101a6167dd9f0``0.001 USDC -> 0.000773 cWGBPC`
- `cWAUDC / USDC`
- pool-create proof: `0xbec2550827d6e4df1f32e5ea8f5222b4232002552580ecb8bffbfcba5f0f44a6`
- base-mint proof: `0x219e0f6c5e5b1eaba0acf2781044eb1a2bc2d77e6d326828dd91aeffd1e2eeec`
- liquidity-seed proof: `0x018ed68e440514112a42f7a529b91548143e7da12f89782561c931dadd48ecb7``0.125 cWAUDC + 0.081250 USDC`
- forward swap proof: `0xd67b9ea132526c840bb454eef63ac240e44a89e0009926b257968060fd6a7ed4``0.001 cWAUDC -> 0.000644 USDC`
- reverse proof: `0x71049c141655cd7d72a600da5be030b640b4c968ceb70eb956e700ab7e00a595``0.001 USDC -> 0.001542 cWAUDC`
- `cWCADC / USDC`
- pool-create proof: `0xf9792bf9a6da5823b77dc8fc767f33ce565f94f4fd04f386bd5cf10fd418c84d`
- base-mint proof: `0xa01eddf1c9275bf009af37a70949acff2976bfc863b24ca4e98494bab2e70d5c`
- liquidity-seed proof: `0xae438aab70baf11d82926d4c1753197fc9290cc37758553590db2915936ea213``0.125 cWCADC + 0.091250 USDC`
- forward swap proof: `0x917153557fd98caf907129368094885bcaea8a79f961fb92b9414545057bf92a``0.001 cWCADC -> 0.000723 USDC`
- reverse proof: `0x94dedebd427e4d6361945cd1e9b5a9d71343ec99584a0831e11cfa3a736e3b73``0.001 USDC -> 0.001375 cWCADC`
- `cWJPYC / USDC`
- pool-create proof: `0xe292f2e8cab9ae56e948c74ed8a72808e7bd7209acbdada65606ebbb716e4e1f`
- base-mint proof: `0x47c44682572ab1c2d3fb8ba2a3c293d64c90b4c5846acc1b47c74b7eac941925`
- liquidity-seed proof: `0x59c73541ed0168dad2d8a3ed8be8aa6046fd66d654c211c161336d6e293f2eca``0.125 cWJPYC + 0.000838 USDC`
- forward swap proof: `0x8abb8effd324e2d3dead4fbdc7857fd6997e74f4c7901ecc6de3a8a837760113``0.001 cWJPYC -> 0.000006 USDC`
- reverse proof: `0x7fb415f7e3c3906f8c5ba08b41451f5a30e5809cb4788105af08b4e4e31e2cb8``0.000100 USDC -> 0.013398 cWJPYC`
- `cWCHFC / USDC`
- pool-create proof: `0x077ecc6b7ffc28faff37be75b8992f3b033eb76f14734bcb9d4acd7b8a3e6b61`
- base-mint proof: `0x139b910a1bebb1d2683b91326bfd6798a7eff1042ed72191810411b6efc92095`
- liquidity-seed proof: `0x14b0cde93a07f56c542e1a3a6f61126ddcbfba0ed997b234ed8fd85f0c847715``0.125 cWCHFC + 0.138250 USDC`
- forward swap proof: `0xb1159e8615c7a66aa10938909cb43d149781002d6f6133a7f1e997d3653fdc4f``0.001 cWCHFC -> 0.001096 USDC`
- reverse proof: `0x82ae8d2bfce43e67d3dd2570eda619c9d5b310a0b48b40c71e5813d793c8be8f``0.001 USDC -> 0.000911 cWCHFC`
Repeatable operator helper:
```bash
bash scripts/deployment/run-mainnet-public-dodo-cw-swap.sh \
--pair=cweurc-usdc \
--direction=base-to-quote \
--amount=1000 \
--dry-run
```
Important quote/read-path nuance:
- the live Mainnet DODO pools can execute swaps
- direct hosted `querySellBase` / `querySellQuote` reads may still revert
- the repo now carries a reserve-fallback quote path in `DODOPMMProvider.sol` for future deployments
- the repeatable swap helper detects direct query success and otherwise uses a conservative reserve-based quote with explicit `quoteSource` output
- `bash scripts/verify/check-mainnet-public-dodo-cw-bootstrap-pools.sh` now verifies all `10` recorded Mainnet public DODO pools are still mapped, funded, and dry-run routable
Important distinction:
- `Chain 138` canonical routing is a separate surface.
- On Chain 138, `DODO PMM`, upstream-native `Uniswap v3`, and the funded pilot-compatible `Balancer`, `Curve 3`, and `1inch` venues are live.
- That does **not** mean public-chain `cW*` liquidity is live.
---
## Remaining blockers
- Add the Chain 138 `ETH` / `WETH` completion surface:
- freeze `ETH`, `WETH9`, and `WETH10` oracle policy
- keep wrapper parity inside the `0.00001` target band
- fund the first anchor pools: `cUSDT/cUSDC/USDT/USDC <-> WETH`
- expose the resulting market feed publicly
- Enable transport for Wave 1: `EUR`, `JPY`, `GBP`, `AUD`, `CAD`, `CHF`, `XAU`
- Extend the first public-chain `cW*` pool wave beyond the now-seeded Mainnet `cWEURC / USDC`, `cWGBPC / USDC`, `cWAUDC / USDC`, `cWCADC / USDC`, `cWJPYC / USDC`, and `cWCHFC / USDC` rows and keep filling the tracked public mesh
- Then expose the later pool waves into the public protocol rows for `Uniswap v3`, `Balancer`, `Curve 3`, and `1inch`
- Continue the ranked GRU backlog after Wave 1
- Keep Solana and other non-EVM targets in the planned / relay-dependent bucket until they have real transport surfaces
For the concrete remediation path for each blocker, use the queue JSON `resolutionMatrix` or the operator doc below.
---
## Related
- [DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS.md](DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS.md)
- [PMM_DEX_ROUTING_STATUS.md](PMM_DEX_ROUTING_STATUS.md)
- [CW_TOKENS_AND_NETWORKS.md](CW_TOKENS_AND_NETWORKS.md)
- [GRU_GLOBAL_PRIORITY_CROSS_CHAIN_ROLLOUT.md](../04-configuration/GRU_GLOBAL_PRIORITY_CROSS_CHAIN_ROLLOUT.md)
- [GRU_V2_PUBLIC_DEPLOYMENT_QUEUE.md](../03-deployment/GRU_V2_PUBLIC_DEPLOYMENT_QUEUE.md)
- [GRU_V2_BLOCKER_RESOLUTION_MATRIX.md](../03-deployment/GRU_V2_BLOCKER_RESOLUTION_MATRIX.md)
- [CHAIN138_ETH_WETH_ORACLE_PEG_AND_LIQUIDITY_PLAN.md](../03-deployment/CHAIN138_ETH_WETH_ORACLE_PEG_AND_LIQUIDITY_PLAN.md)
- [REMAINING_SUMMARY.md](../00-meta/REMAINING_SUMMARY.md)

View File

@@ -1,7 +1,8 @@
# Hardware inventory — master reference
**Last updated:** 2026-03-03
**Purpose:** Single source of truth for total server, workstation, switching, and gateway hardware.
**Last updated:** 2026-04-07
**Purpose:** Single source of truth for total server, workstation, switching, and gateway hardware.
**Live cluster + LAN edge:** newest `reports/status/hardware_and_connected_inventory_*.md` (refreshed by `scripts/verify/poll-proxmox-cluster-hardware.sh` + LAN probes).
---
@@ -9,8 +10,8 @@
| Type | Count | Model / notes | Role |
|------|-------|----------------|------|
| **Dell PowerEdge R630** | **13** | 2-socket, ECC, 2.5" bays | Proxmox cluster nodes (r630-01 … r630-13); IP plan 192.168.11.1123. Currently 2 active (r630-01, r630-02); r630-03/04 documented powered off. See [R630_13_NODE_DOD_HA_MASTER_PLAN.md](../02-architecture/R630_13_NODE_DOD_HA_MASTER_PLAN.md). |
| **Dell PowerEdge R750** | **3** | 2U, 2-socket, NVMe/SSD, GPU-capable | **GPU/AI tier**assign IPs 192.168.11.24.26; 24 PCIe GPUs per node (e.g. A6000, L40S) for ML/inference. *Alternative:* [2× XE9680](XE9680_VS_R750_DECISION.md) (16× A100 80GB) for heavy AI/training instead of 3× R750. |
| **Dell PowerEdge R630** | **13** | 2-socket, ECC, 2.5" bays | Proxmox cluster nodes (r630-01 … r630-13); IP plan 192.168.11.1123. **Live in cluster (2026-04-07):** ml110 + **r630-01 r630-04** (five votes, quorum OK). r630-05 … r630-13 not on LAN on last sweep. See [R630_13_NODE_DOD_HA_MASTER_PLAN.md](../02-architecture/R630_13_NODE_DOD_HA_MASTER_PLAN.md). |
| **Dell PowerEdge R750** | **3** | 2U, 2-socket, NVMe/SSD, GPU-capable | **GPU/AI tier**planned IPs 192.168.11.24.26. **As of 2026-04-07:** `.26` is **not** an R750; it hosts **VMID 105** legacy NPM (OpenResty). `.24`/`.25` unused on last ping sweep. *Alternative:* [2× XE9680](XE9680_VS_R750_DECISION.md) (16× A100 80GB) for heavy AI/training instead of 3× R750. |
**R630 IP plan (13 nodes):** 192.168.11.11 192.168.11.23 (r630-01 … r630-13).
**R750 IP suggestion:** 192.168.11.24 192.168.11.26 (r750-01, r750-02, r750-03). Document in `config/ip-addresses.conf` as nodes are brought online.
@@ -21,9 +22,9 @@
| Type | Count | Model / notes | Role |
|------|-------|----------------|------|
| **Dell Precision 7920** | **2** | Tower workstation, multi-GPU capable | Admin, dev, or build workstations; assign IPs in 192.168.11.x (e.g. .30.31); connect to management LAN and/or 10G if NICs support. |
| **Dell Precision 7920** | **2** | Tower workstation, multi-GPU capable | Admin, dev, or build workstations; assign explicit unused IPs in 192.168.11.x when provisioned; connect to management LAN and/or 10G if NICs support. |
**7920 IP suggestion:** 192.168.11.30 192.168.11.31 (workstation-01, workstation-02).
**7920 IP note:** Do not assume `.30` or `.31`. `.30` is currently spare after Omada retirement, and `.31` is assigned to Gitea.
---
@@ -52,6 +53,7 @@
## References
- **Cluster + connected devices (automated):** [hardware_and_connected_inventory_20260407_214748.md](../../reports/status/hardware_and_connected_inventory_20260407_214748.md) (newer timestamped files may exist in `reports/status/`)
- **13-node architecture:** [02-architecture/R630_13_NODE_DOD_HA_MASTER_PLAN.md](../02-architecture/R630_13_NODE_DOD_HA_MASTER_PLAN.md)
- **Network + cabling checklist:** [13_NODE_NETWORK_AND_CABLING_CHECKLIST.md](13_NODE_NETWORK_AND_CABLING_CHECKLIST.md)
- **Bring-online checklist:** [13_NODE_AND_ASSETS_BRING_ONLINE_CHECKLIST.md](13_NODE_AND_ASSETS_BRING_ONLINE_CHECKLIST.md)

View File

@@ -62,16 +62,16 @@ This document maps all **private**, **public**, **reserve**, and **stabilization
| Pool Pair | Type | DEX | Status | Notes |
|-----------|------|-----|--------|-------|
| cUSDT / cUSDC | Public | DODO PMM | ✅ **Funded (live)** | Pool: `0xff8d3b8fDF7B112759F076B69f4271D4209C0849`; seeded `10,000,000 / 10,000,000` |
| cUSDT / USDT (official mirror) | Public | DODO PMM | ✅ **Funded (live)** | Pool: `0x6fc60DEDc92a2047062294488539992710b99D71`; seeded `10,000,000 / 10,000,000` |
| cUSDC / USDC (official mirror) | Public | DODO PMM | ✅ **Funded (live)** | Pool: `0x0309178ae30302D83c76d6Dd402a684eF3160eec`; seeded `10,000,000 / 10,000,000` |
| cUSDT / cUSDC | Public | DODO PMM | ✅ **Funded (live)** | Pool: `0x9e89bAe009adf128782E19e8341996c596ac40dC`; seeded on the canonical official-DVM stack and recalibrated 2026-04-02 with `i=1e18`, `k=0` |
| cUSDT / USDT (official mirror) | Public | DODO PMM | ✅ **Funded (live)** | Pool: `0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66`; seeded on the canonical official-DVM stack and recalibrated 2026-04-02 with `i=1e18`, `k=0` |
| cUSDC / USDC (official mirror) | Public | DODO PMM | ✅ **Funded (live)** | Pool: `0xc39B7D0F40838cbFb54649d327f49a6DAC964062`; seeded on the canonical official-DVM stack and recalibrated 2026-04-02 with `i=1e18`, `k=0` |
| cUSDT / XAU (cXAUC) | Public | DODO PMM | ✅ **Funded (live)** | Pool: `0x1AA55E2001E5651349AfF5A63FD7A7Ae44f0F1b0`; reserves `2,666,965 cUSDT / 519.477 cXAUC` |
| cUSDC / XAU (cXAUC) | Public | DODO PMM | ✅ **Funded (live)** | Pool: `0xEA9Ac6357CaCB42a83b9082B870610363B177cBa`; reserves `1,000,000 cUSDC / 194.782554 cXAUC` |
| cEURT / XAU (cXAUC) | Public | DODO PMM | ✅ **Funded (live)** | Pool: `0xbA99bc1eAAC164569d5AcA96C806934DDaF970Cf`; reserves `1,000,000 cEURT / 225.577676 cXAUC` |
**Purpose:** User routing, price discovery, flash loan access. **Not** primary stabilization.
**Contracts:** `DODOPMMIntegration.sol` at `0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d`; **DODOPMMProvider** at `0x5CAe6Ce155b7f08D3a956F5Dc82fC9945f29B381`; public stable and public XAU pools are live and funded. **Full mesh:** [PMM_FULL_MESH_AND_PUBLIC_SINGLE_SIDED_PLAN.md](../03-deployment/PMM_FULL_MESH_AND_PUBLIC_SINGLE_SIDED_PLAN.md) and `create-pmm-full-mesh-chain138.sh` (all c* vs c* + optional c* vs official). **Add liquidity:** [ADD_LIQUIDITY_PMM_CHAIN138_RUNBOOK.md](../03-deployment/ADD_LIQUIDITY_PMM_CHAIN138_RUNBOOK.md). **Pre-deployment steps:** [PRE_DEPLOYMENT_CHECKLIST.md](../03-deployment/PRE_DEPLOYMENT_CHECKLIST.md).
**Contracts:** `DODOPMMIntegration.sol` at `0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895`; **DODOPMMProvider** at `0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e`; **DODO Vending Machine / adapter** at `0xb6D9EF3575bc48De3f011C310DC24d87bEC6087C`. Public stable pools above are the current canonical routing set and were rebuilt on 2026-04-02 with `i=1e18`, `k=0` for true 1:1 stable quoting. The XAU pools below remain deployed on the older PMM phase until explicitly migrated. **Add liquidity:** [ADD_LIQUIDITY_PMM_CHAIN138_RUNBOOK.md](../03-deployment/ADD_LIQUIDITY_PMM_CHAIN138_RUNBOOK.md). **Pre-deployment steps:** [PRE_DEPLOYMENT_CHECKLIST.md](../03-deployment/PRE_DEPLOYMENT_CHECKLIST.md).
**Config:** `CHAIN_138_DODO_PMM_INTEGRATION` set in .env; `CHAIN_138_DODO_POOL_MANAGER`, `CHAIN_138_DODO_VENDING_MACHINE` (optional).
**Source:** [VAULT_SYSTEM_MASTER_TECHNICAL_PLAN.md](../VAULT_SYSTEM_MASTER_TECHNICAL_PLAN.md) §4, [DODO_PMM_INTEGRATION.md](../../smom-dbis-138/docs/integration/DODO_PMM_INTEGRATION.md)
@@ -169,9 +169,15 @@ Not liquidity pools per se; they support XAU triangulation for private mesh pari
M1 tokens on Chain 138 (cUSDT, cUSDC, cAUSDT, cEURC, cEURT, cUSDW) are bridged to public chains as **cW\*** wrappers (cWUSDT, cWUSDC, etc.). The intended public-chain stabilization model uses **single-sided PMM edge pools** (cW* / USDC, cW* / USDT, etc.) plus a **bot-driven stabilization mesh** when those components are deployed. Specs, pool matrix, peg bands, and deployment recipe:
**Current repo reality:** `cross-chain-pmm-lps/config/deployment-status.json` records cW token addresses on the supported public EVM chains and now includes the first live Mainnet DODO PMM cW pools: `cWUSDT/USDC`, `cWUSDC/USDC`, `cWUSDT/USDT`, `cWUSDC/USDT`, **`cWUSDT/cWUSDC`** (`0xe944b7Cb012A0820c07f54D51e92f0e1C74168DB`, one vault, both swap directions), and the first six non-USD Wave 1 rows `cWEURC/USDC` (`0x0bC750F9c6DbDcd76B205695A356491b1B9ef098`), `cWGBPC/USDC` (`0x5488042dF882893a3e7074453E2005CaDE4101b0`), `cWAUDC/USDC` (`0x6c1bD4F43c5f330E50B61DE81066dA7C61a9b5b4`), `cWCADC/USDC` (`0xE0F35b5736FDd0a2F4B618621b0A08F8D8A3f92A`), `cWJPYC/USDC` (`0x8A4187dF0A8FE855cC53A4F7B2D8346588Ee9794`), and `cWCHFC/USDC` (`0x776Ca556deD3245984F504F4bef8Eeec55C50190`). The repo still does **not** currently assert any live public cW* `Balancer`, `Curve`, `Uniswap`, or `1inch` venues, and the broader multi-chain cW* mesh remains incomplete. Avalanche still has the proven `cUSDT -> cWUSDT` mint corridor, but not a documented same-chain cW* / stable pool there.
**Design gap closed:** `cross-chain-pmm-lps/config/pool-matrix.json` now covers the full GRU Wave 1 wrapped set (`cWEURC`, `cWEURT`, `cWGBPC`, `cWGBPT`, `cWAUDC`, `cWJPYC`, `cWCHFC`, `cWCADC`, `cWXAUC`, `cWXAUT`) across the tracked public EVM chain set. The remaining work is now operator deployment and funding, not missing design coverage.
- **[cross-chain-pmm-lps/README.md](../../cross-chain-pmm-lps/README.md)** — Submodule overview and quick start
- **[cross-chain-pmm-lps/docs/06-deployment-recipe.md](../../cross-chain-pmm-lps/docs/06-deployment-recipe.md)** — Step-by-step deployment
- **[cross-chain-pmm-lps/config/](../../cross-chain-pmm-lps/config/)** — token-map.json, pool-matrix.json, peg-bands.json, chains.json
- `bash scripts/verify/check-cw-public-pool-status.sh` — quick repo-state proof that cW tokens may exist while public-chain cW pools remain undeployed
- `bash scripts/verify/check-gru-v2-deployment-queue.sh` — operator-grade queue for Wave 1 transport + first-tier public cW pool rollout
See [SUBMODULE_RELATIONSHIP_MAP.md](SUBMODULE_RELATIONSHIP_MAP.md) for submodule status.

View File

@@ -1,11 +1,13 @@
# Network Configuration Master
**Last Updated:** 2026-02-12
**Last Updated:** 2026-04-03
**Status:** 🟢 Active Master Reference
**Purpose:** Single source of truth for all network configurations (UDM Pro edge, Proxmox hosts, NPMplus, port forwarding)
**Recent:** Option B (RPC via Cloudflare Tunnel) active for 6 RPC hostnames. E2E: [05-network/E2E_CLOUDFLARE_DOMAINS_RUNBOOK.md](../05-network/E2E_CLOUDFLARE_DOMAINS_RUNBOOK.md); Option B: [05-network/OPTION_B_RPC_VIA_TUNNEL_RUNBOOK.md](../05-network/OPTION_B_RPC_VIA_TUNNEL_RUNBOOK.md).
**Proxmox cluster (verified 2026-04-02):** Five nodes, **quorate** (`pvecm`): **ml110** `192.168.11.10`, **r630-01** `.11`, **r630-02** `.12`, **r630-03** `.13`, **r630-04** `.14` (`r630-04.sankofa.nexus`). **r630-03** / **r630-04** remain **empty of guests**; workload stays on `.10``.12`. **Template vs live (read-only):** `bash scripts/verify/audit-proxmox-operational-template.sh` now SSHs **all five** IPs by default (`config/ip-addresses.conf`); ML110 may skip if SSH is down or host repurposed. **2026-04-08:** `config/proxmox-operational-template.json` + `ALL_VMIDS_ENDPOINTS.md` include Order **VMID 10000/10001/10020** (Postgres primary/replica + Redis on r630-01). **Package baseline (operator run):** all five nodes upgraded toward **pve-manager 9.1.7** and kernel **6.17.13-2-pve** (`apt full-upgrade`, **one node at a time**, reboot where a new kernel was installed). **r630-03** and **r630-04** had **no-subscription** apt sources applied first (they previously hit **401** on `enterprise.proxmox.com` without a subscription). **Shared LVM thin storage:** `data` / `local-lvm` in `/etc/pve/storage.cfg` include **ml110,r630-01,r630-03,r630-04**; **r630-04** uses dual SSDs in VG `pve` (~467GiB thin data) plus Ceph OSDs on four SSDs; **r630-03** uses **sda3+sdb** in VG `pve` (~1TiB thin data); **r630-03** **sdcsdh** are **LVM thin pools** **`thin1-r630-03`** … **`thin6-r630-03`** (~226GiB each; provision script in repo). **Other workstations:** if SSH to **r630-04** fails with **host key changed**, run `bash scripts/verify/refresh-proxmox-host-key-r630-04.sh` (or `ssh-keygen -R 192.168.11.14`) after confirming the new key out-of-band.
---
## Network Overview
@@ -17,14 +19,21 @@
- **VLAN:** 11 (MGMT-LAN)
- **DNS Servers:** 8.8.8.8, 8.8.4.4
### Proxmox Hosts (192.168.11.1112; ml110 repurposed)
### Proxmox Hosts (five-node cluster; ml110 still PVE until WAN-aggregator cutover)
| Host | IP Address | Role | Status |
|------|------------|------|--------|
| r630-01 | 192.168.11.11 | Infrastructure, RPC, Services, **CCIP Relay** | ✅ Active |
| r630-02 | 192.168.11.12 | Firefly, NPMplus secondary, MIM4U | ✅ Active |
| Host (short) | **Canonical FQDN** | IP Address | Role | Status |
|--------------|----------------------|------------|------|--------|
| ml110 | **ml110.sankofa.nexus** | 192.168.11.10 | Besu validators/RPC (Chain 138); **still Proxmox** in cluster | ✅ Active |
| r630-01 | **r630-01.sankofa.nexus** | 192.168.11.11 | Infrastructure, RPC, Services, **CCIP Relay** | ✅ Active |
| r630-02 | **r630-02.sankofa.nexus** | 192.168.11.12 | Firefly, NPMplus secondary, MIM4U, Blockscout | ✅ Active |
| r630-03 | **r630-03.sankofa.nexus** | 192.168.11.13 | **Spare** (no LXCs/VMs); **pve** ~1TiB + **thin1-r630-03**…**thin6-r630-03** on 6×SSD | ✅ Active |
| r630-04 | **r630-04.sankofa.nexus** | 192.168.11.14 | **Spare** (no LXCs/VMs); **pve** thin ~467GiB + Ceph OSDs | ✅ Active |
**ML110 (192.168.11.10) repurposed:** ML110 Gen9 is being converted to **OPNsense/pfSense** with 812 GbE, acting as **WAN aggregator** between 610 Spectrum cable modems and the 2× UDM Pro gateways. After repurpose, .10 is the firewall appliance (not Proxmox). See [ML110_OPNSENSE_PFSENSE_WAN_AGGREGATOR.md](ML110_OPNSENSE_PFSENSE_WAN_AGGREGATOR.md). **Before repurpose:** Migrate all containers/VMs off ml110 to r630-01/r630-02 (or other R630s); cluster will be 2 nodes until r630-03+ join.
**Naming:** Proxmox hypervisor **management DNS** uses **`short-hostname.sankofa.nexus`** (same label as the Host column + `.sankofa.nexus`; see `config/ip-addresses.conf` `PROXMOX_FQDN_*`). Use FQDN for SSH, TLS cert SANs, and docs; IPs remain the wire target on VLAN 11. **Verify / bootstrap:** `bash scripts/verify/check-proxmox-mgmt-fqdn.sh` (`--print-hosts` for `/etc/hosts`); `bash scripts/security/ensure-proxmox-ssh-access.sh` (`--fqdn` when DNS exists).
**ML110 (192.168.11.10) repurposed:** ML110 Gen9 is being converted to **OPNsense/pfSense** with 812 GbE, acting as **WAN aggregator** between 610 Spectrum cable modems and the 2× UDM Pro gateways. After repurpose, .10 is the firewall appliance (not Proxmox). See [ML110_OPNSENSE_PFSENSE_WAN_AGGREGATOR.md](ML110_OPNSENSE_PFSENSE_WAN_AGGREGATOR.md). **Before repurpose:** Migrate all containers/VMs off ml110 to r630-01/r630-02 (or other R630s). **r630-03/04** are available as migration targets (no guests; local **data**/**local-lvm** storage live as of 2026-04-02).
**ml110 LVM hygiene (2026-04-02):** Stale **thin** LVs on **ml110** named **`vm-2503-disk-0`**, **`vm-6201-disk-0`**, **`vm-9000-*`** were **removed** after cluster config check: **2503** / **6201** live disks are on **r630-01** / **r630-02** (`/etc/pve/nodes/.../lxc/*.conf`); **9000** had no **`vmlist`** entry. **ml110 `pve-guests.service`:** can stay **`activating (start)`** for days if **`startall`** wedges (historical **`cfs-lock` / `vzstart`** timeouts). That blocks **`apt`** during **`pve-manager` postinst** ( **`systemctl reload-or-restart pvescheduler`** waits on **`pve-guests`** ). **Unblock:** `systemctl list-jobs`, then **`systemctl cancel <jobid>`** for **`pve-guests.service`** and **`pvescheduler.service`**, then **`dpkg --configure -a`** if needed. After a host reboot, confirm **validators** **1003** / **1004** are **running** (`pct start` if not).
**CCIP Relay (r630-01):** Host service at `/opt/smom-dbis-138/services/relay`; relays Chain 138 → Mainnet; uses VMID 2201 (192.168.11.221) for RPC. See [07-ccip/CCIP_RELAY_DEPLOYMENT.md](../07-ccip/CCIP_RELAY_DEPLOYMENT.md).
@@ -32,7 +41,7 @@
**NPMplus #1 (76.53.10.36, LXC VMID 10233):** 192.168.11.166 (eth0) and 192.168.11.167 (eth1). Only **192.168.11.167** is used in UDM Pro port forwarding: 76.53.10.36:80 → 192.168.11.167:80, 76.53.10.36:443 → 192.168.11.167:443. Main d-bis.org, explorer, Option B RPC (6 hostnames), MIM4U, etc.
**NPMplus #3 (76.53.10.38, LXC VMID 10235):** 192.168.11.169 (single NIC). Port forwarding: 76.53.10.38:80/81/443 → 192.168.11.169:80/81/443. **Nathan's core-2 RPC, All Mainnet (Alltra), and HYBX** nodes and services route here. Designated public IP: 76.53.10.42. See [04-configuration/NPMPLUS_ALLTRA_HYBX_MASTER_PLAN.md](../04-configuration/NPMPLUS_ALLTRA_HYBX_MASTER_PLAN.md).
**NPMplus #3 (76.53.10.38, LXC VMID 10235):** 192.168.11.169 (single NIC). Port forwarding: 76.53.10.38:80/81/443 → 192.168.11.169:80/81/443. **Nathan's core-2 RPC, All Mainnet (Alltra), and HYBX** nodes and services route here. Designated public IP: 76.53.10.42. Public service names are intended to use the Cloudflare tunnel / proxied `CNAME` path first, with the direct edge kept as management or fallback. See [04-configuration/NPMPLUS_ALLTRA_HYBX_MASTER_PLAN.md](../04-configuration/NPMPLUS_ALLTRA_HYBX_MASTER_PLAN.md).
**NPMplus #4 (76.53.10.40, LXC VMID 10236):** 192.168.11.170. Port forwarding: 76.53.10.40:80/81/443 → 192.168.11.170:80/81/443; optional 22 → 192.168.11.59 (dev VM). **Dev/Codespaces:** Gitea, Cursor Remote SSH, Proxmox admin panels (pve.r630-01, pve.r630-02). Dedicated Cloudflare Tunnel. *(ml110 repurposed to OPNsense/pfSense WAN aggregator; no longer Proxmox.)* See [04-configuration/DEV_CODESPACES_76_53_10_40.md](../04-configuration/DEV_CODESPACES_76_53_10_40.md) and [04-configuration/DEV_CODESPACES_NEXT_STEPS_CHECKLIST.md](../04-configuration/DEV_CODESPACES_NEXT_STEPS_CHECKLIST.md).
@@ -177,7 +186,7 @@ These IPs are **fixed and permanent**. Scripts and configs must use these values
- **Gateway:** 76.53.10.33 (Spectrum CPE; nmap shows 21, 22, 23, 80, 110, 143, 443, 3389 **filtered** on .33)
- **UDM Pro:** 76.53.10.34 (replaced ER605; edge router)
- **Port forwarding:** 76.53.10.36:80/443 → 192.168.11.167:80/443 (NPMplus). **Origin for public traffic** = 76.53.10.36. Verify 76.53.10.36:80 and :443 are **open from the internet** before using Fastly or direct; see [05-network/EDGE_PORT_VERIFICATION_RUNBOOK.md](../05-network/EDGE_PORT_VERIFICATION_RUNBOOK.md).
- **NPMplus Alltra/HYBX:** 76.53.10.38:80/81/443 → 192.168.11.169:80/81/443 (port forward); 76.53.10.42 designated public IP. See [04-configuration/NPMPLUS_ALLTRA_HYBX_MASTER_PLAN.md](../04-configuration/NPMPLUS_ALLTRA_HYBX_MASTER_PLAN.md).
- **NPMplus Alltra/HYBX:** 76.53.10.38:80/81/443 → 192.168.11.169:80/81/443 (port forward); 76.53.10.42 designated public IP. Public DNS for Alltra/HYBX services should prefer proxied Cloudflare tunnel `CNAME`s rather than direct `A` records to the designated IP. See [04-configuration/NPMPLUS_ALLTRA_HYBX_MASTER_PLAN.md](../04-configuration/NPMPLUS_ALLTRA_HYBX_MASTER_PLAN.md).
- **NPMplus Fourth (dev/Codespaces):** 76.53.10.40:80/81/443 → 192.168.11.170; optional 22 → 192.168.11.59. See [04-configuration/UDM_PRO_DEV_CODESPACES_PORT_FORWARD.md](../04-configuration/UDM_PRO_DEV_CODESPACES_PORT_FORWARD.md).
- **Usable:** 76.53.10.35-46 (13 IPs)
- **Status:** ✅ Active
@@ -260,6 +269,8 @@ Direct to RPC Nodes (192.168.11.211-243:8545/8546)
## Related Documents
- **[NETWORK_CONFIGURATION_MASTER.md](NETWORK_CONFIGURATION_MASTER.md)** (this doc) - IP matrix above
- **[IT_OPS_EDGE_DISCOVERY_IPS.md](../04-configuration/IT_OPS_EDGE_DISCOVERY_IPS.md)** - LAN discovery IPs (.23, .26 VMID 105 NPM, .2 UDM HA, workstations) for IT IPAM
- **[VLAN_FLAT_11_TO_SEGMENTED_RUNBOOK.md](../03-deployment/VLAN_FLAT_11_TO_SEGMENTED_RUNBOOK.md)** - ordered migration from flat VLAN 11 to segmented VLANs (operator checklist)
- **[HARDWARE_INVENTORY_MASTER.md](HARDWARE_INVENTORY_MASTER.md)** - 13× R630, 3× R750, 2× Dell 7920, 2× UDM Pro, 2× UniFi XG 10G, ml110
- **[13_NODE_NETWORK_AND_CABLING_CHECKLIST.md](13_NODE_NETWORK_AND_CABLING_CHECKLIST.md)** - VLANs, topology, XG port mapping
- **[13_NODE_AND_ASSETS_BRING_ONLINE_CHECKLIST.md](13_NODE_AND_ASSETS_BRING_ONLINE_CHECKLIST.md)** - Bring-online order for R630/R750/7920/UDM Pro #2

View File

@@ -8,9 +8,13 @@ Remaining actions need network/explorer access. Docs and scripts in repo are com
**Remaining (optional):**
1. **On-chain check:** Run `./scripts/verify/check-contracts-on-chain-138.sh` from a host with RPC access — **Done 2026-02-11** (26/26 OK). Re-run when new contracts deployed.
2. **Blockscout verification:** From host that can reach Blockscout — proxy script or direct forge / manual UI; see [OPERATOR_OPTIONAL_CHECKLIST](OPERATOR_OPTIONAL_CHECKLIST.md) § 1 and [BLOCKSCOUT_VERIFICATION_GUIDE](../08-monitoring/BLOCKSCOUT_VERIFICATION_GUIDE.md).
1. **On-chain check:** Run `./scripts/verify/check-contracts-on-chain-138.sh` from a host with RPC access — current canonical result is **86/86 OK**. Re-run when new contracts are deployed.
2. **Blockscout verification:** From host that can reach Blockscout — proxy script or direct forge / manual UI; see [OPERATOR_OPTIONAL_CHECKLIST](OPERATOR_OPTIONAL_CHECKLIST.md) § 1 and [BLOCKSCOUT_VERIFICATION_GUIDE](../08-monitoring/BLOCKSCOUT_VERIFICATION_GUIDE.md). The cross-chain flash trio is already verified and can be rechecked with `bash scripts/verify/check-cross-chain-flash-infra-chain138.sh`. The DODO v3 pilot verification helper is `bash scripts/verify/verify-dodo-v3-chain138-blockscout.sh`; at present `D3Oracle`, `D3Vault`, `DODOApprove`, and `DODOApproveProxy` are fully source-verified, while `D3MMFactory` and `D3Proxy` currently expose bytecode-only metadata after verification submission.
3. ~~Reconcile `smom-dbis-138/.env`~~**Done 2026-02-11.** One entry per variable; matches CONTRACT_ADDRESSES_REFERENCE § Canonical.
4. ~~Multicall vs Oracle at 0x99b3...~~**Done 2026-02-11.** Confirmed Oracle Aggregator; documented in CONTRACT_ADDRESSES_REFERENCE.
5. ~~Cross-chain flash infra deploy + verify~~**Done 2026-04-03.** Recheck with `bash scripts/verify/check-cross-chain-flash-infra-chain138.sh`.
6. ~~DODO v3 pilot health~~**Done 2026-04-03.** Recheck with `bash scripts/verify/check-dodo-v3-chain138.sh`.
7. ~~DODO v3 stable-feed promotion~~**Done 2026-04-02.** Managed `USDT/USD`, `USDC/USD`, `cUSDT/USD`, and `cUSDC/USD` feeds are live in the pilot; recheck with `bash scripts/verify/check-dodo-v3-chain138.sh`.
8. ~~DODO v3 `WETH10` oracle promotion~~**Done 2026-04-02.** `D3Oracle` now uses `Oracle_Aggregator=0x99b3511a2d315a497c8112c1fdd8d508d4b1e506` for `WETH10`; recheck with `bash scripts/verify/check-dodo-v3-chain138.sh`.
All other optional tasks (trustless bridge, mainnet, CREATE2, vault, Dodo, eMoney, channels): see [OPERATOR_OPTIONAL_CHECKLIST](OPERATOR_OPTIONAL_CHECKLIST.md).
All other optional tasks (broader trustless expansion, mainnet, CREATE2 expansion, vault, public Dodo promotion, eMoney, channels beyond the deployed Chain 138 set): see [OPERATOR_OPTIONAL_CHECKLIST](OPERATOR_OPTIONAL_CHECKLIST.md). For DODO v3 specifically, planner-v2 promotion, public `/token-aggregation/api/v2` publication, and router-v2 execution are now live for the canonical `WETH10 <-> USDT` pilot lane; the remaining promotion work is any later decision to move D3 beyond the current private-pilot posture into the canonical public execution set.

View File

@@ -17,6 +17,10 @@ source smom-dbis-138/.env 2>/dev/null
```
- RPC and Blockscout must be reachable (set `RPC_URL_138` for Core; explorer.d-bis.org for Blockscout).
- If submission returns "Invalid JSON", use Option B or C.
- **DODO v3 pilot helper:** `bash scripts/verify/verify-dodo-v3-chain138-blockscout.sh`
- Confirms the core DODO v3 pilot control plane on Chain 138.
- Current fully materialized Blockscout-verification set: `D3Oracle`, `D3Vault`, `DODOApprove`, `DODOApproveProxy`.
- Current explorer caveat: `D3MMFactory` and `D3Proxy` accept verification submissions but still expose bytecode-only metadata in Blockscout instead of the full source-verification fields.
**Option B — Direct Forge (same host, explorer reachable):**
```bash

View File

@@ -1,5 +1,7 @@
# Operator actions — run summary
> Historical note: this document captures the 2026-02-11 operator pass. The current canonical Chain 138 bytecode target has since expanded to **67/67** and now includes the stable PMM stack, ISO20022Router, and the cross-chain flash trio.
**Date:** 2026-02-11
**Actions attempted:** All four operator actions from [CONTRACT_NEXT_STEPS_LIST](CONTRACT_NEXT_STEPS_LIST.md).
@@ -11,7 +13,7 @@
|-------|----------------|-----|
| **DNS** | `rpc-core.d-bis.org` / `explorer.d-bis.org` don't resolve off-LAN (e.g. "Could not resolve host"). | Run from VPN or a host with internal DNS; or pass a reachable RPC: `./scripts/verify/check-contracts-on-chain-138.sh <RPC_URL>`. |
| **Private LAN** | Set `RPC_URL_138` (e.g. `http://192.168.11.211:8545`); Blockscout `192.168.11.140:4000`. Only reachable on 192.168.11.x LAN. | Run scripts from a host on that LAN or connected via VPN. |
| **Script behavior** | The on-chain check script now loads `config/ip-addresses.conf` and prints a clear **WARN** when RPC is unreachable. On LAN (no RPC arg), it uses that config and gets **26/26 OK**. | Use `SKIP_EXIT=1` for report-only when RPC is unreachable. |
| **Script behavior** | The on-chain check script now loads `config/ip-addresses.conf` and prints a clear **WARN** when RPC is unreachable. At the time of this run it reported **26/26 OK**; the current canonical target is **67/67**. | Use `SKIP_EXIT=1` for report-only when RPC is unreachable. |
---
@@ -19,7 +21,7 @@
**Command run:** `./scripts/verify/check-contracts-on-chain-138.sh` (or with `https://rpc-core.d-bis.org` explicitly).
**Result (2026-02-11 re-run):** **26 present, 0 missing** when RPC was reachable. All 26 canonical addresses have bytecode on-chain. When RPC is unreachable, script reports all MISS and prints WARN.
**Result (2026-02-11 re-run):** **26 present, 0 missing** when RPC was reachable. At that time, all 26 canonical addresses had bytecode on-chain. The current canonical target is **67 present, 0 missing**. When RPC is unreachable, the script reports all MISS and prints WARN.
**To re-run:** Run from a host with RPC access: `./scripts/verify/check-contracts-on-chain-138.sh` (uses `RPC_URL_138`), or pass URL as argument. Use `SKIP_EXIT=1` for report-only when RPC is unreachable.
@@ -55,7 +57,7 @@
| Action | Status | From this host | To complete from LAN/VPN |
|---------------------|---------------|------------------------|-------------------------------|
| On-chain check | **26/26 OK** (2026-02-11) | RPC reachable; all 26 addresses present | Re-run when new contracts deployed |
| On-chain check | **26/26 OK** (2026-02-11 historical run) | RPC reachable; all 26 addresses present at that time | Current target is **67/67**; re-run when new contracts deployed |
| Blockscout verify | Attempted; submission can fail (Invalid JSON) | Proxy runs; Blockscout API may need manual verify | Manual verify at explorer or fix API |
| Reconcile .env | **Done** | .env already matched | None |
| Multicall vs Oracle | **Done** 2026-02-11 | Confirmed via RPC (Oracle Aggregator) | Documented in CONTRACT_ADDRESSES_REFERENCE |

View File

@@ -1,18 +1,42 @@
# PMM Liquidity Pools & DEX/DeFi Routing — Full System Status
**Last Updated:** 2026-03-26
**Last Updated:** 2026-04-03
**Purpose:** Single reference for DEX/DeFi and PMM liquidity pool routing — what is designed, deployed, and in use.
---
## Executive summary (updated 2026-03-26)
## Executive summary (updated 2026-04-01)
- **DODOPMMIntegration** is **deployed** on Chain 138 at `0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d`. The corrected canonical stack now has **104 desired-state pools aligned**.
- **DODOPMMProvider** is **deployed** at `0x5CAe6Ce155b7f08D3a956F5Dc82fC9945f29B381` with **104/104 provider routes aligned** to the integration.
- **Live funded public pools** are: cUSDT/cUSDC (`0xff8d3b8fDF7B112759F076B69f4271D4209C0849`), cUSDT/USDT (`0x6fc60DEDc92a2047062294488539992710b99D71`), cUSDC/USDC (`0x9f74Be42725f2Aa072a9E0CdCce0E7203C510263`), cUSDT/cXAUC (`0x94316511621430423a2cff0C036902BAB4aA70c2`), cUSDC/cXAUC (`0x7867D58567948e5b9908F1057055Ee4440de0851`), cEURT/cXAUC (`0x505403093826D494983A93b43Aa0B8601078A44e`).
- **EnhancedSwapRouter** is **not deployed**; multi-provider DEX routing (Uniswap/Balancer/Curve/1inch) is not live.
- **Token-aggregation** service is implemented and runnable (single-hop quotes; can index DODO pools). **Bridge quote API** (swap+bridge+swap) is implemented.
- **Full system status:** PMM liquidity and DODOPMMProvider routing are **deployed and in use** on Chain 138. Remaining: add liquidity to pools as needed; optionally deploy EnhancedSwapRouter when other DEX pools exist on 138.
- **DODOPMMIntegration** is **deployed** on Chain 138 at `0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895`.
- **DODOPMMProvider** is **deployed** at `0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e` and now points at the official DODO V2 DVM-backed integration.
- **Official DODO V2 DVMFactory** is **deployed** at `0xc93870594C7f83A0aE076c2e30b494Efc526b68E`; the canonical `DODO_VENDING_MACHINE_ADDRESS` / adapter is `0xb6D9EF3575bc48De3f011C310DC24d87bEC6087C`.
- **Canonical public pools on the current stack** are:
- cUSDT/cUSDC: `0x9e89bAe009adf128782E19e8341996c596ac40dC` — funded
- cUSDT/USDT: `0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66` — funded
- cUSDC/USDC: `0xc39B7D0F40838cbFb54649d327f49a6DAC964062` — funded
- canonical stable-pair calibration: `i=1e18`, `k=0`, `lpFeeRate=10 bps`, `isOpenTWAP=false`
- **EnhancedSwapRouterV2** is **deployed** and the Chain 138 multi-provider venue layer is now live for the canonical upstream-native `Uniswap_v3` lane plus the funded pilot-compatible `Balancer`, `Curve_3`, and `1inch` execution venues.
- **Canonical planner exposure is live:** the published `/token-aggregation/api/v2` capability surface marks `uniswap_v3`, `balancer`, `curve`, and `one_inch` as live on Chain 138, and the canonical `WETH -> USDT` routing asset lane now resolves publicly through the **upstream-native Uniswap v3 router/quoter** (`0xde9...` / `0x6abb...`) and the corrected fee-500 pool `0xa893...`. This uses the routing token `WETH` (`0xC02a...`), not the separate `CCIPWETH9Bridge` / `CCIPWETH10Bridge` transport addresses.
- **Do not conflate Chain 138 venues with public-chain cW* liquidity:** the live `Uniswap_v3`, `Balancer`, `Curve_3`, and `1inch` venues described here are for canonical Chain 138 routing lanes. The public-chain `cW*` **token mesh is live on the currently loaded 10-chain public EVM set**, and the first live public `cW*` pool wave is now recorded on Mainnet through `DODO PMM` (`cWUSDT/USDC`, `cWUSDC/USDC`, `cWUSDT/USDT`, `cWUSDC/USDT`, `cWUSDT/cWUSDC`, `cWEURC/USDC`, `cWGBPC/USDC`, `cWAUDC/USDC`, `cWCADC/USDC`, `cWJPYC/USDC`, `cWCHFC/USDC`). The broader public-chain `cW*` mesh is still partial and not yet live across `Uniswap`, `Balancer`, `Curve`, or `1inch`.
- **The full first Mainnet public DODO cW bootstrap wave is now exercised live in both directions:** using `DODOPMMIntegration_MAINNET=0xa9F284eD010f4F7d7F8F201742b49b9f58e29b84`, the recorded bootstrap pools now have bidirectional proof swaps:
- `cWUSDT/USDC`: `0xbb0d20a541dfaddcc2922dabcf418fe7e43b04ca203ae3cc70781bbf284267cd` (`0.001 cWUSDT -> 0.000998 USDC`) and `0x3c9fddd83f127a47a414b554bac85b8ebbd5c1327adb0da2d7f3dfc1e2fca32c` (`0.001 USDC -> 0.000999 cWUSDT`)
- `cWUSDC/USDC`: `0x0039e2f72f5cb4ff17177528912f78bf838741ef313f2e2c5898f95f3f18b727` (`0.001 USDC -> 0.000998 cWUSDC`) and `0x9f9456a3d988c96bd4d51c0e910fa6b14056145fa19ef88298695eff8fc9dcbd` (`0.0009 cWUSDC -> 0.000899 USDC`)
- `cWUSDT/USDT`: `0x400e5671c101ff5bdc3761a683b4bc70b16a25f79269c78782bbc7c07c9d801b` (`0.001 cWUSDT -> 0.000998 USDT`) and `0xaa12faf0f6b8fca76debde8da7be7933538527b334fe53f4840fbfbe29cb6055` (`0.001 USDT -> 0.000999 cWUSDT`)
- `cWUSDC/USDT`: `0x7eaf83f6b0858b7dae16724897d041654c91781c67937dce4bda0350d099c2e7` (`0.001 USDT -> 0.000998 cWUSDC`) and `0xc821b5a69c904ddd3ea09a3277ab7413b572e5e68aa94f088408e3da7c8e283f` (`0.0009 cWUSDC -> 0.000899 USDT`)
- **The first non-USD Wave 1 Mainnet public DODO row is now live:** `cWEURC/USDC` pool `0x0bC750F9c6DbDcd76B205695A356491b1B9ef098` was created in `0x4997e53bb35a3916fe808e816cd551cb5d695640eff09262fb31b7e262e86dc3`, seeded in `0x6c98411c5da0a6a8f7524b230b275ed0055c21ef3bf233cc19c6169f5d1b8d7a` with `1.25 cWEURC` and `1.439625 USDC`, and exercised bidirectionally by `0x1c8e06047ca8459e02f1e8298661b22a75cca34f282c966d4fb430f5e8df808a` (`0.001 cWEURC -> 0.001149 USDC`) and `0xf18269ac2d42631582b3103828acbdacfa321cb39e65327dcd06c356b68c24a0` (`0.001 USDC -> 0.000868 cWEURC`).
- **The second non-USD Wave 1 Mainnet public DODO row is now live:** `cWGBPC/USDC` pool `0x5488042dF882893a3e7074453E2005CaDE4101b0` was created in `0x02ded4ce880cda655fcfb6f83cbb72d596e6c8c3009bb3e8397deeb2c76462d5`, base inventory was minted in `0x66f98488e6bf0e43474dae10117e63bbd12288d6be8a229b3f47ab1ada65075e`, the pool was seeded in `0x35413622cadfca90bb1eb98bca9f21035d21b60c3d8d9065375a97d95069daf5` with `0.125 cWGBPC` and `0.163063 USDC`, and it is now exercised bidirectionally by `0xea885a0bbeda94d2143c7e324e84fc2081bae01471bd4d7aaa703aa33168ecab` (`0.001 cWGBPC -> 0.001292 USDC`) and `0x5d015907b95dd676afe5a1a8fad08610befbb868b79f15b1df9101a6167dd9f0` (`0.001 USDC -> 0.000773 cWGBPC`).
- **The third non-USD Wave 1 Mainnet public DODO row is now live:** `cWAUDC/USDC` pool `0x6c1bD4F43c5f330E50B61DE81066dA7C61a9b5b4` was created in `0xbec2550827d6e4df1f32e5ea8f5222b4232002552580ecb8bffbfcba5f0f44a6`, base inventory was minted in `0x219e0f6c5e5b1eaba0acf2781044eb1a2bc2d77e6d326828dd91aeffd1e2eeec`, seeded in `0x018ed68e440514112a42f7a529b91548143e7da12f89782561c931dadd48ecb7` with `0.125 cWAUDC` and `0.081250 USDC`, and exercised bidirectionally by `0xd67b9ea132526c840bb454eef63ac240e44a89e0009926b257968060fd6a7ed4` (`0.001 cWAUDC -> 0.000644 USDC`) and `0x71049c141655cd7d72a600da5be030b640b4c968ceb70eb956e700ab7e00a595` (`0.001 USDC -> 0.001542 cWAUDC`).
- **The fourth non-USD Wave 1 Mainnet public DODO row is now live:** `cWCADC/USDC` pool `0xE0F35b5736FDd0a2F4B618621b0A08F8D8A3f92A` was created in `0xf9792bf9a6da5823b77dc8fc767f33ce565f94f4fd04f386bd5cf10fd418c84d`, base inventory was minted in `0xa01eddf1c9275bf009af37a70949acff2976bfc863b24ca4e98494bab2e70d5c`, seeded in `0xae438aab70baf11d82926d4c1753197fc9290cc37758553590db2915936ea213` with `0.125 cWCADC` and `0.091250 USDC`, and exercised bidirectionally by `0x917153557fd98caf907129368094885bcaea8a79f961fb92b9414545057bf92a` (`0.001 cWCADC -> 0.000723 USDC`) and `0x94dedebd427e4d6361945cd1e9b5a9d71343ec99584a0831e11cfa3a736e3b73` (`0.001 USDC -> 0.001375 cWCADC`).
- **The fifth non-USD Wave 1 Mainnet public DODO row is now live:** `cWJPYC/USDC` pool `0x8A4187dF0A8FE855cC53A4F7B2D8346588Ee9794` was created in `0xe292f2e8cab9ae56e948c74ed8a72808e7bd7209acbdada65606ebbb716e4e1f`, base inventory was minted in `0x47c44682572ab1c2d3fb8ba2a3c293d64c90b4c5846acc1b47c74b7eac941925`, seeded in `0x59c73541ed0168dad2d8a3ed8be8aa6046fd66d654c211c161336d6e293f2eca` with `0.125 cWJPYC` and `0.000838 USDC`, and exercised bidirectionally by `0x8abb8effd324e2d3dead4fbdc7857fd6997e74f4c7901ecc6de3a8a837760113` (`0.001 cWJPYC -> 0.000006 USDC`) and `0x7fb415f7e3c3906f8c5ba08b41451f5a30e5809cb4788105af08b4e4e31e2cb8` (`0.000100 USDC -> 0.013398 cWJPYC`).
- **The sixth non-USD Wave 1 Mainnet public DODO row is now live:** `cWCHFC/USDC` pool `0x776Ca556deD3245984F504F4bef8Eeec55C50190` was created in `0x077ecc6b7ffc28faff37be75b8992f3b033eb76f14734bcb9d4acd7b8a3e6b61`, base inventory was minted in `0x139b910a1bebb1d2683b91326bfd6798a7eff1042ed72191810411b6efc92095`, seeded in `0x14b0cde93a07f56c542e1a3a6f61126ddcbfba0ed997b234ed8fd85f0c847715` with `0.125 cWCHFC` and `0.138250 USDC`, and exercised bidirectionally by `0xb1159e8615c7a66aa10938909cb43d149781002d6f6133a7f1e997d3653fdc4f` (`0.001 cWCHFC -> 0.001096 USDC`) and `0x82ae8d2bfce43e67d3dd2570eda619c9d5b310a0b48b40c71e5813d793c8be8f` (`0.001 USDC -> 0.000911 cWCHFC`).
- **Quote/read-path nuance:** those same Mainnet pools can still revert on direct hosted `querySellBase` / `querySellQuote` reads. Treat affected rows as **partial DODO surface / integration-only** pools: reserve and mid-price getters may still work, but the public `querySell*` path and raw `sellBase` / `sellQuote` assumptions are not reliable. The repo now carries two fixes: `DODOPMMProvider.sol` has a reserve-based quote fallback for future deployments, and `bash scripts/deployment/run-mainnet-public-dodo-cw-swap.sh` now tries direct reads first, reports `quoteSource`, classifies the pool surface, and refuses unsafe raw direct fallback on integration-only pools.
- **Canonical public status surface:** use `bash scripts/verify/check-gru-v2-public-protocols.sh` or `https://explorer.d-bis.org/config/GRU_V2_PUBLIC_DEPLOYMENT_STATUS.json` for the GRU v2 public-network truth table. That explorer surface keeps the public EVM `cW*` token mesh, Wave 1 transport state, and the five public protocol rows aligned in one place.
- **Live router-v2 execution is proven beyond a single smoke test:** on 2026-04-03 the public planner/internal-execution path successfully executed `USDT -> WETH` swaps through `EnhancedSwapRouterV2` for notionals `10`, `50`, `100`, `250`, `500`, and `1000` USD. Tx hashes: `0x4e39d544c41e09a2bbabd5598dcd0e82e8496db6e712829284597f9a207dbae5`, `0xb30728ac35207d22ed2a0ba97b9e43a93c662a2eb33ce7acc16ff160a8483fe4`, `0x062446a59ab0be3141197738f3e6b74e9c882b57ab4cc636258859b5c5015ffc`, `0x0c817ae5bedd83cb86118f75b031ce4b5b6c5df8d20e49928a3ddfb26a0fdd68`, `0x9eacb773b6d399801e1bdebc55fe5171792a71d7fabb0351531be443b05883d4`, `0xe17ccb774188d77d5c6451cbf06437d6d338a45aa407fb56072a6bb123ddb6f8`.
- **Token-aggregation** service is implemented, running publicly on `explorer.d-bis.org`, and now persists the canonical Chain 138 stable pools on its standalone explorer deployment. **Bridge quote API** (swap+bridge+swap) is implemented.
- **GRU transport publication path is green again:** the public explorer deployment now resolves the GRU bridge/verifier/cap env block correctly, and `/token-aggregation/api/v1/bridge/preflight` reports `runtimeReadyTransportPairs: 21`, `blockedPairs: 0`.
- **DODO v3 / D3MM** is now deployed privately on Chain 138 (`D3Oracle=0xD7459aEa8bB53C83a1e90262777D730539A326F0`, `D3Vault=0x42b6867260Fb9eE6d09B7E0233A1fAD65D0133D1`, canonical `WETH10` pool `0x6550A3a59070061a262a893A1D6F3F490afFDBDA`) and direct proof swaps now succeed both through `D3Proxy` and through the live `EnhancedSwapRouterV2` D3 adapter path. Planner-v2 capability, generated route-matrix visibility, and the public `/token-aggregation/api/v2` publication path are live, with executable calldata now emitted for the canonical pilot pair.
- **ETH / WETH completion remains an active deployment program:** the repo already has live `ETH/USD`-anchored routing and the `WETH10 <-> USDT` pilot lane, but the completion gate still requires explicit real-time oracle policy for `ETH`, `WETH9`, and `WETH10`, wrapper-peg controls at the `0.00001` target, and funded `cUSDT/cUSDC/USDT/USDC <-> WETH` anchor pools so the public market feed is backed by real depth.
- **Full system status:** official DODO V2 PMM liquidity and DODOPMMProvider routing are **deployed and in use** on Chain 138. The public token-aggregation service now has a standalone lightweight schema bootstrap path for dedicated deployments, and router-v2 can execute through the canonical upstream-native `Uniswap_v3` venue plus the funded pilot-compatible `Balancer`, `Curve_3`, and `1inch` venues on Chain 138. Remaining: decide which legacy XAU/private pool references should stay canonical, and whether the pilot-compatible `Balancer`, `Curve_3`, and `1inch` venues should later be replaced by upstream-native protocol deployments.
- **Optional items completed (2026-02-27 / 2026-03-01):** DeployCompliantFiatTokens (10 tokens on 138); Blockscout verification run; MCP allowlist-138 (`ai-mcp-pmm-controller/config/allowlist-138.json`); add-liquidity runbook ([ADD_LIQUIDITY_PMM_CHAIN138_RUNBOOK](../03-deployment/ADD_LIQUIDITY_PMM_CHAIN138_RUNBOOK.md)); token-aggregation canonical fallbacks for cEURC/cEURT/cGBP*/cAUDC/cJPYC/cCHFC/cCADC/cXAU*; ENV_EXAMPLE_CONTENT + CREATE2_FACTORY_ADDRESS; E2E routing verification run.
---
@@ -24,10 +48,10 @@
| Layer | Description | Components |
|-------|-------------|------------|
| **On-chain multi-provider** | Size-based routing across DEXs for one leg (e.g. WETH↔stable) | EnhancedSwapRouter (Uniswap V3, Dodoex PMM, Balancer, Curve, 1inch) |
| **PMM pools (Chain 138)** | Desired-state full mesh with live funded public stable/XAU pools | DODOPMMIntegration, DODOPMMProvider |
| **PMM pools (Chain 138)** | Official DODO V2 DVM-backed public stable pools; legacy XAU/private pools still exist separately | DODOPMMIntegration, DODOPMMProvider |
| **Token-aggregation API** | Single-hop quotes, pool indexing, reports | token-aggregation service (UniswapV2/V3 + DODO from DODOPMMIntegration) |
| **Swapbridgeswap** | Cross-chain: swap (source) → bridge → swap (destination) | SwapBridgeSwapCoordinator (on-chain), orchestration QuoteService (`POST /api/bridge/quote`) |
| **Public-chain cW* mesh** | cW* wrappers on public chains, single-sided PMM edge pools, bot-driven peg | cross-chain-pmm-lps (specs, simulation, deployment recipe) |
| **Public-chain cW* mesh** | cW* wrappers on public chains, intended single-sided PMM edge pools, bot-driven peg | cross-chain-pmm-lps (specs, simulation, deployment recipe). Current repo state: the first Mainnet DODO PMM cW pools are now recorded live, but the broader public mesh and later protocol waves are still incomplete |
### 1.2 Routing logic (EnhancedSwapRouter / Liquidity Engine)
@@ -45,10 +69,16 @@
| Component | Status | Address / Notes |
|-----------|--------|------------------|
| **DODOPMMIntegration** | Deployed | `0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d` — corrected canonical integration. |
| **PMM pools (desired-state)** | **104 aligned** | Full desired-state JSON reconciled; live funded public pools are listed in [LIQUIDITY_POOLS_MASTER_MAP](LIQUIDITY_POOLS_MASTER_MAP.md). |
| **DODOPMMProvider** | **Deployed** | `0x5CAe6Ce155b7f08D3a956F5Dc82fC9945f29B381`; 104/104 routes aligned to the corrected integration. |
| **EnhancedSwapRouter** | Not deployed | Deploy when Uniswap/Balancer pools exist on 138; configure quoter and Balancer poolId. |
| **DODOPMMIntegration** | Deployed | `0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895` — canonical official DODO V2 DVM-backed integration. |
| **DODO DVMFactory** | Deployed | `0xc93870594C7f83A0aE076c2e30b494Efc526b68E` — self-deployed official DODO V2 DVM stack on Chain 138. |
| **DODO Vending Machine / Adapter** | Deployed | `0xb6D9EF3575bc48De3f011C310DC24d87bEC6087C` — adapter used by `DODOPMMIntegration`. |
| **PMM pools (current canonical stack)** | 3 created | Public pools are `0x9e89bAe009adf128782E19e8341996c596ac40dC` (cUSDT/cUSDC), `0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66` (cUSDT/USDT), `0xc39B7D0F40838cbFb54649d327f49a6DAC964062` (cUSDC/USDC). |
| **DODOPMMProvider** | **Deployed** | `0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e`; supports the three canonical stable pools above. |
| **D3Oracle** | Deployed (private pilot) | `0xD7459aEa8bB53C83a1e90262777D730539A326F0`; `WETH10` now uses live `Oracle_Aggregator=0x99b3511a2d315a497c8112c1fdd8d508d4b1e506`, and the stable assets use dedicated managed USD feeds. |
| **D3Vault / D3Proxy / D3MMFactory** | Deployed (private pilot) | `D3Vault=0x42b6867260Fb9eE6d09B7E0233A1fAD65D0133D1`, `D3Proxy=0xc9a11abB7C63d88546Be24D58a6d95e3762cB843`, `D3MMFactory=0x78470C7d2925B6738544E2DD4FE7c07CcA21AC31`. |
| **D3MM pools** | 2 created | `0xE71Bc2cCb62dA5B18F88647db2b4a721Db416fc5` is a superseded bootstrap pool on the placeholder `WETH9` path. `0x6550A3a59070061a262a893A1D6F3F490afFDBDA` is the canonical private `WETH10` pilot pool. |
| **EnhancedSwapRouterV2 + public venue layer** | Live | Router-v2 is deployed and the canonical upstream-native `Uniswap_v3` lane plus the funded pilot-compatible `Balancer`, `Curve_3`, and `1inch` venues are publicly exposed for the canonical Chain 138 routing asset lanes. |
| **Upstream-native Uniswap v3** | Live | Factory `0x2f72...`, router `0xde9...`, quoter `0x6abb...`, canonical fee-500 pools `0xa893...` (`WETH/USDT`) and `0xEC74...` (`WETH/USDC`). Public planner now selects this venue for the canonical `WETH -> USDT` lane. |
| **LiquidityPoolETH** (trustless bridge) | Placeholder | Not deployed; config uses `0x0`. |
**Doc note:** [LIQUIDITY_POOLS_MASTER_MAP.md](LIQUIDITY_POOLS_MASTER_MAP.md) and [ADDRESS_MATRIX_AND_STATUS.md](ADDRESS_MATRIX_AND_STATUS.md) list pool and DODOPMMProvider addresses. DEX_AND_CROSS_CHAIN_CONTRACTS_NEEDED reflects DODOPMMIntegration deployed and pools created.
@@ -57,9 +87,9 @@
| Component | Status | Notes |
|-----------|--------|--------|
| **Token-aggregation service** | Implemented & runnable | Indexes UniswapV2/V3 and DODO when `CHAIN_138_DODO_PMM_INTEGRATION` is set (set in smom-dbis-138/.env). Single-hop quote only; no N-hop pathfinding. |
| **Token-aggregation service** | Implemented & runnable | Indexes UniswapV2/V3 and DODO when `CHAIN_138_DODO_PMM_INTEGRATION` is set (set in smom-dbis-138/.env). The live explorer deployment now persists the three canonical Chain 138 stable pools via the standalone lightweight schema bootstrap. Single-hop quote only; no N-hop pathfinding. |
| **Orchestration QuoteService** | Implemented | `POST /api/bridge/quote` with optional source/destination swap quotes; requires bridge registry and optional EnhancedSwapRouter addresses. |
| **Liquidity Engine (backend)** | Implemented | Depends on EnhancedSwapRouter being deployed; not usable for routing until router is live. |
| **Liquidity Engine (backend)** | Implemented / partially live | Planner-v2 and router-v2 are live for the published canonical lanes; broader venue/policy expansion remains optional follow-on work. |
### 2.3 Swapbridgeswap & trustless stack
@@ -73,7 +103,7 @@
| Component | Status | Notes |
|-----------|--------|--------|
| **cross-chain-pmm-lps** | Design & tooling ready | Token map, pool topology, peg bands, simulation model, deployment recipe, safe inventory sizing. **Not deployed:** edge pools and bot v1/v2 are not documented as live. |
| **cross-chain-pmm-lps** | Partial live rollout | Token map, pool topology, peg bands, simulation model, deployment recipe, safe inventory sizing. The first Mainnet DODO PMM cW pools are now recorded in `deployment-status.json`, but the broader edge-pool mesh and bot v1/v2 remain incomplete. |
---
@@ -82,10 +112,11 @@
| Capability | Available? | Where |
|------------|------------|--------|
| Single-hop quote (API) | Yes | `GET /api/v1/quote` (best direct pool for tokenIn/tokenOut) |
| Multi-provider choice (one leg) | No (router not deployed) | EnhancedSwapRouter would provide WETH↔stable across Uniswap/Dodo/Balancer/Curve/1inch |
| Multi-provider choice (one leg) | Yes (Chain 138 canonical lanes) | `EnhancedSwapRouterV2` is live for the canonical Chain 138 venue set (`Uniswap_v3`, DODO PMM, pilot-compatible `Balancer`, `Curve_3`, `1inch`) |
| N-hop path (A→B→C on one chain) | No | No graph-based multi-hop swap API or on-chain pathfinder |
| Swapbridgeswap (cross-chain) | Yes (orchestration) | QuoteService; on-chain coordinator deployable when needed |
| DODO PMM on-chain swaps | **Yes** | Pools created; DODOPMMProvider deployed; use getQuote/executeSwap or DODOPMMIntegration swap functions. |
| Public-chain cW* pool execution | No | cW tokens may be deployed, but the repo records no live Balancer, Curve, DODO edge, Uniswap, or 1inch cW* pool contracts on the public chains |
---
@@ -93,17 +124,20 @@
| Area | Ready? | In use? |
|------|--------|--------|
| **PMM liquidity pools (Chain 138)** | **Yes** | Corrected canonical stack deployed; 104 desired-state pools aligned; live funded public stable/XAU pools available. |
| **DEX routing (EnhancedSwapRouter)** | No | Contract not deployed; no Uniswap/Balancer pools on 138. |
| **Token-aggregation API** | Yes | Service can run; single-hop quotes; can index DODO pools once DODOPMMIntegration has pools. |
| **PMM liquidity pools (Chain 138)** | **Yes** | Official DODO V2 DVM-backed stack deployed; all three canonical public stable pools are funded on the current stack. |
| **DODO v3 / D3MM pilot** | Partial / private | Contracts are deployed and the corrected `WETH10` pool is seeded and tradable through `D3Proxy`; oracle promotion, planner-v2 visibility, generated route-matrix exposure, public `/token-aggregation/api/v2` publication, and router-v2 executable calldata are complete for the canonical pilot pair. |
| **DEX routing (EnhancedSwapRouterV2)** | Yes | Contract is deployed and in use. Canonical public `uniswap_v3` routing resolves through the upstream-native fee-500 pools; Balancer / Curve_3 / 1inch remain live pilot-compatible venues. |
| **Token-aggregation API** | Yes | Service is live publicly, serves single-hop quotes, and now persists the canonical DODO pool set on the explorer deployment. |
| **Bridge quote (swap+bridge+swap)** | Partial | QuoteService implemented; coordinator and router optional; not full E2E flow. |
| **Liquidity Engine (decision logic)** | No | Depends on EnhancedSwapRouter. |
| **Cross-chain cW* PMM mesh** | No | Design/simulation only; edge pools and bots not deployed. |
| **Cross-chain cW* PMM mesh** | Partial | First Mainnet DODO PMM cW pools are recorded live; broader public-chain pool rollout and bot automation are not complete. |
**Conclusion:** PMM liquidity and DODOPMMProvider routing **are** deployed and in use on Chain 138. What is in place:
- **Live:** DODOPMMIntegration (Mock DVM), **three PMM pools created**, **DODOPMMProvider deployed** with pools registered, token-aggregation service, bridge/orchestration quote API.
- **Remaining:** Add liquidity to pools as needed; deploy EnhancedSwapRouter when Uniswap/Balancer pools exist on 138.
- **Live:** official DODO V2 DVMFactory + adapter, **three PMM stable pools funded on the canonical stack**, **DODOPMMProvider deployed** with pools registered, token-aggregation service, bridge/orchestration quote API.
- **Private but working:** DODO v3 / D3MM is deployed with a corrected `WETH10` pilot pool (`0x6550...`) that can quote and execute through `D3Proxy`, and its current oracle stack is now on the live Chain 138 oracle surfaces. Planner-v2 capability discovery, live quote selection, generated route-matrix visibility, public `/token-aggregation/api/v2` publication, and live `EnhancedSwapRouterV2` execution are now in place for the canonical pilot pair.
- **Still missing for full ETH market completion:** dedicated wrapper-peg controls and publicly documented depth-backed `WETH` anchor pools on Chain 138. See [CHAIN138_ETH_WETH_ORACLE_PEG_AND_LIQUIDITY_PLAN.md](../03-deployment/CHAIN138_ETH_WETH_ORACLE_PEG_AND_LIQUIDITY_PLAN.md).
- **Remaining:** decide whether DODO v3 should join the canonical public execution set beyond the current private pilot posture, extend router-v2/provider coverage beyond the canonical `WETH10 <-> USDT` lane, migrate or re-register any legacy XAU/private pools that should stay in the canonical routing set, and optionally replace the current pilot-compatible `Balancer`, `Curve_3`, and `1inch` venues with upstream-native deployments.
- **Optional / later:** Full trustless stack (LiquidityPoolETH, etc.), cross-chain cW* edge pools and bots.
---
@@ -112,11 +146,13 @@
**Full ordered steps:** See [PRE_DEPLOYMENT_CHECKLIST.md](../03-deployment/PRE_DEPLOYMENT_CHECKLIST.md). **Run Phase 1 + Phase 2 in parallel:** [NEXT_STEPS_PMM_FULL_PARITY_AND_ALL_POOLS.md](../03-deployment/NEXT_STEPS_PMM_FULL_PARITY_AND_ALL_POOLS.md) — use `./scripts/deployment/run-pmm-full-parity-all-phases.sh` from `smom-dbis-138/`.
1. **Create PMM pools (Chain 138):** Run `CreateCUSDTCUSDCPool.s.sol`, `CreateCUSDTUSDTPool.s.sol`, `CreateCUSDCUSDCPool.s.sol` (or `./scripts/deployment/create-all-pmm-pools-chain138.sh`), or `deploy-transaction-mirror-and-pmm-pool-after-txpool-clear.sh` for mirror + cUSDT/cUSDC only; ensure POOL_MANAGER_ROLE and nonce/RPC are correct.
2. **Add liquidity** to created pools via `forge script script/dex/AddLiquidityPMMPoolsChain138.s.sol:AddLiquidityPMMPoolsChain138` (set `ADD_LIQUIDITY_BASE_AMOUNT`, `ADD_LIQUIDITY_QUOTE_AMOUNT` in .env) or call `addLiquidity(pool, baseAmount, quoteAmount)` on DODOPMMIntegration.
3. **Deploy DODOPMMProvider** via `script/liquidity/DeployDODOPMMProvider.s.sol`, then register pools with `registerPool(tokenIn, tokenOut, pool)`.
4. **Optionally deploy EnhancedSwapRouter** when Uniswap/Balancer quoter/poolId are configured for 138.
5. **Update docs:** Add pool and DODOPMMProvider addresses to LIQUIDITY_POOLS_MASTER_MAP and CONTRACT_ADDRESSES_REFERENCE once created.
1. **Keep the canonical stable stack as the source of truth:** `DODOPMMIntegration=0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895`, `DODOPMMProvider=0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e`, pools `0x9e89bAe009adf128782E19e8341996c596ac40dC`, `0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66`, `0xc39B7D0F40838cbFb54649d327f49a6DAC964062`.
2. **Keep token-aggregation indexed on dedicated deployments:** if the service uses a standalone `token_aggregation` database, run `bash smom-dbis-138/services/token-aggregation/scripts/apply-lightweight-schema.sh` so `/tokens`, `/tokens/:address/pools`, and `/quote` persist the canonical DVM-backed pool set without relying only on fallback logic.
3. **Decide legacy XAU/public-private pool posture:** either migrate them onto the canonical integration/provider set or mark them explicitly as legacy so public routing inventories do not mix stacks.
4. **Keep the router-v2 venue layer verified:** run `bash scripts/verify/check-chain138-pilot-dex-venues.sh` after any venue funding or token-aggregation publication change. This proves bytecode, funding, public capability exposure, and canonical `WETH -> USDT` planner resolution through the native Uniswap v3 lane plus the pilot-compatible secondary venues.
5. **Use the live ladder script for execution proof:** `bash scripts/deployment/run-progressive-router-v2-swaps-chain138.sh` executes the public planner-v2 `internal-execution-plan` path through the live router and is the current operator-grade proof path for same-chain swaps up to `$1000`.
6. **If DODO v3 is promoted beyond a private pilot:** planner-v2/provider-capability promotion, public `/token-aggregation/api/v2` publication, and router-v2 execution are already in place for the canonical `WETH10 <-> USDT` lane; the remaining work is policy/public-promotion, broader venue coverage, and any migration of legacy XAU/private pools into the canonical set.
7. **Keep docs and verification aligned:** update LIQUIDITY_POOLS_MASTER_MAP, CONTRACT_ADDRESSES_REFERENCE, and runtime inventories whenever the canonical pool or provider set changes.
---
@@ -131,5 +167,11 @@
| [DODO_PMM_INTEGRATION.md](../smom-dbis-138/docs/integration/DODO_PMM_INTEGRATION.md) | Pool creation and swap usage |
| [DODO_PMM_NEXT_STEPS.md](../smom-dbis-138/docs/bridge/DODO_PMM_NEXT_STEPS.md) | Create-all-dodo-pools, SwapBridgeSwapCoordinator, bridge quote API |
| [CONTRACT_DEPLOYMENT_RUNBOOK.md](../03-deployment/CONTRACT_DEPLOYMENT_RUNBOOK.md) | EnhancedSwapRouter & DODOPMMProvider config |
| `bash scripts/verify/check-chain138-pilot-dex-venues.sh` | Verifies pilot-compatible `Uniswap_v3`, `Balancer`, `Curve_3`, and `1inch` venues are deployed, funded, publicly exposed, and routable on Chain 138 |
| `bash scripts/verify/check-cw-public-pool-status.sh` | Verifies that the public-chain cW deployment graph still has zero live `pmmPools` recorded across the supported chains |
| `bash scripts/verify/check-gru-v2-public-protocols.sh` | Verifies the public-network GRU v2 posture across the cW mesh, Wave 1 transport state, and the public protocol matrix |
| `bash scripts/deployment/run-mainnet-public-dodo-cw-swap.sh --pair=cwusdt-usdc --direction=base-to-quote --amount=5000 --dry-run` | Repeatable operator helper for the live public Mainnet DODO `cW*` bootstrap pools, with direct-query detection and reserve-fallback quoting |
| `bash scripts/verify/check-mainnet-public-dodo-cw-bootstrap-pools.sh` | Verifies the eleven recorded Mainnet DODO `cW*` bootstrap pools (USD rails, `cWUSDT/cWUSDC`, and non-USD Wave 1) are mapped, funded, and dry-run routable through the repeatable swap helper |
| [LIQUIDITY_POOL_CONTROLS_RUNBOOK.md](../03-deployment/LIQUIDITY_POOL_CONTROLS_RUNBOOK.md) | DODO and trustless pool controls |
| [CHAIN138_ETH_WETH_ORACLE_PEG_AND_LIQUIDITY_PLAN.md](../03-deployment/CHAIN138_ETH_WETH_ORACLE_PEG_AND_LIQUIDITY_PLAN.md) | Ordered completion path for ETH/WETH oracle policy, peg controls, and anchor-pool depth on Chain 138 |
| [cross-chain-pmm-lps/README.md](../../cross-chain-pmm-lps/README.md) | cW* mesh and deployment recipe |

View File

@@ -1,6 +1,6 @@
# Pool Access — Standard DODO Dashboard, API, and MCP
**Last Updated:** 2026-02-28
**Last Updated:** 2026-04-02
**Purpose:** Whether all designed pools (61 across 6 networks) can be accessed via the **standard DODO dashboard**, **API**, and **MCP**, and what is required.
---
@@ -9,9 +9,9 @@
| Access method | Chain 138 pools | cW* edge pools (5 public chains) | Requirement |
|---------------|------------------|-----------------------------------|-------------|
| **Standard DODO dashboard** | ❌ No | ⚠️ Only if real DODO + chain supported | 138 uses Mock DVM; dashboard does not support custom chain 138. |
| **API (token-aggregation)** | ✅ Yes | ✅ Yes (when env set) | Chain 138: set `CHAIN_138_DODO_PMM_INTEGRATION=0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d`. cW* chains 1, 10, 56, 100, 137: added to dex-factories and chains.ts; set `CHAIN_*_DODO_PMM_INTEGRATION` or `CHAIN_*_DODO_POOL_MANAGER` and run indexer for those chains. |
| **MCP (ai-mcp-pmm-controller)** | ✅ Yes (after allowlist) | ⚠️ Per-chain + allowlist | Chain 138: MockDVMPool now has getOraclePrice, _K_, _LP_FEE_RATE_ so dodo_pmm_v2_like profile works; add each pool to allowlist and set RPC to 138. Other chains: one MCP instance per chain + allowlist. |
| **Standard DODO dashboard** | ❌ No | ⚠️ Only if real DODO + chain supported | Chain 138 is still a custom chain, so the standard DODO dashboard does not index it even though the pools now use the official DODO V2 DVM-backed stack. |
| **API (token-aggregation)** | ✅ Yes | ✅ Yes (when env set) | Chain 138: set `CHAIN_138_DODO_PMM_INTEGRATION=0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895`. cW* chains 1, 10, 56, 100, 137: added to dex-factories and chains.ts; set `CHAIN_*_DODO_PMM_INTEGRATION` or `CHAIN_*_DODO_POOL_MANAGER` and run indexer for those chains. |
| **MCP (ai-mcp-pmm-controller)** | ✅ Yes (after allowlist) | ⚠️ Per-chain + allowlist | Chain 138: official DODO V2-style pools can use the `dodo_pmm_v2_like` profile; add each pool to allowlist and set RPC to 138. Other chains: one MCP instance per chain + allowlist. |
**Not all pools can be accessed by all three today.** Below is what works, whats missing, and what to change.
@@ -23,7 +23,7 @@
| Pool scope | Accessible? | Reason |
|------------|-------------|--------|
| **Chain 138** (10 pools) | ❌ **No** | Chain 138 is a **custom/private** chain. The standard DODO dashboard only supports chains DODO officially supports (e.g. Ethereum, BSC, Polygon, Arbitrum). It does not connect to Chain 138 or index Mock DVM pools. |
| **Chain 138** (10 pools) | ❌ **No** | Chain 138 is a **custom/private** chain. The standard DODO dashboard only supports chains DODO officially supports (e.g. Ethereum, BSC, Polygon, Arbitrum). It does not connect to Chain 138 even though Chain 138 now uses the official DODO V2 DVM-backed contracts. |
| **cW* edge pools** (51 on chains 1, 10, 56, 100, 137) | ⚠️ **Only if** | (1) Pools are **real DODO protocol** pools on that chain, and (2) DODOs dashboard **supports that chain**. If you deploy via your own factory or a fork, they will not appear unless DODO adds your contracts/chain. |
| **Private / bridge / other** | ❌ No | Private and bridge LPs are not part of the public DODO frontend. |
@@ -37,7 +37,7 @@
| Pool scope | Accessible? | Requirement |
|------------|-------------|-------------|
| **Chain 138** | ✅ **Yes** | Set `CHAIN_138_DODO_PMM_INTEGRATION=0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d` (and RPC) in the service env. The pool indexer uses `getAllPools()`, then `getPoolConfig`, `getPoolReserves`, `getPoolPriceOrOracle` per pool. Once pools exist and the indexer runs, they appear in `/api/v1/tokens`, `/api/v1/pools`, `/api/v1/quote`, and report endpoints. |
| **Chain 138** | ✅ **Yes** | Set `CHAIN_138_DODO_PMM_INTEGRATION=0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895` (and RPC) in the service env. The pool indexer uses `getAllPools()`, then `getPoolConfig`, `getPoolReserves`, `getPoolPriceOrOracle` per pool. Once pools exist and the indexer runs, they appear in `/api/v1/tokens`, `/api/v1/pools`, `/api/v1/quote`, and report endpoints. |
| **ALL Mainnet (651940)** | ⚠️ **If configured** | Set `CHAIN_651940_DODO_POOL_MANAGER` (and optional `dodoPmmIntegration`) in dex-factories / env. Today no DODO pool list is documented for 651940. |
| **cW* edge (chains 1, 10, 56, 100, 137)** | ✅ **Yes** (when env set) | `dex-factories.ts` and `chains.ts` now include chainIds 1, 10, 56, 100, 137. Set `CHAIN_*_DODO_PMM_INTEGRATION` or `CHAIN_*_DODO_POOL_MANAGER` (and `CHAIN_*_RPC_URL`) so the indexer can index DODO/pools on those chains. |
@@ -51,7 +51,7 @@
| Pool scope | Accessible? | Requirement |
|------------|-------------|-------------|
| **Chain 138** | ✅ **Yes** (after allowlist) | (1) **Allowlist:** Add each pool address and base/quote token to `config/allowlist.json` with profile `dodo_pmm_v2_like`. (2) **MockDVMPool** was updated to expose `getOraclePrice()`, `_K_`, `_LP_FEE_RATE_` so the existing MCP profile works. Pools created from a **new** MockDVMFactory (deployed after this change) are MCP-ready; pools from an existing factory may need a new factory deploy to get the updated pool bytecode. (3) Run MCP with `CHAIN=138` and `RPC_URL` pointing to Chain 138. |
| **Chain 138** | ✅ **Yes** (after allowlist) | (1) **Allowlist:** Add each pool address and base/quote token to `config/allowlist.json` with profile `dodo_pmm_v2_like`. (2) Run MCP with `CHAIN=138` and `RPC_URL` pointing to Chain 138. |
| **cW* edge (each chain)** | ⚠️ **Per chain** | One MCP instance is single-chain (`CHAIN`, `RPC_URL`). For each of the 5 chains: run an MCP instance (or add multi-chain support), add that chains pool addresses to the allowlist, and use a profile that matches the pool interface (DODO v2like or custom). |
**Conclusion:** **Yes** for any pool **after** (1) allowlisting, (2) profile/interface alignment (Chain 138 needs mock profile or MockDVMPool stubs), (3) correct RPC per chain.
@@ -67,13 +67,12 @@
### API
- **Chain 138:** Set `CHAIN_138_DODO_PMM_INTEGRATION` and run the indexer; no code change needed.
- **Chain 138:** Set `CHAIN_138_DODO_PMM_INTEGRATION=0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895` and run the indexer; no code change needed.
- **cW*:** Chain configs and DODO env-driven entries for 1, 10, 56, 100, 137 are in `dex-factories.ts` and `chains.ts`. Set `CHAIN_*_DODO_PMM_INTEGRATION` or `CHAIN_*_DODO_POOL_MANAGER` and `CHAIN_*_RPC_URL` per chain and run the indexer for those chains.
### MCP
- **Chain 138:**
- `MockDVMPool.sol` now includes `getOraclePrice()`, `_K_`, and `_LP_FEE_RATE_` so the default `dodo_pmm_v2_like` profile works.
- Add each pool to `allowlist.json` with base/quote tokens and profile `dodo_pmm_v2_like`.
- Run MCP with `CHAIN=138` and Chain 138 `RPC_URL`.
- **cW* (each chain):**
@@ -87,9 +86,9 @@
| Access | Chain 138 (10) | cW* (51 on 5 chains) |
|--------|-----------------|----------------------|
| **Standard DODO dashboard** | ❌ No (custom chain + Mock DVM) | ⚠️ Only if real DODO on supported chain |
| **Standard DODO dashboard** | ❌ No (custom chain) | ⚠️ Only if real DODO on supported chain |
| **API** | ✅ Yes (set integration env, run indexer) | ✅ Yes when CHAIN_*_DODO_* and RPC env set for each chain |
| **MCP** | ✅ Yes after allowlist + RPC (MockDVMPool has profile-compatible view methods) | ⚠️ Yes per chain after allowlist + profile + RPC |
| **MCP** | ✅ Yes after allowlist + RPC | ⚠️ Yes per chain after allowlist + profile + RPC |
So: **all pools can be accessed via API and MCP** once the above config and code changes are in place; **they cannot all be accessed by the standard DODO dashboard** (138 never; cW* only in the special case above).

View File

@@ -0,0 +1,106 @@
# Protocol Source Assurance Matrix
**Last Updated:** 2026-04-07
**Purpose:** Track whether the protocol contracts currently used by the repo are proven to be the approved upstream-native families from the proper official sources.
**Status meanings**
- `Assured`: repo wiring and verification clearly point to the approved upstream family
- `Partial`: some proof exists, but the current venue or contract family is still transitional, pilot-compatible, or incompletely verified
- `Not Assured`: the repo itself still treats the venue as provisional, pilot-only, or not yet reconciled to the upstream family
---
## 1. Matrix
| Protocol | Current repo posture | Assurance status | Notes |
|---------|-----------------------|------------------|-------|
| DODO V2 PMM | Canonical Chain 138 PMM stack, Mainnet public `cW*` PMM wave | Partial | Strongly wired in the repo, but Mainnet public pool replacements and full-surface migration are still in progress. |
| DODO v3 / D3MM | Live on Chain 138 as canonical pilot venue | Partial | On-chain health and planner visibility are good, but the repo still treats D3MM as pilot/private and the Blockscout verification check currently fails. |
| Uniswap | Chain 138 upstream-native lane plus broader pilot-compatible venue layer | Partial | The repo explicitly says upstream-native replacements remain a separate track for some surfaces. |
| Balancer | Pilot-compatible Chain 138 venue layer | Not Assured | Bytecode and liquidity are present, but the repo still labels this layer pilot-compatible rather than fully upstream-native / latest-family assured. |
| Curve | Pilot-compatible Chain 138 venue layer | Not Assured | Same posture as Balancer. |
| 1inch | Pilot-compatible Chain 138 router surface | Not Assured | Planner and venue references exist, but not as a fully proven latest official contract-family integration. |
---
## 2. Evidence from current repo state
### DODO V2 PMM
- Canonical stable PMM stack is still the default public PMM layer on Chain 138.
- Mainnet public `cW*` PMM rows are live, but the repo now carries migration work specifically because some pools expose partial DODO surfaces rather than full standard DODO behavior.
References:
- [PMM_DEX_ROUTING_STATUS](PMM_DEX_ROUTING_STATUS.md)
- [MAINNET_STANDARD_DODO_POOL_MIGRATION_PLAN](../03-deployment/MAINNET_STANDARD_DODO_POOL_MIGRATION_PLAN.md)
### DODO v3 / D3MM
Verified on 2026-04-07:
- `bash scripts/verify/check-dodo-v3-chain138.sh`
- passed version / vault / oracle / quote checks
- failed on Blockscout source-verification assertion for `D3Oracle`
- `bash scripts/verify/check-dodo-v3-planner-visibility-chain138.sh`
- passed
- `provider=dodo_v3`
- `live=true`
- `quoteLive=true`
- `executionLive=true`
Conclusion: D3MM is operationally real, but source-assurance remains incomplete.
### Uniswap / Balancer / Curve / 1inch
Verified on 2026-04-07:
- `bash scripts/verify/check-chain138-pilot-dex-venues.sh`
- bytecode present for all configured venues
- liquidity present for all configured venues
- failed on the planner-capability parsing check even though the dedicated D3 planner visibility verifier passed separately
The repos own docs still describe this layer as:
- live on Chain 138
- funded / planner-visible
- **pilot-compatible**
- with upstream-native replacements still optional future work for some venues
Reference:
- [DEX_AND_CROSS_CHAIN_CONTRACTS_NEEDED](DEX_AND_CROSS_CHAIN_CONTRACTS_NEEDED.md)
---
## 3. Required remediation
### DODO V2 PMM
- Replace or migrate partial-surface Mainnet pools to full-surface canonical DODO pools.
- Reconcile integration mappings, env references, docs, and deployment graph rows to the replacement addresses.
### DODO v3 / D3MM
- Fix Blockscout/source-verification posture for canonical D3 contracts.
- Promote D3MM from pilot/private to canonical public execution where policy allows.
- Extend beyond the current `WETH10 <-> USDT` pilot lane.
### Uniswap / Balancer / Curve / 1inch
- Build a protocol-by-protocol upstream assurance table with:
- official upstream docs / repo
- approved contract family
- exact address in use
- proof or gap
- Replace pilot-compatible venue contracts where policy requires latest upstream-native families.
- Reconcile planner-capability verification so the venue verifier and planner visibility tests tell the same story.
---
## 4. Current tested blockers
- D3MM health is good, but Blockscout/source assurance is not yet clean.
- The venue verifier succeeds on bytecode and liquidity but currently fails on the planner-capability response parsing step.
- Mainnet DODO public pools still require migration / audit work before they can be treated as fully assured standard DODO venues everywhere.

View File

@@ -0,0 +1,39 @@
# Publication Actionable Backlog
**Generated:** 2026-04-11T21:13:09.157Z
This artifact separates the five requested publication packs into:
- addresses we can honestly treat as **auto-submittable** from the repo
- addresses that are **manual or external**
- addresses that are only **inventory/reference tracking**
## Chain Summary
| Chain ID | Chain | Total Entries | Auto-submittable | Manual / External | Inventory / Reference |
| --- | --- | ---: | ---: | ---: | ---: |
| 1 | Ethereum Mainnet | 36 | 0 | 3 | 33 |
| 10 | Optimism | 21 | 0 | 0 | 21 |
| 56 | BSC | 18 | 0 | 0 | 18 |
| 137 | Polygon | 22 | 0 | 0 | 22 |
| 8453 | Base | 19 | 0 | 0 | 19 |
## Auto-submittable backlog
| Chain ID | Chain | Label | Address | Type | Automation | Explorer Status | Next Action |
| --- | --- | --- | --- | --- | --- | --- | --- |
| - | - | - | - | - | - | - | Automatic submission backlog is currently empty for the requested packs |
## Manual or external backlog
| Chain ID | Chain | Label | Address | Type | Automation | Explorer Status | Next Action |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 1 | Ethereum Mainnet | CCIP_Relay_Bridge | `0xF9A32F37099c582D28b4dE7Fca6eaC1e5259f939` | canonical_contract | manual-or-external | verified | Manual or external closure only; missing repo-supported source bundle or ownership proof |
| 1 | Ethereum Mainnet | CCIP_Relay_Router | `0xAd9A228CcEB4cbB612cD165FFB72fE090ff10Afb` | canonical_contract | manual-or-external | unverified | Manual or external closure only; missing repo-supported source bundle or ownership proof |
| 1 | Ethereum Mainnet | DODOPMMIntegration_Mainnet | `0xa9F284eD010f4F7d7F8F201742b49b9f58e29b84` | canonical_contract | manual-or-external | verified | Manual or external closure only; missing repo-supported source bundle or ownership proof |
## Closure note
For the five requested packs, the repo-owned **automatic** submission pass is complete when the auto-submittable backlog is empty.
Any remaining rows in the manual/external table require source provenance, ownership confirmation, or a non-repo verification process before they can be closed honestly.

View File

@@ -0,0 +1,14 @@
# Publication Pack Explorer Status
**Generated:** 2026-04-11T21:11:57.224Z
Live explorer verification status for the grouped publication packs.
| Chain ID | Chain | Verified | Unverified | Unknown | Unsupported | Errors | Explorer |
| --- | --- | ---: | ---: | ---: | ---: | ---: | --- |
| 8453 | Base | 14 | 5 | 0 | 0 | 0 | https://basescan.org |
| 56 | BSC | 15 | 3 | 0 | 0 | 0 | https://bscscan.com |
| 1 | Ethereum Mainnet | 7 | 29 | 0 | 0 | 0 | https://etherscan.io |
| 10 | Optimism | 12 | 9 | 0 | 0 | 0 | https://optimistic.etherscan.io |
| 137 | Polygon | 12 | 10 | 0 | 0 | 0 | https://polygonscan.com |

View File

@@ -20,7 +20,7 @@
| **138 WETH → Ethereum Mainnet (1)** | CCIPRelayBridge on chain 1 **releases** WETH (does not mint). Mainnet WETH must be sent to the bridge before 138→Mainnet transfers can complete. See [DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES](DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES.md) §3.2 and [CCIP_BRIDGE_MAINNET_CONNECTION](../07-ccip/CCIP_BRIDGE_MAINNET_CONNECTION.md). |
| **138 WETH → BSC (56)** | Current live BSC delivery is relay-backed and releases WETH from BSC bridge inventory. Do not treat the deployed native BSC bridge as proof of a direct no-prefund first hop from Chain 138. |
| **138 WETH → Avalanche (43114)** | Current live AVAX delivery is relay-backed and releases WETH from AVAX bridge inventory. A native Avalanche bridge test on 2026-03-30 failed because the Chain 138 router and Avalanche bridge router do not match. See [NON_PREFUNDED_AVAX_MIGRATION_RUNBOOK](../07-ccip/NON_PREFUNDED_AVAX_MIGRATION_RUNBOOK.md). |
| **138 WETH → Gnosis / Cronos / Celo / Polygon / Arbitrum / Optimism / Base** | Native bridge deployments exist, but they are not proven direct first hops from the current Chain 138 router. Use the Mainnet hub or a cW mint path instead of treating them as no-prefund direct routes. |
| **138 WETH → Gnosis / Cronos / Celo / Polygon / Arbitrum / Optimism / Base** | Native bridge deployments exist, but they are not proven direct first hops from the current Chain 138 router. A live `138 -> Arbitrum` source send on 2026-04-04 produced `MessageSent` without destination delivery because the active relay remained Mainnet-only. Use the Mainnet hub or a cW mint path instead of treating them as no-prefund direct routes. |
All routes below **do not** require pre-funding the destination bridge.
@@ -32,7 +32,7 @@ No bridge is used; no pre-fund requirement.
| From (chain) | To (same chain) | Mechanism | Status |
|--------------|-----------------|------------|--------|
| **138 cUSDT** | 138 cUSDC | DODOPMMIntegration / pool `0xff8d3b8fDF7B112759F076B69f4271D4209C0849` | ✅ Live |
| **138 cUSDT** | 138 cUSDC | DODOPMMIntegration / pool `0x9e89bAe009adf128782E19e8341996c596ac40dC` | ✅ Live |
| **138 cUSDC** | 138 cUSDT | Same pool | ✅ Live |
| **Any chain** | Same chain public stable | Native DEX (Uniswap, etc.) — deployer or user holds token on that chain, swaps on DEX | ✅ Standard |
@@ -65,14 +65,16 @@ There is **no blanket no-prefund WETH rule** for public-chain first hops from th
**Per-chain, per-token confirmation:** See [CCIP_138_DESTINATION_RECEIVER_BY_CHAIN_AND_TOKEN](CCIP_138_DESTINATION_RECEIVER_BY_CHAIN_AND_TOKEN.md) for the distinction between native bridge contract behavior and the current live Chain 138 route.
### 3.3 cW* (c* → cW* on public chains) — live AVAX corridor plus broader design
### 3.3 cW* (c* → cW* on public chains) — live AVAX corridor, plus live Mainnet cUSDC and cUSDT
Design rule: **lock cUSDT/cUSDC on 138, mint cWUSDT/cWUSDC on destination** in `ccipReceive`. No pre-funded pool; receiver has MINTER_ROLE and mints. The repo now proves that model end to end for the dedicated Avalanche `cUSDT -> cWUSDT` corridor, but it does **not** assert blanket live status for every cW destination chain.
Design rule: **lock cUSDT/cUSDC on 138, mint cWUSDT/cWUSDC on destination** in `ccipReceive`. No pre-funded pool; receiver has MINTER_ROLE and mints. The repo now proves that model end to end for the dedicated Avalanche `cUSDT -> cWUSDT` corridor and for the relay-backed Mainnet `cUSDC -> cWUSDC` and `cUSDT -> cWUSDT` corridors, but it does **not** assert blanket live status for every cW destination chain.
| From (138) | To (destination chain) | Route | Status |
|------------|------------------------|--------|--------|
| cUSDT | 43114 cWUSDT | Dedicated `avax-cw` path: Chain 138 relay router `0xe75d26bc558a28442f30750c6d97bffb46f39abc` → AVAX cW bridge `0x635002c5fb227160cd2eac926d1baa61847f3c75` → recipient mint | ✅ Live and proven E2E |
| cUSDT / cUSDC | cWUSDT / cWUSDC on chain (e.g. 56, 137, 1) | UniversalCCIPBridge or dedicated lock-and-send → destination TwoWayTokenBridgeL2 (or CCIPReceiverCW) → `ccipReceive``cW*.mint(recipient, amount)` | ⏳ Design / partial outside the proven AVAX corridor |
| cUSDC | 1 cWUSDC | Chain 138 `CWMultiTokenBridgeL1` `0x152ed3e9912161b76bdfd368d0c84b7c31c10de7` → Mainnet relay router `0x416564Ab73Ad5710855E98dC7bC7Bff7387285BA` → Mainnet `CWMultiTokenBridgeL2` `0x2bF74583206A49Be07E0E8A94197C12987AbD7B5` → recipient mint | ✅ Live and canary-proven |
| cUSDT | 1 cWUSDT | Chain 138 `CWMultiTokenBridgeL1` `0x152ed3e9912161b76bdfd368d0c84b7c31c10de7` → Mainnet relay router `0x416564Ab73Ad5710855E98dC7bC7Bff7387285BA` → Mainnet `CWMultiTokenBridgeL2` `0x2bF74583206A49Be07E0E8A94197C12987AbD7B5` → recipient mint | ✅ Live and canary-proven |
| cUSDT / cUSDC | cWUSDT / cWUSDC on chain (e.g. 56, 137) | UniversalCCIPBridge or dedicated lock-and-send → destination TwoWayTokenBridgeL2 (or CCIPReceiverCW) → `ccipReceive``cW*.mint(recipient, amount)` | ⏳ Design / partial outside the proven AVAX + Mainnet cUSDC/cUSDT corridors |
**Sources:** [CW_BRIDGE_APPROACH](../07-ccip/CW_BRIDGE_APPROACH.md) — “lock c* on 138, mint cW* on destination”; receiver implements `ccipReceive``cW*.mint(recipient, amount)`. [NON_PREFUNDED_AVAX_MIGRATION_RUNBOOK](../07-ccip/NON_PREFUNDED_AVAX_MIGRATION_RUNBOOK.md) records the live AVAX contract set and tx proofs.

View File

@@ -3,6 +3,11 @@
**Last updated:** 2026-02-11
**Scope:** All smart contracts across all chains, projects, modules, and submodules — deployed and not deployed.
For the active verification/publication backlog, use:
- [CONTRACT_VERIFICATION_AND_PUBLICATION_MATRIX_ALL_NETWORKS](CONTRACT_VERIFICATION_AND_PUBLICATION_MATRIX_ALL_NETWORKS.md)
- [ALL_NETWORK_CONTRACT_VERIFICATION_AND_PUBLICATION_RUNBOOK](../03-deployment/ALL_NETWORK_CONTRACT_VERIFICATION_AND_PUBLICATION_RUNBOOK.md)
---
## Chains and projects covered
@@ -128,7 +133,7 @@ Summary:
2. **Deprecated:** Use CCIPWETH9Bridge `0xcacfd...` only; do not use `0x89dd...`.
3. **Phased core (138):** **Deployed 2026-02-11.** Addresses in CONTRACT_ADDRESSES_REFERENCE. To redeploy: run 01_DeployCore then 02_DeployBridges; set and document env.
4. **Trustless bridge:** Deploy from script/bridge/trustless/ when needed; update config/production placeholders.
5. **Mainnet/multichain:** Use DeployAll or chain-specific scripts; document addresses per chain.
5. **Mainnet/multichain:** Use DeployAll or chain-specific scripts; document addresses per chain and close them through the generated all-network verification/publication matrix.
6. **ALL Mainnet:** Use documented token addresses only; no deploy in repo.
7. **Keep docs updated:** CONTRACT_ADDRESSES_REFERENCE, CONTRACT_INVENTORY_AND_VERIFICATION, this file.

View File

@@ -2,7 +2,7 @@
**Chain:** 138 (SMOM-DBIS-138)
**Explorer:** https://explorer.d-bis.org
**Last updated:** 2026-02-12
**Last updated:** 2026-04-03
---
@@ -33,7 +33,7 @@
| **Trustless bridge** | LOCKBOX138 (deployed), INBOX_ETH, BOND_MANAGER, etc. | ⏳ Mainnet stack when needed | Chain 138: Lockbox138 only; rest mainnet |
| **Phased core** | UniversalAssetRegistry, GovernanceController, UniversalCCIPBridge, BridgeOrchestrator | ✅ Deployed 2026-02-11 | See CONTRACT_ADDRESSES_REFERENCE |
| **CREATE2 / deterministic** | CREATE2Factory, MirrorRegistry, AlltraAdapter | ✅ Deployed 2026-02-11 | See CONTRACT_ADDRESSES_REFERENCE |
| **Dodo / swap** | DODO_PMM, ENHANCED_SWAP_ROUTER, etc. | ⏳ Not deployed | Deploy when integrating Dodo/swap |
| **Dodo / swap** | Canonical DODO PMM stack plus optional router extensions | ✅ PMM live / ⏳ router extensions | Canonical stable PMM is live on `DODOPMMIntegration=0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895`, `DODOPMMProvider=0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e`; `EnhancedSwapRouter` remains optional until live WETH-to-stable routes exist |
| **Firefly** | (auto-deployed by Firefly) | ⏳ By Firefly | No action; VMID 6200 |
---
@@ -42,7 +42,7 @@
**Full next steps, operator checklist, and all recommendations:** [CONTRACT_NEXT_STEPS_AND_RECOMMENDATIONS_COMPLETE](CONTRACT_NEXT_STEPS_AND_RECOMMENDATIONS_COMPLETE.md).
1. **Confirm on-chain** — Run `./scripts/verify/check-contracts-on-chain-138.sh` (36 addresses) or open each address at https://explorer.d-bis.org/address/<ADDRESS>.
1. **Confirm on-chain** — Run `./scripts/verify/check-contracts-on-chain-138.sh` (current canonical target: 75 addresses) or open each address at https://explorer.d-bis.org/address/<ADDRESS>.
2. **Verify source on Blockscout** — Use [BLOCKSCOUT_VERIFICATION_GUIDE](../08-monitoring/BLOCKSCOUT_VERIFICATION_GUIDE.md) and `scripts/verify/run-contract-verification-with-proxy.sh`.
3. **Do not use deprecated bridge** — Use **CCIPWETH9Bridge** at `0xcacfd227A040002e49e2e01626363071324f820a` only.
4. **If deploying more contracts** — Use **`--with-gas-price 1000000000`** for all `forge script`/`forge create` on Chain 138. Phased core: [CONTRACTS_TO_DEPLOY](CONTRACTS_TO_DEPLOY.md), [CONTRACT_DEPLOYMENT_RUNBOOK](../03-deployment/CONTRACT_DEPLOYMENT_RUNBOOK.md). RPC: Set `RPC_URL_138` in `smom-dbis-138/.env` (e.g. `http://192.168.11.211:8545` or `https://rpc-core.d-bis.org`). Set `PRIVATE_KEY` there too.

View File

@@ -1,6 +1,6 @@
# Tokens the Deployer Wallet Deployed on Other Blockchains
**Last Updated:** 2026-03-01
**Last Updated:** 2026-04-04
**Purpose:** List all **token contracts** (ERC-20) that the deployer wallet (`0x4A666F96fC8764181194447A7dFdb7d471b301C8`) deployed on blockchains **other than Chain 138**. Use this to know where the deployer is contract owner/admin and can mint or manage tokens for liquidity and bridges.
**Deployer address:** `0x4A666F96fC8764181194447A7dFdb7d471b301C8`
@@ -11,7 +11,7 @@
| Token type | Deployed by our deployer on other chains? | Where / notes |
|------------|------------------------------------------|----------------|
| **cW*** (compliant wrapped, e.g. cWUSDT, cWUSDC) | **Yes** (optional) | Use DeployCWTokens.s.sol and --deploy-cw; set CW_BRIDGE_ADDRESS. CompliantWrappedToken with MINTER/BURNER for bridge. |
| **cW*** (compliant wrapped, e.g. cWUSDT, cWUSDC) | **Yes** | Use DeployCWTokens.s.sol and `--deploy-cw`; set `CW_BRIDGE_ADDRESS`. Public EVM status today: **full 12-token suite on the 10 currently loaded public EVM chains**: Mainnet, Optimism, Cronos, BSC, Gnosis, Polygon, Base, Arbitrum, Celo, and Avalanche. Wemix remains a desired but still-unloaded target. |
| **WETH9 / WETH10** | **Yes** | **Cronos (25):** documented addresses. **BSC, Polygon, Gnosis, Avalanche, Base, Arbitrum, Optimism:** only if DeployAll.s.sol was run with each chains RPC (addresses in .env). **Mainnet (1):** DeployAll skips WETH; uses .env. Wrap-only (no mint). |
| **ETH** | **No** | Native gas token; not a contract. |
| **c*** (compliant, e.g. cUSDT, cUSDC, cEURC) | **Yes** (optional) | Chain 138: DeployCompliantFiatTokens. Other chains: DeployCompliantFiatTokensForChain.s.sol and --deploy-c. |
@@ -23,9 +23,9 @@
| Chain | Chain ID | Tokens deployed by deployer | Script | Mint / control |
|-------|----------|-----------------------------|--------|-----------------|
| **Cronos** | 25 | **USDW, EURW, GBPW, AUDW, JPYW, CHFW, CADW** (7 D-WIN W) + optionally **WETH9, WETH10** | DeployISO4217WSystem.s.sol; DeployAll.s.sol | Mint via MintController (W tokens); WETH = wrap only |
| **Ethereum Mainnet** | 1 | **WETH9, WETH10** only if deployed by this repo (else from .env) | DeployAll.s.sol (skips WETH on Mainnet by default) | Wrap only |
| **BSC, Polygon, Gnosis, Avalanche, Base, Arbitrum, Optimism** | 56, 137, 100, 43114, 8453, 42161, 10 | **WETH9, WETH10** (if DeployAll was run with each chains RPC) | DeployAll.s.sol | Wrap only; addresses in .env per chain |
| **Cronos** | 25 | **Full 12-token cW suite** + **USDW, EURW, GBPW, AUDW, JPYW, CHFW, CADW** (7 D-WIN W) + optionally **WETH9, WETH10** | DeployCWTokens.s.sol; DeployISO4217WSystem.s.sol; DeployAll.s.sol | cW* mint/burn via bridge roles; W tokens mint via MintController; WETH = wrap only |
| **Ethereum Mainnet** | 1 | **Full 12-token cW suite** | DeployCWTokens.s.sol (Mainnet recovery path) | cW* mint/burn via bridge roles |
| **BSC, Polygon, Gnosis, Avalanche, Base, Arbitrum, Optimism, Celo** | 56, 137, 100, 43114, 8453, 42161, 10, 42220 | **Full 12-token cW suite** and optionally **WETH9, WETH10** (if DeployAll was run with each chains RPC) | DeployCWTokens.s.sol; DeployAll.s.sol | cW* mint/burn via bridge roles; WETH = wrap only |
| **ALL Mainnet (Alltra)** | 651940 | None from this repo (AUSDT, USDC, WETH, WALL are ecosystem contracts) | — | — |
**Chain 138** is not included here; see [CHAIN138_TOKEN_ADDRESSES](CHAIN138_TOKEN_ADDRESSES.md) and [TOKENS_AND_NETWORKS_MINTABLE_TO_DEPLOYER](TOKENS_AND_NETWORKS_MINTABLE_TO_DEPLOYER.md) for tokens the deployer deployed on 138.
@@ -70,9 +70,18 @@ These are not mintable to an address; users wrap native CRO to get WETH.
## 2. Ethereum Mainnet (Chain 1)
**DeployAll.s.sol** on Mainnet is configured to **skip** deploying WETH9/WETH10 and the CCIP bridges (they are taken from `.env`). The only contract it deploys is **CCIPLogger** (and that is a logger, not a token).
Ethereum Mainnet now has the full **12-token cW suite** deployed by this repos deployer. The active recorded addresses live in `smom-dbis-138/.env`, and the curated wallet-facing list is now mirrored in `token-lists/lists/ethereum-mainnet.tokenlist.json`.
So in normal setup, **no token contracts** on Ethereum Mainnet are deployed by this deployer from this repo; WETH and others are canonical/mainnet contracts. If at some point WETH9/WETH10 were deployed by this deployer on Mainnet, their addresses would be in `WETH9_MAINNET` / `WETH10_MAINNET` in `.env`.
**Important nuance:** `DeployAll.s.sol` on Mainnet still **skips** deploying WETH9/WETH10 and the CCIP bridges (those remain canonical / env-driven). The Mainnet work completed here is the **cW transport-token deployment**, not a new Mainnet WETH deployment.
Current Mainnet cW suite:
- `cWUSDT`, `cWUSDC`
- `cWEURC`, `cWEURT`
- `cWGBPC`, `cWGBPT`
- `cWAUDC`, `cWJPYC`
- `cWCHFC`, `cWCADC`
- `cWXAUC`, `cWXAUT`
---
@@ -85,7 +94,7 @@ So in normal setup, **no token contracts** on Ethereum Mainnet are deployed by t
- **CCIPWETH9Bridge**, **CCIPWETH10Bridge**
- **CCIPLogger** (placeholder)
So the **tokens** the deployer may have deployed on these chains are **WETH9** and **WETH10** only, and only if the script was run without pre-set addresses. Deployed addresses would be stored in `.env` (e.g. `WETH9_BSC`, `WETH10_BSC`, `WETH9_POLYGON`, …), not in the repo as a single canonical list.
Separately from that WETH helper path, these chains now also have the repos **full 12-token cW suite** recorded in `smom-dbis-138/.env` and mirrored into the public deployment graph (`cross-chain-pmm-lps/config/deployment-status.json`). WETH9/WETH10 remain optional wrap helpers; the `cW*` suite is the transport-token surface.
**Mint:** WETH9/WETH10 are wrap-only (no arbitrary mint to deployer); users deposit native gas to get WETH.
@@ -103,9 +112,9 @@ Tokens on ALL Mainnet (AUSDT, USDC, WETH, WALL, etc.) are **ecosystem/Alltra** c
| Script | Chains | Tokens deployed |
|--------|--------|------------------|
| **`scripts/deployment/deploy-tokens-and-weth-all-chains-skip-canonical.sh`** | 1, 25, 56, 137, 100, 43114, 8453, 42161, 10, 651940 | DeployAll (WETH9/WETH10) when not set; Cronos ISO-4217 W when USDW missing; **--deploy-c** runs cUSDT/cUSDC per chain (skip 138, 1); **--deploy-cw** runs cWUSDT/cWUSDC per chain; 651940 env validation only. Options: `--dry-run`, `--chain 25 56`, `--no-iso4217`, `--iso4217-only`, `--deploy-c`, `--deploy-cw`. |
| **`scripts/deployment/deploy-tokens-and-weth-all-chains-skip-canonical.sh`** | 1, 25, 56, 137, 100, 43114, 8453, 42161, 10, 651940 | DeployAll (WETH9/WETH10) when not set; Cronos ISO-4217 W when USDW missing; **--deploy-c** runs cUSDT/cUSDC per chain (skip 138, 1); **--deploy-cw** runs the full primary 12-token cW suite (`cWUSDT``cWXAUT`) per chain; 651940 env validation only. Options: `--dry-run`, `--chain 25 56`, `--no-iso4217`, `--iso4217-only`, `--deploy-c`, `--deploy-cw`. |
| `script/deploy/DeployCompliantFiatTokensForChain.s.sol` | Any (e.g. 56, 137, 100) | cUSDT, cUSDC; optional cEURC, cEURT, … via env |
| `script/deploy/DeployCWTokens.s.sol` | Any | cWUSDT, cWUSDC (CompliantWrappedToken); requires CW_BRIDGE_ADDRESS |
| `script/deploy/DeployCWTokens.s.sol` | Any | Full primary 12-token cW suite (`cWUSDT`, `cWUSDC`, `cWEURC`, `cWEURT`, `cWGBPC`, `cWGBPT`, `cWAUDC`, `cWJPYC`, `cWCHFC`, `cWCADC`, `cWXAUC`, `cWXAUT`); requires CW_BRIDGE_ADDRESS |
| `script/deploy/iso4217w/DeployISO4217WSystem.s.sol` | Any (typically Cronos 25) | USDW, EURW, GBPW, AUDW, JPYW, CHFW, CADW + MintController, TokenRegistry, etc. |
| `script/DeployAll.s.sol` | 25, 56, 137, 100, 43114, 8453, 42161, 10 | WETH9, WETH10 (if not in .env) |
| `script/DeployAll.s.sol` | 1 (Mainnet) | None (uses .env WETH9/WETH10); only CCIPLogger |
@@ -124,16 +133,17 @@ The following items have been **brought within scope** and are implemented.
- **All-chains script:** `deploy-tokens-and-weth-all-chains-skip-canonical.sh --deploy-c`
For each chain (except 138 and 1), if `CUSDT_<CHAIN>` / `CUSDC_<CHAIN>` are unset, runs `DeployCompliantFiatTokensForChain` and prompts to set addresses in .env.
### 6.2 cW* (compliant wrapped: cWUSDT, cWUSDC) on public chains — **Implemented**
### 6.2 cW* (compliant wrapped primary suite) on public chains — **Implemented**
- **Contract:** `smom-dbis-138/contracts/tokens/CompliantWrappedToken.sol`
ERC-20 with `MINTER_ROLE` and `BURNER_ROLE`; only minter can mint, only burner can burn (e.g. bridge).
- **Script:** `smom-dbis-138/script/deploy/DeployCWTokens.s.sol`
Deploys cWUSDT and cWUSDC, grants `MINTER_ROLE` and `BURNER_ROLE` to `CW_BRIDGE_ADDRESS`.
- **Env:** `CW_BRIDGE_ADDRESS` (required for deploy) or per-chain `CW_BRIDGE_<CHAIN>`; after deploy set `CWUSDT_<CHAIN>`, `CWUSDC_<CHAIN>`.
Deploys the repos primary 12-token cW suite (`cWUSDT`, `cWUSDC`, `cWEURC`, `cWEURT`, `cWGBPC`, `cWGBPT`, `cWAUDC`, `cWJPYC`, `cWCHFC`, `cWCADC`, `cWXAUC`, `cWXAUT`) and grants `MINTER_ROLE` and `BURNER_ROLE` to `CW_BRIDGE_ADDRESS`.
- **Env:** `CW_BRIDGE_ADDRESS` (required for deploy) or per-chain `CW_BRIDGE_<CHAIN>`; after deploy set the corresponding `CW*_<CHAIN>` variables in `.env`.
- **All-chains script:** `deploy-tokens-and-weth-all-chains-skip-canonical.sh --deploy-cw`
For each chain, if `CWUSDT_<CHAIN>` is unset and bridge address is set, runs `DeployCWTokens` and prompts to set addresses in .env.
- **Current live bridge note:** cW* token deployment is implemented on multiple chains, but generic public-chain mint-on-receive still requires a dedicated cW-capable receiver. The proven live exception is Avalanche `cUSDT -> cWUSDT` via AVAX cW bridge `0x635002c5fb227160cd2eac926d1baa61847f3c75`.
For each chain, if `CWUSDT_<CHAIN>` is unset and bridge address is set, runs `DeployCWTokens` and prompts to set the full suite of `CW*_<CHAIN>` addresses in `.env`.
- **Current live bridge note:** cW* token deployment is implemented on multiple chains, but generic public-chain mint-on-receive still requires a dedicated cW-capable receiver. The repo now proves live lock/mint corridors for Avalanche `cUSDT -> cWUSDT` via AVAX cW bridge `0x635002c5fb227160cd2eac926d1baa61847f3c75`, and for Mainnet `cUSDC -> cWUSDC` plus `cUSDT -> cWUSDT` via Mainnet `CWMultiTokenBridgeL2` `0x2bF74583206A49Be07E0E8A94197C12987AbD7B5`.
- **Current live token-state note:** the currently loaded public EVM cW token mesh is now **10/10 full sets** across Mainnet, Optimism, Cronos, BSC, Gnosis, Polygon, Base, Arbitrum, Celo, and Avalanche. `Wemix` remains outside the loaded mesh.
### 6.3 AUSDT and ALL Mainnet (651940) — **Implemented (env validation only)**

View File

@@ -1,7 +1,7 @@
# Token Categories — Canonical Reference
**Last Updated:** 2026-02-28
**Status:** Authoritative list of token categories for Chain 138, ALL Mainnet, compliant wrapped (cW*), and D-WIN W tokens.
**Last Updated:** 2026-04-07
**Status:** Authoritative list of token categories for Chain 138, ALL Mainnet, compliant wrapped (cW*), D-WIN W tokens, and gas-native GRU transport families.
---
@@ -17,6 +17,8 @@ Tokens native to or deployed on **ChainID 138** (DeFi Oracle Meta Mainnet): nati
| **LINK** | Chainlink Token | `0xb7721dD53A8c629d9f1Ba31a5819AFe250002b03` |
| **cUSDT** | Compliant Tether USD | `0x93E66202A11B1772E55407B32B44e5Cd8eda7f22` |
| **cUSDC** | Compliant USD Coin | `0xf22258f57794CC8E06237084b353Ab30fFfa640b` |
| **cAUSDT** | Compliant Alltra/USD T | `0x5fdDF65733e3d590463F68f93Cf16E8c04081271` |
| **cUSDW** | USD W (compliant hub; GRU / D-WIN-aligned) | `0xcA6BFa614935f1AB71c9aB106bAA6FBB6057095e` |
| **cEURT** | Compliant Tether EUR | Deploy / env; see canonical-tokens.ts |
| **cEURC** | Compliant Euro Coin | Deploy / env; see canonical-tokens.ts |
| **cGBPT** | Compliant Tether GBP | Deploy / env |
@@ -29,7 +31,6 @@ Tokens native to or deployed on **ChainID 138** (DeFi Oracle Meta Mainnet): nati
| **cCHFC** | Compliant Swiss Franc | Deploy / env |
| **cCADT** | Compliant Tether CAD | Deploy / env |
| **cCADC** | Compliant Canadian Dollar (Coin) | Deploy / env |
| **cAUSDT** | Compliant Alltra/USD T | Deploy / env (e.g. ALL Mainnet bridge) |
**Source of addresses:** [CHAIN138_TOKEN_ADDRESSES](CHAIN138_TOKEN_ADDRESSES.md), [canonical-tokens.ts](../../smom-dbis-138/services/token-aggregation/src/config/canonical-tokens.ts) (FALLBACK_ADDRESSES + env).
@@ -51,6 +52,8 @@ Tokens on **ChainID 651940** (ALL Mainnet / Alltra): native gas token and ecosys
**Source:** [DEPLOYED_COINS_TOKENS_AND_NETWORKS](DEPLOYED_COINS_TOKENS_AND_NETWORKS.md).
For inbound gold corridors from Chain 138, ALL Mainnet uses a naming exception: the bridge-minted wrapped tokens are **`cWAXAUC`** / **`cWAXAUT`**, and unwrapping on ALL Mainnet lands as **`cAXAUC`** / **`cAXAUT`**. This is distinct from generic public-chain **`cWXAUC`** / **`cWXAUT`** naming and remains pair-specific until those ALL Mainnet gold contracts are deployed.
---
## 3. Compliant Wrapped Tokens for Public Blockchains (cW*)
@@ -73,6 +76,7 @@ Bridged representations of Canonical 138 Compliant tokens on **public chains** (
| **cWJPYC** | Wrapped cJPYC |
| **cWCHFC** | Wrapped cCHFC |
| **cWCADC** | Wrapped cCADC |
| **cWAUSDT** | Wrapped cAUSDT / Alltra USD transport mirror |
| **cWUSDW** | Wrapped USDW (D-WIN W) |
| **cWEURW** | Wrapped EURW |
| **cWGBPW** | Wrapped GBPW |
@@ -83,12 +87,30 @@ Bridged representations of Canonical 138 Compliant tokens on **public chains** (
**Context:** M1 tokens on Chain 138 (cUSDT, cUSDC, cEURT, cEURC, etc.) are bridged to public chains as **cW*** wrappers. The intended public-chain stabilization model uses single-sided PMM edge pools (cW* / USDC, cW* / USDT) plus a bot-driven mesh **when deployed**; broader edge-pool rollout is still partial. See [cross-chain-pmm-lps](../../cross-chain-pmm-lps/README.md), [LIQUIDITY_POOLS_MASTER_MAP](LIQUIDITY_POOLS_MASTER_MAP.md) § Public-chain cW* stabilization.
For **AUSDT**, the repo now models the live **ALL Mainnet AUSDT -> public cWAUSDT -> Chain 138 cAUSDT** corridor. BSC, Polygon, Avalanche, and Celo `cWAUSDT` mirrors are deployed and bridge-wired; public edge PMM pools for those mirrors remain a separate rollout.
For **gold**, generic public-chain wrappers remain **`cWXAUC`** / **`cWXAUT`**, but the **ALL Mainnet** destination corridor is a special case: **`cWAXAUC`** / **`cWAXAUT`** are the bridge-minted wrapped assets on chain **651940**, and unwrapping there yields **`cAXAUC`** / **`cAXAUT`**.
---
## 4. D-WIN W Tokens
**ISO-4217 W** tokens (D-WIN W): multi-currency W tokens deployed e.g. on Cronos (Chain 25) and optionally Chain 138 / 651940.
### 4.1 Public “USD DWIN” (CMC-listed) vs Cronos ISO-4217W USDW
Do **not** conflate these:
| Asset | Where | Notes |
|-------|--------|--------|
| **USDW** (ISO-4217W script family) | Cronos **25** | Table below; `canonical-tokens.ts` **FALLBACK_ADDRESSES.USDW[25]** |
| **USDW** (“USD DWIN”, CMC) | **BSC 56** | Current: `0xed75ad08f416d4e53e4d45dd5140a4c8b84f39fb`; deprecated: `0xabddb950f2ae8430c5a818f8bb4ec09e3ae41253` |
| **USDW** (“USD DWIN”, CMC) | **Polygon 137** | Current: `0x3deb0c60f0be9d9b99da83a2b6b2ee790f5af37a`; deprecated: `0x60f7dd499956ec8fcea8ed80e9d7eade4ccdc417` |
CMC documents a **1:1 swap** from old to new BSC and Polygon contracts; see [CoinMarketCap — USD DWIN](https://coinmarketcap.com/currencies/usd-dwin/). Repo pins: **`config/token-mapping-multichain.json`** → **`dwinUsdWinPublic`**. **GRU** flow: lock native DWIN USDW → mint **cWUSDW** → bridge ↔ **cUSDW** on Chain 138 — runbook **`docs/03-deployment/USD_DWIN_CUSDW_CWUSDW_BRIDGE_CHECKLIST.md`**.
### 4.2 Cronos (and script-aligned) W table
| Symbol | Description | Cronos (25) address |
|--------|-------------|----------------------|
| **USDW** | USD W Token | `0x948690147D2e50ffe50C5d38C14125aD6a9FA036` |
@@ -103,20 +125,41 @@ Bridged representations of Canonical 138 Compliant tokens on **public chains** (
---
## 5. Gas-Native GRU Transport Families
These are governance-approved GRU transport families that mirror public-chain gas assets while keeping Chain 138 as the canonical accounting layer.
| Symbol | Description | Chain 138 address / status |
|--------|-------------|----------------------------|
| **cETH** | Ethereum mainnet gas family | `0xf8e9802a1766422e33a269556ad5fc032338eefc` |
| **cETHL2** | Ethereum L2 gas family | `0x18a6b163d255cc0cb32b99697843b487d059907d` |
| **cBNB** | BNB gas family | `0x94517875f32680984a5921da7abf78e22f65d70f` |
| **cPOL** | Polygon gas family | `0x19fec21edede9edb91d1fbec7c4095c5ac1fc10c` |
| **cAVAX** | Avalanche gas family | `0x9c8f6f4fe1e535e6f85a78ee95249ded5540a2d0` |
| **cCRO** | Cronos gas family | `0xfb48bb6c623571f9795b535b73f0d660e8643fd4` |
| **cXDAI** | Gnosis/xDAI gas family | `0xa39a59138f8a45b4a31455875b8a29ff31e76ec8` |
| **cCELO** | Celo gas family | `0x1814661dae0933bf397b1274f5a62411b94195c7` |
| **cWEMIX** | Wemix hub gas family | `0x4d82206bec5b4dfa17759ffede07e35f4f63a050` |
These are formal GRU ecosystem assets, but they are not `c* V2` ISO-4217 payment tokens. They follow the gas-native transport policy set in `config/gru-transport-active.json` and are tracked in `config/gru-monetary-unit-manifest.json`.
---
## Summary table
| Category | Scope | Examples |
|----------|--------|----------|
| **1. Canonical 138 Compliant** | Chain 138 native + WETH, WETH10, LINK, cUSDT, cUSDC, cEURT, cEURC, cGBPT, cGBPC, cAUDT, cAUDC, cJPYT, cJPYC, cCHFT, cCHFC, cCADT, cCADC, cAUSDT | ETH, WETH, cUSDT, cUSDC |
| **2. ALL Mainnet (Alltra)** | Chain 651940 | Native, AUSDT, USDT, USDC, WETH, WALL, ACADT |
| **3. Compliant Wrapped (cW*)** | Public chains (bridged from 138) | cWUSDT, cWUSDC, cWEURT, cWEURC, cWUSDW, … |
| **4. D-WIN W Tokens** | Cronos (25) / 138 / 651940 | USDW, EURW, GBPW, AUDW, JPYW, CHFW, CADW |
| **3. Compliant Wrapped (cW*)** | Public chains (bridged from 138) | cWUSDT, cWUSDC, cWAUSDT, cWEURT, cWEURC, cWUSDW, … |
| **4. D-WIN W Tokens** | Cronos (25) / 138 / 651940; plus CMC **USD DWIN** on BSC/Polygon (see 4.1) | USDW, EURW, …; **cUSDW** / **cWUSDW** for GRU hub |
| **5. Gas-Native GRU Families** | Chain 138 canonical gas-family mirrors for public chains | cETH, cETHL2, cBNB, cPOL, cAVAX, cCRO, cXDAI, cCELO, cWEMIX |
---
## Gaps and alignment notes
- **canonical-tokens.ts:** Defines **cEURC**, **cEURT**, **cGBPC**, **cGBPT**, **cAUDC**, **cJPYC**, **cCHFC**, **cCADC** (no **cAUDT**, **cJPYT**, **cCHFT**, **cCADT**, **cAUSDT** in the base list). Category 1 uses both T (Tether-style) and C (Coin-style): **cCADT** and **cCADC** for CAD; D-WIN is **CADW**; wrapped are **cWCADT**, **cWCADC**, **cWCADW**; Alltra is **ACADT**. **cAUSDT** is referenced in ISO4217 and tests but not in CANONICAL_TOKENS; add when Alltra/bridge compliant token is defined.
- **canonical-tokens.ts:** Defines **cEURC**, **cEURT**, **cGBPC**, **cGBPT**, **cAUDC**, **cJPYC**, **cCHFC**, **cCADC**, plus live **cAUSDT** and public-edge **cWAUSDT** mirrors. Category 1 still uses both T (Tether-style) and C (Coin-style): **cCADT** and **cCADC** for CAD; D-WIN is **CADW**; wrapped are **cWCADT**, **cWCADC**, **cWCADW**; Alltra is **ACADT**.
- **FALLBACK_ADDRESSES** (canonical-tokens.ts): Only **cUSDC**, **cUSDT**, and the seven **D-WIN W** tokens (Cronos) have hardcoded addresses. All other Category 1 tokens rely on env (e.g. `cEURT_ADDRESS_138`).
- **CHAIN138_TOKEN_ADDRESSES.md:** Lists only the five deployed tokens (WETH, WETH10, LINK, cUSDT, cUSDC). For the full Category 1 list and status, see this document.
- **list-deployer-tokens-all-networks.sh:** Reports only tokens with known addresses (Chain 138: the five above + USDT official). When cEURT, cEURC, etc. are deployed, add their addresses to the script or source from a single config.
@@ -125,6 +168,8 @@ Bridged representations of Canonical 138 Compliant tokens on **public chains** (
## References
- [USD_DWIN_CUSDW_CWUSDW_BRIDGE_CHECKLIST](../03-deployment/USD_DWIN_CUSDW_CWUSDW_BRIDGE_CHECKLIST.md) — CMC USD DWIN addresses, mapper keys, GRU activation notes
- [AUSDT_CAUSDT_CWAUSDT_BRIDGE_CHECKLIST](../03-deployment/AUSDT_CAUSDT_CWAUSDT_BRIDGE_CHECKLIST.md) — ALL Mainnet AUSDT source pins, `cWAUSDT` mirrors, and `cAUSDT` activation gate
- [CHAIN138_TOKEN_ADDRESSES](CHAIN138_TOKEN_ADDRESSES.md) — Chain 138 contract addresses (deployed subset)
- [DEPLOYED_COINS_TOKENS_AND_NETWORKS](DEPLOYED_COINS_TOKENS_AND_NETWORKS.md) — Networks and tokens by chain
- [LIQUIDITY_POOLS_MASTER_MAP](LIQUIDITY_POOLS_MASTER_MAP.md) — cW* edge pools and stabilization

View File

@@ -1,6 +1,6 @@
# Token Contract Deployments — Remaining
**Last Updated:** 2026-02-28
**Last Updated:** 2026-04-04
**Purpose:** Single list of all **remaining** token-related contract deployments (by category and chain).
**Related:** [TOKEN_CATEGORIES_CANONICAL](TOKEN_CATEGORIES_CANONICAL.md), [DEPLOYED_COINS_TOKENS_AND_NETWORKS](DEPLOYED_COINS_TOKENS_AND_NETWORKS.md), [CONTRACT_DEPLOYMENT_RUNBOOK](../03-deployment/CONTRACT_DEPLOYMENT_RUNBOOK.md).
@@ -10,21 +10,23 @@
| Category | Chain(s) | Status | Script / notes |
|----------|----------|--------|----------------|
| **1. Canonical 138 Compliant (extra)** | 138 | Not deployed | DeployCompliantFiatTokens.s.sol |
| **1. Canonical 138 Compliant (extra)** | 138 | Mostly complete | `DeployCompliantFiatTokens.s.sol` is done; optional `cCADT` and follow-on vault extensions remain |
| **2. ALL Mainnet (Alltra)** | 651940 | ACADT not deployed | No script in repo; TBD |
| **3. Compliant Wrapped (cW\*)** | 1, 56, 137, 10, 42161, etc. | Not deployed | Bridge + pool-matrix per chain |
| **3. Compliant Wrapped (cW\*)** | 1, 56, 137, 10, 42161, etc. | Token mesh largely complete | Remaining work is bridge promotion where needed plus PMM edge pools per chain |
| **4. D-WIN W on 138 / 651940** | 138, 651940 | Optional | DeployISO4217WSystem or extend |
| **5. Vault ac\* / vdc\* / sdc\*** | 138 | After base tokens | DeployAcVdcSdcVaults (extend for new base) |
| **6. cAUSDT** | 138 | Not deployed | Env / bridge when Alltra compliant token defined |
| **6. cAUSDT** | 138 | Live | Deployed at `0x5fdDF65733e3d590463F68f93Cf16E8c04081271`; remaining work is the public `cWAUSDT` pool rollout |
---
## 1. Canonical 138 Compliant — Remaining
## 1. Canonical 138 Compliant — Status and Remaining Items
Tokens in **Category 1** that do not yet have deployed addresses on Chain 138 (WETH, WETH10, LINK, cUSDT, cUSDC are already deployed).
The main Category 1 expansion deploy is complete on Chain 138. The remaining items here are optional additions and follow-on extensions.
### 1.1 DeployCompliantFiatTokens (CREATE2)
**Status:** Completed on 2026-02-27 for the scripted expansion set.
**Script:** `smom-dbis-138/script/deploy/DeployCompliantFiatTokens.s.sol`
**Tokens deployed by script:** cEURC, cEURT, cGBPC, cGBPT, cAUDC, cJPYC, cCHFC, cCADC, cXAUC, cXAUT.
@@ -47,7 +49,13 @@ forge script script/deploy/DeployCompliantFiatTokens.s.sol:DeployCompliantFiatTo
### 1.3 cAUSDT (Compliant Alltra/USD T)
**Status:** No deployment script in repo. Referenced in [TOKEN_CATEGORIES_CANONICAL](TOKEN_CATEGORIES_CANONICAL.md) and ISO4217/tests. Deploy or configure via env when the Alltra/bridge compliant USD token is defined.
**Status:** Live on Chain 138 at `0x5fdDF65733e3d590463F68f93Cf16E8c04081271`.
The remaining work is no longer the base-token deployment. It is the public transport and liquidity layer:
1. Keep the `651940 AUSDT -> 138 cAUSDT` route and the `138 -> cWAUSDT` mappings aligned in config.
2. Maintain the live `cWAUSDT` transport mirrors on BSC, Polygon, Avalanche, and Celo.
3. Create and fund the planned public edge PMM pools where needed.
---
@@ -70,7 +78,9 @@ AUSDT, USDT, USDC, WETH, WALL are already deployed on 651940. See [DEPLOYED_COIN
**Tokens:** cWUSDT, cWUSDC, cWEURT, cWEURC, cWGBPT, cWGBPC, cWAUDT, cWAUDC, cWJPYT, cWJPYC, cWCHFT, cWCHFC, **cWCADT**, **cWCADC**, cWUSDW, cWEURW, cWGBPW, cWAUDW, cWJPYW, cWCHFW, **cWCADW**.
**Status:** No addresses in deployment-status; deployment from this repo not yet done. When a deployment path exists (bridge + factory or DODO):
**Status:** The tracked public-EVM `cW*` token mesh is now loaded for Mainnet, Cronos, BSC, Gnosis, Polygon, Optimism, Arbitrum, Base, Avalanche, and Celo. Remaining work is bridge promotion where needed and public edge pool deployment.
When a new deployment path or new chain target is introduced:
1. Deploy or bridge cW* tokens per chain.
2. Create and fund PMM edge pools per [cross-chain-pmm-lps](https://gitea.d-bis.org/d-bis/cross-chain-pmm-lps) pool-matrix and [LIQUIDITY_POOLS_MASTER_MAP](LIQUIDITY_POOLS_MASTER_MAP.md).
@@ -102,7 +112,7 @@ AUSDT, USDT, USDC, WETH, WALL are already deployed on 651940. See [DEPLOYED_COIN
**Current scope:** Creates vaults for **acUSDC**, **acUSDT** (and corresponding vdc/sdc). Run after DeployVaultSystem and when cUSDC/cUSDT addresses are set.
**Remaining:** After deploying **DeployCompliantFiatTokens** (cEURC, cEURT, cGBPC, cGBPT, cAUDC, cJPYC, cCHFC, cCADC, cXAUC, cXAUT), extend DeployAcVdcSdcVaults (or add a new script) to create ac*/vdc*/sdc* for each new base token. See [CONTRACT_DEPLOYMENT_RUNBOOK](../03-deployment/CONTRACT_DEPLOYMENT_RUNBOOK.md) § Vault ac* / vdc* / sdc*.
**Remaining:** Extend DeployAcVdcSdcVaults (or add a new script) to create ac*/vdc*/sdc* for each deployed non-core base token such as cEURC, cEURT, cGBPC, cGBPT, cAUDC, cJPYC, cCHFC, cCADC, cXAUC, cXAUT, and cAUSDT. See [CONTRACT_DEPLOYMENT_RUNBOOK](../03-deployment/CONTRACT_DEPLOYMENT_RUNBOOK.md) § Vault ac* / vdc* / sdc*.
---