Swap / DEX·EVM · Ethereum · Arbitrum · Base · Optimism · Polygon · BNB Chain · Avalanche · Linea · Scroll · Blast
SushiSwap
Multi-chain DEX deployed on 35+ EVM chains. Combines a v2 AMM and v3 concentrated liquidity with the Route Processor — an in-house aggregator that routes across SushiSwap pools and external liquidity sources. SushiXSwap layers cross-chain swaps on top via Stargate / LayerZero / Axelar.
- 01multi-chain EVM token swaps
- 02v2 + v3 LPing across many chains
- 03aggregated routing via Route Processor
- 04cross-chain swaps via SushiXSwap
- 05long-tail token coverage
- pnpm add sushi @sushiswap/sdk viem
| Variable | Scope | Description |
|---|---|---|
| NEXT_PUBLIC_SUSHI_API_KEY | Client | Optional API key for the hosted Sushi swap API (api.sushi.com). Public endpoints are usable without a key but are rate-limited. |
Use SushiSwap for swaps and LPing across EVM chains. Prefer the hosted swap API (`GET https://api.sushi.com/swap/v5/{chainId}?tokenIn=&tokenOut=&amount=&maxSlippage=&sender=`) which returns calldata, route, and a `tx` object — sign and send `tx` via viem `walletClient.sendTransaction`. The contract path is the `RouteProcessor4` deployment per chain; encode routes with the `sushi` package's `Router.findBestRoute(...)` and `RouteProcessor.encode(...)`. v3 pools follow Uniswap-v3 semantics (`(token0, token1, fee)`, `QuoterV2`) and v2 pools follow UniswapV2; `SushiXSwap2` handles cross-chain via Stargate/LayerZero with a single `swapAndBridge` call.
- ⚑RouteProcessor address differs per chain and per version (v3, v4) — always fetch the current address from the API response or `sushi/config`, never hardcode.
- ⚑The hosted API enforces a `maxSlippage` parameter; passing 0 or omitting it makes the API reject the request — use a sensible default like 0.005 (0.5%).
- ⚑v3 pools have the same fee tiers as Uniswap v3 (100/500/3000/10000) but liquidity depth varies dramatically by chain; on smaller chains, the Route Processor will route through external sources, so quoted price ≠ pure Sushi pool price.
- ⚑Cross-chain swaps via SushiXSwap take minutes (Stargate finality + destination execution) and can fail mid-flight on the destination — the user's funds end up in the bridged stable on the destination chain and require manual recovery.
- ⚑Token-tax / fee-on-transfer tokens require `swapExactTokensForTokensSupportingFeeOnTransferTokens` paths; the default v2 router silently fails on these.
- ⚑The `SUSHI` token bar (xSUSHI) and Onsen farms have been deprecated/restructured multiple times — verify the current incentive program in docs before integrating staking flows.