@zethub/bridge
Reference

Contracts

Circle and USDC contract addresses for every network, on testnet and mainnet.

Every network in the SDK carries the addresses of the contracts it uses. You never enter these yourself. This page lists them so you can verify a transfer, open a contract in an explorer, or audit what the SDK touches.

EVM (mainnet)

Circle deploys the CCTP V2 contracts at the same address on every EVM chain.

ContractAddress
TokenMessengerV20x28b5a0e9C621a5BadaA536219b3a228C8168cf5d
MessageTransmitterV20x81D40F21F12A8F0E3252Bccb954D722d4c464B64

EVM (testnet, on Sepolia and equivalents)

ContractAddress
TokenMessengerV20x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA
MessageTransmitterV20xE737e5cEBEEBa77EFE34D4aa090756590b1CE275

Stellar (mainnet)

Stellar uses three Soroban contracts. Addresses are Contract Ids starting with C.

ContractAddress
TokenMessengerCAE2G5Z77UP7GYPYGFOWFGW7C7J6I4YP2AFGSADRKQY62SYUFLPNFTXL
MessageTransmitterCACMENFFJPJMSDAJQLX4R7K3SFZIW2LJSE3R2UMLGSWHFHS353FVXAZV
CctpForwarderCBZL2IH7F6BIDAA3WBNXYKIXSATJGMSW7K5P5MJ6STX5RXN47TZJDF5T

Stellar (testnet)

ContractAddress
TokenMessengerCDNG7HXAPBWICI2E3AUBP3YZWZELJLYSB6F5CC7WLDTLTHVM74SLRTHP
MessageTransmitterCBJ6MTCKKZG73PMDZCJMSFRD7DQEMI4FKDH7CGDSV4W6FHCRBCQAVVJY
CctpForwarderCA66Q2WFBND6V4UEB7RD4SAXSVIWMD6RA4X3U32ELVFGXV5PJK4T4VSZ

What each contract does

  • TokenMessenger[V2] burns USDC on the source chain and emits the cross chain message.
  • MessageTransmitter[V2] verifies the attestation and mints on the destination chain.
  • CctpForwarder is Stellar only. It mints USDC to itself, then forwards it to the real recipient. See Chains.

Read them in code

Every network exposes its addresses through the Network value.

import { NetworkId, AssetSymbol, ZetHubBridge } from "@zethub/bridge";

const sdk = new ZetHubBridge();
const chains = await sdk.chainDetailsMap();

const base = chains[NetworkId.BASE].network;
base.tokenMessenger;
base.messageTransmitter;
base.token(AssetSymbol.USDC).address;

const stellar = chains[NetworkId.STELLAR].network;
stellar.cctpForwarder;
stellar.token(AssetSymbol.USDC).issuer;

On this page