Announcing a new version of 0x Swap API’s swap endpoint, the best DEX aggregator.
October 1, 2020
News

In January 2020 we launched v0 of 0x Swap API, a public tool designed to make it simple for DeFi developers to tap into all DEX liquidity in a fast and reliable way. Since launch, Swap API has processed over 29K trades that in total represent ~$550 million in trading volume.

The version 0 release represented a solid starting point, but it was clear that there was still plenty of room for improving and pushing the DEX aggregation space forward. So, we spent the last eight months gathering feedback and iterating, and today we are proud to launch a revamped Swap API v1: the highest-performing, professional-grade DEX aggregator in the industry. For 7 out of 10 trades, users get a better adjusted price through Swap API than through 1inch, DexAg, Paraswap and Uniswap.

With a simple http request, developers can fetch the best available price across 13 liquidity sources — including exclusive 0x liquidity from professional liquidity providers and proprietary AMMs, as well as 0x Mesh, Uniswap, Oasis, Kyber, Curve, Balancer, Bancor, mStable, Mooniswap, Sushiswap and Swerve. In addition to fetching prices from these liquidity sources, under the hood the /swap/quote endpoint leverages smart order routing algorithms to split orders across sources to reduce slippage and achieve the best price for a given trade.
We built Swap API v1 with one goal in mind: offering the best prices after accounting for transaction costs.
These days it is not uncommon to see screenshots comparing quotes between DEX aggregators for a given trade on Twitter. The problem with this is that comparing aggregators on quoted prices is a bad business for users as often the best quoted price does not result in the best deal once transaction costs are paid. We believe that using adjusted price is a more objective metric and a better way to measure performance between aggregators as it is what the user ultimately gets in their wallet. Wait, but why?
Adjusted price is what a user receives after a transaction is completed on-chain and transaction costs (gas and fees) are paid. It can be calculated using the following formula:
adjusted_price = sold_amount_usd / ( bought_amount_usd — transaction_costs_usd )
Let’s use an example to illustrate this:
A user wants to trade 100 DAI for USDC. Aggregator #1 quotes 100 USDC with a transaction cost of $5. Using the formula above, we can determine that adjusted price = 100 / ( 100–5 ) = $1.05.
The same user checks out a second aggregator. Aggregator #2 quotes 104 USDC for the same 100 DAI, but with a transaction cost of $10. In this case, adjusted price = 100 / (104–10) = $1.06.
In this example, Aggregator 1 wins as it ultimately finds a cheaper rate for the user to convert 100 DAI to 100 USDC. While aggregator #2 initially quoted a better rate and bought more tokens, you can observe how the transaction cost impacted the adjusted price. In conclusion, spending an additional $5 to only receive an additional 4 USDC resulted in a more expensive deal for the user.
The majority of existing aggregators seem to optimize to win quoted prices and attract users, but we often see them failing at delivering the best adjusted price. By optimizing for adjusted prices and accounting for gas costs in Swap API smart order routing, 0x API offers the best adjusted prices 7 out of 10 times.

Reducing gas usage has been a focus for our team for the past eight months. Our initial target was to cut down transaction costs by 50%, however, in Swap API v1 we achieved to cut down transaction costs, on average, by ~76% vs v0. Gas usage is currently around 460K gwei for a $50K trade, down from 1.5M gwei for the same trade in v0. These optimizations have turned Swap API into the most efficient aggregator across all trade sizes.
While, on average, Swap API uses more gas than Uniswap, Swap API offers better adjusted prices than Uniswap 7 out of 10 times. How is this possible? At 0x Labs we built a super optimized contract that allows Swap API to source liquidity that is 100% routed through Uniswap in a more gas efficient way than the default Uniswap contracts. This is particularly beneficial for smaller trades (<$5K), which are typically routed to a single source.
To exemplify this, let’s take a look at the following two transactions:

The first transaction (left) shows an ETH<>UNI trade made by going directly to Uniswap. The second transaction (right) shows an equivalent ETH<>UNI trade being 100% routed to Uniswap via Swap API. As shown in the “gas used by transaction” field, the Uniswap transaction cost ~114K gas and the Swap API transaction cost ~110K gas, that is 3.7% cheaper. Certain on-chain state and conditions can change the results (for example, if the user needs to set new allowances), but in general, using Swap API to trade on Uniswap is now as cheap and often cheaper than going to Uniswap directly.
Contents
Subscribe to newsletter