1. 세 가지 교환
사용자에게는 교환이 하나의 화면으로 보이지만, 엔진은 요청을 세 가지로 나눠 처리합니다. 같은 체인 스왑은 한 체인 안에서 스테이블코인을 다른 스테이블코인으로 바꾸는 교환입니다. Ethereum에서 USDC를 USDT로 바꾸는 경우처럼, 그 체인의 DEX 풀을 하나 또는 둘 거칩니다. 거래는 한 번의 서명으로 끝나고, 블록에 담기면 바로 완료됩니다. 체인 간 이동은 같은 스테이블코인을 다른 체인으로 옮기는 일입니다. Base의 USDC를 Arbitrum One의 USDC로 옮길 때는 Circle CCTP를, Arbitrum One의 USDT를 Polygon의 USDT로 옮길 때는 USDT0를 씁니다. 교환이 필요 없으므로 비용은 브릿지 수수료와 네트워크 수수료뿐입니다. 체인 간 스왑은 체인과 토큰을 한꺼번에 바꾸는 교환입니다. 엔진은 이것을 최대 세 구간으로 나눕니다. 출발 체인에서 브릿지에 실을 수 있는 토큰으로 바꾸는 출발 스왑, 체인 사이를 건너는 브릿지 구간, 도착 체인에서 목표 토큰으로 바꾸는 도착 스왑입니다. 필요 없는 구간은 건너뜁니다. 견적 API는 후보마다 실행 방식을 「브릿지만(CCTP)」, 「브릿지만(LayerZero)」, 「교환 후 브릿지(CCTP)」처럼 구분해 돌려주고, 도착 스왑이 있으면 그 구간의 예상 결과와 최소 수령량을 따로 적습니다. 사용자는 이 모든 구간을 한 번의 서명으로 시작합니다.2. 유동성 원천
엔진은 체인마다 그 체인에서 가장 깊은 스테이블코인 유동성을 가진 DEX를 씁니다.- Uniswap V3 유동성 공급자가 가격 구간을 정해 유동성을 모으는 집중 유동성 AMM입니다. 같은 토큰 쌍에도 0.01%, 0.05%, 0.30%, 1.00%의 수수료 구간별로 풀이 따로 있습니다.33 엔진은 모든 구간의 풀을 후보로 봅니다.
- Uniswap V4 모든 풀을 하나의 컨트랙트(싱글턴)에서 관리하고, 풀마다 훅(hook)으로 동적 수수료 같은 기능을 붙일 수 있는 구조입니다. 2025년 1월 31일 출시되었습니다.34 같은 쌍에도 설정이 다른 풀이 여럿 있을 수 있어, 엔진은 확인된 풀을 각각 후보로 계산합니다.
- Curve 가격이 거의 같은 자산끼리의 교환에 맞춘 StableSwap 곡선을 씁니다. 큰 금액의 스테이블코인 교환에서 가격 영향이 작습니다. Ti는 Ethereum에서 허용 목록에 올린 Curve 스테이블 풀만 씁니다.
- PancakeSwap V3 · DragonSwap V3 각각 BNB Smart Chain과 Kaia에서 같은 역할을 합니다.
3. 경로 탐색
엔진은 지원하는 모든 (체인, 토큰) 조합을 꼭짓점으로, 그 사이를 잇는 수단을 간선으로 하는 그래프를 다룹니다. 간선은 두 종류입니다. 스왑 간선은 같은 체인 안의 DEX 풀이고, 브릿지 간선은 체인 사이를 건너는 CCTP 또는 USDT0 경로입니다. 경로를 찾는다는 것은 출발 꼭짓점에서 도착 꼭짓점까지 가는 길 가운데 받는 금액이 가장 큰 길을 고르는 일입니다.- 스왑 간선: 같은 체인 안의 DEX 풀
- 브릿지 간선: 체인 사이 이동
- 선택된 경로: 받는 금액이 가장 큰 경로
선택된 경로의 금액: Ti 견적 API 실제 응답(2026-11-02 11:25 UTC), Base USDC 1,000 → Arbitrum One USDT.
그림 14. 엔진은 Base의 USDC에서 Arbitrum One의 USDT까지 가는 후보 경로를 모두 계산하고, 받는 금액이 가장 큰 경로를 고릅니다.
후보는 세 가지 방식으로 만듭니다.단일 풀 후보
다중 홉 후보
체인 간 후보
4. 받는 금액으로 고른다
후보를 줄 세우는 기준은 사용자가 마지막에 받는 가치입니다. 같은 체인에서 같은 토큰으로 받는 후보끼리는 받는 금액을 그대로 비교하면 됩니다. 문제는 비용을 내는 방식이 서로 다른 후보를 비교할 때입니다. 브릿지 수수료가 받는 금액에서 빠지는 후보가 있고, LayerZero 메시지 비용처럼 네이티브 토큰으로 따로 내는 후보도 있습니다. 엔진은 이런 후보를 같은 단위로 맞춰 비교합니다.순가치 = 받는 금액 × 받는 토큰의 달러 시세 − 받는 금액에 반영되지 않은 별도 비용의 달러 환산액2장에서 본 Arbitrum One USDT 1,000개를 Polygon USDT로 옮기는 견적에 이 식을 적용하면 다음과 같습니다. 2026년 11월 2일 견적 시점의 시세는 USDT 0.998996달러, ETH 2,283.02달러였습니다.
순가치 = 받는 금액 × 받는 토큰 시세 − 받는 금액에 반영되지 않은 별도 비용
- ETH로 따로 내는 비용
- 받는 금액에 반영된 비용
출처 · Ti 견적 API, 2026-11-02 20:25 KST 무렵. 시세는 견적 시점의 USDT 0.998996달러, ETH 2,283.02달러(6.4절). CCTP 경로의 브릿지 수수료 상한 0.141255 USDC는 받는 금액에 이미 반영되어 있습니다.
그림 15. 받는 금액에서 빠지는 비용과 따로 내는 비용을 같은 달러 기준으로 맞추면 USDT0 경로가 0.15달러 남짓 더 남기 때문에 엔진은 이 경로를 골랐습니다.
같은 체인 거래의 네트워크 수수료(가스)는 지갑이 서명 직전에 보여 줍니다. 견적 화면은 경로마다 실행에 쓰는 DEX, 브릿지 수수료 또는 경로 세부, 가격 영향, 가스 표시 위치를 함께 보여 줍니다.5. 견적의 수명과 슬리피지
견적은 받는 순간부터 낡기 시작합니다. 다른 사람의 거래가 풀 가격을 움직이기 때문입니다. Ti는 세 가지 장치로 이 간격을 관리합니다. 첫째, 견적을 주기적으로 새로 받습니다. 스왑 화면에 머무는 동안 견적은 약 1분마다 자동으로 갱신됩니다. 서명 직전에 견적이 바뀌었으면 「이 거래쌍의 견적이 바뀌었습니다」라는 안내와 함께 새 견적을 다시 확인하게 합니다. 둘째, 슬리피지 허용치로 최소 수령량을 정합니다. 사용자는 자동 설정을 쓰거나 0.1%, 0.5%, 1.0% 가운데 하나를 고를 수 있고, 0.01%부터 50%까지 직접 입력할 수도 있습니다. 5%를 넘게 설정하면 경고가 나옵니다. 최소 수령량은 예상 수령량에서 허용치를 뺀 값이며, 실행 결과가 그보다 적으면 거래가 실패합니다. 체인 간 거래에서는 구간마다 최소 수령량이 따로 걸립니다. 예를 들어 USDT0 1,000개를 보내는 견적에서는 브릿지 구간 최소 수령량이 990개로, Base의 USDC를 Arbitrum One의 USDT로 바꾸는 견적에서는 도착 스왑 최소 수령량이 예상 수령량의 99%로 정해졌습니다. 셋째, 거래에 기한을 둡니다. 기본 기한은 10분이며 사용자가 1분부터 60분 사이에서 바꿀 수 있습니다. 기한이 지난 거래는 실행되지 않습니다. CCTP 경로에는 브릿지 수수료의 상한(maxFee)도 함께 들어가, Circle이 받는 수수료가 견적보다 커질 수 없습니다.22


지갑을 연결하지 않은 Ti 앱 스왑 화면 · 캡처 2026-11-02
그림 16. 스왑 화면은 찾은 경로 가운데 받는 금액이 가장 큰 경로를 먼저 보여 주고, 경로의 실행 방식과 비용, 슬리피지와 거래 기한을 서명 전에 확인하게 합니다.

