# MetaMask Quick Start for ChainID 138 Quick reference for adding ChainID 138 to MetaMask and adding tokens. ## Add Network to MetaMask ### Method 1: Using the SDK ```typescript import { addOrSwitchNetwork } from '@defi-oracle/metamask-sdk'; await addOrSwitchNetwork(); ``` ### Method 2: Using wallet_addEthereumChain ```javascript await window.ethereum.request({ method: 'wallet_addEthereumChain', params: [{ chainId: '0x8a', chainName: 'DeFi Oracle Meta Mainnet', nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 }, rpcUrls: ['https://rpc.d-bis.org'], blockExplorerUrls: ['https://explorer.d-bis.org'] }] }); ``` ### Method 3: Using Chainlist 1. Visit [chainlist.org](https://chainlist.org) 2. Search for "ChainID 138" or "DeFi Oracle Meta" 3. Click "Add to MetaMask" ### Method 4: Switch to ChainID 138 ```javascript await window.ethereum.request({ method: 'wallet_switchEthereumChain', params: [{ chainId: '0x8a' }] }); ``` ## Add Token to MetaMask ### Using the SDK ```typescript import { addToken } from '@defi-oracle/metamask-sdk'; await addToken( '0xYourTokenAddress', 'WETH', 18, 'https://explorer.d-bis.org/images/tokens/weth.png' ); ``` ### Using wallet_watchAsset (EIP-747) ```javascript await window.ethereum.request({ method: 'wallet_watchAsset', params: { type: 'ERC20', options: { address: '0xYourTokenAddress', symbol: 'WETH', decimals: 18, image: 'https://explorer.d-bis.org/images/tokens/weth.png' } } }); ``` ## Network Information - **ChainID**: 138 (0x8a) - **Chain Name**: DeFi Oracle Meta Mainnet - **Native Currency**: ETH (18 decimals) - **RPC URL**: `https://rpc.d-bis.org` - **Block Explorer**: `https://explorer.d-bis.org` ## Common Tokens ### WETH (Wrapped Ether) - **Address**: `0x...` (Update after deployment) - **Symbol**: WETH - **Decimals**: 18 ## Troubleshooting ### MetaMask not detected ```javascript if (typeof window.ethereum === 'undefined') { alert('Please install MetaMask'); window.open('https://metamask.io/download/', '_blank'); } ``` ### Network already added If the network is already added, use `wallet_switchEthereumChain` instead: ```javascript try { await window.ethereum.request({ method: 'wallet_switchEthereumChain', params: [{ chainId: '0x8a' }] }); } catch (error) { // Network not added, add it if (error.code === 4902) { await window.ethereum.request({ method: 'wallet_addEthereumChain', params: [/* network metadata */] }); } } ``` ## Links - [MetaMask Documentation](https://docs.metamask.io) - [Chainlist](https://chainlist.org/chain/138) - [Explorer](https://explorer.d-bis.org)