AggregatorsStale

Fastest EVM swap quote API

Wall clock p50 latency of GET /quote per provider, measured every minute on a 5 pair basket across 4 chains.

TL;DR. As of , KyberSwap posts the lowest quote latency at 237 ms (p50, 24h) on Fastest EVM swap quote API. Source: OpenChainBench, https://openchainbench.com/benchmarks/evm-quote-latency.

EVM swap aggregator APIs all promise sub second quotes. This benchmark measures how often they actually deliver one. The harness rotates a 5 pair basket across Ethereum, Base, Arbitrum and BSC, fires a quote request at every supported provider in parallel every 60 seconds, and records the wall clock round trip. The leaderboard sorts by p50 latency over the last 24 hours, lower is better. A geographic split is also available, with the same probe running independently from us east, eu west and Singapore so a wallet integrator can pick the provider whose edge gateway is closest to their backend.

Methodology

Each provider's public quote endpoint is hit on five fixed pairs (1 ETH to USDT on Ethereum, 1000 USDC to USDT on Ethereum, 0.5 ETH to USDC on Base, 100 USDC to ETH on Arbitrum, 1 BNB to USDT on BSC), rotating one pair per 60 second tick. Per (provider, chain) we land roughly 288 samples in 24 hours, enough to put p90 and p99 buckets on a solid base. Quote quality (output amount, net of gas) is not scored, only latency.

Frequently asked

Which EVM swap quote API has the lowest latency right now?

KyberSwap currently leads at 237 ms (p50 over the last 24 hours) on the active tab, across 6 measured providers. The leaderboard re sorts every minute on fresh Prometheus samples, so the answer reflects measured latency on the live basket, not a marketing claim.

Does this measure quote quality or just speed?

Speed only. Latency is wall clock round trip from request to last byte, recorded only on a successful parseable response. Output amount in USD is not scored on this bench because providers measure it differently (Bebop is net of fees on a gasless RFQ, others are gross), and converting all outputs to a comparable USD value introduces an oracle bias we do not want to bake into a latency leaderboard.

Why are some providers not on every chain?

Each provider declares its supported chain set. The harness skips probes for chains a provider does not claim to cover so the failure counter is not inflated by structural non coverage.

What happens when a provider rate limits the harness?

Each adapter classifies the response. 429 lands on a throttle counter and the success gauge drops to 0. 401 and 403 land on an auth counter. Empty or zero output amounts on a 200 land on a no route counter. None of those failure modes contribute to the latency histogram, so the p50 number stays representative of healthy quotes.

How is the geographic split implemented?

Three identical Railway services run the harness with different MONITOR_REGION env vars (us east, eu west, sgp). Each writes the same metric family with a region label. The bench page filter on region selects which slice of the histogram is queried.

Source code github.com/ChainBench/OpenChainBench/tree/main/harnesses/evm-swap-quoting