> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tiprotocol.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Cross-chain settlement

> A cross-chain swap is two transactions linked by a bridge. Ti uses only cross-chain standards that the stablecoin's issuer operates or has officially adopted.

A cross-chain swap is two transactions: one that starts on the source chain and one that ends on the destination chain. The structure of the bridge that links them is exactly what the user has to trust, so Ti began by setting a clear standard for choosing bridges. It uses only standards that the stablecoin's issuer operates or has officially adopted.

***

## 1. Two bridges

**Circle CCTP.** The cross-chain transfer protocol operated directly by Circle, the issuer of USDC.<sup>[18](https://docs.tiprotocol.io/appendix/references.md#ref-18)</sup> When USDC is burned on the source chain, Circle's attestation service confirms the burn and issues a signed attestation. When that attestation is submitted on the destination chain, USDC of equal value is newly minted. There is no locked vault in between, no wrapped token and no liquidity pool. What arrives on the destination chain is that chain's official USDC. CCTP V2, the second generation, launched in March 2025 and supports Fast Transfer. Circle issues the attestation without waiting for the chain to reach finality and, in return, charges a fee of 0–13 bps depending on the source chain (Ethereum 1 bp, Base 1.3 bps, Arbitrum 1.4 bps). Fast Transfer usually takes 8 to 20 seconds, while Standard Transfer, which carries no fee, takes 15 to 19 minutes on Ethereum and the major L2s.<sup>[22](https://docs.tiprotocol.io/appendix/references.md#ref-22)</sup> As of November 2025, CCTP had carried more than \$110 billion in cumulative transfers across more than 5.3 million transfers.<sup>[25](https://docs.tiprotocol.io/appendix/references.md#ref-25)</sup>

Ti uses CCTP Fast Transfer. In the [Chapter 5](https://docs.tiprotocol.io/protocol/ti-ai.md) example, the 0.13 USDC charged when sending 1,000 USDC from Base is exactly Circle's published Fast Transfer fee for Base, 1.3 bps. In the [Chapter 2](https://docs.tiprotocol.io/overview/the-problem.md) example, which sent 998.97 USDC from Arbitrum One, the fee cap was set at 0.141 USDC, a small margin above the roughly 0.140 USDC that 1.4 bps gives. The quote deducts this cap from the amount received in advance, and the fee actually taken on the bridge leg never exceeds the cap. Ti adds nothing on top of Circle's fee.

Base USDC 1,000 → Arbitrum One USDC · Circle CCTP Fast TransferOnly the fee comes off on the wayFull scale 0 → 1,000 USDCAt this scale the fee is thinner than a hairlineZoom · the last 0.20 USDC![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/chain-base.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=f357f8113d39377ffa04680c8a4c92db)**Sent****1,000.00** USDC![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/prov-circle.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=a140fc3a5cc278a155e8682cfd54a49b)**Circle Fast Transfer fee**Circle Fast Transfer fee
−0.13 USDC 1.3bp
130,000 maxFee**−0.13** USDC · 1.3bp![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/chain-arbitrum.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=4377b156b2453414f0d271ad7b1eb5b0)**Received****999.87** USDC999.80999.901,000.00**Fast Transfer fee by source chain**on 1,000 USDC sent![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/chain-ethereum.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=184d6655494d80c06580fcae58cb9ae2)EthereumEthereum
1bp Fast Transfer fee by source chain
0.10 USDC on 1,000 USDC sent**1bp**0.10 USDC![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/chain-base.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=f357f8113d39377ffa04680c8a4c92db)BaseBase
1.3bp Fast Transfer fee by source chain
0.13 USDC on 1,000 USDC sent**1.3bp**0.13 USDC![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/chain-arbitrum.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=4377b156b2453414f0d271ad7b1eb5b0)Arbitrum OneArbitrum One
1.4bp Fast Transfer fee by source chain
0.14 USDC on 1,000 USDC sent**1.4bp**0.14 USDCSource · Ti quote API, 2026-11-02, about 11:25 UTC (maxFee 130,000 = 0.13 USDC). Fees by chain: Circle's published Fast Transfer fees (Section 7.1).View figure full size

**Figure 17.** Of 1,000 USDC sent from Base, only Circle's Fast Transfer fee of 0.13 USDC (1.3 bps) comes off, and 999.87 USDC arrives on Arbitrum One.

**USDT0.** The cross-chain version of USDT adopted by Tether, built on LayerZero's OFT (Omnichain Fungible Token) standard.<sup>[19](https://docs.tiprotocol.io/appendix/references.md#ref-19)</sup> On Ethereum, the original USDT is locked in an adapter contract and the same amount of USDT0 is minted on other chains. Between chains that have USDT0, tokens are burned on one side and minted on the other. A message between chains passes only when all three independent verifiers (DVNs) confirm it. USDT0 launched in January 2025. Its supply is \$3.2 billion, and its cumulative transfers since launch exceed \$117 billion. USDT on Arbitrum One and Polygon has already been converted to USDT0, so USDT on these chains moves as it is, without a wrapped token. USDT0 routes carry no token fee. Instead, the LayerZero messaging fee is paid in the source chain's native token (for example, ETH). In the [Chapter 2](https://docs.tiprotocol.io/overview/the-problem.md) example, this fee came to about \$0.026.

The two bridges verify in different ways. With CCTP, Circle, the issuer of USDC, provides the attestation itself. Holding USDC already means trusting Circle, so the bridge adds no new party to trust. USDT0 requires all three verifiers to sign, in contrast to the April 2026 case ([Chapter 2](https://docs.tiprotocol.io/overview/the-problem.md)) in which a setup with a single verifier was breached by a forged message.

***

## 2. Cross-chain router and destination receiver

Two execution contracts handle Ti's cross-chain swaps: the **cross-chain router** on the source chain and the **destination receiver** on the destination chain.

Source chain![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/chain-ethereum.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=184d6655494d80c06580fcae58cb9ae2)![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/chain-arbitrum.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=4377b156b2453414f0d271ad7b1eb5b0)![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/chain-base.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=f357f8113d39377ffa04680c8a4c92db)![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/chain-polygon.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=bf063a32b1ab85f85d42f8cbfcbac3b5)User walletSigns**Cross-chain router**<ol><li>1Source swap (if needed)</li><li>2Bridge send (minimum set)</li></ol>Bridge · one of the two![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/usdc.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=fd231eae4271354a1f32693acb22477b)![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/prov-circle.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=a140fc3a5cc278a155e8682cfd54a49b)**Circle CCTP**USDCBurnCircle attestationMintor  ![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/usdt.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=f80699292d59b1ca38dd1a2130b2338d)**LayerZero OFT**USDT0Burn/lockDVN verificationMint + messageDestination chain![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/chain-ethereum.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=184d6655494d80c06580fcae58cb9ae2)![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/chain-arbitrum.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=4377b156b2453414f0d271ad7b1eb5b0)![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/chain-base.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=f357f8113d39377ffa04680c8a4c92db)![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/chain-polygon.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=bf063a32b1ab85f85d42f8cbfcbac3b5)**Destination receiver**<ol><li>3Destination swap (minimum checked)</li><li>4Delivered to the user's wallet</li></ol>User walletView figure full size

**Figure 18.** A cross-chain swap starts at the router on the source chain, crosses CCTP or USDT0, and ends at the receiver on the destination chain.

A transaction the user signs goes to the cross-chain router on the source chain. If needed, the router first runs the source swap to convert the token into USDC or USDT, then hands the result to the bridge. On a CCTP route, the router burns the USDC and designates Ti's destination receiver both as the mint recipient on the destination chain and as the caller allowed to complete that mint, and it also records the fee cap. On a USDT0 route, it designates the destination receiver as the recipient and puts into the message the minimum received for the bridge leg and the instructions to run on the destination chain (the destination-swap conditions).

The destination receiver takes the USDC or USDT that arrives through the bridge. If a destination swap is needed, it converts the tokens to the target token on condition that the swap meets the minimum received set at signing. It then sends the result to the user's wallet. Because only Ti's destination receiver is designated to complete receipt on the destination chain, no one else can intercept the message midway and process it some other way.

The CCTP burn names Ti's destination receiver as both mint recipient and caller, so no one else can complete receipt on the destination chain.![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/chain-base.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=f357f8113d39377ffa04680c8a4c92db)**Base** source*→*![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/chain-arbitrum.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=4377b156b2453414f0d271ad7b1eb5b0)**Arbitrum One** destination<ol><li>1User walletCross-chain router**Signed transaction**1,000.00 USDC</li><li>2Cross-chain routerCircle**Burn USDC**maxFee 0.13 USDC · destinationCaller = receiver</li><li>3CircleCircle**Burn observed**</li><li>4CircleDestination receiver**Signed attestation**</li><li>5Destination receiverCircle**Submit attestation**only the designated caller</li><li>6CircleDestination receiver**Mint USDC**999.87 USDC · fee within the 0.13 cap</li><li>7Destination receiver**Destination swap**minimum received 990.87 USDT checked</li><li>8Destination receiverUser wallet**Deliver USDT**expected 1,000.88 USDT</li></ol>Amounts: a real Ti quote API response (2026-11-02 11:25 UTC), 1,000 USDC on Base → USDT on Arbitrum One. The fee is a cap; the fee actually taken never exceeds it.View figure full size

**Figure 19.** The CCTP burn names Ti's destination receiver as both mint recipient and caller, so no one else can complete receipt on the destination chain.

***

## 3. Tracking progress

A cross-chain swap passes through several stages before it completes. Using the transaction hash, the Ti explorer records whether the swap has been confirmed on the source chain, whether the bridge leg is in progress, and whether the funds have arrived on the destination chain. Users can ask Ti AI “Where is this transaction now?” and get the same information as a card. The card shows the progress stage, the destination chain, the amount received and the time taken from creation to completion. CCTP transfers can be cross-checked against Circle's public records, and USDT0 transfers on LayerZero Scan.

***

## 4. Cross-chain safeguards

A cross-chain swap has more steps than a same-chain swap, so Ti adds a dedicated safeguard at each step to keep it within the conditions the user signed.

| Safeguard | What it prevents |
| - | - |
| Bridge fee cap (CCTP maxFee) | The fee rising after the quote and reducing the amount received |
| Bridge-leg minimum received (OFT minAmountLD) | Less than the required minimum arriving through the bridge leg |
| Destination-swap minimum received | A swap at an unfavorable price on the destination chain |
| Designated mint recipient and caller | Someone else intercepting and processing receipt on the destination chain |
| Transaction deadline | Late execution on a stale quote |

<ol><li>Source chainCross-chain router1**Transaction deadline**`deadline`*Prevents*Late execution on a stale quote</li><li>Bridge · one of the two![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/prov-circle.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=a140fc3a5cc278a155e8682cfd54a49b)CCTP2**Bridge fee cap**`CCTP maxFee`e.g. 0.13 USDC on 1,000 USDC from Base*Prevents*The fee rising after the quote and cutting the amount received</li><li>or![](https://mintcdn.com/ti-protocol/nfbzCVnO_pXa92Aq/images/src/icons/usdt.svg?fit=max\&auto=format\&n=nfbzCVnO_pXa92Aq\&q=85\&s=f80699292d59b1ca38dd1a2130b2338d)USDT03**Bridge-leg minimum**`OFT minAmountLD`e.g. 990 on 1,000 USDT0*Prevents*Less than the minimum arriving through the bridge leg</li><li>Destination chainDestination receiver4**Designated recipient and caller**`destinationCaller`only the receiver can complete the mint*Prevents*Someone else intercepting receipt on the destination chain</li><li>Destination swap5**Destination-swap minimum**`minAmountOut`e.g. 99% of expected, 990.87 USDT*Prevents*A swap at an unfavorable price on the destination chain</li></ol>View figure full size

**Figure 20.** On a cross-chain swap, each leg has its own check that keeps execution within the terms the user signed.

***

## 5. Cross-chain routes open today

| Bridge | Token | Connected chains | Cost | Time |
| - | - | - | - | - |
| Circle CCTP (Fast Transfer) | USDC | Ethereum, Arbitrum One, Base, Polygon | 0–13 bps depending on the source chain, reflected in the amount received | Usually 8–20 seconds |
| USDT0 (LayerZero OFT) | USDT | Ethereum, Arbitrum One, Polygon | Messaging fee in the source chain's native token | Arrives once the LayerZero message is finalized |

Combining these two bridges with source and destination swaps opens cross-chain swaps between stablecoins on four chains: Ethereum, Arbitrum One, Base and Polygon. On BNB Smart Chain and Kaia, Ti currently offers same-chain swaps; cross-chain routes for these two chains open in Phase 2 of the roadmap ([Chapter 16](https://docs.tiprotocol.io/roadmap-and-risks/roadmap.md)). Any new bridge must meet the same standard. It must be a standard that the issuer operates or has officially adopted, and its verification structure must be open to public disclosure.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.