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 Token Service

Web3 has gone cross-chain, with assets bridging between blockchains and developers deploying applications on multiple chains. However, connecting tokens that are deployed on multiple chains has always been a cumbersome process.

Interchain Tokens go beyond legacy bridges. The Interchain Token Service (ITS) allows ERC-20 tokens to be available on multiple blockchains. It preserves native token qualities while allowing you to easily manage token features and token supply. Interchain Tokens run on open-source code via smart contracts on a public blockchain secured by a dynamic validator set. With ITS, you can have multiple blockchains with canonical versions of your token that all share a single EVM address.

You can either create new Interchain Tokens from scratch or update tokens that already exist on a supported blockchain.

Interchain Token Service: 0xB5FB4BE02232B1bBA4dC8f81dc24C26980dE9e3C
Interchain Token Factory: 0x83a93500d23Fbc3e82B410aD07A6a9F7A0670D66

The edge contract deployed on external blockchains. This contract is responsible for facilitating interchain token transfers. It (mostly) does not handle tokens, but is responsible for the messaging that needs to occur for interchain transfers to happen. There are different variations depending on which blockchain is deployed on.

An additional contract deployed on each chain connected to ITS. This contract interact with the main Interchain Token Service contract. It is responsible for deploying new interchain tokens and managing their token managers.

ITS hub is a central routing contract on the Axelar network itself that coordinates token operations across chains. The hub allows for a simpler centralized state for interlinked tokens compared to purely pairwise connections between ITS edged contracts. Further reading can be done here

A no-code portal to be able to quick deploy new tokens and register existing tokens to ITS

A separate contract used by ITS to interact with tokens it is moving between chains. This will be the contract that is actually existing your token’s mint, burn functions.

A contract that facilitates integration between your token and ITS. Each token integration on a given chain will have its own unique token manager. It is responsible for managing tokens, such as setting locking token balances, or setting flow limits, for interchain transfers. Further reading can be done here

An interchainTokenId is how ITS uniquely registers a given token integration between chains. The id must match across all chains so that when a token is moved out of one chain it is moved into the token with corresponding interchainTokenId on the destination chain. This id is calculated by running keccak256(abi.encode(PREFIX_INTERCHAIN_TOKEN_ID, sender, salt)). The unique sender address combined with salt ensures that the id is deterministic and collision resistant.

A token deployed by ITS itself. Whereas a custom token deployed by an individual developer that gets integrated to ITS, an interchain token is pre-written contract that ITS deploys. This is the token that is deployed by the ITS portal.

Edit on GitHub