# Tokens and Networks — Mintable to Deployer (Liquidity Pools & Bridges) **Last Updated:** 2026-03-02 **Purpose:** Single list of all tokens and networks where tokens **can be minted** (or otherwise credited) to the deployer address for funding PMM liquidity pools and bridges. Use this to fund all operator/LAN-only items (add liquidity, CCIP bridges, etc.). **Deployer address:** `0x4A666F96fC8764181194447A7dFdb7d471b301C8` **Full mint runbook (c* and cW* on 138 + other networks):** [MINT_C_AND_CW_ON_ALL_NETWORKS.md](MINT_C_AND_CW_ON_ALL_NETWORKS.md) --- ## Summary | Network | Chain ID | Tokens mintable to deployer | Mechanism | |---------|----------|-----------------------------|-----------| | **DeFi Oracle Meta Mainnet** | 138 | cUSDT, cUSDC, cEURC, cEURT, cGBPC, cGBPT, cAUDC, cJPYC, cCHFC, cCADC, cXAUC, cXAUT | Owner mint (CompliantFiatToken / CompliantUSDT / CompliantUSDC) | | **Cronos** | 25 | USDW, EURW, GBPW, AUDW, JPYW, CHFW, CADW (D-WIN W) | MintController (MINTER_ROLE + reserve); conditional | | **All other chains** | 1, 56, 100, 137, 10, 42161, 8453, 43114, 42220, 1111, 651940 | — | Acquire via wrap, bridge, or DEX (see § Acquire) | --- ## 1. Chain 138 — Owner mint (all compliant tokens) On **Chain 138**, the deployer is **owner** of all compliant token contracts deployed by this repo. Each has `mint(address to, uint256 amount) public onlyOwner`. Mint to deployer by calling `mint(deployerAddress, amount)` from the deployer EOA. ### 1.1 Token addresses and decimals (Chain 138) | Symbol | Contract address | Decimals | Use for | |--------|------------------|----------|---------| | **cUSDT** | `0x93E66202A11B1772E55407B32B44e5Cd8eda7f22` | 6 | PMM pools cUSDT/cUSDC, cUSDT/USDT | | **cUSDC** | `0xf22258f57794CC8E06237084b353Ab30fFfa640b` | 6 | PMM pools cUSDT/cUSDC, cUSDC/USDC | | **cEURC** | `0x8085961F9cF02b4d800A3c6d386D31da4B34266a` | 6 | Future pools / bridge | | **cEURT** | `0xdf4b71c61E5912712C1Bdd451416B9aC26949d72` | 6 | Future pools / bridge | | **cGBPC** | `0x003960f16D9d34F2e98d62723B6721Fb92074aD2` | 6 | Future pools / bridge | | **cGBPT** | `0x350f54e4D23795f86A9c03988c7135357CCaD97c` | 6 | Future pools / bridge | | **cAUDC** | `0xD51482e567c03899eecE3CAe8a058161FD56069D` | 6 | Future pools / bridge | | **cJPYC** | `0xEe269e1226a334182aace90056EE4ee5Cc8A6770` | 6 | Future pools / bridge | | **cCHFC** | `0x873990849DDa5117d7C644f0aF24370797C03885` | 6 | Future pools / bridge | | **cCADC** | `0x54dBd40cF05e15906A2C21f600937e96787f5679` | 6 | Future pools / bridge | | **cXAUC** | `0x290E52a8819A4fbD0714E517225429aA2B70EC6b` | 6 | Future pools / bridge | | **cXAUT** | `0x94e408E26c6FD8F4ee00b54dF19082FDA07dC96E` | 6 | Future pools / bridge | **Decimals:** All use 6 decimals. Amount in base units = amount × 10^6 (e.g. 1_000_000 = 1 token). ### 1.2 How to mint on Chain 138 **Option A — Mint for PMM liquidity (recommended for add-liquidity):** ```bash cd smom-dbis-138 source .env # Mint 1M cUSDT and 1M cUSDC to deployer (default) ./scripts/mint-for-liquidity.sh # Custom amounts (human units) MINT_CUSDT_AMOUNT=2000000 MINT_CUSDC_AMOUNT=2000000 ./scripts/mint-for-liquidity.sh # Mint then add liquidity in one go ./scripts/mint-for-liquidity.sh --add-liquidity ``` See [ADD_LIQUIDITY_PMM_CHAIN138_RUNBOOK](../03-deployment/ADD_LIQUIDITY_PMM_CHAIN138_RUNBOOK.md) §0. **Option A2 — cUSDT / cUSDC (top-up to 750M supply):** ```bash cd smom-dbis-138 source .env ./scripts/mint-to-750m.sh both 0x4A666F96fC8764181194447A7dFdb7d471b301C8 # Or per token: ./scripts/mint-to-750m.sh usdt ./scripts/mint-to-750m.sh usdc ``` **Option B — Any compliant token via cast (owner = deployer):** ```bash # From smom-dbis-138, with PRIVATE_KEY and RPC_URL_138 set DEPLOYER=0x4A666F96fC8764181194447A7dFdb7d471b301C8 # Example: mint 1,000,000 cEURC (1e6 * 1e6 = 1000000000000 base units) cast send 0x8085961F9cF02b4d800A3c6d386D31da4B34266a \ "mint(address,uint256)" "$DEPLOYER" 1000000000000 \ --rpc-url "$RPC_URL_138" --private-key "$PRIVATE_KEY" ``` Repeat for each token and desired amount. Replace the token address with the one from the table above. ### 1.3 WETH and LINK on Chain 138 | Token | Address | Mintable? | How to get balance for deployer | |-------|---------|-----------|----------------------------------| | **WETH** | `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2` | No (standard wrap) | Wrap native ETH: send ETH to WETH contract and call `deposit()` (or use a wrapper script). | | **LINK** | `0xb7721dD53A8c629d9f1Ba31a5819AFe250002b03` | Depends (mock vs canonical) | If Chain 138 LINK is a mock with `mint`, call `mint(deployer, amount)`. Otherwise acquire via bridge or CCIP. | --- ## 2. Cronos (Chain 25) — D-WIN W tokens (MintController) D-WIN W tokens (USDW, EURW, GBPW, AUDW, JPYW, CHFW, CADW) on **Cronos** are **ISO4217WToken** contracts. Minting is done via **MintController**, which requires: - Caller has **MINTER_ROLE** on the MintController. - Token is **approved** in the controller (`isApprovedToken[token]`). - **Reserve oracle** and **compliance guard** allow the mint (reserve ≥ new supply). If the deployer (or an EOA you control) is the admin of the MintController and has MINTER_ROLE, you can mint to the deployer by calling: ```solidity MintController.mint(token, deployerAddress, amount, settlementId) ``` Token addresses on Cronos (from [TOKEN_CATEGORIES_CANONICAL](TOKEN_CATEGORIES_CANONICAL.md) / [DEPLOYED_COINS_TOKENS_AND_NETWORKS](DEPLOYED_COINS_TOKENS_AND_NETWORKS.md)): | Symbol | Address (Cronos) | Decimals | |--------|------------------|----------| | USDW | `0x948690147D2e50ffe50C5d38C14125aD6a9FA036` | 2 | | EURW | `0x58a8D8F78F1B65c06dAd7542eC46b299629A60dd` | 2 | | GBPW | `0xFb4B6Cc81211F7d886950158294A44C312abCA29` | 2 | | AUDW | `0xf9f5D0ACD71C76F9476F10B3F3d3E201F0883C68` | 2 | | JPYW | `0xeE17bB0322383fecCA2784fbE2d4CD7d02b1905B` | 2 | | CHFW | `0xc9750828124D4c10e7a6f4B655cA8487bD3842EB` | 2 | | CADW | `0x328Cd365Bb35524297E68ED28c6fF2C9557d1363` | 2 | **Note:** You must have the MintController address for Cronos, have MINTER_ROLE, and have updated the reserve oracle so that `canMint(token, amount)` returns true. If the D-WIN system on Cronos is operated by another party, request a mint to the deployer from them. --- ## 3. Tokens that must be acquired (not minted to deployer) These are needed for liquidity pools and bridges but **cannot** be minted by the deployer; they must be obtained by wrap, bridge, or DEX. ### 3.1 By network | Network | Chain ID | Tokens needed for pools/bridges | How to get | |---------|----------|----------------------------------|------------| | **Ethereum Mainnet** | 1 | USDT, USDC, WETH, LINK | DEX, CEX, or bridge from 138; WETH = wrap ETH. | | **ALL Mainnet (Alltra)** | 651940 | AUSDT, USDC, WETH, WALL | Ecosystem tokens; acquire via Alltra DEX/bridge or partner. | | **Cronos** | 25 | Native CRO (gas), LINK (if funding CCIP) | CRO from exchange; LINK from bridge/DEX. | | **BSC** | 56 | BNB (gas), USDT, USDC, WETH, LINK | DEX/CEX; wrap BNB for WBNB if needed. | | **Gnosis** | 100 | xDAI (gas), LINK | Bridge or DEX. | | **Polygon** | 137 | MATIC (gas), USDT, USDC, WETH, LINK | DEX/bridge. | | **Optimism** | 10 | ETH (gas), USDT, USDC, WETH, LINK | Bridge/DEX. | | **Arbitrum** | 42161 | ETH (gas), USDT, USDC, WETH, LINK | Bridge/DEX. | | **Base** | 8453 | ETH (gas), USDT, USDC, WETH, LINK | Bridge/DEX. | | **Avalanche** | 43114 | AVAX (gas), USDT, USDC, WETH, LINK | Bridge/DEX. | | **Celo** | 42220 | CELO (gas), LINK | Bridge/DEX. | | **Wemix** | 1111 | WEMIX (gas), LINK | Bridge/DEX. | ### 3.2 CCIP bridge funding (LINK) For **CCIP bridges** (138 ↔ Mainnet, 138 ↔ Gnosis/Cronos/Celo/Wemix, etc.), the **bridge contract** on each chain must hold **LINK** to pay fees. The deployer does not mint LINK on public chains; you: 1. Acquire LINK on the target chain (e.g. from Mainnet and bridge, or DEX on that chain). 2. Transfer LINK from the deployer to the **bridge contract address** (e.g. `cast send ... transfer(bridgeAddress, amount)`). Recommended: **~10 LINK per bridge** for initial operations. See [CONFIG_READY_CHAINS_COMPLETION_RUNBOOK](../07-ccip/CONFIG_READY_CHAINS_COMPLETION_RUNBOOK.md) § Fund bridges with LINK. ### 3.3 Official USDT / USDC on Chain 138 (PMM pools) PMM pools **cUSDT/USDT** and **cUSDC/USDC** use an “official” USDT/USDC pair on Chain 138. If that pair is a separate contract (e.g. bridged or canonical), the deployer cannot mint it; acquire from a bridge or use the compliant side only. If the “official” address is set to cUSDT/cUSDC for testing, then mint cUSDT/cUSDC as in §1. --- ## 4. Suggested mint order for liquidity and bridges 1. **Chain 138 — Compliant tokens** Mint cUSDT and cUSDC (and optionally cEURC, cEURT, etc.) to the deployer in the amounts needed for: - [ADD_LIQUIDITY_PMM_CHAIN138_RUNBOOK](../03-deployment/ADD_LIQUIDITY_PMM_CHAIN138_RUNBOOK.md): base/quote for the three PMM pools (cUSDT/cUSDC, cUSDT/USDT, cUSDC/USDC). - Use [check-deployer-balance-chain138-and-funding-plan.sh](../../scripts/deployment/check-deployer-balance-chain138-and-funding-plan.sh) to see current balances; mint additional so that half of (current + minted) can be allocated to liquidity per [DEPLOYER_WALLET_FUNDING_PLAN_PMM_POOLS](DEPLOYER_WALLET_FUNDING_PLAN_PMM_POOLS.md). 2. **Chain 138 — WETH** Ensure deployer has enough native ETH, then wrap the portion needed for WETH-denominated use (e.g. future pools or bridge). 3. **Chain 138 — LINK** If LINK on 138 is mintable (mock), mint to deployer for local testing. For production, acquire LINK and send to the deployer or directly to bridge contracts as needed. 4. **Cronos — D-WIN W** If you operate MintController and reserve, mint USDW, EURW, etc. to the deployer for Cronos-side liquidity or testing. 5. **Other chains** Acquire native gas and LINK (and any USDT/USDC) per §3; then run add-liquidity and fund-ccip-bridges scripts from the operator/LAN runbooks. --- ## 5. Quick reference — mint commands (Chain 138) ```bash # Load env (from smom-dbis-138 or repo root with RPC_URL_138 and PRIVATE_KEY) source smom-dbis-138/.env DEPLOYER=0x4A666F96fC8764181194447A7dFdb7d471b301C8 # cUSDT – 1M tokens (6 decimals) cast send 0x93E66202A11B1772E55407B32B44e5Cd8eda7f22 "mint(address,uint256)" $DEPLOYER 1000000000000 --rpc-url "$RPC_URL_138" --private-key "$PRIVATE_KEY" # cUSDC – 1M tokens cast send 0xf22258f57794CC8E06237084b353Ab30fFfa640b "mint(address,uint256)" $DEPLOYER 1000000000000 --rpc-url "$RPC_URL_138" --private-key "$PRIVATE_KEY" # cEURC – 1M tokens cast send 0x8085961F9cF02b4d800A3c6d386D31da4B34266a "mint(address,uint256)" $DEPLOYER 1000000000000 --rpc-url "$RPC_URL_138" --private-key "$PRIVATE_KEY" # (Repeat for cEURT, cGBPC, cGBPT, cAUDC, cJPYC, cCHFC, cCADC, cXAUC, cXAUT with their addresses from §1.1) ``` --- ## 6. Tokens the deployer deployed on other chains For a list of **token contracts** the deployer wallet deployed on blockchains **other than 138** (Cronos D-WIN W, WETH9/WETH10 on L2s), see [TOKENS_DEPLOYER_DEPLOYED_ON_OTHER_CHAINS](TOKENS_DEPLOYER_DEPLOYED_ON_OTHER_CHAINS.md). --- ## 7. References | Document | Purpose | |----------|---------| | [TOKENS_DEPLOYER_DEPLOYED_ON_OTHER_CHAINS](TOKENS_DEPLOYER_DEPLOYED_ON_OTHER_CHAINS.md) | Tokens deployer deployed on other blockchains (Cronos, L2s) | | [TOKEN_CATEGORIES_CANONICAL](TOKEN_CATEGORIES_CANONICAL.md) | Token categories and symbols | | [CHAIN138_TOKEN_ADDRESSES](CHAIN138_TOKEN_ADDRESSES.md) | Chain 138 token addresses | | [DEPLOYED_COINS_TOKENS_AND_NETWORKS](DEPLOYED_COINS_TOKENS_AND_NETWORKS.md) | Tokens by chain | | [DEPLOYER_WALLET_FUNDING_PLAN_PMM_POOLS](DEPLOYER_WALLET_FUNDING_PLAN_PMM_POOLS.md) | Funding plan (50% for PMM) | | [ADD_LIQUIDITY_PMM_CHAIN138_RUNBOOK](../03-deployment/ADD_LIQUIDITY_PMM_CHAIN138_RUNBOOK.md) | Add liquidity to PMM pools | | [CONFIG_READY_CHAINS_COMPLETION_RUNBOOK](../07-ccip/CONFIG_READY_CHAINS_COMPLETION_RUNBOOK.md) | CCIP bridges and LINK funding |