Files
explorer-monorepo/docs/CHAINLIST_SCHEMA_VALIDATION.md

5.6 KiB

Chainlist Schema Validation for ChainID 138

Schema Requirements

Based on the Chainlist JSON schema, here are the required and optional fields:

Required Fields

  • name - Name of the Network
  • shortName - Short identifier (pattern: ^[A-Za-z0-9-_]{1,64}$)
  • chain - Name of the Network
  • chainId - Chain ID (number)
  • networkId - Network ID (number)
  • rpc - Array of RPC URLs (strings)
  • faucets - Array of faucet URLs (strings)
  • infoURL - Information URL (string)
  • nativeCurrency - Object with name, symbol, decimals

Optional Fields

  • title - Optional title for the Network
  • icon - Icon type/URL
  • features - Array of feature objects (e.g., EIP155)
  • slip44 - Slip44 number
  • ens - ENS registry configuration
  • explorers - Array of explorer objects
  • parent - Parent chain information
  • status - Chain status
  • redFlags - Array of red flags (e.g., "reusedChainId")

Our chain-138.json Validation

Current Configuration

{
  "name": "DBIS Chain",
  "chain": "DBIS",
  "rpc": [
    "https://rpc-http-pub.d-bis.org",
    "https://rpc-http-prv.d-bis.org"
  ],
  "faucets": [],
  "nativeCurrency": {
    "name": "Ether",
    "symbol": "ETH",
    "decimals": 18
  },
  "infoURL": "https://d-bis.org",
  "shortName": "dbis",
  "chainId": 138,
  "networkId": 138,
  "explorers": [
    {
      "name": "Blockscout",
      "url": "https://explorer.d-bis.org",
      "standard": "EIP3091"
    }
  ],
  "icon": "https://raw.githubusercontent.com/ethereum/ethereum.org/main/static/images/eth-diamond-black.png"
}

Validation Results

All Required Fields Present:

  • name: "DBIS Chain"
  • shortName: "dbis" (matches pattern ^[A-Za-z0-9-_]{1,64}$)
  • chain: "DBIS"
  • chainId: 138
  • networkId: 138
  • rpc: Array with 2 URLs
  • faucets: Empty array (valid)
  • infoURL: "https://d-bis.org"
  • nativeCurrency: Object with name, symbol, decimals

Optional Fields:

  • explorers: Array with Blockscout explorer
  • icon: Icon URL

Schema Compliance: PASSED


Comparison with Current Chainlist Entry

Current Entry in ethereum-lists/chains

Based on the curl test, the current entry shows:

{
  "name": "Defi Oracle Meta Mainnet",
  "chain": "dfiometa",
  "rpc": ["https://rpc.defi-oracle.io", "wss://wss.defi-oracle.io"]
}

Differences

Field Current (Chainlist) Our Config Action
name "Defi Oracle Meta Mainnet" "DBIS Chain" ⚠️ Decision needed
chain "dfiometa" "DBIS" ⚠️ Decision needed
rpc rpc.defi-oracle.io rpc-http-pub.d-bis.org Must update
shortName Unknown "dbis" ⚠️ Check current
explorers Unknown Blockscout ⚠️ Verify/Add

Option 1: Update RPC URLs Only (Safest)

  • Keep existing name: "Defi Oracle Meta Mainnet"
  • Keep existing chain: "dfiometa"
  • Only update RPC URLs to new endpoints
  • Add/verify explorer if missing

PR Changes:

{
  "rpc": [
    "https://rpc-http-pub.d-bis.org",
    "https://rpc-http-prv.d-bis.org"
  ]
}

Option 2: Full Update (More Comprehensive)

  • Update name to "DBIS Chain" (if preferred)
  • Update chain to "DBIS"
  • Update RPC URLs
  • Ensure all fields match our config

PR Changes:

  • Update name, chain, rpc, explorers, etc.

Validation Checklist

Before creating PR, verify:

  • All required fields are present
  • shortName matches pattern: ^[A-Za-z0-9-_]{1,64}$
  • rpc array contains valid URLs
  • nativeCurrency has name, symbol, decimals
  • chainId is 138
  • networkId is 138
  • JSON is valid (no syntax errors)
  • RPC URLs are accessible
  • Explorer URL is accessible

Testing Commands

Validate JSON Structure

cat token-lists/chainlists/chain-138.json | jq .

Test RPC Endpoints

# Public RPC
curl -X POST https://rpc-http-pub.d-bis.org \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'

# Permissioned RPC
curl -X POST https://rpc-http-prv.d-bis.org \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'

Check Current Chainlist Entry

curl -s "https://raw.githubusercontent.com/ethereum-lists/chains/master/_data/chains/eip155-138/chain.json" | jq .

PR File Path

Target File: _data/chains/eip155-138/chain.json

Full Path in Repository:

ethereum-lists/chains/_data/chains/eip155-138/chain.json

## Update ChainID 138 RPC Endpoints

### Summary
Updates RPC endpoints for ChainID 138 to use the new public and permissioned endpoints.

### Changes
- Updated RPC URLs:
  - From: `https://rpc.defi-oracle.io`, `wss://wss.defi-oracle.io`
  - To: `https://rpc-http-pub.d-bis.org`, `https://rpc-http-prv.d-bis.org`

### Reason
The previous RPC endpoints have been deprecated. The new endpoints provide:
- Public access for general use (MetaMask, dApps)
- Permissioned access for authorized services

### Testing
- ✅ Verified RPC endpoints return Chain ID 138 (0x8a)
- ✅ Tested `eth_chainId` method on both endpoints
- ✅ Verified JSON schema compliance
- ✅ Validated all required fields are present

### Related
- Explorer: https://explorer.d-bis.org
- Token List: https://raw.githubusercontent.com/Defi-Oracle-Meta-Blockchain/metamask-integration/main/config/token-list.json

Last Updated: 2025-12-24 Status: Schema Validation Complete - Ready for PR