Background

  • 新链通常希望 Skip Go API 将其链添加为代币的来源链和目标链,因为该 API 为所有主流 Cosmos 钱包(Leap、Keplr、IBC Wallet、Metamask Snap)以及许多热门 DeFi 聚合器和 dApp 前端(例如 Stargaze)提供跨链兑换与转账能力。因此,被接入 Skip Go API 后,你的链将立即获得整个跨链生态中的分发能力
  • 本文档介绍了链需要满足的基本要求,以及其贡献者为使 Skip Go API 支持该链而必须完成的步骤
  • 当你满足以下要求后,请通过我们的API 链集成申请表提交集成请求
想在流程开始阶段获得帮助?接入 IBC、Axelar、CCTP、Layerzero 或 Hyperlane 可能并不容易,甚至光是在它们之间做出选择就已经很有挑战。我们很乐意在严肃推进的团队旅程早期提供指导和实操支持;如果有帮助,即使你们还没有选定互操作协议,也可以先来联系。
本指南假设你使用 IBC 进行互操作本指南接下来的内容假设你希望 Skip 主要通过 IBC 支持用户与你的链进行交互。除 IBC 外,Skip Go API 还支持其他桥和互操作协议,包括 Hyperlane、CCTP 和 Axelar。如果你使用的是其中之一,请通过我们的 Discord联系我们,我们会尽可能为你提供指导。这些其他互操作协议的标准化程度通常低于 IBC,并且/或者不像 IBC 那样无许可,因此为新链添加支持的流程会更加定制化,并且因协议而异。我们愿意在能力范围内提供帮助,包括指导、实现以及在需要时协助牵线介绍。

