背景

Skip Go API 会从多个公开注册表聚合资产元数据,包括: 这种多注册表方案虽然能够提供广泛覆盖,但有时也会导致一些不一致问题,例如:
  • 代币与链展示之间的 Logo 不匹配
  • 较新代币的 Logo 缺失或过时
  • 不同注册表对同一资产提供不同信息时出现的 元数据冲突
  • 维护较少的注册表提供的 低质量或错误图片
  • 小数位显示问题

Skip Go 资产注册表

为解决这些问题,并让团队能够控制其资产在 Skip Go 各处的展示方式,我们可以通过 Skip Go Asset Registry 进行覆盖。

何时提交覆盖 PR

在以下情况下,你应当向 Skip Go Asset Registry 提交覆盖:
  1. Logo 不匹配:你的代币 Logo 与链 Logo 不一致,而它们本应相同
  2. Logo 缺失:你的代币或链在 Skip Go 集成中没有 Logo
  3. 元数据错误:名称、符号、小数位或其他元数据不正确或已过时
  4. 符号冲突:需要区分不同链上的代币版本(例如 USDC.e、aUSD.planq)

仓库结构

Skip Go Registry 使用如下目录结构:
chains/
├── [chain_id]/           # EVM chains use numeric chain IDs (e.g., 42161 for Arbitrum)
│   ├── chain.json       # Chain configuration
│   ├── assetlist.json   # Asset definitions
│   └── images/          # Asset logos (optional)
└── [chain_name]/        # Cosmos chains use chain names (e.g., cosmoshub-4)
    ├── chain.json       # Chain configuration
    ├── assetlist.json   # Asset definitions
    └── images/          # Asset logos (optional)

如何提交自定义资产

第 1 步:Fork 仓库

Fork Skip Go Registry

第 2 步:新增或更新资产

针对 EVM 链资产

ERC-20 代币: 对于 ERC-20 代币,除非其他元数据存在错误(例如 decimals),否则只需包含必填字段:
{
    "asset_type": "erc20",
    "erc20_contract_address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
}
覆盖元数据时可添加的其他字段:
{
    "asset_type": "erc20",
    "erc20_contract_address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
    "name": "USD Coin",
    "symbol": "USDC",
    "decimals": 6,
    "logo_uri": "https://raw.githubusercontent.com/...",
    "coingecko_id": "usd-coin"
}

针对 Cosmos 链资产

{
    "asset_type": "cosmos",
    "name": "Osmosis",
    "denom": "uosmo",
    "logo_uri": "https://raw.githubusercontent.com/...",
}

符号覆盖

使用 recommended_symbol 设置 Skip Go 中显示的符号。这对链特定符号很有用(例如区分桥接版本):
{
    "asset_type": "erc20",
    "name": "aUSD",
    "symbol": "aUSD",
    "decimals": 18,
    "erc20_contract_address": "0xA2871B267a7d888F830251F6B4D9d3DFf184995a",
    "recommended_symbol": "aUSD.planq"
}
常见的符号覆盖模式:
  • USDT.kava - 使用点号后缀标注链
  • USDC.e - 表示桥接代币
  • TIA.n - 表示特定网络版本

第 3 步:资产要求

Logo 要求:
  • 格式:PNG 或 SVG(托管在 GitHub 或永久 CDN 上)
  • 尺寸:PNG 最小 250x256px,最大 800x800px;SVG 使用矢量图
  • URL:使用永久 URL(GitHub raw content URL)
按资产类型的必填字段: ERC-20 代币:
  • asset_type、erc20_contract_address(需为 checksummed 格式)
  • 可选但推荐:name、symbol、decimals、logo_uri、coingecko_id
Cosmos 资产:
  • asset_type、name、symbol、denom、decimals
  • 推荐:logo_uri、coingecko_id
请始终通过官方代币合约或链文档核实 decimals。

第 4 步:验证你的变更

