- Institutional / JVMTM / reserve-provenance / GRU transport + standards JSON - Validation and verify scripts (Blockscout labels, x402, GRU preflight, P1 local path) - Wormhole wiring in AGENTS, MCP_SETUP, MASTER_INDEX, 04-configuration README - Meta docs, integration gaps, live verification log, architecture updates - CI validate-config workflow updates Operator/LAN items, submodule working trees, and public token-aggregation edge routes remain follow-up (see TODOS_CONSOLIDATED P1). Made-with: Cursor
9.0 KiB
Routes: No Pre-Funded Bridge Required
Historical note (2026-03-26): verify live PMM pool addresses against LIQUIDITY_POOLS_MASTER_MAP.md. Earlier route examples may reference a superseded PMM stack.
Last Updated: 2026-03-31
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, or routes that are not a proven direct first hop from the current Chain 138 router, see DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES.
Deployer address: 0x4A666F96fC8764181194447A7dFdb7d471b301C8
Why this doc: The 138 → Ethereum Mainnet, BSC, and Avalanche WETH paths currently use relay + release models: the destination bridge releases WETH from inventory and must already hold enough WETH. Other public-chain native bridge deployments should not be treated as live no-prefund first hops from Chain 138 unless a matching native delivery path is proven.
Sources: DEPLOYER_TO_PUBLIC_STABLECOIN_ROUTES, DEPLOYED_TOKENS_BRIDGES_LPS_AND_ROUTING_STATUS, 07-ccip/CW_BRIDGE_APPROACH, 07-ccip/CCIP_BRIDGE_MAINNET_CONNECTION, 07-ccip/NON_PREFUNDED_AVAX_MIGRATION_RUNBOOK, 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. |
| 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. |
| 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. |
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 0xff8d3b8fDF7B112759F076B69f4271D4209C0849 |
✅ 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 → public chains: current live correction
There is no blanket no-prefund WETH rule for public-chain first hops from the current Chain 138 router.
| From (138) | To (chain) | Current reality | Include in this no-prefund doc? |
|---|---|---|---|
| WETH9 / WETH10 | Mainnet, BSC, Avalanche | Relay-backed release path from destination inventory | No |
| WETH9 / WETH10 | Gnosis, Cronos, Celo, Polygon, Arbitrum, Optimism, Base | Native bridge deployments exist, but not as proven direct first hops from current Chain 138 routing | No |
| WETH9 / WETH10 | Wemix | Pending deployment / gas seeding | No |
Per-chain, per-token confirmation: See CCIP_138_DESTINATION_RECEIVER_BY_CHAIN_AND_TOKEN 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
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.
| 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 |
Sources: CW_BRIDGE_APPROACH — “lock c* on 138, mint cW* on destination”; receiver implements ccipReceive → cW*.mint(recipient, amount). NON_PREFUNDED_AVAX_MIGRATION_RUNBOOK records the live AVAX contract set and tx proofs.
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 → 43114 cUSDT -> cWUSDT |
Dedicated AVAX cW lock / mint route | No |
| 138 → public chains via generic cW path (other chains / assets) | Lock c* on 138, mint cW* on destination | No by design; live status still partial |
| 138 → Mainnet (1) WETH | CCIP relay → CCIPRelayBridge releases | Yes — excluded from this doc |
| 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) |
| 07-ccip/NON_PREFUNDED_AVAX_MIGRATION_RUNBOOK | Why AVAX non-prefunded is cW-based, not native WETH from current 138 router |
| CONTRACT_ADDRESSES_REFERENCE | AlltraAdapter, CCIP bridges, CCIPRelayBridge |