Files
explorer-monorepo/docs/CHAINLIST_METAMASK_BLOCKSCOUT_RELATIONSHIP.md

11 KiB

Chainlist, MetaMask, and Blockscout Relationship for ChainID 138

🎯 Quick Answer

Where does ChainID 138 metadata live for MetaMask?

  1. 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.org after submission
  2. 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_chainId0x8a)
    • Does NOT Provide: Network name, currency symbol, explorer URL
  3. 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
  4. Token Lists (GitHub) - Token metadata


📊 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:

  1. User visits chainlist.org
  2. Searches for "DBIS" or "138"
  3. Clicks "Add to MetaMask"
  4. MetaMask reads the JSON config
  5. 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 → Returns 0x8a (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:

  1. Blockscout URL is stored in chain-138.json as the explorer
  2. When MetaMask adds the network, it uses this URL for "View on Explorer"
  3. 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:

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:

  1. WETH9: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
  2. WETH10: 0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f
  3. ETH/USD Oracle: 0x3304b747E565a97ec8AC220b0B6A1f6ffDB837e6

How MetaMask Uses It:

  1. User adds token list URL in MetaMask Settings
  2. MetaMask fetches the JSON file
  3. Tokens appear automatically when on ChainID 138
  4. 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

  1. Chainlist.org is the primary source for network metadata that MetaMask uses
  2. RPC provides blockchain data, not network metadata
  3. Blockscout is referenced in chainlist as the explorer, but doesn't provide chain metadata
  4. Token lists are separate from chain metadata and provide token information
  5. ChainID 138 is NOT yet on Chainlist.org - needs to be submitted
  6. Token list is NOT yet hosted - needs public URL

🚀 Next Steps to Complete Integration

  1. Submit to Chainlist.org

  2. Host Token List

    • Deploy dbis-138.tokenlist.json to public URL
    • Options: GitHub Pages, GitHub Raw, or custom domain
    • Add URL to MetaMask Settings → Token Lists
  3. Link Token List in Chainlist (Optional)

    • Add tokenLists field to chain-138.json
    • Users can discover tokens when adding network

Last Updated: 2025-12-24 Status: Analysis Complete