提交前请运行校验脚本:
cd scripts/config-validator
npm install
npm run validate
这会检查:
  • Schema 合规性
  • 必填字段
  • 合法的合约地址
  • 重复资产

第 5 步:提交 Pull Request

在 PR 描述中,请包含:
  • 你新增或更新了什么:代币名称、链名称或符号覆盖
  • 为什么需要这项变更:例如 “Logo mismatch” 或 “Missing metadata”
  • 验证依据:指向官方项目文档的链接,用于确认信息准确性

第 6 步:PR 审核与合并

Cosmos Labs 团队通常会在 1-3 个工作日 内审核提交内容。 合并后,更新会在 24 小时 内出现在 Skip Go 集成中。

高级功能

验证你的资产

在 PR 合并后,可通过 Skip Go API 进行验证: 接口地址: https://api.skip.build/v2/fungible/assets 查询参数:
  • chain_ids:将响应限制为特定链
  • include_evm_assets=true:查看 EVM 代币时必填
  • include_cw20_assets=true:包含 CW20 代币
  • native_only:仅返回原生资产
示例响应:
{
  "chain_to_assets_map": {
    "42161": {
      "assets": [{
        "denom": "0x816E21c33fa5F8440EBcDF6e01D39314541BEA72",
        "chain_id": "42161",
        "symbol": "agETH",
        "name": "Kelp Gain",
        "logo_uri": "https://raw.githubusercontent.com/...",
        "decimals": 18,
        "coingecko_id": "kelp-gain",
        "recommended_symbol": "agETH"
      }]
    }
  }
}

常见问题与解决方案

我的代币显示的 Logo 与链不同

解决方案:在注册表中同时添加代币和链条目,并使用一致的 Logo。

我的 Logo 在 PR 合并后没有更新

解决方案:最多等待 24 小时让缓存失效。可使用上面的 API 接口检查。

我的代币在不同链上需要显示不同符号

解决方案:使用 recommended_symbol 字段(例如桥接版 USDC 使用 "USDC.e")。

EVM 资产没有出现在 API 中

解决方案:查询时带上 include_evm_assets=true 参数。

支持

如果你遇到问题:

相关文档


Background

The Skip Go API aggregates asset metadata from multiple public registries, including: While this multi-registry approach ensures broad coverage, it can sometimes lead to inconsistencies such as:
  • Mismatched logos between token and chain representations
  • Missing or outdated logos for newer tokens
  • Conflicting metadata when different registries provide different information for the same asset
  • Low-quality or incorrect images from less-maintained registries
  • Decimal display issues

The Skip Go Asset Registry

To resolve these issues and give teams control over how their assets appear across Skip Go, we can override these with the Skip Go Asset Registry.

When to Submit an PR to override

You should submit an override to the Skip Go Asset Registry when:
  1. Logo Mismatch: Your token logo differs from your chain logo when they should be the same
  2. Missing Logos: Your token or chain has no logo in Skip Go integrations
  3. Incorrect Metadata: Name, symbol, decimal or other metadata is incorrect or outdated
  4. Symbol Conflicts: Need to differentiate between token versions on different chains (e.g., USDC.e, aUSD.planq)

Repository Structure

The Skip Go Registry follows this directory structure:
chains/
├── [chain_id]/           # EVM chains use numeric chain IDs (e.g., 42161 for Arbitrum)
│   ├── chain.json       # Chain configuration
│   ├── assetlist.json   # Asset definitions
│   └── images/          # Asset logos (optional)
└── [chain_name]/        # Cosmos chains use chain names (e.g., cosmoshub-4)
    ├── chain.json       # Chain configuration
    ├── assetlist.json   # Asset definitions
    └── images/          # Asset logos (optional)

How to Submit Custom Assets

Step 1: Fork the Repository

Fork the Skip Go Registry

Step 2: Add or Update Assets

For EVM Chain Assets

