# 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`), `cross-chain-pmm-lps/config/deployment-status.json`, `reports/status/cw-mesh-deployment-matrix-latest.json`, `smom-dbis-138/services/token-aggregation/src/config/canonical-tokens.ts`, `smom-dbis-138/script/deploy/DeployCWTokens.s.sol`, and `smom-dbis-138/.env` (for recorded addresses). --- ## 1. All cW* tokens and deployability All 12 primary GRU 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, 56, 100, 137, 8453, 42161, 42220, 43114 (+ optional tooling for `25`) | Active on nine promoted public mesh chains (excludes Cronos `25`) | | **cWUSDC** | Yes | Same | Same | | **cWEURC** | Yes | Same | Same | | **cWEURT** | Yes | Same | Same | | **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 | --- ## 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 | Chain **1111** (Wemix) is in the token-mapping file and has gas-scaffold entries, but it is not promoted as a live cW settlement surface because the current Chain 138 CCIP router still rejects the Wemix selector. **651940** (ALL Mainnet) is a separate Alltra corridor: bidirectional bridge inventory is published, but it is not a public cW mesh destination in the current canonical registry. --- ## 2.1 Bridge support status | Chain(s) | Bridge / receiver | Bridge code mints cW*? | Notes | |----------|-------------------|------------------------|-------| | Active cW mesh chains (nine-chain promoted surface: 1, 10, 56, 100, 137, 8453, 42161, 42220, 43114) | CCIPRelayBridge (Mainnet), CCIPWETH9_BRIDGE_* (others) | **No, for cW mint/burn semantics** | Current bridge suite is WETH-oriented; `ccipReceive` only transfers the received token. cW token contracts, roles, PMM pools, and Uniswap V2 mesh evidence are active on the nine-chain set, but do not claim full c*<->cW* mint/burn E2E until dedicated cW receivers are deployed and proof transfers pass. Cronos `25` may appear in legacy wave-1 artifacts; it is **not** part of the promoted nine-chain public `cW*` count. See [CW_BRIDGE_APPROACH.md](../07-ccip/CW_BRIDGE_APPROACH.md) and [CW_BRIDGE_TASK_LIST.md](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_` 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_` are set in `smom-dbis-138/.env` from the deployed bridge suite (Mainnet: CCIPRelayBridge; other chains: CCIPWETH9_BRIDGE_*). That contract receives MINTER_ROLE and BURNER_ROLE when deploying cW*; extend it for cW* support if needed. 2. Run with `--deploy-cw`: ```bash cd smom-dbis-138 && ./scripts/deployment/deploy-tokens-and-weth-all-chains-skip-canonical.sh --deploy-cw ``` Or deploy to a single chain (e.g. BSC): ```bash CW_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 ``` 3. Set `CWUSDT_`, `CWUSDC_` in `.env` from the script output, and update `config/token-mapping-multichain.json` `addressTo` for the corresponding `Compliant_USDT_cW` / `Compliant_USDC_cW` entries. --- ## 4. References - [C_TO_CW_MAPPER_MAPPING.md](../04-configuration/C_TO_CW_MAPPER_MAPPING.md) - c* to cW* symbol and address mapping for the mapper. - [TOKENS_DEPLOYER_DEPLOYED_ON_OTHER_CHAINS.md](TOKENS_DEPLOYER_DEPLOYED_ON_OTHER_CHAINS.md) - Deployer tokens on other chains; cW* deploy path. - [config/token-mapping-multichain.json](../../config/token-mapping-multichain.json) - `cToCwSymbolMapping` and per-pair `_cW` tokens. - **[CW_BRIDGE_TASK_LIST.md](../00-meta/CW_BRIDGE_TASK_LIST.md)** - Detailed task list: note review, checks performed, and phases (bridge extension vs dedicated receiver, deploy cW*, wire config, E2E).