# MetaMask Troubleshooting Guide - ChainID 138 **Date**: $(date) **Network**: SMOM-DBIS-138 (ChainID 138) --- ## 🔍 Common Issues & Solutions ### 1. Network Connection Issues #### Issue: "Network Error" or "Failed to Connect" **Symptoms**: - MetaMask shows "Network Error" - Can't fetch balance - Transactions fail immediately **Solutions**: 1. **Verify RPC URL** ``` Correct: https://rpc-core.d-bis.org Incorrect: http://rpc-core.d-bis.org (missing 's') ``` 2. **Check Chain ID** - Must be exactly `138` (decimal) - Not `0x8a` (that's hex, but MetaMask expects decimal in manual entry) - Verify in network settings 3. **Remove and Re-add Network** - Settings → Networks → Remove "SMOM-DBIS-138" - Add network again with correct settings - See [Quick Start Guide](./METAMASK_QUICK_START_GUIDE.md) 4. **Clear MetaMask Cache** - Settings → Advanced → Reset Account (if needed) - Or clear browser cache and reload MetaMask 5. **Check RPC Endpoint Status** ```bash curl -X POST https://rpc-core.d-bis.org \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' ``` --- ### 2. Token Display Issues #### Issue: "6,000,000,000.0T WETH" Instead of "6 WETH" **Root Cause**: WETH9 contract's `decimals()` returns 0 instead of 18 **Solution**: 1. **Remove Token** - Find WETH9 in token list - Click token → "Hide token" or remove 2. **Re-import with Correct Decimals** - Import tokens → Custom token - Address: `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2` - Symbol: `WETH` - **Decimals: `18`** ⚠️ **Critical: Must be 18** 3. **Verify Display** - Should now show: "6 WETH" or "6.0 WETH" - Not: "6,000,000,000.0T WETH" **See**: [WETH9 Display Fix Instructions](./METAMASK_WETH9_FIX_INSTRUCTIONS.md) --- #### Issue: Token Not Showing Balance **Symptoms**: - Token imported but shows 0 balance - Token doesn't appear in list **Solutions**: 1. **Check Token Address** - WETH9: `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2` - WETH10: `0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f` - Verify address is correct (case-sensitive) 2. **Verify You Have Tokens** ```bash cast call 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 \ "balanceOf(address)" \ --rpc-url https://rpc-core.d-bis.org ``` 3. **Refresh Token List** - Click "Import tokens" → Refresh - Or remove and re-add token 4. **Check Network** - Ensure you're on ChainID 138 - Tokens are chain-specific --- ### 3. Transaction Issues #### Issue: Transaction Stuck or Pending Forever **Symptoms**: - Transaction shows "Pending" for extended time - No confirmation after hours **Solutions**: 1. **Check Network Status** - Verify RPC endpoint is responding - Check block explorer for recent blocks 2. **Check Gas Price** - May need to increase gas price - Network may be congested 3. **Replace Transaction** (Same Nonce) - Create new transaction with same nonce - Higher gas price - This cancels the old transaction 4. **Reset Nonce** (Last Resort) - Settings → Advanced → Reset Account - ⚠️ This clears transaction history --- #### Issue: "Insufficient Funds for Gas" **Symptoms**: - Transaction fails immediately - Error: "insufficient funds" **Solutions**: 1. **Check ETH Balance** - Need ETH for gas fees - Gas costs vary (typically 0.001-0.01 ETH) 2. **Reduce Gas Limit** (If too high) - MetaMask may estimate too high - Try manual gas limit 3. **Get More ETH** - Request from network administrators - Bridge from another chain - Use faucet (if available) --- #### Issue: Transaction Reverted **Symptoms**: - Transaction confirmed but reverted - Error in transaction details **Solutions**: 1. **Check Transaction Details** - View on block explorer - Look for revert reason 2. **Common Revert Reasons**: - Insufficient allowance (for token transfers) - Contract logic error - Invalid parameters - Out of gas (rare, usually fails before) 3. **Verify Contract State** - Check if contract is paused - Verify you have permissions - Check contract requirements --- ### 4. Price Feed Issues #### Issue: Price Not Updating **Symptoms**: - Oracle price seems stale - Price doesn't change **Solutions**: 1. **Check Oracle Contract** ```bash cast call 0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6 \ "latestRoundData()" \ --rpc-url https://rpc-core.d-bis.org ``` 2. **Verify `updatedAt` Timestamp** - Should update every 60 seconds - If > 5 minutes old, Oracle Publisher may be down 3. **Check Oracle Publisher Service** - Service should be running (VMID 3500) - Check service logs for errors 4. **Manual Price Query** - Use Web3.js or Ethers.js to query directly - See [Oracle Integration Guide](./METAMASK_ORACLE_INTEGRATION.md) --- #### Issue: Price Returns Zero or Error **Symptoms**: - `latestRoundData()` returns 0 - Contract call fails **Solutions**: 1. **Verify Contract Address** - Oracle Proxy: `0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6` - Ensure correct address 2. **Check Contract Deployment** - Verify contract exists on ChainID 138 - Check block explorer 3. **Verify Network** - Must be on ChainID 138 - Price feeds are chain-specific --- ### 5. Network Switching Issues #### Issue: Can't Switch to ChainID 138 **Symptoms**: - Network doesn't appear in list - Switch fails **Solutions**: 1. **Add Network Manually** - See [Quick Start Guide](./METAMASK_QUICK_START_GUIDE.md) - Ensure all fields are correct 2. **Programmatic Addition** (For dApps) ```javascript try { await window.ethereum.request({ method: 'wallet_switchEthereumChain', params: [{ chainId: '0x8a' }], // 138 in hex }); } catch (switchError) { // Network doesn't exist, add it if (switchError.code === 4902) { await window.ethereum.request({ method: 'wallet_addEthereumChain', params: [networkConfig], }); } } ``` 3. **Clear Network Cache** - Remove network - Re-add with correct settings --- ### 6. Account Issues #### Issue: Wrong Account Connected **Symptoms**: - Different address than expected - Can't see expected balance **Solutions**: 1. **Switch Account in MetaMask** - Click account icon - Select correct account 2. **Import Account** (If needed) - Settings → Import Account - Use private key or seed phrase 3. **Verify Address** - Check address matches expected - Addresses are case-insensitive but verify format --- #### Issue: Account Not Showing Balance **Symptoms**: - Account connected but balance is 0 - Expected to have ETH/tokens **Solutions**: 1. **Verify Network** - Must be on ChainID 138 - Balances are chain-specific 2. **Check Address** - Verify correct address - Check on block explorer 3. **Refresh Balance** - Click refresh icon in MetaMask - Or switch networks and switch back --- ## 🔧 Advanced Troubleshooting ### Enable Debug Mode **MetaMask Settings**: 1. Settings → Advanced 2. Enable "Show Hex Data" 3. Enable "Enhanced Gas Fee UI" 4. Check browser console for errors ### Check Browser Console **Open Console**: - Chrome/Edge: F12 → Console - Firefox: F12 → Console - Safari: Cmd+Option+I → Console **Look For**: - RPC errors - Network errors - JavaScript errors - MetaMask-specific errors ### Verify RPC Response **Test RPC Endpoint**: ```bash curl -X POST https://rpc-core.d-bis.org \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "method": "eth_blockNumber", "params": [], "id": 1 }' ``` **Expected Response**: ```json { "jsonrpc": "2.0", "id": 1, "result": "0x..." } ``` --- ## 📞 Getting Help ### Resources 1. **Documentation**: - [Quick Start Guide](./METAMASK_QUICK_START_GUIDE.md) - [Full Integration Requirements](./METAMASK_FULL_INTEGRATION_REQUIREMENTS.md) - [Oracle Integration](./METAMASK_ORACLE_INTEGRATION.md) 2. **Block Explorer**: - `https://explorer.d-bis.org` - Check transactions, contracts, addresses 3. **Network Status**: - RPC: `https://rpc-core.d-bis.org` - Verify endpoint is responding ### Information to Provide When Reporting Issues 1. **MetaMask Version**: Settings → About 2. **Browser**: Chrome/Firefox/Safari + version 3. **Network**: ChainID 138 4. **Error Message**: Exact error text 5. **Steps to Reproduce**: What you did before error 6. **Console Errors**: Any JavaScript errors 7. **Transaction Hash**: If transaction-related --- ## ✅ Quick Diagnostic Checklist Run through this checklist when troubleshooting: - [ ] Network is "SMOM-DBIS-138" (ChainID 138) - [ ] RPC URL is `https://rpc-core.d-bis.org` - [ ] Chain ID is `138` (decimal, not hex) - [ ] Account is connected and correct - [ ] Sufficient ETH for gas fees - [ ] Token decimals are correct (18 for WETH) - [ ] Browser console shows no errors - [ ] RPC endpoint is responding - [ ] Block explorer shows recent blocks --- **Last Updated**: $(date)