209 lines
5.2 KiB
Markdown
209 lines
5.2 KiB
Markdown
|
|
# Chainlists Submission Guide
|
||
|
|
|
||
|
|
This directory contains files needed to submit DBIS Chain 138 to Chainlists.org.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Files
|
||
|
|
|
||
|
|
- `chain-138.json` - Chain configuration in Chainlists format
|
||
|
|
- `SUBMISSION_GUIDE.md` - This file
|
||
|
|
|
||
|
|
## Token List
|
||
|
|
|
||
|
|
The token list is available at:
|
||
|
|
- `../lists/dbis-138.tokenlist.json`
|
||
|
|
- Public URL (when hosted): `https://raw.githubusercontent.com/{user}/{repo}/main/token-lists/lists/dbis-138.tokenlist.json`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Submission Process
|
||
|
|
|
||
|
|
### Option 1: GitHub Pull Request (Recommended)
|
||
|
|
|
||
|
|
1. **Fork the Chainlists repository**
|
||
|
|
- Go to: https://github.com/ethereum-lists/chains
|
||
|
|
- Click "Fork" to create your fork
|
||
|
|
|
||
|
|
2. **Clone your fork**
|
||
|
|
```bash
|
||
|
|
git clone https://github.com/{your-username}/chains.git
|
||
|
|
cd chains
|
||
|
|
```
|
||
|
|
|
||
|
|
3. **Add chain configuration**
|
||
|
|
- Copy `chain-138.json` to `_data/chains/eip155-138/chain.json`
|
||
|
|
- The directory structure should be: `_data/chains/eip155-{chainId}/chain.json`
|
||
|
|
```bash
|
||
|
|
mkdir -p _data/chains/eip155-138
|
||
|
|
cp /path/to/token-lists/chainlists/chain-138.json _data/chains/eip155-138/chain.json
|
||
|
|
```
|
||
|
|
|
||
|
|
4. **Validate the configuration**
|
||
|
|
- Review the JSON structure
|
||
|
|
- Ensure all URLs are accessible
|
||
|
|
- Verify RPC endpoints are working
|
||
|
|
|
||
|
|
5. **Create pull request**
|
||
|
|
```bash
|
||
|
|
git checkout -b add-dbis-chain-138
|
||
|
|
git add _data/chains/eip155-138/chain.json
|
||
|
|
git commit -m "Add DBIS Chain (ChainID 138)"
|
||
|
|
git push origin add-dbis-chain-138
|
||
|
|
```
|
||
|
|
- Then create a pull request on GitHub
|
||
|
|
|
||
|
|
6. **PR Requirements**
|
||
|
|
- Provide brief description of the chain
|
||
|
|
- Include links to documentation/website
|
||
|
|
- Ensure all URLs in the config are publicly accessible
|
||
|
|
- Mention any special features or use cases
|
||
|
|
|
||
|
|
### Option 2: Direct Submission
|
||
|
|
|
||
|
|
If Chainlists provides a submission form on their website, use it with the information from `chain-138.json`.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Required Information
|
||
|
|
|
||
|
|
- **Chain ID**: 138 (0x8a)
|
||
|
|
- **Network Name**: DBIS Chain / SMOM-DBIS-138
|
||
|
|
- **RPC URLs**:
|
||
|
|
- Primary: `https://rpc-core.d-bis.org`
|
||
|
|
- Secondary: `https://rpc-http-pub.d-bis.org`
|
||
|
|
- **Block Explorer**: `https://explorer.d-bis.org`
|
||
|
|
- **Native Currency**: ETH (18 decimals)
|
||
|
|
- **Website**: `https://d-bis.org` (if available)
|
||
|
|
- **Short Name**: `dbis`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Token List Submission
|
||
|
|
|
||
|
|
Token lists can be submitted separately:
|
||
|
|
|
||
|
|
1. **Host token list at public URL**
|
||
|
|
- Use GitHub Pages or GitHub Raw URL
|
||
|
|
- Ensure proper CORS headers
|
||
|
|
- Verify accessibility
|
||
|
|
|
||
|
|
2. **Submit to Token List Registry**
|
||
|
|
- Ensure token list follows Uniswap Token Lists specification
|
||
|
|
- Validate using: `node ../scripts/validate-token-list.js ../lists/dbis-138.tokenlist.json`
|
||
|
|
- Submit URL to Chainlists token list registry (if available)
|
||
|
|
|
||
|
|
3. **Link to Chain Configuration**
|
||
|
|
- Token list should reference ChainID 138
|
||
|
|
- Ensure consistency between chain config and token list
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Validation
|
||
|
|
|
||
|
|
Before submitting, validate the chain configuration:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Validate JSON structure
|
||
|
|
cat chain-138.json | jq .
|
||
|
|
|
||
|
|
# Verify required fields
|
||
|
|
jq -e '.chainId == 138' chain-138.json
|
||
|
|
jq -e '.rpc | length > 0' chain-138.json
|
||
|
|
jq -e '.nativeCurrency.symbol == "ETH"' chain-138.json
|
||
|
|
|
||
|
|
# Use validation script
|
||
|
|
node ../scripts/validate-chainlists.js chain-138.json
|
||
|
|
```
|
||
|
|
|
||
|
|
### Test RPC Endpoints
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Test primary RPC
|
||
|
|
curl -X POST https://rpc-core.d-bis.org \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'
|
||
|
|
|
||
|
|
# Should return: {"jsonrpc":"2.0","id":1,"result":"0x8a"}
|
||
|
|
|
||
|
|
# Test secondary 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}'
|
||
|
|
```
|
||
|
|
|
||
|
|
### Test Block Explorer
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Test explorer accessibility
|
||
|
|
curl -I https://explorer.d-bis.org
|
||
|
|
|
||
|
|
# Should return HTTP 200 or 301/302 redirect
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Chainlists Format Reference
|
||
|
|
|
||
|
|
The chain configuration follows the Chainlists format:
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"name": "Display name",
|
||
|
|
"chain": "Chain identifier",
|
||
|
|
"rpc": ["RPC URL array"],
|
||
|
|
"faucets": ["Faucet URLs if available"],
|
||
|
|
"nativeCurrency": {
|
||
|
|
"name": "Currency name",
|
||
|
|
"symbol": "Currency symbol",
|
||
|
|
"decimals": 18
|
||
|
|
},
|
||
|
|
"infoURL": "Information website URL",
|
||
|
|
"shortName": "Short identifier",
|
||
|
|
"chainId": 138,
|
||
|
|
"networkId": 138,
|
||
|
|
"explorers": [{
|
||
|
|
"name": "Explorer name",
|
||
|
|
"url": "Explorer URL",
|
||
|
|
"standard": "EIP3091"
|
||
|
|
}],
|
||
|
|
"icon": "Icon URL (optional)"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Post-Submission
|
||
|
|
|
||
|
|
After your chain is added to Chainlists:
|
||
|
|
|
||
|
|
1. **Verify on Chainlists.org**
|
||
|
|
- Search for "DBIS" or ChainID 138
|
||
|
|
- Verify all information displays correctly
|
||
|
|
- Test "Add to MetaMask" functionality
|
||
|
|
|
||
|
|
2. **Update Documentation**
|
||
|
|
- Reference Chainlists in your documentation
|
||
|
|
- Link to Chainlists entry
|
||
|
|
- Update integration guides
|
||
|
|
|
||
|
|
3. **Monitor**
|
||
|
|
- Check for user feedback
|
||
|
|
- Update if RPC URLs or explorer URLs change
|
||
|
|
- Keep chain information current
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## References
|
||
|
|
|
||
|
|
- [Chainlists Repository](https://github.com/ethereum-lists/chains)
|
||
|
|
- [Chainlists Website](https://chainlist.org)
|
||
|
|
- [Uniswap Token Lists](https://github.com/Uniswap/token-lists)
|
||
|
|
- [EIP-155: Simple replay attack protection](https://eips.ethereum.org/EIPS/eip-155)
|
||
|
|
- [EIP-3091: Block Explorer API](https://eips.ethereum.org/EIPS/eip-3091)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**Last Updated**: 2025-12-22
|
||
|
|
|