11 KiB
Chainlist, MetaMask, and Blockscout Relationship for ChainID 138
🎯 Quick Answer
Where does ChainID 138 metadata live for MetaMask?
-
Chainlist.org (Primary) - Network metadata (RPC URLs, explorer, chain name)
- Status: ⚠️ NOT YET SUBMITTED to Chainlist.org
- Local File:
token-lists/chainlists/chain-138.json - Location: Should be at
https://chainlist.orgafter submission
-
RPC Endpoint (VMID 2500) - Blockchain data only
- Internal:
http://192.168.11.250:8545(VMID 2500 - internal only, not public) - Public:
https://rpc-http-pub.d-bis.org(public RPC endpoint) - Permissioned:
https://rpc-http-prv.d-bis.org(permissioned/private RPC endpoint) - Provides: Chain ID verification (
eth_chainId→0x8a) - Does NOT Provide: Network name, currency symbol, explorer URL
- Internal:
-
Blockscout (VMID 5000) - Block explorer and API
- Location:
https://explorer.d-bis.org - Role: Referenced in chainlist config as the explorer
- Does NOT Provide: Chain metadata or chainlist data
- Location:
-
Token Lists (GitHub) - Token metadata
- Local File:
token-lists/lists/dbis-138.tokenlist.json - Status: ✅ HOSTED at: https://raw.githubusercontent.com/Defi-Oracle-Meta-Blockchain/metamask-integration/main/config/token-list.json
- Purpose: Token names, symbols, decimals, logos
- Local File:
📊 Data Flow Diagram
┌─────────────────────────────────────────────────────────────┐
│ MetaMask Wallet │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Network Info │ │ Token Lists │ │ Explorer │ │
│ │ (from │ │ (from │ │ (from │ │
│ │ Chainlist) │ │ Token List) │ │ Blockscout) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────┘
│ │ │
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Chainlist.org │ │ Token List │ │ Blockscout │
│ │ │ (GitHub) │ │ (VMID 5000) │
│ - RPC URLs │ │ │ │ │
│ - Chain Name │ │ - WETH9 │ │ - Block API │
│ - Explorer URL │ │ - WETH10 │ │ - Tx API │
│ - Currency │ │ - Oracle │ │ - Address API │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
│ │ │
└────────────────────┴────────────────────┘
│
▼
┌─────────────────┐
│ RPC Node │
│ (VMID 2500) │
│ │
│ - eth_chainId │
│ - eth_balance │
│ - eth_call │
│ - eth_sendTx │
└─────────────────┘
🔍 Detailed Breakdown
1. Chainlist.org - The Source of Truth
What It Is: Public registry of EVM networks that MetaMask uses to discover networks
Current Status for ChainID 138:
- ✅ Configuration file exists:
token-lists/chainlists/chain-138.json - ❌ NOT YET SUBMITTED to Chainlist.org
- ❌ ChainID 138 does NOT appear on chainlist.org yet
What's in chain-138.json:
{
"name": "DBIS Chain",
"chainId": 138,
"rpc": [
"https://rpc-http-pub.d-bis.org",
"https://rpc-http-prv.d-bis.org"
],
"explorers": [{
"name": "Blockscout",
"url": "https://explorer.d-bis.org", ← Blockscout URL here
"standard": "EIP3091"
}],
"nativeCurrency": {
"name": "Ether",
"symbol": "ETH",
"decimals": 18
}
}
How MetaMask Uses It:
- User visits chainlist.org
- Searches for "DBIS" or "138"
- Clicks "Add to MetaMask"
- MetaMask reads the JSON config
- Network is added with all settings
Key Point: Blockscout is referenced in the chainlist config, but Blockscout itself doesn't provide the chainlist data.
2. RPC Endpoint - Blockchain Data Provider
Location:
- Internal:
http://192.168.11.250:8545(VMID 2500 - internal only, not public) - Public:
https://rpc-http-pub.d-bis.org(public RPC endpoint) - Permissioned:
https://rpc-http-prv.d-bis.org(permissioned/private RPC endpoint)
What RPC Provides:
- ✅ Chain ID:
eth_chainId→ Returns0x8a(138 in hex) - ✅ Block data:
eth_getBlockByNumber - ✅ Transaction data:
eth_getTransactionByHash - ✅ Account balances:
eth_getBalance - ✅ Contract calls:
eth_call - ✅ Transaction submission:
eth_sendTransaction
What RPC Does NOT Provide:
- ❌ Network name ("DBIS Chain")
- ❌ Currency symbol ("ETH")
- ❌ Block explorer URL
- ❌ Token lists
- ❌ Chain metadata
Key Point: RPC only provides blockchain data, not network metadata. MetaMask needs chainlist to know the network name and other metadata.
3. Blockscout - Block Explorer
Location: https://explorer.d-bis.org (VMID 5000)
What Blockscout Provides:
- ✅ Block explorer UI
- ✅ API endpoints:
/api/v2/blocks,/api/v2/transactions,/api/v2/addresses - ✅ Token information:
/api/v2/tokens - ✅ Stats:
/api/v2/stats
What Blockscout Does NOT Provide:
- ❌ Chain metadata (name, RPC URLs, etc.)
- ❌ Chainlist configuration
- ❌ Token lists (Uniswap format)
How Blockscout Relates to Chainlist:
- Blockscout URL is stored in
chain-138.jsonas the explorer - When MetaMask adds the network, it uses this URL for "View on Explorer"
- Blockscout itself doesn't know about chainlist or provide chain metadata
Blockscout Token Data:
- Blockscout has token data in its database (from indexing)
- Format: Blockscout API format (different from Uniswap token list format)
- Example:
/api/v2/tokens/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
Key Point: Blockscout is the explorer, not the source of chain metadata. It's referenced in chainlist, but doesn't provide chainlist data.
4. Token Lists - Token Metadata
Location:
- Local:
token-lists/lists/dbis-138.tokenlist.json - Public: ✅ HOSTED at: https://raw.githubusercontent.com/Defi-Oracle-Meta-Blockchain/metamask-integration/main/config/token-list.json
What Token Lists Provide:
- ✅ Token names (e.g., "Wrapped Ether")
- ✅ Token symbols (e.g., "WETH")
- ✅ Decimals (e.g., 18)
- ✅ Logo URLs
- ✅ Token tags/categories
Current Tokens in List:
- WETH9:
0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 - WETH10:
0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f - ETH/USD Oracle:
0x3304b747E565a97ec8AC220b0B6A1f6ffDB837e6
How MetaMask Uses It:
- User adds token list URL in MetaMask Settings
- MetaMask fetches the JSON file
- Tokens appear automatically when on ChainID 138
- Token balances come from RPC, metadata from token list
Key Point: Token lists are separate from chain metadata. They provide token information, not network information.
🔗 How They Work Together
Scenario 1: User Adds Network to MetaMask
Without Chainlist Submission (Current):
User → MetaMask → Add Network Manually
→ Enters: RPC URL, Chain ID, Network Name, Explorer URL
→ MetaMask connects to RPC (http://192.168.11.250:8545)
→ Verifies Chain ID matches (0x8a)
→ Stores network config locally
→ Uses Blockscout URL for "View on Explorer"
With Chainlist Submission (Future):
User → chainlist.org → Search "DBIS" → Click "Add to MetaMask"
→ MetaMask reads chain-138.json from Chainlist
→ Adds network with all settings
→ Connects to RPC (https://rpc-http-pub.d-bis.org)
→ Verifies Chain ID matches
→ Uses Blockscout URL from chainlist config
Scenario 2: User Views Transaction
User → MetaMask → Click "View on Explorer"
→ MetaMask opens: https://explorer.d-bis.org/tx/{hash}
→ Blockscout displays transaction details
→ Blockscout API provides the data
Scenario 3: User Sees Token Balance
User → MetaMask → View Token Balance
→ Token metadata (name, symbol, logo) from Token List
→ Token balance from RPC (eth_call to token contract)
→ Click "View on Explorer" → Opens Blockscout
📍 Where Each Piece Lives
| Component | Location | Status | Purpose |
|---|---|---|---|
| Chain Metadata | Chainlist.org | ❌ Not submitted | Network name, RPC URLs, explorer |
| Chain Config File | token-lists/chainlists/chain-138.json |
✅ Ready | Local copy, needs submission |
| RPC Endpoint | VMID 2500 (port 8545) | ✅ Running | Blockchain data |
| Blockscout | VMID 5000 (port 4000) | ✅ Running | Block explorer |
| Token List | token-lists/lists/dbis-138.tokenlist.json |
✅ Ready | Token metadata |
| Token List URL | (Not yet hosted) | ❌ Missing | Public URL for MetaMask |
🎯 Key Takeaways
- Chainlist.org is the primary source for network metadata that MetaMask uses
- RPC provides blockchain data, not network metadata
- Blockscout is referenced in chainlist as the explorer, but doesn't provide chain metadata
- Token lists are separate from chain metadata and provide token information
- ChainID 138 is NOT yet on Chainlist.org - needs to be submitted
- Token list is NOT yet hosted - needs public URL
🚀 Next Steps to Complete Integration
-
Submit to Chainlist.org
- Fork https://github.com/ethereum-lists/chains
- Add
chain-138.jsonto repository - Create pull request
- Once merged, ChainID 138 will be discoverable
-
Host Token List
- Deploy
dbis-138.tokenlist.jsonto public URL - Options: GitHub Pages, GitHub Raw, or custom domain
- Add URL to MetaMask Settings → Token Lists
- Deploy
-
Link Token List in Chainlist (Optional)
- Add
tokenListsfield tochain-138.json - Users can discover tokens when adding network
- Add
Last Updated: 2025-12-24 Status: Analysis Complete