# CCIP Live Checklist (Chain 138 Exports) Before enabling exports from Chain 138 to Ethereum Mainnet, complete the following. Until then, keep `exportsEnabled == false` on `CcipBridgeAdapter138`. ## 1. Chain 138 in CCIP Directory - [ ] Open [Chainlink CCIP supported networks](https://docs.chain.link/ccip/supported-networks) (CCIP Directory). - [ ] Confirm **Chain 138** (DeFi Oracle Meta Mainnet) is listed with an official **chain selector** and **CCIP Router** address. - [ ] If Chain 138 is not listed, exports will not work at the network layer; do not set `exportsEnabled = true`. ## 2. Update CHAIN138_SELECTOR - [ ] Set `CHAIN138_SELECTOR` in `.env` to the **official** decimal chain selector from the CCIP Directory (not the placeholder `138`). - [ ] Verify: `cast call "getChainSelector()(uint64)" --rpc-url $RPC_URL_138` matches your config if the router exposes it. ## 3. Dry-run / simulation - [ ] Run a dry-run or simulation of `ccipSend` (e.g. `DRY_RUN=1` with your fund script or a minimal send that reverts before actually sending). - [ ] Confirm no revert from router or bridge for a small amount. ## 4. Enable exports on-chain - [ ] Call `CcipBridgeAdapter138.setExportsEnabled(true)` (via admin/multisig). - [ ] Optionally process any queued intents recorded while exports were disabled. ## 5. WETH9 fingerprint (before first run) - [ ] Run `node scripts/treasury/verify-weth9-fingerprint.js` (or `scripts/verify-weth9-canonical.js`). - [ ] Do not assume `0xC02a…6Cc2` on Chain 138 is canonical WETH9 until fingerprint matches expected; halt bot/executor if mismatch. ## References - [EXECUTOR_ALLOWLIST_MATRIX.md](EXECUTOR_ALLOWLIST_MATRIX.md) - [EXPORT_STATE_MACHINE.md](EXPORT_STATE_MACHINE.md) - [Chainlink CCIP Directory](https://docs.chain.link/ccip/directory/mainnet)