IntroductionEVM RelayerCosmos GMPSolidity UtilitiesSandbox
InterchainTokenServiceInterchainTokenFactoryTokenManagerAxelarGateway AxelarGasServiceAxelarExecutableAxelarJS SDK
Onboard your IBC chainBug Bounty
Crosschain Message FlowaxlUSDCSecurity OverviewInterchain Transaction DurationEVM Contract Governance

Create a New Interchain Token

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.

Interchain tokens are ERC-20 tokens that are available on multiple blockchains. They are created using the Interchain Token Service, a smart contract responsible for handling interchain transfers.

You can create a new Interchain Token through the Interchain Portal, or by building a custom ERC-20 token and deploying it to desired chains with a Mint/Burn token manager. These tokens will be accessible on multiple chains, facilitating seamless interaction on each chain by utilizing familiar methods such as send, transfer, and approve — just as with any standard ERC-20 token.

🚨

NOTE: The security of your token is limited to the security of the chains it integrates with. Since blockchains can have different security practices, we recommend doing due diligence on all chains your token will be deployed to.

Contract addresses

Create a new Interchain Token using the Interchain Token Portal

The simplest way to create an Interchain Token is to do so through the Interchain Token Portal on either the testnet or the mainnet.

  1. Connect your wallet.
  2. Select a source network where you have funds available.
  3. Click Deploy a new Interchain Token.
  4. Add your new token’s name, symbol, decimals, and amount to mint. You can also mark the token as mintable, which will allow the token minter to mint new tokens.
  5. Select additional chains for your token’s availability. You can optionally add the token amount to mint on each selected chain.

If your connected wallet has enough funds, your new token will become available on each chain you selected. It will follow the Interchain Token Standard, so users can call the interchainTransfer() method on the token itself to transfer between blockchains.

💡

Make sure you consider all relevant stakeholders before deploying a token through ITS. Creating a simple token using the ITS Portal will give the token the same name and symbol on all chains. If you need your token to have different names or symbols on different chains, you’ll have to build a custom token.

Tutorial

For detailed steps on using the portal to create a new token, check out the How to Create an Interchain Token with Axelar in 4 Steps tutorial.

Create a custom Interchain Token

If you want your token to have more features than the standard Interchain Token, you can create a custom token. These tokens allow you to specify bespoke functionality such as minting policies, ownership structures, and rate limits.

To create a custom Interchain Token:

  1. Build your ERC-20 token and deploy it on multiple chains. You can use a tool such as the Create2 Deployer to give it the same address everywhere.
  2. Call deployTokenManager() to deploy a token manager for your token. You can use the Online Ethereum ABI Encoder to create the params for initializing the token manager. The token manager operator will be of type bytes, and the token address will be an address.
  3. Call transferMintership() on your token to transfer the minter role to the Token Manager. This must be done for all chains that the token is on, using the same deployer address and salt.
  4. Call interchainTransfer() to transfer Interchain Tokens between chains via the Interchain Token Service.
🚨

The key used to deploy custom tokens (deployTokenManager) is critical for security. If that key is compromised, then that token can be compromised across multiple chains.

  • Interchain native tokens can only be deployed to more chains via the same deployer key, so that needs to be retained.
  • Tokens registered on ITS should be careful about giving mint/burn permissions to other contracts. For example, shared mint permission with the Polygon native bridge is not supported (the Polygon native bridge only looks for burns, which ITS uses, meaning it can allow duplicate sends).

Tokens can move between chains seamlessly, as the TokenManager contract will mint and burn tokens as needed. If the minter parameter consists of empty bytes when you deployed your token, deploy a Mint/Burn token manager for existing tokens on all chains. Otherwise, use a Lock/Unlock token manager. Call transferMintership() on the token to change the token minter to another address.

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

Tutorial

For detailed steps on creating a custom Interchain Token, check out the Link Custom Tokens Deployed Across Multiple Chains into Interchain Tokens tutorial.

What’s next

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

  • its-custom-token — Demonstrates how to use the ITS with a custom token implementation.
  • its-interchain-token — Demonstrates how to deploy Interchain Tokens that are connected across EVM chains and how to send some tokens across.
Edit this page