Execution Benchmarks

Get Protocol Slippage Scores

Public API: Returns a ranked list of protocols by Slippage Score.

The Slippage Score (0-100) is derived from each protocol's median realized slippage versus a minute-level off-chain reference price (100 - slippage_bps, clipped), so a higher score means lower slippage. The reference price is Dune prices.usd, which Dune documents as a view of its Coinpaprika feed of exchange-aggregate market data at 5-minute intervals, interpolated to the minute. It is not a VWAP and it is not an on-chain price.

Scores are available per chain. Pass ?chain=arbitrum (or base, optimism, ethereum) for a single-chain ranking, or omit it for the blended cross-chain rollup (chain=all). Per-chain scores differ from the blend — a protocol's execution quality is not uniform across chains.

This is a slippage-only metric. MEV (sandwich) exposure and transaction revert rates are tracked as separate metrics — they are NOT folded into this score. Use median_abs_gap_bps for the raw underlying figure. (avg_slippage_bps is the same number under a deprecated name that wrongly says "average"; it is served until 2027-03-31.)

Absence is a statement. A protocol missing from this list either sits under the 1,000-transaction floor, or was withdrawn because its measurement is not an execution cost. Withdrawals are per chain, so a venue can be published on one chain and withdrawn on another. Withdrawn on 2026-09-09:

  • swaap (every chain) — in 40 of 40 sampled transactions no party to the trade held any of the traded tokens. An arbitrage population with no trader in it; the figure was the distance between a bot's fill price and the oracle.
  • 1inch-LOP (every chain) — 38% of fills are one market maker at a flat −8.41 bps, whose maker-side edge ABS() folded in as if it were taker cost. That flattered the venue: 13.27 bps as published, 29.73 over the population that is left. A blend of the two is not a taker cost.
  • dodo on arbitrum and in the cross-chain all blend — 45.8% of the arbitrum cell is a staking vault rebalancing itself. dodo on ethereum is unaffected and still published; the all row goes only because a median over pooled fills cannot have one chain subtracted from it.
get/api/v1/protocols

Request

  • Base URL: https://cleartracedata.com (the document declares no server; this is the origin it was published from)
  • URL: https://cleartracedata.com/api/v1/protocols
  • Auth: none declared

Query parameters

chain'all' | 'ethereum' | 'base' | 'arbitrum' | 'optimism'

Chain scope: 'all' (blended cross-chain rollup, the default) or a single chain.

limitinteger

The maximum number of top protocols to return.

offsetinteger

Pagination offset.

Response

A ranked array of protocols and their slippage-based execution scores.

totalinteger required

Total number of protocols available.

chainstring

The chain scope of these scores: 'all' is the blended cross-chain rollup; otherwise a single chain (ethereum, base, arbitrum, optimism).

limitinteger required

The maximum number of protocols returned.

offsetinteger required

The offset used for pagination.

Example response

{
  "protocols": [
    {
      "name": "Uniswap Universal Router",
      "category": "Aggregator",
      "median_abs_gap_bps": 7,
      "avg_slippage_bps": 7,
      "slippage_score": 93,
      "total_trades_analyzed": 18988,
      "signed_median_bps": 6.4,
      "dispersion_ratio": 1.08,
      "slippage_direction": "cost",
      "signed_median_measured": true,
      "pct_positive": 64.1
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.