1. 满足以下基本要求

  1. 提供清晰的说明,指导他人如何无许可地运行全节点并加入网络。通常这些说明应包括:
    1. 创世文件链接
    2. 全节点二进制文件,或从源代码构建二进制文件的说明
    3. 公共 peer / seeder 节点
    4. 公共 RPC
  2. 链元数据应可在常用的链注册表中获取(例如 https://github.com/cosmos/chain-registry)。元数据应包括:
    1. 链名称(以及可选的“pretty name”)
    2. 网站
    3. chain_id
    4. Bech32 前缀
    5. slip44(也称为“coin type”)
    6. 手续费信息(包括 denom、low price、average price 和 high price)
    7. Logo URI
    8. 持久化 peer 列表
    9. 公共 RPC 对于 EVM 链,这些元数据及所选链注册表可能会有所不同。请根据实际情况作出最佳判断,确定所需内容。
  3. 支持 IBC、Axelar、Layerzero、Eureka 和/或 Hyperlane。

2. 配置 IBC 机制

这里我们会设置 IBC client、channel 和 relayer。
什么是 relayer?Relayer 是链下参与者,负责:
  • 保持 IBC 轻客户端处于最新状态(需要定期更新以防止“过期”)
  • 监控链上的出站 IBC packet,获取这些 packet,并将 packet 数据和 packet proof 发送到目标链
完成以下步骤最简单的方式,是使用 IBC relayer 软件(Hermes 或 Relayer)。两者的 CLI 都支持创建 channel 和 client。 对于你希望建立直接 IBC 转账路径的每条链,你都必须完成以下步骤以确保 IBC 正常工作:
  1. 在你的链上创建远端链的轻客户端,并在远端链上创建你这条链的轻客户端
  2. 在这两个客户端之间创建一个 ICS-20 transfer channel
不要在你的链与远端链之间创建多个 channel对于每条需要直接通信的链,你的链只需要 1 个 transfer channel。你链上的所有代币都可以通过同一个 channel 转移到特定远端链。额外的 transfer channel 可能会带来混淆并造成流动性碎片化,因为用户需要自行选择通过哪个 channel 进行转移。(Skip Go API 会为使用它的应用和用户自动完成这一选择,但其他人未必如此幸运。)
  1. 确保至少有 1 个可靠的 relayer 覆盖该 channel(能够持续保持轻客户端更新,并在两条链之间转发 packet)
如果我不想自己运行 relayer 怎么办?请通过我们的 Discord联系我们。我们与 Cosmos 生态中所有顶级 relayer 运营方都保持良好关系,可以为你牵线对接。

3. 为你链上铸造的每个资产配置支持

对于你希望确保用户能够转移的每个原生资产:
  1. 通过该 channel 转移一笔非零数量的代币
  2. 确认该代币已成功转移到目标链
  3. 将这些已转移的代币保留在目标链上

4. 在 Discord 上提交加入 Skip API 申请时需要提供的信息

请包含以下内容:
  • Team Name:
  • Team Contact Name:
  • Team Contact Telegram:
  • Team Website:
  • Swapping Venue Name** (if different from team name):
  • Swapping Venue Website** (if different from team website):
  • Swapping Venue Documentation:**
Skip API 已支持的链 CosmWasm 支持
  • 提供关于任何特殊配置或限制的文档或说明
IBC 支持
  • 提供相关细节,特别是在未使用标准 IBC-go 的情况下
IBC-hooks 支持

其他链相关问题

  • 该链是否支持 Packet Forward Middleware (PFM)?
  • CosmWasm 合约部署是否为无许可? 如果不是,审批或治理流程是什么?
为什么这是必需的?对 channel 进行预热启动,可以触发 Skip 针对往返你链的桥接场景提供智能路由建议。我们会在链之间选择路由,以确保用户在目标链上始终收到其所选代币的最佳版本。作为为所有 API 用户提供良好体验的一部分,我们不会让用户把资产桥接到那些此前从未有人桥接过该资产的新链上。(对于普通用户来说,把一个链上尚不存在的现有代币带到该链,往往会让他们困在新链上,只拿着一个无用的代币。)这就是为什么我们需要对 channel 做“预热启动”处理,以便能够将其推荐为桥接路由。
有问题或反馈?帮助我们做得更好!加入我们的 Discord,并选择 “Skip Go Developer” 角色来分享你的问题和反馈。

Background

  • New chains often want Skip Go API to add support for their chain as a source + destination for tokens because the API powers cross-chain swaps + transfers in all the major cosmos wallets (Leap, Keplr, IBC Wallet, Metamask Snap) and many popular DeFi aggregators and dapp frontends (e.g. Stargaze). As a result, being added to the Skip Go API instantly offers distribution across the interchain
  • This document covers the basic requirements chains must satisfy and steps their contributors must complete in order for Skip Go API to support them
  • Once you’ve met the requirements below, submit an integration request through our API Chain Integration Request Form
Want help at the beginning of this process?Getting connected to IBC, Axelar, CCTP, Layerzero or Hyperlane can be hard. Even choosing among them is a challenge. We’re happy to provide guidance and hands-on support to serious teams early in their journey — even before they’ve made a choice of interop protocol if helpful!
This guide assumes using IBC for InteropThe rest of this guide assumes you want Skip to support users interacting with your chain primarily over IBC.The Skip Go API supports other bridges and interop protocols in addition to IBC, including Hyperlane, CCTP, and Axelar. If you’re using one of these, please get in contact with us on our Discord, and we will help guide you through it to the extent we can.These other interop protocols are less standardized and/or less permissionless than IBC, so the process of adding support for new chains is more bespoke and varies by protocol. We’re happy to help where we can, providing guidance, implementation, and introductions where necessary

1. Satisfy the following basic requirements

  1. Provides clear instructions for permissionlessly running a full node and joining the network. Commonly instructions should include:
    1. Link to genesis file
    2. Full node binary or instructions for building binary from source code
    3. Public peer / seeder nodes
    4. Public RPCs
  2. Chain metadata is available in a commonly used chain registry (e.g. https://github.com/cosmos/chain-registry). Metadata should include:
    1. Chain name (and optionally “pretty name”
    2. Website
    3. chain_id
    4. Bech32 prefix
    5. slip44 (aka “coin type”)
    6. Fee information (with denom, low price, average price, and high price)
    7. Logo URIs
    8. Persistent peer lists
    9. Public RPCs This metadata and the chain registry of choice might differ for EVM chains. Please use your best judgement of whats required
  3. IBC, Axelar, Layerzero, Eureka, and/or Hyperlane support.

2. Configure IBC Machinery

Here we set up IBC clients, channels, and relayers.
What is a relayer?Relayers are the off-chain actors that:
  • Keep IBC light clients up to date (Regular updates are required to prevent “expiration”)
  • Monitor chains for outbound IBC packets, grab them, and send the packet data and packet proof to the destination chain
The easiest way to complete the steps below is to use the ibc relayer software (Hermes or Relayer. The CLIs of both support channel and client instantiation. For each chain that you want your chain to have a direct IBC transfer path to, you must complete steps to ensure IBC works properly:
  1. Create a light client of the remote chain on your chain, and a light client of your chain on the remote chain
  2. Create a ICS-20 “transfer” channel between these two clients
Don’t create more than 1 channel between your chain and a remote chainYour chain only needs 1 transfer channel for each chain it should communicate with directly.All tokens from your chain can be transferred to a particular remote chain over the same channel.Additional transfer channels may create confusion and liquidity fragmentation since users will need to pick which channel to transfer over (The Skip Go API automates this choice for the apps and users that use it, but others might not be so lucky)
  1. Ensure there is at least 1 reliable relayer covering the channel (who can keep the light clients up to date and ferry packets between the two chains over time)
What if I don’t want to run my own relayers?Get in touch with us on our DiscordWe have great relationships with all the top relayer operators in the Cosmos ecosystem and can put you in touch with them.

3. Configure support for each asset minted on your chain

For each native asset that you want to ensure users can transfer over the
  1. Transfer a non-zero amount of the token over the channel
  2. Confirm that the token successfully gets transferred to the destination chain
  3. Leave the transferred tokens on the destination chain

4. What chains will be asked for when submitting to get added to the Skip API on discord

Please include the following:
  • Team Name:
  • Team Contact Name:
  • Team Contact Telegram:
  • Team Website:
  • Swapping Venue Name** (if different from team name):
  • Swapping Venue Website** (if different from team website):
  • Swapping Venue Documentation:**
Chain supported by the Skip API CosmWasm Support
  • Include documentation or notes on any special setup or limitations
IBC Support
  • Provide relevant details, especially if not using standard IBC-go
IBC-hooks Support

Additional Chain Questions

  • Does the chain support Packet Forward Middleware (PFM)?
  • Is CosmWasm contract deployment permissionless? If not, what is the approval or governance process?
Why is this required?Warm starting the channels kicks off Skip’s intelligent routing suggestions for folks bridging to and from your chain. We choose routes between chains that ensure users are always receiving the most desirable version of their chosen token on their destination chain.As a part of providing good user experiences for everyone using the API, we don’t enable users to bridge assets to new chains where no one has previously bridged that asset. (Often times, for ordinary users, taking an existing token to a chain it doesn’t exist leaves them stuck on that new chain with a useless token). That’s why we need to “warm start” channels — to enable recommending them as bridging routes.
Have questions or feedback? Help us get better!Join our Discord and select the “Skip Go Developer” role to share your questions and feedback.