- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands - CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround - CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check - NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere - MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates - LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference Co-authored-by: Cursor <cursoragent@cursor.com>
7.0 KiB
MetaMask Quick Start Guide - ChainID 138
Last Updated: 2026-01-31
Document Version: 1.0
Status: Active Documentation
Date: $(date)
Network: SMOM-DBIS-138 (ChainID 138)
Purpose: Get started with MetaMask on ChainID 138 in 5 minutes
🚀 Quick Start (5 Minutes)
Step 1: Add Network to MetaMask
Option A: Manual Addition (Recommended for first-time users)
- Open MetaMask extension
- Click network dropdown (top of MetaMask)
- Click "Add Network" → "Add a network manually"
- Enter the following:
- Network Name:
Defi Oracle Meta MainnetorSMOM-DBIS-138 - RPC URL:
https://rpc-http-pub.d-bis.org⚠️ Important: Must be public endpoint - Chain ID:
138(must be decimal, not hex) - Currency Symbol:
ETH - Block Explorer URL:
https://explorer.d-bis.org(optional)
- Network Name:
- Click "Save"
Note: If you get "Could not fetch chain ID" error, the RPC endpoint may require authentication. The public endpoint (rpc-http-pub.d-bis.org) should NOT require authentication. If it does, contact network administrators.
Option B: Programmatic Addition (For dApps)
If you're building a dApp, you can add the network programmatically:
await window.ethereum.request({
method: 'wallet_addEthereumChain',
params: [{
chainId: '0x8a', // 138 in hex
chainName: 'SMOM-DBIS-138',
nativeCurrency: {
name: 'Ether',
symbol: 'ETH',
decimals: 18
},
rpcUrls: ['https://rpc-http-pub.d-bis.org'],
blockExplorerUrls: ['https://explorer.d-bis.org']
}]
});
Step 2: Import Tokens
WETH9 (Wrapped Ether)
- In MetaMask, click "Import tokens"
- Enter:
- Token Contract Address:
0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 - Token Symbol:
WETH - Decimals of Precision:
18⚠️ Important: Must be 18
- Token Contract Address:
- Click "Add Custom Token"
WETH10 (Wrapped Ether v10)
- Click "Import tokens" again
- Enter:
- Token Contract Address:
0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f - Token Symbol:
WETH10 - Decimals of Precision:
18
- Token Contract Address:
- Click "Add Custom Token"
Note: If you see incorrect balances (like "6,000,000,000.0T"), ensure decimals are set to 18. See WETH9 Display Fix for details.
Step 3: Get Test ETH
For Testing Purposes:
If you need test ETH on ChainID 138:
- Contact network administrators
- Use a faucet (if available)
- Bridge from another chain (if configured)
Current Network Status:
- ✅ Network: Operational
- ✅ RPC:
https://rpc-core.d-bis.org - ✅ Explorer:
https://explorer.d-bis.org
Step 4: Verify Connection
Check Network:
- In MetaMask, verify you're on "SMOM-DBIS-138"
- Check your ETH balance (should display correctly)
- Verify token balances (WETH, WETH10)
Test Transaction (Optional):
- Send a small amount of ETH to another address
- Verify transaction appears in block explorer
- Confirm balance updates
📊 Reading Price Feeds
Get ETH/USD Price
Oracle Contract: 0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6
Using Web3.js:
const Web3 = require('web3');
const web3 = new Web3('https://rpc-core.d-bis.org');
const oracleABI = [{
"inputs": [],
"name": "latestRoundData",
"outputs": [
{"name": "roundId", "type": "uint80"},
{"name": "answer", "type": "int256"},
{"name": "startedAt", "type": "uint256"},
{"name": "updatedAt", "type": "uint256"},
{"name": "answeredInRound", "type": "uint80"}
],
"stateMutability": "view",
"type": "function"
}];
const oracle = new web3.eth.Contract(oracleABI, '0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6');
async function getPrice() {
const result = await oracle.methods.latestRoundData().call();
const price = result.answer / 1e8; // Convert from 8 decimals
console.log(`ETH/USD: $${price}`);
return price;
}
getPrice();
Using Ethers.js:
const { ethers } = require('ethers');
const provider = new ethers.providers.JsonRpcProvider('https://rpc-core.d-bis.org');
const oracleABI = [
"function latestRoundData() external view returns (uint80, int256, uint256, uint256, uint80)"
];
const oracle = new ethers.Contract(
'0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6',
oracleABI,
provider
);
async function getPrice() {
const result = await oracle.latestRoundData();
const price = result.answer.toNumber() / 1e8;
console.log(`ETH/USD: $${price}`);
return price;
}
getPrice();
🔧 Common Tasks
Send ETH
- Click "Send" in MetaMask
- Enter recipient address
- Enter amount
- Review gas fees
- Confirm transaction
Wrap ETH to WETH9
- Go to WETH9 contract:
0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 - Call
deposit()function - Send ETH amount with transaction
- Receive WETH9 tokens
Check Transaction Status
- Copy transaction hash from MetaMask
- Visit:
https://explorer.d-bis.org/tx/<tx-hash> - View transaction details, gas used, status
⚠️ Troubleshooting
Network Not Connecting
Issue: Can't connect to network
Solutions:
- Verify RPC URL:
https://rpc-core.d-bis.org - Check Chain ID: Must be
138(not 0x8a in decimal) - Try removing and re-adding network
- Clear MetaMask cache and reload
Token Balance Display Incorrect
Issue: Shows "6,000,000,000.0T WETH" instead of "6 WETH"
Solution:
- Remove token from MetaMask
- Re-import with decimals set to
18 - See WETH9 Display Fix for details
Price Feed Not Updating
Issue: Oracle price seems stale
Solutions:
- Check Oracle contract:
0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6 - Verify
updatedAttimestamp is recent (within 60 seconds) - Check Oracle Publisher service status
Transaction Failing
Issue: Transactions not going through
Solutions:
- Check you have sufficient ETH for gas
- Verify network is selected correctly
- Check transaction nonce (may need to reset)
- Increase gas limit if needed
📚 Additional Resources
- MetaMask Troubleshooting Guide (integration, Oracle, WETH9 fixes)
- Contract Addresses Reference
✅ Verification Checklist
After setup, verify:
- Network "SMOM-DBIS-138" appears in MetaMask
- Can switch to ChainID 138 network
- ETH balance displays correctly
- WETH9 token imported with correct decimals (18)
- WETH10 token imported with correct decimals (18)
- Can read price from Oracle contract
- Can send test transaction
- Transaction appears in block explorer
🎯 Next Steps
- Explore dApps: Connect to dApps built on ChainID 138
- Bridge Assets: Use CCIP bridges to transfer assets cross-chain
- Deploy Contracts: Deploy your own smart contracts
- Build dApps: Create applications using the network
Last Updated: $(date)