Why building custom Zaps is not a good idea

Zaps enable single-click deposits into any DeFi protocol. Use Zaps to grow deposit conversion and TVL.

So your task is to grow deposits and TVL into a web3 protocol. One way to grow TVL is to reduce friction to deposit.

Protocols only accept a specific token as a deposit into their farms or vaults. I.e., the yvCurve-stETH vault on Yearn.Finance only accepts the steCRV token. But many users have more common tokens like USDC or DAI in their wallets. Getting from USDC or DAI into yvCurve-stETH requires multiple transactions across multiple dApps (five transactions across Uniswap, Curve and Yearn). Such friction discourages users from depositing and results in the protocol not getting the user’s deposit.

Zaps are smart contracts that bundle multiple transactions to offer a single-click transaction experience—continuing with the example above, going from USDC to yvCurve-stETH in one transaction.

By implementing Zaps and letting users deposit what they have in their wallet in a single transaction, protocols can increase deposits and TVL by 2x.

To add support for Zaps, should you build custom Zap contracts for your protocol or leverage a 3rd party like Wido, which provides a universal Zap contract that supports Zaps into any protocol?

We’ve put together a set of arguments why building custom Zaps is not a good idea.

Zaps require Solidity and Audits

Custom Zaps

Building custom Zaps require one or more smart contracts to be written, which involves Solidity code and Audits.

Wido Zaps

Wido Zaps come with support for most DeFi protocols. If yours is not supported, the Wido team will take care of it for you.

Coverage, even for future pools, farms or vaults

Your protocol will likely launch new vaults, farms or pools in the future. You will want Zaps for those too.

Custom Zaps

Your custom Zap contract may require updating to support each new vault you add in the future. That will require more Solidity work and audits.

Wido Zaps

By using Wido, you will get Zap support for any amount of vaults you add.

Composability or limited amount of input tokens

Custom Zaps

You need to customise the Zap contract and get another audit if you want support for more input tokens. Custom Zaps commonly accept only a handful of tokens as input since supporting additional tokens takes more development time. Usually, those are USDC, DAI, USDT and ETH. 

Wido Zaps

Wido is building Zaps for every protocol. That’s why the Wido Zap contract works with any token as an input — even tokens that will launch in the future.

Your users have all kinds of tokens. It can be more recent stablecoins, like FRAX or USDP, or niche tokens like `moo Curve aTricrypto 3`.

With Wido Zaps, your users can deposit any token they have in just one click. Wido Zaps will expand your total addressable market to all web3 users, not just the ones holding tokens your contracts accept.

Cost optimisation: Finding the best path

There are usually multiple paths on how to Zap a tokenA for tokenB. It's time-consuming for users to find all paths and determine which is best. As an example, let's look at two paths how to route DAI to yvCurve-stETH vault on Yearn.Finance.

Path 1:

  1. Swap DAI for ETH
  2. Deposit 50% of ETH into Lido, get stETH
  3. Deposit ETH & stETH into the Curve steth liquidity pool, get steCRV
  4. Deposit steCRV into Yearn, get yvCurve-stETH

Path 2:

  1. Swap DAI for stETH (since stETH is a deep liquidity token)
  2. Deposit stETH into the Curve steth liquidity pool, get steCRV
  3. Deposit steCRV into Yearn, get yvCurve-stETH

Note: Those are not the only two paths, there are other alternatives too, but we will stick with two for simplicity.

Custom Zaps

Your custom Zap contract might not be integrated with all DeFi sources to find all the possible paths. And even if it is, the routing algorithm needs to be optimised to find the path that guarantees the best price to the user.

Wido Zaps

Wido Zap infrastructure is connected with all DeFi sources to find all the possible paths. Wido smart routing backend finds the most optimal route and ensures your users always get the best price.


Zaps are complex, and it’s a lot of work to build them right. Instead of building custom Zaps, you can offload the work on the Wido team and focus on your business and users.

By using Wido Zaps, you can be confident that your users can deposit any token they have into any of your vaults, pool or farms, now and in the future, in a single transaction.

On top of the above, Wido Zaps come with two bonus benefits.

Bonus: Quotes and route breakdown

Aside from building support for Zaps into any protocol, the UX is also important. You want your users to understand what is going on.

To show all relevant information to your users, the Wido Javascript SDK provides additional data like token name, token label and token icon, as well as the dollar price for all tokens with which the user interacts.

Wido SDK also generates a route preview so that you can show detailed information about the token journey.

Route preview for depositing DAI into the yvCurve-stETH vault by Yearn.Finance
Route preview for depositing DAI into the yvCurve-stETH vault by Yearn.Finance

Showing the full route preview is especially useful for trust. Your users likely want to double-check the route before zapping in.

To experiment with different route previews, navigate to the Wido Demo App.

Bonus: Multi-chain support and Layer 2s

Wido Zaps work cross-chain and cross Layer 2s. Your users can be on any domain — deposits into your vaults will always only take one transaction.

Closing thoughts

We are building Wido Zaps to improve crypto adoption and help onboard the next wave of web3 users. Zaps are crucial to achieving that, as they let users access any DeFi product in a single transaction.

Zaps help dApps and wallets offer single-click transactions for their users into any web3 protocol and grow conversion rates.

Reach out if you have any questions or feedback about this article. To integrate Wido Zaps, start here.