Integrations
Torque composes bridges, wallet infrastructure, & institutional-grade liquidity & lending partners so trading, transfers, lending, borrowing, & checkout feel cohesive instead of hand-wired. Use this hub to understand which partner powers each user-visible flow & where to dive deeper into implementation specifics.
Overview
Torque integrates with multiple protocols & services to power full wallet capabilities—trading, movement of funds, credit, & business checkout—from one product surface:
Same-chain trading
Trade routing & aggregation across liquidity venues
Cross-chain bridge
Bridge aggregation for transfers across chains
Lending & borrowing
Supply assets to earn yield or borrow against collateral
Wallet
Torque Wallet (smart account)
How Chains, Assets & Protocols Compose
Torque tracks chains, assets & protocols as three independent catalogs & composes them at runtime. You can express an intent like trade USD for ETH without naming a specific stablecoin, chain, or venue — Torque picks them based on your balances, fees & protocol coverage.
Chains
Every supported network with its chain ID & native asset. EVM chains plus Solana & Bitcoin.
View supported chains →Assets
Every supported asset with its symbol, decimals & the contract address on each network it lives on. One symbol can map to many per-chain deployments.
View supported assets →Protocols
Bridges, trading venues & lending markets, each tagged with what they do (lend, swap) & which chains they run on.
Money buckets on top of assets
Portfolio & trade surfaces show USD, EUR & GOLD rows that combine every matching stable / position underneath. The underlying assets are still there for drill-down & for routing — you just don't have to think about which one to use.
Intent → execution
When you confirm an action, Torque picks the chain & the specific contract for each side of the trade from your balances, then runs the step through whichever protocol gives the best execution — aggregator route for swaps / bridges / lending, perps for derivatives, or a plain transfer when no protocol is needed.
Cross-chain bridge
Torque aggregates bridges & selects the best route for each cross-chain transfer based on speed, cost, & security.
View transfer documentation →Stargate
Type: Liquidity Network Bridge
Features:
- Fast transfers
- Low fees
- Native asset support
- Unified liquidity pools
Best For: USDC, USDT transfers, fast transfers, high liquidity routes
Hop Protocol
Type: Optimistic Bridge
Features:
- Fast transfers
- Low fees
- Multiple asset support
- Optimistic rollup technology
Best For: ETH transfers, fast withdrawals, Layer 2 transfers
Across
Type: Capital Efficient Bridge
Features:
- Capital efficiency
- Fast transfers
- Low fees
- Single transaction
Best For: Large transfers, cost-sensitive transfers, Ethereum ↔ Layer 2
Socket
Type: Multi-Bridge Aggregator
Features:
- Multi-bridge routing
- Optimal path finding
- Gas optimization
- Multiple asset support
Best For: Complex routes, multi-hop transfers, optimal routing
Additional Bridges
Additional bridges: Celer, Multichain, Synapse, Wormhole, LayerZero, & more.
Bridge Selection
Torque automatically selects the best bridge based on speed, cost, security, liquidity, & asset support.
import { createConfig, EVM } from '@lifi/sdk'
const config = createConfig({
integrator: 'Torque',
apiKey: process.env.NEXT_PUBLIC_LIFI_API_KEY,
providers: [
EVM({
getWalletClient: async () => {
// Get wallet client from Wagmi
},
switchChain: async (chainId) => {
// Switch chain in wallet
}
})
],
preloadChains: true
})Wallet Integration
Torque supports a single connection path: Continue with Email, which creates a Torque Wallet (smart account). External (EOA) wallets are not supported.
View Wallet & Chains →Torque Wallet (smart account)
Continue with Email
Email OTP → smart account. Gasless where implemented via Torque's sponsorship policy.
Same-chain trading
Torque aggregates liquidity from multiple connected venues to find the best prices for same-chain trades.
View trade documentation →Connected liquidity sources
Uniswap V2/V3, Curve, Balancer, 1inch, 0x, KyberSwap, & more...
Features
- Multi-venue routing: Finds best route across connected sources
- Price Optimization: Best execution price
- MEV Protection: Protection against front-running
- Gas Optimization: Optimized transaction paths
Trade API
// Get trade routes
const route = await getTradeRoute({
fromAddress: '0x...',
chainId: 1,
tokenIn: ['0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'], // USDC
tokenOut: ['0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'], // WETH
amountIn: ['1000000000'], // 1000 USDC (6 decimals)
slippage: 50, // 0.5% in basis points
routingStrategy: 'delegate'
})
// Execute route
const txHash = await executeTrade({
route,
walletClient
})Lending & borrowing
Torque lets users supply assets to earn yield or borrow against collateral across supported markets.
View lend documentation →Supported Markets
- Ethereum Mainnet
- Base
- Arbitrum
- Polygon
- Optimism
Supported Assets
- USDC, USDT, DAI (Stablecoins)
- ETH, WETH (Native assets)
- WBTC (Bitcoin)
- & more...
Features
- Lending: Supply assets to earn yield
- Borrowing: Borrow against collateral
- Health Factor: Monitor liquidation risk
- Interest Rates: Variable rates based on utilization
Fee Distributor Integration
The Fee Distributor contract enables tier-based fee cashback distribution. Users receive ETH cashback based on their tier when fees are collected.
Tier System
Fee Distributor API
import FeeDistributorABI from '@/lib/contracts/abis/FeeDistributor.json'
// Claim cashback
await writeContract({
address: FEE_DISTRIBUTOR_ADDRESS,
abi: FeeDistributorABI,
functionName: 'distributePendingCashback',
args: [address]
})
// Get pending cashback
const cashback = await query(api.fee_analytics.getUserFeeCashback, {
walletAddress: address
})
const pendingCashback = cashback.pendingCashbackAdditional Protocols
Lending Protocols
Torque supports multiple lending markets:
- Primary lending markets
- Morpho: Capital-efficient lending
- Compound V3: Lending markets
- Silo: Isolated lending pools
- Spark: Aave fork
Examples
Complete Bridge Transfer
import { getRoutes, executeRoute } from '@lifi/sdk'
// 1. Get bridge route
const routes = await getRoutes({
fromChainId: 1, // Ethereum
toChainId: 8453, // Base
fromTokenAddress: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC
toTokenAddress: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC on Base
fromAmount: '1000000000', // 1000 USDC
fromAddress: address,
options: {
slippage: 0.005,
order: 'CHEAPEST'
}
})
// 2. Select best route
const bestRoute = routes.routes[0]
// 3. Execute bridge
const result = await executeRoute({
route: bestRoute,
signer: walletClient,
updateRouteHook: (updatedRoute) => {
console.log('Route updated:', updatedRoute)
}
})Complete trade flow
// 1. Get trade route
const route = await getTradeRoute({
fromAddress: address,
chainId: 1,
tokenIn: [usdcAddress],
tokenOut: [wethAddress],
amountIn: [parseUnits('1000', 6).toString()],
slippage: 50,
routingStrategy: 'delegate'
})
// 2. Check approval
const approval = await getTradeApproval({
fromAddress: address,
tokenAddress: usdcAddress,
chainId: 1,
amount: parseUnits('1000', 6).toString()
})
// 3. Approve if needed
if (approval.approvalNeeded) {
await sendTransaction(approval.approvalData)
}
// 4. Execute trade
const txHash = await executeTrade({
route: route.bestRoute,
walletClient
})Integration Best Practices
Bridge Selection
- Let Torque choose: Don't manually select bridges
- Check routes: Verify route before executing
- Monitor status: Track bridge transaction status
- Handle errors: Implement error handling for failed bridges
Wallet Integration
- Support multiple wallets: Don't limit to one wallet
- Handle disconnections: Gracefully handle wallet disconnects
- Network switching: Support network switching
- Error handling: Handle wallet errors gracefully
Protocol Integration
- Rate limiting: Respect API rate limits
- Error handling: Implement comprehensive error handling
- Retry logic: Implement retry for failed requests
- Caching: Cache protocol data when appropriate