cross-chain
Cross-Chain on Stellar
Stellar connects to other blockchains over several production rails, each built for a different job. Picking the wrong rail wastes engineering effort; picking the right one is a routing decision, not a research project. This file routes; the deep dives live alongside it — read the file that matches the task:
| You want to | Use | Where |
|---|---|---|
| Move native USDC between Stellar and an EVM chain or Solana (no wrapped assets, no liquidity pools) | Circle CCTP V2 | cctp.md |
| Move native USDT between Stellar and an EVM chain | USDT0, a LayerZero OFT | layerzero.md |
| Have a Stellar contract call a contract on another chain, or receive calls from one (arbitrary payloads) | Axelar GMP or LayerZero OApp | axelar.md, layerzero.md |
| Make a token — new or an existing Stellar asset — exist on multiple chains | Axelar ITS or LayerZero OFT | axelar.md, layerzero.md |
| Swap any asset cross-chain (BTC, ETH, SOL, … → XLM or Stellar USDC) without integrating a bridge yourself | NEAR Intents | below |
Rules of thumb: if the asset is USDC and both ends are CCTP chains, CCTP is the cheapest and most direct (it burns and mints Circle-native USDC — nothing wrapped, nothing pooled). If the asset is USDT, the answer is USDT0 over LayerZero OFT — a different rail, and one whose shape changes per leg: Stellar burns and mints, while the Ethereum leg locks and unlocks canonical USDT through an OFT Adapter, so check the route's OFT mode before you describe the flow. If you need logic, not just value, on the far chain, that is message passing — two rails do it, and the comparison at the end of layerzero.md helps you pick between Axelar's shared validator security and LayerZero's app-configured DVN sets. If you control a token and want it multichain, that is ITS or OFT on the same split. If the user just wants "turn my X on chain A into Y on Stellar" and you don't want bridge plumbing at all, quote it through NEAR Intents.