Market context
Public methodology · Audit the score

How the Routescore is produced.

Schema carries a published version hash. Weights are published. The methodology and detector manifest are published so the score is auditable on any confirmed block. If the score we show you is wrong, the methodology is the place to disagree with it.

v2026.06.13
01 · Scope

What Routescore measures

In scope

Routescore is a pre-trade scoring layer. For every candidate swap route, it produces a single 0–100 score and a per-component breakdown. The components are: expected MEV exposure (sandwich + frontrun), slippage vs the mid quote, gas efficiency vs the cheapest available route, liquidity depth at the prevailing mid, and the post-tax effective price (gas + tax drag included).

Explicitly out of scope
  • Custody. We never sign, broadcast, or hold user funds. The score is decision support, not execution.
  • Oracle, bridge, and contract risk are surfaced as separate signals — they do not roll into the Routescore number, because mixing rugability into a price-execution score makes both worse.
  • Yield / APR / TVL forecasting. Routescore is a swap-route score, not a yield score.
02 · Inputs

Where the numbers come from

DEX aggregator quotes
1inch · 0x · CoW
Per-route quote step, polled at score time. Quotes are cached up to 15s; each response reports the served quote's age and marks it stale past the window.
Live block data
Etherscan v2 proxy
Uniswap V2 + V3 Swap events from confirmed blocks (FINALITY_DEPTH = 64).
Pricing
chainlink-twap-30m
30-minute TWAP used to convert victim-loss bps → USD.
03 · Formula

The scoring formula

Each component is independently normalised to 0–100 against the same trade evaluated across all candidate routes, then combined with the published weights. The sign convention is explicit: higher Routescore = better route. The two risk penalties (MEV risk, slippage) are subtracted; the two quality / efficiency terms (gas efficiency, liquidity depth) are added. See the glossary below for which term is which.

# Higher Routescore = better route.
# RISK penalties are SUBTRACTED; QUALITY / EFFICIENCY terms are ADDED.

Routescore = 100
           - w1 · MevRiskPenalty        # RISK  (subtracted)
           - w2 · SlippagePenalty       # RISK  (subtracted)
           + w3 · GasEfficiency         # QUALITY/EFFICIENCY (added)
           + w4 · LiquidityDepth        # QUALITY/EFFICIENCY (added)

# Component definitions (each normalised to 0..100 over candidate routes)
# RISK terms — higher = worse, enter the formula with a MINUS sign:
MevRiskPenalty = sandwich_probability + frontrun_probability       (detector v0.4.2)
SlippagePenalty = |mid_price - executed_price| / mid_price * 1e4    (bps, magnitude)

# QUALITY / EFFICIENCY terms — higher = better, enter with a PLUS sign:
GasEfficiency  = min(gas_cost_usd_over_routes) / gas_cost_usd       (1.0 = cheapest)
LiquidityDepth = pool_1bp_depth_usd                                 (deeper = better)

# Weights — see /methodology#weights for rationale (and #glossary for signs)
w1 = 0.40   w2 = 0.25   w3 = 0.15   w4 = 0.20

# Output bounds
0 <= Routescore <= 100   (higher = better execution-adjusted route)
Weight rationale
SymbolComponentSignWeightWhy this weight
w1MEV riskRisk · subtracted0.40RISK penalty (subtracted). Sandwich + frontrun probability dominates ex-ante loss on retail-size swaps. Largest weight by design — more modeled MEV pushes the score down.
w2SlippageRisk · subtracted0.25RISK penalty (subtracted). Modeled execution slippage vs the mid quote, pulled per-DEX from the aggregator quote step. More slippage pushes the score down.
w3Gas efficiencyQuality · added0.15EFFICIENCY term (added). Inverse gas-cost per unit notional, normalised to the cheapest available route on the same trade. A cheaper route pushes the score up.
w4Liquidity depthQuality · added0.20QUALITY term (added). Deeper pools reduce execution risk and push the score up. Measured as 1bp-depth at the prevailing mid.
Glossary · risk vs quality terms

Every term is labelled so the sign is never ambiguous. RISK terms are penalties (subtracted); QUALITY / EFFICIENCY terms raise the score (added). Higher Routescore always means a better route.

TermClassDirectionDefinition
MevRiskRISKHigher = worse → subtractedModeled sandwich + frontrun probability for the route. A penalty: more MEV risk lowers the Routescore.
SlippageRISKHigher = worse → subtractedModeled price move between the mid quote and the executed price, in signed bps. A penalty: more slippage lowers the Routescore.
GasEfficiencyQUALITY/EFFICIENCYHigher = better → addedInverse gas cost per unit notional, normalised across candidate routes. A quality term: a cheaper route raises the Routescore.
LiquidityDepthQUALITY/EFFICIENCYHigher = better → addedPool depth at 1bp around the prevailing mid. A quality term: deeper liquidity raises the Routescore.
RoutescoreQUALITY/EFFICIENCYHigher = better routeThe published 0–100 output. Risk penalties are subtracted and quality/efficiency terms are added, so a higher Routescore always means a better execution-adjusted route.
04 · Caveats

What the score does not include

  • Oracle risk. Surfaced as a separate badge on the route detail. A 100/100 Routescore on a pool with a fresh oracle compromise is still a bad trade — and we tell you that, separately.
  • Bridge risk. Cross-chain routes carry bridge exposure that is not modelled in the score; the route detail names the bridge and links to its operating posture.
  • Smart-contract risk. Audit + bug-bounty + age-of-deployment signals are surfaced separately. We do not mix exploit-tail risk into a price-execution score.
  • Counterfactual gas. Gas efficiency is normalised across candidate routes for the same trade ; comparing scores across different notionals or different chains is not apples-to-apples.
  • Detector ceiling. The sandwich detector is detector-only: its spoofable-signal score caps at 0.65 confidence, and Routescore does not operate a confirmation layer. Candidates never exceed that cap, so a “found sandwich” is a detector-only candidate, not a confirmed loss.
05 · Audit

Audit the score

06 · Versioning

What changed, when, and why

ComponentVersionLast changedNote
Score schema2026.06.132026-06-13Public launch — first hash-stamped schema.
Sandwich detectorv0.4.22026-06-11Detector-only; spoofable signals capped at 0.65 confidence.
Pricing sourcechainlink-twap-30m2026-06-0930-minute TWAP from Chainlink price feeds for victim-loss USD conversion.
Finality depth64 blocks2026-06-04One-epoch bound; depth-12 (Wave 12) deprecated as unsafe under empirical reorg data.
schema hash 9f2ca14e8b07d361fb40c2 · detector sandwich-detector v0.4.2
07 · Spec

Detector specification

Why publish the spec

The detector is the disputable thing. We publish the full interface — input shape, output shape, algorithm summary, and known limitations — so the score is auditable on the evidence. A standalone, clonable reference repo is coming; until then, the published spec and the benchmark are the public record.

The detector spec carries the same version hash as this page.
An observable route is measured and risk-priced while a key remains isolated beyond the read-only boundary.
Operating motto

Measure in public. Price the risk. Never touch the keys.