6.2 KiB
Adding Token List to Chainlist Configuration
Overview
This document explains how to add token list references to ChainID 138's Chainlist configuration.
Token List Support in Chainlist
Schema Status
The official Chainlist JSON schema you provided does NOT include a tokenLists field in the required or optional properties. However:
- Chainlist may accept additional fields not in the strict schema (using
additionalProperties: falsemight be flexible) - Token lists are typically separate from chain configurations
- Some chains include token list URLs as custom properties
Current Token List Status
Token List Location:
- ✅ Hosted: https://raw.githubusercontent.com/Defi-Oracle-Meta-Blockchain/metamask-integration/main/config/token-list.json
- ✅ Contains: WETH9, WETH10, ETH/USD Oracle (3 tokens)
- ✅ Format: Uniswap Token Lists Specification
Options for Adding Token List
Option 1: Add as Custom Field (Not in Schema)
Even though tokenLists is not in the schema, you can try adding it:
{
"name": "DBIS Chain",
"chain": "DBIS",
"chainId": 138,
"networkId": 138,
"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",
"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",
"tokenLists": [
"https://raw.githubusercontent.com/Defi-Oracle-Meta-Blockchain/metamask-integration/main/config/token-list.json"
]
}
Pros:
- Makes token list discoverable from chainlist.org
- Users can find tokens when adding network
Cons:
- Not in official schema (may be rejected)
- Chainlist maintainers may remove it
Option 2: Keep Separate (Recommended)
Keep token list separate from chain configuration:
-
Chain configuration (in Chainlist):
- Network metadata only
- RPC URLs, explorer, currency info
-
Token list (separate):
- Hosted at GitHub
- Users add manually in MetaMask
- Or linked in documentation
Pros:
- Follows standard practice
- Token lists are typically separate
- No schema conflicts
Cons:
- Less discoverable
- Users need to add token list manually
Option 3: Update Schema (Advanced)
If Chainlist accepts schema updates, you could propose adding tokenLists:
{
"tokenLists": {
"type": "array",
"items": {
"type": "string",
"description": "URL to token list JSON file"
},
"description": "Optional array of token list URLs for this chain"
}
}
Pros:
- Official support
- Better discoverability
Cons:
- Requires schema change approval
- Longer process
Recommended Approach
For Chainlist PR (Immediate)
Do NOT include tokenLists in the PR because:
- It's not in the schema
- Chainlist maintainers may reject it
- Token lists are typically separate
Focus on:
- ✅ Updating RPC URLs
- ✅ Verifying explorer URL
- ✅ Ensuring all required fields are correct
For Token List Discovery
Use these methods:
-
Documentation:
- Link token list in chain description
- Add to
infoURLwebsite - Include in PR description
-
MetaMask Integration:
- Users can add token list URL manually
- Or use programmatic addition in dApps
-
Separate Token List Registry:
- Submit to Uniswap Token Lists registry
- List on token list aggregators
Updated chain-138.json (Without tokenLists)
Recommended for Chainlist PR:
{
"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"
}
Note: No tokenLists field - keep it schema-compliant.
PR Description Template (Including Token List Info)
Even though we don't include tokenLists in the JSON, we can mention it in the PR description:
## Update ChainID 138 RPC Endpoints
### Summary
Updates RPC endpoints for ChainID 138 (DBIS Chain) to use the new public and permissioned endpoints.
### Changes
- Updated RPC URLs:
- From: `https://rpc.defi-oracle.io`
- To: `https://rpc-http-pub.d-bis.org`, `https://rpc-http-prv.d-bis.org`
### Token List
A token list for ChainID 138 is available at:
- **URL**: https://raw.githubusercontent.com/Defi-Oracle-Meta-Blockchain/metamask-integration/main/config/token-list.json
- **Tokens**: WETH9, WETH10, ETH/USD Oracle
- **Format**: Uniswap Token Lists Specification
Users can add this token list in MetaMask Settings → Security & Privacy → Token Lists.
### 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
Summary
Answer: There is NO official tokenLists field in the Chainlist schema.
Recommendation:
- ✅ Do NOT add
tokenListsto chain.json (not in schema) - ✅ Mention token list in PR description (for discoverability)
- ✅ Keep token list separate (standard practice)
- ✅ Link token list in documentation (on infoURL website)
Token List Discovery:
- Users add token list URL manually in MetaMask
- Or dApps can programmatically reference it
- Or link it in chain documentation/website
Last Updated: 2025-12-24 Status: Token list should be kept separate from chain configuration