Skip to main content
This guide covers the technical steps for deploying a MetaToken hub contract on your canonical token chain. The hub manages the canonical token supply and coordinates transfers to spoke chains. The MetaToken standard is open and permissionless, allowing anyone to deploy hub contracts using the proxy pattern for upgradeability. Deployment involves multi-chain coordination, domain configuration, and ongoing operational overhead including message monitoring, upgrades, and gas management. We strongly recommend contacting Caldera for end-to-end production deployments. See Next Steps below for more information.

Source Code

All MetaToken contracts are open source and available in the metatoken-contracts repository. The contracts include comprehensive inline documentation. The hub implementation is located at MetaERC20Hub.sol.

Deployment Architecture

MetaToken hubs use the OpenZeppelin TransparentUpgradeableProxy pattern for upgradeability. The deployment consists of:
  1. TransparentUpgradeableProxy: The proxy contract that users interact with
  2. ProxyAdmin: Controls proxy upgrades, owned by your admin address
  3. MetaERC20Hub: The implementation contract with hub logic
The proxy pattern allows you to upgrade the implementation logic while maintaining the same contract address and escrowed token balances.

Configuration Parameters

You will need to provide the following initialization parameters for the MetaERC20Hub contract:

Deployment Steps

1. Deploy the Proxy

Deploy a TransparentUpgradeableProxy contract. The proxy will be the permanent address that manages the canonical token escrow.
You’ll also need a ProxyAdmin contract to manage upgrades:

2. Deploy the Implementation

Deploy the MetaERC20Hub implementation contract.
You will need all dependencies installed:
  • OpenZeppelin Contracts (Upgradeable)
  • Hyperlane Core Contracts

3. Point Proxy to Implementation

Use the ProxyAdmin to upgrade the proxy to point to your MetaERC20Hub implementation and initialize it with the configuration parameters listed above.
The hub is now deployed and initialized at the proxy address.

4. Configure the Hub

After deploying your hub, you’ll need to register spoke contracts as they are deployed. Register spokes on hub: Call setDomainAddressBatch on your MetaERC20Hub to register each spoke’s address.
You can add spokes incrementally as you deploy them to additional chains.

5. Test the Deployment

Approve the hub to spend your canonical tokens, then initiate a small test transfer from hub to a spoke:
Monitor the Hyperlane message delivery and verify the spoke mints the correct amount to the recipient.

Next Steps

After deploying your hub, you’ll need to deploy spoke contracts on each chain where you want your token available. Self-deploying MetaToken hubs involves significant ongoing operational complexity. Caldera’s managed MetaToken deployments provide:
  • Deterministic Addressing: Automated deployment tooling ensures consistent contract addresses across all chains
  • Ongoing Operations: Message monitoring, implementation upgrade coordination across all chains, and 24/7 incident response
  • Gas & State Management: Interchain Gas Paymaster funding, TTL pruning, and storage optimization
  • Production Support: Direct access to Caldera’s infrastructure and protocol teams

Contact Team

Contact for production MetaToken deployments

Deploy Spoke

Deploy spoke contracts on target chains