Skip to content

Latest commit

 

History

History
108 lines (72 loc) · 7.26 KB

token-support-requirements.mdx

File metadata and controls

108 lines (72 loc) · 7.26 KB
title description
Token & Route Support Requirements
This document describes the steps you must complete for the Skip API to begin providing new routes for users to transfer a token over to various remote chains using IBC.

Background

  • New tokens often want Skip API to add support for transferring their token to other chains because the API powers cross-chain swaps + transfers in all the major cosmos wallets (Leap, Keplr, IBC Wallet, Metamask Snap) and cross-chain DEX aggregation for many popular defi aggregator and dapp frontends (e.g. Stargaze). As a result, being added to the Skip API instantly offers distribution across the interchain for a new token
  • This document covers the basic requirements tokens must satisfy and steps their contributors must complete in order for Skip API to support transferring them throughout the interchain
**Guide assumes using IBC for interop**

This guide assumes you're using IBC to transfer your token between chains.

The Skip 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 ASAP ([email protected], tg:@bpiv400), 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 transferring new tokens over them 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. The chain where the token is issued must already be supported by the Skip API
    1. Use the /info/chains endpoint to query a list of actively supported chains: /v1/info/chains
    2. If the chain is not already supported, follow the instructions in Chain Support Requirements to request support
    3. This is a pre-requisite
  2. The Skip API must also support the remote chains to which you wish users to be able to transfer the asset
    1. Use the /info/chains endpoint to query a list of actively supported chains: /v1/info/chains
    2. If the chain is not already supported, follow the instructions in Chain Support Requirements to request support
    3. This is a pre-requisite
  3. Token metadata is available in a commonly used chain registry (e.g. https://github.com/cosmos/chain-registry) . Metadata should include at least:
    1. Denom (programmatic string identifier)
    2. Symbol (aka "ticker")
    3. Asset name (human readable denom)
    4. Display name (aka pretty name)
    5. Decimals / exponent
    6. Images
    7. coingecko_id (if applicable)
    8. Description
  4. Ensure IBC relayers are actively monitoring and relaying packets on all channels over which you want users to transfer your token (See Chain Support Requirements for more info on relayers.)

2. "Warm Start" your Asset Routes

For each destination chain:

  1. Pick a channel that you would like to be the canonical channel for transferring the asset to this destination chain
  2. Transfer a non-zero amount of the token over the channel
  3. Confirm that the token successfully gets transferred to the destination chain
  4. Leave the transferred tokens on the destination chain
**How do I pick a channel for a destination chain?**

If you're launching a new chain, you should just pick whatever channel your team has set up. Usually, there's just one highly-trafficked and well-relayed channel between two chains over which all assets are transferred. (In theory, there can be many because IBC is permissionless, but usually relayers are only monitoring 1 and creating more adds confusion for all parties)

If you're launching a new token on a chain that already has a vibrant IBC ecosystem and has already issued tokens that are widely used throughout the interchain (e.g. Osmosis or Neutron), you should probably use the same channel the well-established tokens use, since relayers are most likely to support these ones. To see which channel this is, call the /v1/fungible/recommend_assets endpoint with the following values:

  • source_denom: A well-established token on the chain where your asset is issued (e.g. uatom)
  • source_chain_id: The chain_id of the chain where your asset is issued (e.g. cosmoshub-4)
  • dest_chain_id: The chain_id of the chain to which you want to be able to transfer your asset (e.g. osmosis-1)

The channel you want to use is available in the response in recommendations[0].asset.trace

**How do I transfer tokens over my chosen channel before Skip API supports it?**

The easiest way to transfer tokens over a channel before official Skip API support is to use Keplr's developer mode. To enable developer mode in the Keplr extension, open the hamburger menu, click on settings, then click advanced, then activate the toggle for "Developer Mode".

Once developer mode is active, at the bottom of the main page you should see "Advanced IBC Transfer". Click on this then follow the instructions for inputting your token and desired channel ID.

**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.

3. Wait up to 24 hours and verify

Skip's intelligent route detection should automatically detect new routes for all assets and chains that meet the above requirements in 4-8 hours. This will not happen immediately. Please ensure you wait the necessary amount of time.

After you've let enough time pass, you can verify that Skip API supports the new routes you've configured using the /v1/fungible/recommend_assets endpoint. For each destination chain you've configured, call this endpoint with the following data:

  • source_denom: Your token
  • source_chain_id: The chain on which your token is issued
  • dest_chain_id: The chain to which you've warm-started an IBC route in the previous step
**Having trouble?**

Get in touch with us for support at [email protected] or TG:@bpiv400.

We're happy to help your asset move more easily across the interchain.

**Want to help us get better? Have questions or feedback?**

You can reach us easily at [email protected] or in our developer support channel on TG