Skip to main content
This guide covers the technical steps for deploying a MetaToken spoke contract on a supported chain. The MetaToken standard is open and permissionless, allowing anyone to deploy spoke contracts using the proxy pattern for upgradeability. Prerequisites: You must have a MetaToken hub already deployed on your canonical token chain. See the Deploying MetaToken Hub guide first if you haven’t deployed a hub yet. 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 spoke implementation is located at MetaERC20Spoke.sol.

Deployment Architecture

MetaToken spokes 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. MetaERC20Spoke: The implementation contract with token logic
The proxy pattern allows you to upgrade the implementation logic while maintaining the same contract address and token balances.

Configuration Parameters

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

Deployment Steps

1. Deploy the Proxy

Deploy a TransparentUpgradeableProxy contract. The proxy will be the permanent address that users interact with for the token.
You’ll also need a ProxyAdmin contract to manage upgrades:

2. Deploy the Implementation

Deploy the MetaERC20Spoke 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 MetaERC20Spoke implementation and initialize it with the configuration parameters listed above.
The spoke is now deployed and initialized at the proxy address.

4. Configure the Spoke

After deploying your spoke, configure domain mappings to enable cross-chain transfers. Register spoke on hub: Call setDomainAddressBatch on your MetaERC20Hub to register this spoke’s address.
Register hub on spoke: Call setDomainAddressBatch on your spoke to register the hub’s address.
Register other spokes (optional): For direct spoke-to-spoke transfers, register each spoke’s address on every other spoke contract.

5. Test the Deployment

Initiate a small test transfer from hub to spoke:
Monitor the Hyperlane message delivery and verify the spoke mints the correct amount to the recipient.

Next Steps

Self-deploying MetaToken spokes 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

Protocol Overview

Learn about MetaToken architecture