Transfer routing
When you calltransfer(), Prudra inspects fromToken, toToken, fromChain (inferred from the wallet), and toChain to select the optimal route. You never specify the route — Prudra picks it.
Routing logic
Route details
Direct (direct)
Used when fromToken === toToken and source/destination chains are the same.
- Executes a standard ERC-20
transfer()call - No intermediary protocol
- Cheapest option — gas only, typically under $0.01 on Base/Optimism
- Confirms in the next block (1–2 seconds on Base)
Swap (lifi-swap)
Used when fromToken !== toToken on the same chain.
- Routes through the Li.Fi aggregator to find the best DEX
- Slippage is managed automatically (0.5% default)
- Protocol fee applies (typically 0.3–0.5% of the swap amount)
- Confirms in the same block as the swap transaction
Bridge (lifi-bridge)
Used when toChain !== fromChain.
- Routes through the Li.Fi bridge aggregator
- Selects the cheapest/fastest bridge automatically
- Status starts as
pending— confirmation takes 1–20 minutes - A
transfer.completedwebhook fires when the destination chain confirms
Route selection summary
| fromToken | toToken | fromChain | toChain | Route |
|---|---|---|---|---|
| USDC | USDC | base | base | direct |
| USDC | USDT | base | base | lifi-swap |
| USDC | USDC | base | polygon | lifi-bridge |
| USDC | USDT | base | polygon | lifi-bridge |
Related
- Send a transfer — full API reference
- Cross-chain transfers — bridge timing and status handling
- Transfer fees — fee structure by route

