- Marked submodules ai-mcp-pmm-controller, explorer-monorepo, and smom-dbis-138 as dirty to reflect recent changes. - Updated documentation to clarify operator script usage, including dotenv loading and task execution instructions. - Enhanced the README and various index files to provide clearer navigation and task completion guidance. Made-with: Cursor
7.3 KiB
Routes: No Pre-Funded Bridge Required
Last Updated: 2026-03-04
Purpose: Routes from the deployer wallet (or any user) to public-network stablecoins (or between tokens) where pre-funding a destination bridge is not required. These use lock-mint (source locks, destination mints), same-chain (no bridge), or DEX-only flows. For routes that do require bridge pre-funding (e.g. 138 → Mainnet WETH), see DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES.
Deployer address: 0x4A666F96fC8764181194447A7dFdb7d471b301C8
Why this doc: The 138 → Ethereum Mainnet WETH path uses a relay + release model: CCIPRelayBridge on Mainnet releases WETH from a pool and must be funded with Mainnet WETH before transfers can complete. Other paths (same-chain DODO, AlltraAdapter, CCIP to non-Mainnet chains with mint-on-receive) do not require pre-funding the destination bridge.
Sources: DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES, DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS, 07-ccip/CW_BRIDGE_APPROACH, 07-ccip/CCIP_BRIDGE_MAINNET_CONNECTION, CONTRACT_ADDRESSES_REFERENCE.
1. Excluded: routes that require a pre-funded bridge
| Route | Reason |
|---|---|
| 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 §3.2 and CCIP_BRIDGE_MAINNET_CONNECTION. |
All routes below do not require pre-funding the destination bridge.
2. Same-chain (no bridge)
No bridge is used; no pre-fund requirement.
| From (chain) | To (same chain) | Mechanism | Status |
|---|---|---|---|
| 138 cUSDT | 138 cUSDC | DODOPMMIntegration / pool 0x9fcB06Aa1FD5215DC0E91Fd098aeff4B62fEa5C8 |
✅ 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 |
3. Cross-chain: lock-mint (destination mints)
Destination bridge mints (or releases from lock) on receive; no need to pre-fund a liquidity pool on the destination.
3.1 Chain 138 ↔ ALL Mainnet (651940) — AlltraAdapter
Design: lock on 138 → relayer mints on 651940 (and reverse). No destination bridge pre-fund.
| From | To | Route | Status |
|---|---|---|---|
| 138 (cUSDT, cUSDC, WETH, etc.) | 651940 AUSDT, USDC, WETH, WALL | AlltraAdapter 0x66FEBA2fC9a0B47F26DD4284DAd24F970436B8Dc (138↔651940) → then DEX on 651940 if needed |
✅ Live |
| 651940 | 138 | AlltraAdapter 651940→138 | ✅ |
Source: DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS, CROSS_CHAIN_ARBITRAGE_DESIGN (lock on 138, relayer mints on 651940).
3.2 Chain 138 → CCIP destinations other than Mainnet (1)
For 138 → BSC (56), Polygon (137), Arbitrum (42161), Optimism (10), Avalanche (43114), Cronos (25), Celo (42220), Gnosis (100), Wemix (1111), the destination receiver is CCIPWETH9Bridge / CCIPWETH10Bridge (same contract type as on 138). With native CCIP, the protocol delivers the token amounts to the receiver when the message is executed; the receiver then forwards to the recipient (transfer(recipient, amount)). So the receiver does not mint — it receives from CCIP and forwards. No pre-fund is required (tokens arrive with the message).
| From (138) | To (chain) | Route | Status |
|---|---|---|---|
| WETH9 / WETH10 | 56, 100, 137, 10, 42161, 8453, 43114, 25, 42220, 1111 | CCIP WETH9/WETH10 → destination (receiver receives from CCIP + forwards); then DEX to USDT/USDC on that chain | ✅ (Celo, Gnosis 2026-03-04); Wemix ⏳ |
Per-chain, per-token confirmation: See CCIP_138_DESTINATION_RECEIVER_BY_CHAIN_AND_TOKEN for which tokens use mint vs receive+forward vs release (pre-fund) on each chain.
3.3 cW* (c* → cW* on public chains) — when deployed
Design: lock cUSDT/cUSDC on 138, mint cWUSDT/cWUSDC on destination in ccipReceive. No pre-funded pool; receiver has MINTER_ROLE and mints.
| From (138) | To (destination chain) | Route | Status |
|---|---|---|---|
| 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; deployment-status empty |
Source: CW_BRIDGE_APPROACH — “lock c* on 138, mint cW* on destination”; receiver implements ccipReceive → cW*.mint(recipient, amount).
4. Reverse: inbound to 138 (no pre-fund)
| From (chain) | To (138) | Route | Pre-fund? |
|---|---|---|---|
| 651940 | 138 | AlltraAdapter 651940→138 | No (lock-mint / adapter design) |
| Other chains (56, 137, 10, etc.) WETH | 138 | CCIP receiver on 138 → WETH9/WETH10 | No (138 side mints or credits) |
| Mainnet (1) WETH | 138 | Via relay: Mainnet burns/locks, 138 receives. 138 side does not require a pre-funded pool for inbound; the relay’s outbound (138→1) is what requires Mainnet bridge pre-fund. | Inbound to 138: no pre-fund |
5. Summary: no pre-fund required
| Category | Routes | Pre-funded bridge required? |
|---|---|---|
| Same-chain 138 (cUSDT↔cUSDC) | DODO PMM pool | No |
| Same-chain any (DEX swap) | User holds token on chain, swap on DEX | No |
| 138 ↔ 651940 | AlltraAdapter (lock / mint) | No |
| 138 → chains other than Mainnet (1) | CCIP WETH9/WETH10 (destination receives from CCIP + forwards; no mint) | No |
| 138 → Mainnet (1) WETH | CCIP relay → CCIPRelayBridge releases | Yes — excluded from this doc |
| cW* 138 → dest (when deployed) | Lock c* on 138, mint cW* on dest | No |
| Inbound to 138 | AlltraAdapter, CCIP receiver on 138 | No |
6. References
| Document | Use |
|---|---|
| CCIP_138_DESTINATION_RECEIVER_BY_CHAIN_AND_TOKEN | Per chain and token: confirms receiver mints vs receive+forward vs release (pre-fund) |
| DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES | Full route list including routes that do require pre-funded bridge (138→Mainnet WETH) |
| DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS | Bridges and routing by chain |
| 07-ccip/CW_BRIDGE_APPROACH | cW* lock-mint flow (no pre-fund) |
| 07-ccip/CCIP_BRIDGE_MAINNET_CONNECTION | Why Mainnet WETH requires bridge pre-fund (relay + release) |
| CONTRACT_ADDRESSES_REFERENCE | AlltraAdapter, CCIP bridges, CCIPRelayBridge |