Files
proxmox/docs/01-getting-started/METAMASK_QUICK_START_GUIDE.md
defiQUG fbda1b4beb
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
docs: Ledger Live integration, contract deploy learnings, NEXT_STEPS updates
- 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>
2026-02-12 15:46:57 -08:00

275 lines
7.0 KiB
Markdown

# 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)
1. Open MetaMask extension
2. Click network dropdown (top of MetaMask)
3. Click "Add Network" → "Add a network manually"
4. Enter the following:
- **Network Name**: `Defi Oracle Meta Mainnet` or `SMOM-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)
5. 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:
```javascript
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)**
1. In MetaMask, click "Import tokens"
2. Enter:
- **Token Contract Address**: `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2`
- **Token Symbol**: `WETH`
- **Decimals of Precision**: `18` ⚠️ **Important: Must be 18**
3. Click "Add Custom Token"
**WETH10 (Wrapped Ether v10)**
1. Click "Import tokens" again
2. Enter:
- **Token Contract Address**: `0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f`
- **Token Symbol**: `WETH10`
- **Decimals of Precision**: `18`
3. 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](../09-troubleshooting/METAMASK_TROUBLESHOOTING_GUIDE.md#token-balance-display-incorrect) for details.
---
### Step 3: Get Test ETH
**For Testing Purposes**:
If you need test ETH on ChainID 138:
1. Contact network administrators
2. Use a faucet (if available)
3. 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**:
1. In MetaMask, verify you're on "SMOM-DBIS-138"
2. Check your ETH balance (should display correctly)
3. Verify token balances (WETH, WETH10)
**Test Transaction** (Optional):
1. Send a small amount of ETH to another address
2. Verify transaction appears in block explorer
3. Confirm balance updates
---
## 📊 Reading Price Feeds
### Get ETH/USD Price
**Oracle Contract**: `0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6`
**Using Web3.js**:
```javascript
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**:
```javascript
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
1. Click "Send" in MetaMask
2. Enter recipient address
3. Enter amount
4. Review gas fees
5. Confirm transaction
### Wrap ETH to WETH9
1. Go to WETH9 contract: `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2`
2. Call `deposit()` function
3. Send ETH amount with transaction
4. Receive WETH9 tokens
### Check Transaction Status
1. Copy transaction hash from MetaMask
2. Visit: `https://explorer.d-bis.org/tx/<tx-hash>`
3. View transaction details, gas used, status
---
## ⚠️ Troubleshooting
### Network Not Connecting
**Issue**: Can't connect to network
**Solutions**:
1. Verify RPC URL: `https://rpc-core.d-bis.org`
2. Check Chain ID: Must be `138` (not 0x8a in decimal)
3. Try removing and re-adding network
4. 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](../09-troubleshooting/METAMASK_TROUBLESHOOTING_GUIDE.md#token-balance-display-incorrect) for details
### Price Feed Not Updating
**Issue**: Oracle price seems stale
**Solutions**:
1. Check Oracle contract: `0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6`
2. Verify `updatedAt` timestamp is recent (within 60 seconds)
3. Check Oracle Publisher service status
### Transaction Failing
**Issue**: Transactions not going through
**Solutions**:
1. Check you have sufficient ETH for gas
2. Verify network is selected correctly
3. Check transaction nonce (may need to reset)
4. Increase gas limit if needed
---
## 📚 Additional Resources
- [MetaMask Troubleshooting Guide](../09-troubleshooting/METAMASK_TROUBLESHOOTING_GUIDE.md) (integration, Oracle, WETH9 fixes)
- [Contract Addresses Reference](../11-references/CONTRACT_ADDRESSES_REFERENCE.md)
---
## ✅ 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
1. **Explore dApps**: Connect to dApps built on ChainID 138
2. **Bridge Assets**: Use CCIP bridges to transfer assets cross-chain
3. **Deploy Contracts**: Deploy your own smart contracts
4. **Build dApps**: Create applications using the network
---
**Last Updated**: $(date)