ERC-20 Tokens: For ERC-20 tokens, include only required fields unless other meta data is incorrect e.g decimals:
{
    "asset_type": "erc20",
    "erc20_contract_address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
}
Additional fields to add when overriding metadata:
{
    "asset_type": "erc20",
    "erc20_contract_address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
    "name": "USD Coin",
    "symbol": "USDC",
    "decimals": 6,
    "logo_uri": "https://raw.githubusercontent.com/...",
    "coingecko_id": "usd-coin"
}

For Cosmos Chain Assets

{
    "asset_type": "cosmos",
    "name": "Osmosis",
    "denom": "uosmo",
    "logo_uri": "https://raw.githubusercontent.com/...",
}

Symbol Overrides

Use recommended_symbol to set the display symbol in Skip Go. This is useful for chain-specific symbols (e.g., to differentiate bridged versions):
{
    "asset_type": "erc20",
    "name": "aUSD",
    "symbol": "aUSD",
    "decimals": 18,
    "erc20_contract_address": "0xA2871B267a7d888F830251F6B4D9d3DFf184995a",
    "recommended_symbol": "aUSD.planq"
}
Common symbol override patterns:
  • USDT.kava - Chain suffix with dot notation
  • USDC.e - Bridged token designation
  • TIA.n - Network-specific versions

Step 3: Asset Requirements

Logo Requirements:
  • Format: PNG or SVG (host on GitHub or a permanent CDN)
  • Size: Minimum 250x256px, Maximum: 800x800px for PNG, vector for SVG
  • URL: Use permanent URLs (GitHub raw content URLs)
Required Fields by Asset Type: ERC-20 Tokens:
  • asset_type, erc20_contract_address (checksummed)
  • Optional but recommended: name, symbol, decimals, logo_uri, coingecko_id
Cosmos Assets:
  • asset_type, name, symbol, denom, decimals
  • Recommended: logo_uri, coingecko_id
Always verify decimals with the official token contract or chain documentation.

Step 4: Validate Your Changes

Run the validation scripts before submitting:
cd scripts/config-validator
npm install
npm run validate
This checks for:
  • Schema compliance
  • Required fields
  • Valid contract addresses
  • Duplicate assets

Step 5: Submit a Pull Request

In your PR description, include:
  • What you’re adding/updating: Token name, chain name, or symbol override
  • Why the change is needed: E.g., “Logo mismatch” or “Missing metadata”
  • Verification: Link to official project documentation confirming accuracy

Step 6: PR Review and Merge

The Cosmos Labs team reviews submissions within 1-3 business days Once merged, updates appear in Skip Go integrations within 24 hours.

Advanced Features

Verifying Your Assets

After your PR is merged, verify using the Skip Go API: Endpoint: https://api.skip.build/v2/fungible/assets Query Parameters:
  • chain_ids: Limit response to specific chains
  • include_evm_assets=true: Required to see EVM tokens
  • include_cw20_assets=true: Include CW20 tokens
  • native_only: Restrict to native assets only
Example Response:
{
  "chain_to_assets_map": {
    "42161": {
      "assets": [{
        "denom": "0x816E21c33fa5F8440EBcDF6e01D39314541BEA72",
        "chain_id": "42161",
        "symbol": "agETH",
        "name": "Kelp Gain",
        "logo_uri": "https://raw.githubusercontent.com/...",
        "decimals": 18,
        "coingecko_id": "kelp-gain",
        "recommended_symbol": "agETH"
      }]
    }
  }
}

Common Issues & Solutions

My token shows a different logo than my chain

Solution: Add both token and chain entries to the registry with matching logos.

My logo isn’t updating after PR merge

Solution: Wait up to 24 hours for cache invalidation. Check using the API endpoint above.

My token needs a different symbol on different chains

Solution: Use the recommended_symbol field (e.g., "USDC.e" for bridged USDC).

EVM assets not appearing in API

Solution: Query with include_evm_assets=true parameter.

Support

If you encounter issues: