Pivot alert: Wido has become Walnut. This docs as well as the Wido Zap API will be discontinued. Read full announcement.

Wido is a set of smart contracts and APIs that enable swaps between any token, focused on non-liquid tokens like farms, vaults or pools. You can use Wido to deposit any token into Uniswap pools, move liquidity from Uniswap to Curve, and move positions from Balancer to Yearn.Finance and many more, all in a single transaction.

Wido Router is the smart contract you send orders to, the entrypoint to any-to-any swaps.

Wido Router relies on the off-chain Wido backend to find the optimal path with the best conversion rate in and across chains. Wido backend is not just querying DEXs and Bridges but also constructs routes involving direct mints, deposits, and withdrawals through various protocols.

Core Concepts

A Wido Route consists of Steps that encode token travel across contracts, protocols, and chains. Below we explain what Steps and Routes are.


A Step defines a direct way from token A to token B. No intermediate tokens are involved when going from token A to token B.


  1. Depositing ETH into Lido is a Step. It enables direct conversion from ETH -> stETH.

  2. Swapping with Uniswap ETH/stETH pool is a step. It enables direct conversion from ETH -> stETH.

  3. Wrapping ETH to WETH, then swapping with Uniswap WETH/stETH pool is not a step. It involves WETH as an intermediate token.


A route is a series of Steps in a specific order to go from token A to token B.

Wido aims to have the largest repository of Steps, so it can exhaustively search through all possible Routes from token A to token B and find the most efficient route with the least slippage.

Next, we will look into how Wido Router is equipped with the capabilities to execute any arbitrary route.

Last updated