# 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 <CCIP_ROUTER_138> "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)
