# ITS Hub (https://docs.axelar.dev/its/how-it-works/its-hub)



The ITS Hub is a CosmWasm [contract](https://github.com/axelarnetwork/axelar-amplifier/tree/main/contracts/interchain-token-service) on the Axelar network. ITS on each chain doesn't send messages to ITS on other chains directly: every transfer, token deployment and token link goes through the hub, as two [GMP](https://docs.axelar.dev/llms.mdx/gmp/overview/content.md) messages.

<object type="image/svg+xml" data="/images/its-hub/its-hub-routing-dark.svg" className="hidden dark:block w-full max-w-[60rem] mx-auto py-6" />

<object type="image/svg+xml" data="/images/its-hub/its-hub-routing-light.svg" className=" dark:hidden w-full max-w-[60rem] mx-auto py-6" />

1. ITS on the source chain sends a message to the hub, with the destination chain and the ITS message inside (message type `SEND_TO_HUB`, `3`).
2. The hub checks the message, updates its records and sends it to ITS on the destination chain, with the source chain and the ITS message inside (`RECEIVE_FROM_HUB`, `4`).

On Axelarscan, a transfer therefore shows as two messages: one to the chain `axelar`, and one from it. The hub's address is `axelar1aqcj54lzz0rk22gvqgcn8fr5tx4rzwdv5wv5j9dmnacgefvd7wzsy2j2mr` on mainnet and testnet.

## What the hub does [#what-the-hub-does]

* **Accepts only registered chains.** Each chain's ITS contract is registered with the hub through Axelar governance. Messages from or to other addresses are rejected.
* **Tracks supply.** For tokens that only ITS can mint (no custom minter), the hub records how much of the token has been sent to each chain, and rejects transfers back from a chain of more than that amount. A compromised chain can't send back more than it received.
* **Converts amounts between chains.** Chains differ in how large an integer a token amount can be. When a token is deployed to a chain with a smaller maximum, the hub reduces its decimals there, and scales the amounts of transfers between chains accordingly.
* **Translates messages.** Each chain has a translator contract that converts its ITS messages to and from the hub's format: an ABI translator for most chains, and one for Solana's encoding.
* **Can be paused.** Axelar can freeze a chain in the hub, or stop all execution, in an emergency.

Flow limits aren't in the hub: each token's [token manager](https://docs.axelar.dev/llms.mdx/its/how-it-works/concepts/content.md#token-managers) enforces them on its chain. See [Flow limits](https://docs.axelar.dev/llms.mdx/its/how-it-works/flow-limits/content.md).


---

All pages of these docs, as Markdown: https://docs.axelar.dev/llms.txt