Intermediate tokens are fallback assets that appear when the requested destination token can’t be delivered as planned. This typically happens on cross chain routes where the bridge moves a token to the destination chain, and a final swap is supposed to convert it into the requested asset. If that destination swap can’t be executed safely (because of the user’s slippage settings or current liquidity), we stop at the bridged token and return a DONE/PARTIAL status instead of forcing a bad trade or letting the transaction fail.
You might encounter an intermediate token in cases such as:
- Destination swap failure or reversion: For example, the price moved outside the allowed slippage range, or there wasn’t enough liquidity for a new or long tail token. In this case, the user receives the bridged asset (for example USDC, axlUSDC) to keep funds safe.
- Liquidity or routing constraints: In some edge cases, the route may exit into a different but closely related token (like another stablecoin or a wrapped gas token) when it offers better liquidity, rather than letting the route fail completely.
In all cases, the user still ends up with value on the destination chain and can complete a follow up swap themselves, often by adjusting slippage or choosing a different route.
How PARTIAL Works in LI.FI
- When you see
status: DONEwithsubstatus: PARTIAL, it indicates that the transfer has been completed from LI.FI’s perspective, but the user did not receive the exact token they originally requested on the destination chain. - In essence, LI.FI compares the expected output with the actual outcome on the destination side. For any route where a value transfer is confirmed, LI.FI performs a check similar to the following:
if isExpectedAsset and ( tool-specific isPartialValue(...) === true OR we saw a LiFiTransferRecovered event ) -> substatus = PARTIAL else if refunded -> substatus = REFUNDED else -> substatus = COMPLETED
Intermediate Tokens by Bridge
| Bridge | When we flag DONE / PARTIAL | Intermediate tokens seen |
|---|---|---|
| Across | No native partials; only LiFiTransferRecovered edge cases. | Cake, DAI, ETH, USDC, USDC.e, USDT, USD₮0, USDT0, USDbC, WBTC, WETH, WLD, sUSD, ZRO, L3 |
| Chainflip | Swap completed but a refund egress also fired (value split). | BTC, ETH, FLIP, USDC |
| Mayan Fast MCTP | Temporary fallback to USDC until the last hop executes. | USDC |
| Mayan MCTP | Same fallback behavior as the fast route. | USDC |
| Relay / RelayDepository | Relay reports a refund and still sends funds elsewhere (cross-chain split). | USDC, ETH, G |
| Squid | Axelar delivers an axl* token mismatching the requested asset. | axlUSDC |
| Stargate v2 | Pool exits with an alternate USD stable or wrapped gas token because of liquidity constraints. | ETH, USDC, USDC.e, USDCe, USDC.n, USDC.e(Stargate), USDT, USDT0, USDt, USDT(Stargate), m.USDT, WETH |
| Symbiosis | Symbiosis indicates a “transit token” still en route. | UETH, USDC, USDC.e, USDbC, WBNB, WETH, ETH, USDT |