# ChainID 138 CCIP Selector Notes **Date**: 2025-01-18 **Status**: Selector Reference Found ## Selector References Found ### networks.json In `networks.json`, ChainID 138 shows: ```json "chainSelector": "5009297550715157269" ``` **Note**: This is the same selector as Ethereum Mainnet. This may be: - A placeholder value - Incorrect if ChainID 138 is using a custom CCIP implementation - Correct if ChainID 138 is configured to use Mainnet's selector (unlikely) ### Historical Documentation In `docs/archive/historical/CROSS_CHAIN_BRIDGE_ADDRESSES.md`: ``` ChainID 138 | 138 | `866240039685049171407962509760789466724431933144813155647626` (calculated, needs verification) ``` **Note**: This value exceeds uint64 maximum (`18446744073709551615`), so it cannot be used as a uint64 chain selector. ### Relay Service Config In `services/relay/src/config.js`: ```javascript sourceChainSelector: BigInt('138'), // Using chain ID as selector for custom relay ``` **Note**: For custom relay implementations, the chain ID (138) is used directly as the selector. ## Determining the Correct Selector ### For Official Chainlink CCIP 1. **Query Chainlink CCIP Directory**: - Visit: https://docs.chain.link/ccip/supported-networks - Check if ChainID 138 is listed - Use the official selector if available 2. **Query CCIP Router Contract** (if deployed): - Check if CCIP Router on ChainID 138 has a method to query its chain selector - Query: `getChainSelector()` or similar 3. **Contact Chainlink**: - If ChainID 138 needs to be registered with Chainlink CCIP - Obtain official selector from Chainlink ### For Custom CCIP Implementation If using a custom CCIP Router (not official Chainlink): - Selector may be calculated differently - May use chain ID directly (138) - May use a custom calculation method - Check custom router documentation ## Current Recommendation Until the official selector is confirmed: 1. **For Testing**: Use the value from `networks.json` (`5009297550715157269`) if it matches your CCIP setup 2. **For Custom Relays**: Use chain ID (`138`) as the selector 3. **For Production**: Obtain official selector from Chainlink CCIP Directory ## Action Required **Before configuring bridges**: 1. Determine which CCIP implementation is being used (official Chainlink vs custom) 2. Query or obtain the correct ChainID 138 selector 3. Update `.env` with: `CHAIN138_SELECTOR=` 4. Run bridge configuration script ## Helper Script Use `scripts/configuration/find-chain-selector.sh` to help locate the selector: ```bash ./scripts/configuration/find-chain-selector.sh ``` --- **Status**: ⚠️ **Selector needs verification before bridge configuration**