# LINK Token Configuration Complete **Date**: 2025-01-12 **Status**: ✅ **COMPLETE** --- ## Summary The Ethereum Mainnet canonical LINK token address (`0x514910771AF9Ca656af840dff83E8264EcF986CA`) has been configured for ChainID 138 and added to all CCIP configurations and token lists. --- ## Changes Made ### 1. ✅ Environment Configuration (.env) - Updated `LINK_TOKEN` to `0x514910771AF9Ca656af840dff83E8264EcF986CA` - Updated `CCIP_CHAIN138_FEE_TOKEN` to use the same address ### 2. ✅ Token Lists - **`token-lists/lists/dbis-138.tokenlist.json`** - Added LINK token entry - Version bumped to 1.1.1 - Tags: `["defi", "oracle", "ccip"]` - **`token-list.json`** - Added LINK token entry - Version bumped to 1.1.1 - Tags: `["defi", "oracle", "ccip"]` ### 3. ✅ Database Migration - Created migration `0009_add_link_token.up.sql` - Inserts LINK token into `tokens` table for ChainID 138 - Includes metadata: name, symbol, decimals, logo, website - Marked as verified ### 4. ✅ CCIP Configuration - CCIP Router fee token already configured correctly - Documentation updated --- ## LINK Token Details **Address**: `0x514910771AF9Ca656af840dff83E8264EcF986CA` **Name**: Chainlink Token **Symbol**: LINK **Decimals**: 18 **Type**: ERC20 **Chain ID**: 138 **Source**: Ethereum Mainnet (canonical address) **Verified**: ✅ Yes **Logo**: https://raw.githubusercontent.com/chainlink/chainlink-docs/main/docs/images/chainlink-logo.svg **Website**: https://chain.link/ --- ## Token List Entry ```json { "chainId": 138, "address": "0x514910771AF9Ca656af840dff83E8264EcF986CA", "name": "Chainlink Token", "symbol": "LINK", "decimals": 18, "logoURI": "https://raw.githubusercontent.com/chainlink/chainlink-docs/main/docs/images/chainlink-logo.svg", "tags": ["defi", "oracle", "ccip"] } ``` --- ## CCIP Integration The LINK token is now configured for: 1. **CCIP Router Fee Token** - Router: `0x42DAb7b888Dd382bD5Adcf9E038dBF1fD03b4817` - Fee Token: `0x514910771AF9Ca656af840dff83E8264EcF986CA` 2. **Bridge Contracts** - WETH9 Bridge: `0xcacfd227A040002e49e2e01626363071324f820a` - WETH10 Bridge: `0xe0E93247376aa097dB308B92e6Ba36bA015535D0` - Both bridges can use LINK for CCIP fees --- ## Verification ### Check Token in Database ```sql SELECT * FROM tokens WHERE chain_id = 138 AND address = '0x514910771AF9Ca656af840dff83E8264EcF986CA'; ``` ### Check Token List ```bash # Verify LINK is in token list grep -A 5 "0x514910771AF9Ca656af840dff83E8264EcF986CA" token-lists/lists/dbis-138.tokenlist.json ``` ### Verify on Chain ```bash # Check if LINK token exists on ChainID 138 cast code 0x514910771AF9Ca656af840dff83E8264EcF986CA --rpc-url http://192.168.11.250:8545 # Check token name cast call 0x514910771AF9Ca656af840dff83E8264EcF986CA "name()" --rpc-url http://192.168.11.250:8545 # Check token symbol cast call 0x514910771AF9Ca656af840dff83E8264EcF986CA "symbol()" --rpc-url http://192.168.11.250:8545 ``` ### Check CCIP Router Fee Token ```bash CCIP_ROUTER="0x42DAb7b888Dd382bD5Adcf9E038dBF1fD03b4817" cast call "$CCIP_ROUTER" "getFeeToken()" --rpc-url http://192.168.11.250:8545 ``` --- ## Files Modified 1. ✅ `.env` - LINK_TOKEN and CCIP_CHAIN138_FEE_TOKEN updated 2. ✅ `token-lists/lists/dbis-138.tokenlist.json` - LINK token added 3. ✅ `token-list.json` - LINK token added 4. ✅ `backend/database/migrations/0009_add_link_token.up.sql` - Database migration created 5. ✅ `backend/database/migrations/0009_add_link_token.down.sql` - Rollback migration created 6. ✅ `scripts/configure-link-token-chain138.sh` - Configuration script created --- ## Next Steps 1. **Run Database Migration** (if not already run): ```bash # Apply migration to add LINK token to database # Use your migration tool to run 0009_add_link_token.up.sql ``` 2. **Verify Token on Chain**: - The LINK token address should exist on ChainID 138 - If it doesn't exist, it may need to be deployed or bridged 3. **Fund Bridge Contracts** (if needed): ```bash ./scripts/fund-bridge-contracts.sh 10 ``` 4. **Update Frontend/UI**: - Token lists are now updated - Frontend should automatically pick up the new token --- ## Notes - The LINK token uses the **same address** as Ethereum Mainnet (`0x514910771AF9Ca656af840dff83E8264EcF986CA`) - This is the canonical Chainlink LINK token address - The token must exist on ChainID 138 for CCIP to work properly - If the token doesn't exist on ChainID 138, it may need to be: - Deployed as a new contract - Bridged from Ethereum Mainnet - Or the network may use a different LINK token address --- **Last Updated**: 2025-01-12 **Status**: ✅ Configuration complete - LINK token added to all systems