- Marked submodules ai-mcp-pmm-controller, explorer-monorepo, and smom-dbis-138 as dirty to reflect recent changes. - Updated documentation to clarify operator script usage, including dotenv loading and task execution instructions. - Enhanced the README and various index files to provide clearer navigation and task completion guidance. Made-with: Cursor
DBIS Chain 138 Token Lists
Production-ready token lists for ChainID 138 (DBIS Chain), following the Uniswap Token Lists Specification.
Quick Start
Validate Token List
node scripts/validate-token-list.js lists/dbis-138.tokenlist.json
Verify On-Chain
node scripts/verify-on-chain.js lists/dbis-138.tokenlist.json
Prepare Release
./scripts/release.sh patch # or minor, major
Sign Token List
./scripts/sign-list.sh sign
Directory Structure
token-lists/
├── lists/
│ └── dbis-138.tokenlist.json # Main token list
├── logos/ # Token logos (future)
├── scripts/
│ ├── validate-token-list.js # Schema & validation
│ ├── checksum-addresses.js # EIP-55 checksum validation
│ ├── validate-logos.js # Logo URL validation
│ ├── verify-on-chain.js # On-chain verification
│ ├── release.sh # Release automation
│ └── sign-list.sh # minisign signing
├── docs/
│ ├── TOKEN_LIST_POLICY.md # Inclusion/delisting policy
│ ├── INTEGRATION_GUIDE.md # Integration instructions
│ ├── CHANGELOG.md # Version history
│ └── TOKEN_LIST_AUTHORING_GUIDE.md # Authoring guide
└── minisign.pub # Public key for verification
Token List Contents
Current version: 1.2.0
Tokens
-
ETH/USD Price Feed (Oracle)
- Address:
0x3304b747E565a97ec8AC220b0B6A1f6ffDB837e6 - Decimals: 8
- Category: Oracle, Price Feed
- Address:
-
WETH (Wrapped Ether)
- Address:
0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 - Decimals: 18
- Category: DeFi, Wrapped
- Address:
-
WETH10 (Wrapped Ether v10)
- Address:
0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9F - Decimals: 18
- Category: DeFi, Wrapped
- Address:
-
LINK (Chainlink Token)
- Address:
0xb7721dD53A8c629d9f1Ba31a5819AFe250002b03 - Decimals: 18
- Category: DeFi, Oracle, CCIP
- Address:
-
cUSDT (Compliant Tether USD)
- Address:
0x93E66202A11B1772E55407B32B44e5Cd8eda7f22 - Decimals: 6
- Category: Stablecoin, DeFi, Compliant
- Address:
-
cUSDC (Compliant USD Coin)
- Address:
0xf22258f57794CC8E06237084b353Ab30fFfa640b - Decimals: 6
- Category: Stablecoin, DeFi, Compliant
- Address:
Validation
All token lists are validated against:
- Uniswap Token Lists JSON Schema
- EIP-55 address checksumming
- Chain ID strict validation (must be 138)
- Duplicate detection (addresses and symbols)
- Logo URL accessibility
- On-chain contract verification
Running Validations
# Full validation
node scripts/validate-token-list.js lists/dbis-138.tokenlist.json
# Check address checksums
node scripts/checksum-addresses.js lists/dbis-138.tokenlist.json
# Fix checksummed addresses
node scripts/checksum-addresses.js lists/dbis-138.tokenlist.json --fix
# Validate logos
node scripts/validate-logos.js lists/dbis-138.tokenlist.json
# Verify on-chain
node scripts/verify-on-chain.js lists/dbis-138.tokenlist.json
CI/CD
PR Validation
GitHub Actions automatically validates token lists on pull requests:
- JSON schema validation
- Address checksum validation
- Duplicate detection
- Logo validation (non-blocking)
- On-chain verification (optional, non-blocking)
Release Process
-
Update version using release script:
./scripts/release.sh patch # or minor, major -
Create git tag:
git tag -a v1.2.0 -m "Release v1.2.0" git push --tags -
GitHub Actions release workflow will:
- Run all validations (required)
- Perform on-chain verification (required)
- Generate checksums
- Sign token list
- Create GitHub Release
Hosting
Token lists are hosted at:
- GitHub Pages:
https://{user}.github.io/{repo}/token-lists/lists/dbis-138.tokenlist.json - GitHub Raw:
https://raw.githubusercontent.com/{user}/{repo}/main/token-lists/lists/dbis-138.tokenlist.json - DBIS Domain (if configured):
https://tokens.d-bis.org/lists/dbis-138.tokenlist.json
Integration
See INTEGRATION_GUIDE.md for detailed integration instructions for:
- MetaMask
- Ledger
- dApps
- Explorers/Indexers
- Custom applications
Policy
See TOKEN_LIST_POLICY.md for:
- Inclusion requirements
- Delisting criteria
- Governance process
- Versioning policy
Security
Signature Verification
Token lists are signed with minisign for integrity verification:
# Verify signature
minisign -V -p minisign.pub -m lists/dbis-138.tokenlist.json -x lists/dbis-138.tokenlist.json.sig
Public Key
The public key is included in the repository: minisign.pub
Private key is stored securely in GitHub Secrets for CI/CD signing.
Contributing
Adding Tokens
- Create issue or pull request with token details
- Ensure token meets inclusion requirements
- Code owners review and approve
- Validations run automatically via CI/CD
Updating Tokens
- Update token metadata in
lists/dbis-138.tokenlist.json - Run validations locally
- Create pull request
- CI/CD validates changes
Removing Tokens
- Create issue explaining removal reason
- Code owners review and approve
- Update token list (major version bump)
- Update CHANGELOG.md
Dependencies
- Node.js >= 16.0.0
- pnpm (package manager)
@uniswap/token-lists(official Uniswap Token Lists package)- ethers.js (for address validation and on-chain verification)
- ajv & ajv-formats (for JSON schema validation)
- minisign (for signing, optional for verification)
Install dependencies:
pnpm install
Package Integration
This project uses the official @uniswap/token-lists package for:
- JSON Schema validation
- TypeScript type definitions
- Specification compliance
The validation scripts automatically use the package schema, with fallback to URL fetch if the package is unavailable.
Chainlists Submission
Files for submitting to Chainlists.org are in the chainlists/ directory:
chainlists/chain-138.json- Chain configuration in Chainlists formatchainlists/SUBMISSION_GUIDE.md- Submission instructions
Validate Chain Configuration
node scripts/validate-chainlists.js chainlists/chain-138.json
Submit to Chainlists
See chainlists/SUBMISSION_GUIDE.md for detailed submission instructions.
The chain configuration includes:
- Chain ID: 138
- RPC URLs (primary and fallback)
- Block explorer
- Native currency information
- Chain metadata
Links
- Uniswap Token Lists Specification
- @uniswap/token-lists npm package
- JSON Schema
- Chainlists Repository
- Chainlists Website
- EIP-55: Mixed-case checksum address encoding
- EIP-155: Simple replay attack protection
- Semantic Versioning
Token Lists Available
ChainID 138 (DBIS Chain)
- File:
lists/dbis-138.tokenlist.json - Tokens: 6 (WETH, WETH10, LINK, cUSDT, cUSDC, ETH/USD Oracle)
- Version: 1.3.0
- Status: ✅ Complete and validated
Cronos (ChainID 25)
- File:
lists/cronos.tokenlist.json - Tokens: 10 (WETH9, WETH10, LINK, USDW, EURW, GBPW, AUDW, JPYW, CHFW, CADW)
- Version: 1.0.0
- Status: ✅ Complete (DBIS CCIP + ISO-4217W deployments)
Avalanche C-Chain (ChainID 43114)
- File:
lists/avalanche.tokenlist.json - Tokens: 2 (WETH9, WETH10)
- Version: 1.0.0
- Status: ✅ Complete (DBIS CCIP deployments)
Arbitrum One (ChainID 42161)
- File:
lists/arbitrum.tokenlist.json - Tokens: 2 (WETH9, WETH10)
- Version: 1.0.0
- Status: ✅ Complete (DBIS CCIP deployments)
Ethereum Mainnet (ChainID 1)
- File:
lists/ethereum-mainnet.tokenlist.json - Tokens: 1 (USDT)
- Version: 1.0.0
- Status: ✅ Complete and validated
ALL Mainnet (ChainID 651940)
- File:
lists/all-mainnet.tokenlist.json - Tokens: 9 (AUSDT, USDT, USDC, WETH, WALL, HYDX, HYBX, CHT, AUDA)
- Version: 1.0.0
- Status: ✅ Complete
Documentation
- Token List Authoring Guide
- Integration Guide
- Token List Policy
- Uniswap Comparison
- DefiLlama Analysis
- ALL Mainnet Extraction Guide
- ALL Mainnet Submission Guide
Last Updated: 2025-12-22