IntroductionCosmos GMPSolidity UtilitiesSandbox
InterchainTokenServiceInterchainTokenFactoryTokenManagerAxelarGateway AxelarGasServiceAxelarExecutableAxelarJS SDK
Bug Bounty
Crosschain Message FlowaxlUSDCSecurity OverviewInterchain Transaction DurationEVM Contract Governance

Upgrade existing tokens into Interchain Token(s)

The Token Whitelisting for Squid Router form is now live! Download the axelar-configs repo, install dependencies, and npm run wizard on the command line to access the interactive form through the wizard.

You can turn an ERC-20 token that exists on one or more blockchains into an Interchain Token by deploying a token manager, which can be either Lock/Unlock or Mint/Burn. Interchain Tokens created this way are called canonical tokens.

Canonical tokens are registered under the local chain’s Lock/Unlock token manager and the remote chain’s Mint/Burn token manager. Anyone can deploy a canonical token to a remote chain without depending on a deployer address or salt.

Canonical tokens (Simple wrappers)

If you have an ERC-20 token on a single chain and want a wrapped, bridgeable version on other chains, register it as a canonical token with the Interchain Token Service using the Interchain Token Factory. Each token can only be registered a single time as a canonical chain.

There are two ways to register a canonical token:

  1. Create and register an ERC-20 token on the Interchain Token Portal.
  2. Programmatically create a canonical token.

If you have a token deployed on multiple chains and want to make it an Interchain Token:

  1. Call deployTokenManager() on the Interchain Token Service to deploy a token manager for the existing version of the token on all chains. The Online Ethereum ABI Encoder can create the parameters for initializing the token manager. You can specify at most one chain (likely the primary or origin) to have a Lock/Unlock token manager. The rest must be Mint/Burn.
  2. Call interchainTransfer() to transfer Interchain Tokens between chains.

If you want to build your token with the IInterchainToken feature yourself, make sure your token implements the IInterchainTokenStandard interface so you can offer interchainTransfer() and interchainTransferFrom() methods directly on the token.

What’s next

For further examples utilizing the Interchain Token Service, check out the axelar-examples repo on GitHub.

Edit this page