Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
- Config, docs, scripts, and backup manifests - Submodule refs unchanged (m = modified content in submodules) Made-with: Cursor
6.3 KiB
6.3 KiB
Token List PR Review — How Each Repo Handles Token Lists
Cloned repos: /home/intlc/projects/token-lists, chains, wallet-core, DefiLlama-Adapters
Last Updated: 2026-02-28
1. Uniswap token-lists (/home/intlc/projects/token-lists)
What it is
- Schema + TypeScript package, not a registry of token lists
- Defines the Uniswap token list JSON schema (
src/tokenlist.schema.json) - Schema ID:
https://uniswap.org/tokenlist.schema.json - Used by tokenlists.org, Uniswap Interface, MetaMask, etc.
Token list format (from example.tokenlist.json)
{
"name": "My Token List",
"logoURI": "ipfs://...",
"keywords": ["audited", "verified"],
"tags": { "stablecoin": { "name": "Stablecoin", "description": "..." } },
"timestamp": "2020-06-12T00:00:00+00:00",
"tokens": [
{
"chainId": 1,
"address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"symbol": "USDC",
"name": "USD Coin",
"decimals": 6,
"logoURI": "ipfs://..."
}
],
"version": { "major": 1, "minor": 0, "patch": 0 }
}
Cross-chain (from example-crosschain.tokenlist.json)
- Same structure; tokens can have
extensions.bridgeInfomapping chainId → bridged address - Each chain gets its own token entry with
chainId
PR process
- This repo does NOT host token lists — it only provides the schema
- To add a list: host it (GitHub Raw, IPFS, ENS) and submit to tokenlists.org via https://github.com/Uniswap/tokenlists-org/issues (template: "add list request")
- Or use your own URL (e.g.
explorer.d-bis.org/api/v1/report/token-list)
Chain 138 action
- Ensure
proxmox/token-lists/lists/dbis-138.tokenlist.jsonvalidates against schema - Host at GitHub Raw or explorer API
- Submit URL to tokenlists.org
2. Chainlist / ethereum-lists/chains (/home/intlc/projects/chains)
What it is
- Chain metadata (RPC, explorers, native currency) — not token lists
- Used by chainlist.org, wallets, MESC, etc.
- File:
_data/chains/eip155-{chainId}.json
Chain format (from eip155-1.json)
{
"name": "Ethereum Mainnet",
"chain": "ETH",
"icon": "ethereum",
"rpc": ["https://mainnet.infura.io/...", "..."],
"features": [{"name": "EIP155"}, {"name": "EIP1559"}],
"faucets": [],
"nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 },
"infoURL": "https://ethereum.org",
"shortName": "eth",
"chainId": 1,
"networkId": 1,
"slip44": 60,
"explorers": [{ "name": "etherscan", "url": "https://etherscan.io", "standard": "EIP3091" }]
}
PR process
- Add
_data/chains/eip155-138.json - If using
icon, add_data/icons/defioraclemeta.json(IPFS URL for logo) - Run
./gradlew runandnpx prettier --write _data/*/*.json - Open PR to https://github.com/ethereum-lists/chains
Chain 138 status
- Not present (no eip155-138.json in chains repo)
- PR-ready:
proxmox/docs/04-configuration/pr-ready/eip155-138.json
3. Trust Wallet wallet-core (/home/intlc/projects/wallet-core)
What it is
- Coin/chain registry for Trust Wallet app
registry.json— flat array of coins/chains- EVM chains have:
id,name,coinId,symbol,blockchain,chainId,explorer,info.rpc
EVM chain format (from registry.json)
{
"id": "ethereum",
"name": "Ethereum",
"coinId": 60,
"symbol": "ETH",
"decimals": 18,
"blockchain": "Ethereum",
"derivation": [{ "path": "m/44'/60'/0'/0/0" }],
"curve": "secp256k1",
"publicKeyType": "secp256k1Extended",
"chainId": "1",
"addressHasher": "keccak256",
"explorer": {
"url": "https://etherscan.io",
"txPath": "/tx/",
"accountPath": "/address/",
"sampleTx": "...",
"sampleAccount": "..."
},
"info": {
"url": "https://ethereum.org",
"source": "https://github.com/ethereum/go-ethereum",
"rpc": "https://mainnet.infura.io",
"documentation": "..."
}
}
PR process
- Add entry to
registry.json(EVM:blockchain: "Ethereum",chainId,explorer,info.rpc) - Run codegen:
cd codegen-v2 && cargo run -- new-evmchain 138(or per their CLI) - Extend derivation tests
- Open PR to https://github.com/trustwallet/wallet-core
Chain 138 status
- Not present
- PR-ready:
proxmox/docs/04-configuration/pr-ready/trust-wallet-registry-chain138.json
4. DefiLlama-Adapters (/home/intlc/projects/DefiLlama-Adapters)
What it is
- Protocol TVL adapters — not token lists
- Each project (e.g.
dodo,1inch) hasindex.jsthat exportstvl(api)per chain - DefiLlama uses chain keys:
ethereum,bsc,polygon,arbitrum,avax,optimism,base, etc.
Adapter format (from dodo/index.js)
const config = {
ethereum: { dvmFactory: '0x...', fromBlock: 10613640, ... },
arbitrum: { dvmFactory: '0x...', fromBlock: 226578, ... },
// Add new chain: chain138: { ... }
};
Object.keys(config).forEach(chain => {
module.exports[chain] = {
tvl: async (api) => {
// Fetch balances, return { 'ethereum:0xToken': balance }
}
};
});
PR process
- Add adapter under
projects/{protocol-name}/ - Export
tvl(and optionallystaking,borrowed) per chain - Chain 138 would need DefiLlama to add
chain138as a supported chain key first (see docs.llama.fi) - Open PR to https://github.com/DefiLlama/DefiLlama-Adapters
Chain 138 action
- DefiLlama may not have
chain138as a chain key yet - Check
helper/chains.jsor similar for supported chains - If adding DODO/other protocol on Chain 138, add config entry + tvl logic
Summary: PR Targets by Repo
| Repo | Content | Chain 138 PR |
|---|---|---|
| token-lists | Schema only; lists hosted elsewhere | N/A — use tokenlists.org issue to add list URL |
| chains | Chain metadata (eip155-138.json) | Add _data/chains/eip155-138.json |
| wallet-core | Coin/chain registry | Add entry to registry.json + codegen |
| DefiLlama-Adapters | Protocol TVL adapters | Add adapter for DODO/etc. on Chain 138 (if chain supported) |