- 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
6.7 KiB
cW* Tokens and Networks
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, smom-dbis-138/.env (for recorded addresses), and scripts/verify/check-cw-evm-deployment-mesh.sh (for the current per-chain EVM deployment summary).
1. All cW* tokens and deployability
All 12 cW* tokens are deployable via DeployCWTokens.s.sol (env flags DEPLOY_CWUSDT=1, DEPLOY_CWEURC=1, etc.; default all 1). Set DEPLOY_*=0 to skip a token.
| cW* Token | Deploy script | Networks deployable (script) | Deployed on (addresses in .env) |
|---|---|---|---|
| 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.
2. Network names (chain ID)
| Chain ID | Network name |
|---|---|
| 1 | Ethereum Mainnet |
| 10 | Optimism |
| 25 | Cronos |
| 56 | BSC (BNB Chain) |
| 100 | Gnosis Chain |
| 137 | Polygon |
| 42220 | Celo |
| 43114 | Avalanche C-Chain |
| 8453 | Base |
| 42161 | Arbitrum One |
| 1111 | Wemix |
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.
2.1 Bridge support status
| 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. |
| 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 and CW_BRIDGE_TASK_LIST.md. |
| After Phase B or C | Extended bridge or TwoWayTokenBridgeL2 / CCIPReceiverCW | Yes (when implemented) | Per 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
- Bridge addresses:
CW_BRIDGE_ADDRESSis left as default (zero). Per-chainCW_BRIDGE_<CHAIN>values are set insmom-dbis-138/.envfrom the deployed bridge suite. Mainnet now uses the dedicated cW-capableCWMultiTokenBridgeL2; the legacy MainnetCCIPRelayBridgeremains WETH-only. Other chains still useCCIPWETH9_BRIDGE_*or a dedicated cW receiver such as the proven AVAX cW bridge. Only a dedicated cW-capable receiver enables mint-on-receive. - Run with
--deploy-cw:Or deploy to a single chain (e.g. BSC):cd smom-dbis-138 && ./scripts/deployment/deploy-tokens-and-weth-all-chains-skip-canonical.sh --deploy-cwCW_BRIDGE_ADDRESS=0x... forge script script/deploy/DeployCWTokens.s.sol:DeployCWTokens \ --rpc-url "$BSC_RPC_URL" --chain-id 56 --broadcast --private-key "$PRIVATE_KEY" --legacy - Set
CWUSDT_<CHAIN>,CWUSDC_<CHAIN>in.envfrom the script output, and updateconfig/token-mapping-multichain.jsonaddressTofor the correspondingCompliant_USDT_cW/Compliant_USDC_cWentries.
4. References
- C_TO_CW_MAPPER_MAPPING.md — c*→cW* symbol and address mapping for the mapper.
- TOKENS_DEPLOYER_DEPLOYED_ON_OTHER_CHAINS.md — Deployer tokens on other chains; cW* deploy path.
- config/token-mapping-multichain.json —
cToCwSymbolMappingand per-pair_cWtokens. - CW_BRIDGE_TASK_LIST.md — Detailed task list: note review, checks performed, and phases (bridge extension vs dedicated receiver, deploy cW*, wire config, E2E).