Files
proxmox/docs/11-references/CW_TOKENS_AND_NETWORKS.md
defiQUG b3a8fe4496
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
chore: sync all changes to Gitea
- Config, docs, scripts, and backup manifests
- Submodule refs unchanged (m = modified content in submodules)

Made-with: Cursor
2026-03-02 11:37:34 -08:00

4.6 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, and smom-dbis-138/.env (for recorded addresses).


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, 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

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
43114 Avalanche C-Chain
8453 Base
42161 Arbitrum One

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.


2.1 Bridge support status

Chain(s) Bridge / receiver Bridge code mints cW*? Notes
All (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 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

  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_). That contract receives MINTER_ROLE and BURNER_ROLE when deploying cW; extend it for cW* support if needed.
  2. Run with --deploy-cw:
    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):
    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_<CHAIN>, CWUSDC_<CHAIN> 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