Cross-chain bridge costs, measured
Every 30 minutes we request the same fixed-size quotes from public bridge and aggregator APIs and rank them by what actually arrives. No swap button, no referral links, open data.
How bridges are counted: 19 bridge protocols (2 canonical), 3 aggregators, 21 quoted names (7 d)
APIs return route labels, and one protocol can appear under several (e.g. “StargateV2 (Fast mode)” is Stargate, “Mayan FAST_MCTP” is Mayan, “NearIntents” and “NEAR Intents 1Click” are NEAR Intents). We count each protocol once. Aggregators and routers — the LI.FI and Socket / Bungee quote APIs, and Squid / MoonPay Trade when they appear as the route — are counted separately and never as bridges. Rankings and review pages still use the quoted name.
| Protocol | Type | Quoted names (7 d) |
|---|---|---|
| Polymer | bridge | Polymer (Fast) · Polymer (Standard) |
| Across Protocol | bridge | Across |
| Arbitrum native bridge | canonical bridge | Arbitrum Native |
| Celer cBridge | bridge | Celer |
| Chainflip | bridge | Chainflip |
| Circle CCTP | bridge | Circle CCTP (Fast) |
| deBridge | bridge | deBridge DLN |
| Eco | bridge | Eco |
| Gas.zip | bridge | GasZip |
| Glacis | bridge | Glacis |
| Hyperliquid native bridge | canonical bridge | Hyperliquid Native |
| Layerswap | bridge | Layerswap |
| LI.FI Intents | bridge | LI.FI Intents |
| Mayan | bridge | Mayan FAST_MCTP |
| Meson | bridge | Meson |
| NEAR Intents | bridge | NEAR Intents 1Click |
| Relay | bridge | Relay |
| Stargate | bridge | StargateV2 (Fast mode) |
| Symbiosis | bridge | Symbiosis |
| Squid | aggregator | Squid |
| LI.FI | aggregator | quote API (data source) |
| Socket / Bungee | aggregator | quote API (data source) |
Key findings
As of 3 Nov 2026, 09:35 UTC (run #536), upswap.io samples 38 cross-chain routes between Ethereum, Arbitrum One, Base, OP Mainnet, Polygon PoS, Solana, BNB Chain, Avalanche C-Chain, Hyperliquid (HyperCore) at $20, $200 and $2,000 from 13 public quote APIs, and saw rankable quotes from 19 bridge protocols in the last 7 days (21 quoted names grouped by protocol; 3 aggregators counted separately). At $200 the cheapest quote on each route cost 0.00–11.95 bps excluding source-chain gas; cheapest quotes came from Eco on 15; Across on 8; Layerswap on 6; Celer on 5; Chainflip on 2; NEAR Intents 1Click on 1; Hyperliquid Native on 1. In the last 24 hours 48 runs returned 103,255 quotes. Quotes above input are listed but unranked. Real-money tests: none yet — planned after launch.
- Aggregator markup: LI.FI and Socket / Bungee public quote APIs include platform fees (25 / 20 bps), so the same bridge usually costs more through them.
- Changes since the previous run: 0 route(s) have a new cheapest bridge at $200.
- Quotes above input (unranked): 8 in this run — listed with a warning, excluded from every ranking and statistic.
- Sampling coverage: 48 of 48 scheduled runs in the last 24 h; 0 gap(s) over 45 min.
- Real-money tests: 0 · planned after launch
Source: upswap.io quote snapshot #536 (2,200 quotes) · Methodology · CC BY 4.0 · Zenodo DOI: Example / pending
Lowest $200 costs right now
| Route | Token | Cheapest bridge | Cost bps |
|---|---|---|---|
| Ethereum → Arbitrum One | USDC | Eco | 0.00 |
| Ethereum → Base | USDC | Eco | 0.00 |
| Arbitrum One → Base | USDC | Eco | 0.00 |
| Polygon PoS → Arbitrum One | USDC | Eco | 0.00 |
| Base → Arbitrum One | USDC | Eco | 0.00 |
Run #536, excluding source-chain gas and quotes above input. All 38 routes: cheapest bridge per route
What changed in the latest run?
8 notable change(s) in run #536 compared with the previous full run.
- Above inputEthereum → Arbitrum One ETH at $2000: Chainflip (via Chainflip) quoted 0.89 bps above input — listed, unranked, unverified.
- Above inputEthereum → Base ETH at $20: Eco (via Eco Routes) quoted 1.76 bps above input — listed, unranked, unverified.
- Above inputEthereum → Solana ETH→SOL at $2000: Chainflip (via Chainflip) quoted 1.97 bps above input — listed, unranked, unverified.
- Above inputSolana → Ethereum SOL→ETH at $2000: Chainflip (via Chainflip) quoted 11.60 bps above input — listed, unranked, unverified.
- Above inputEthereum → OP Mainnet ETH at $20: Eco (via Eco Routes) quoted 1.22 bps above input — listed, unranked, unverified.
Show all 8 changes
- Above inputBase → Arbitrum One ETH at $20: Eco (via Eco Routes) quoted 1.77 bps above input — listed, unranked, unverified.
- Above inputArbitrum One → Ethereum ETH at $20: Eco (via Eco Routes) quoted 1.41 bps above input — listed, unranked, unverified.
- Above inputEthereum → Arbitrum One USDT at $200: Eco (via Eco Routes) quoted 3.49 bps above input — listed, unranked, unverified.
Which bridge is cheapest on each route right now?
At $200 in run #536: Eco on 15; Across on 8; Layerswap on 6; Celer on 5; Chainflip on 2; NEAR Intents 1Click on 1; Hyperliquid Native on 1. Costs exclude source-chain gas; quotes above input are not in this table. 24 h change compares the cheapest cost with the first run about 24 hours earlier — green means cheaper.
| Route | Token | Cheapest bridge | Cost bps | Net of $200 | 2nd | Gap | 24 h Δ | Trend | Most often cheapest | History |
|---|---|---|---|---|---|---|---|---|---|---|
| Ethereum → Arbitrum One | ETH | Layerswap | 0.16 | $199.99 | Eco | +0.35 | 0.00 | Across 198/336 | Not enough data 8/14 | |
| Ethereum → Avalanche C-Chain | USDC | NEAR Intents 1Click | 0.30 | $199.96 | Mayan FAST_MCTP | +0.18 | −0.18 | Mayan FAST_MCTP 303/336 | Not enough data 8/14 | |
| Ethereum → OP Mainnet | ETH | Layerswap | 0.35 | $199.99 | Eco | +0.55 | 0.00 | Across 196/336 | Not enough data 8/14 | |
| OP Mainnet → Arbitrum One | ETH | Layerswap | 0.40 | $199.99 | Celer | +0.97 | 0.00 | Relay 195/336 | Not enough data 8/14 | |
| Base → Arbitrum One | ETH | Layerswap | 0.45 | $199.99 | Celer | +0.92 | 0.00 | Relay 129/336 | Not enough data 8/14 | |
| Solana → Arbitrum One | USDC | Layerswap | 0.60 | $199.95 | Across | +0.40 | −0.02 | Across 239/336 | Not enough data 8/14 | |
| Base → Ethereum | ETH | Eco | 0.91 | $199.98 | Relay | +2.61 | −2.80 | Relay 209/336 | Not enough data 8/14 | |
| Solana → Base | USDC | Across gas not incl. | 1.00 | $199.94 | NEAR Intents 1Click | +1.04 | 0.00 | Across 318/336 | Not enough data 8/14 | |
| Ethereum → Solana | USDC | Across gas not incl. | 1.00 | $199.94 | NEAR Intents 1Click | +1.38 | 0.00 | Across 334/336 | Not enough data 8/14 | |
| Solana → Ethereum | USDC | Across gas not incl. | 1.00 | $199.94 | Relay | +2.09 | 0.00 | Across 336/336 | Not enough data 8/14 | |
| Ethereum → Base | ETH | Across gas not incl. | 1.17 | $199.97 | Celer | +0.32 | +0.36 | Across 238/336 | Not enough data 8/14 | |
| Arbitrum One → BNB Chain | USDT | Across gas not incl. | 1.20 | $200.01 | Meson | +3.79 | 0.00 | Across 297/336 | Not enough data 8/14 | |
| Ethereum → BNB Chain | USDT | Across gas not incl. | 1.20 | $200.01 | Layerswap | +0.67 | 0.00 | Across 297/336 | Not enough data 8/14 | |
| Base → Solana | USDC | Across gas not incl. | 1.30 | $199.94 | NEAR Intents 1Click | +0.33 | 0.00 | Across 300/336 | Not enough data 8/14 | |
| BNB Chain → Arbitrum One | USDT | Celer | 1.36 | $200.01 | Across | +0.05 | 0.00 | Across 161/336 | Not enough data 8/14 | |
| Ethereum → Arbitrum One | USDT | Celer | 1.36 | $200.01 | Across | +0.04 | +0.55 | Across 182/336 | Not enough data 8/14 | |
| Arbitrum One → Solana | USDC | Across gas not incl. | 1.40 | $199.94 | NEAR Intents 1Click | +0.42 | 0.00 | Across 316/336 | Not enough data 8/14 | |
| Arbitrum One → Base | ETH | Celer | 1.50 | $199.96 | NEAR Intents 1Click | +0.59 | +0.26 | NEAR Intents 1Click 189/336 | Not enough data 8/14 | |
| OP Mainnet → Base | ETH | Celer | 1.50 | $199.96 | NEAR Intents 1Click | +0.59 | +0.76 | NEAR Intents 1Click 191/336 | Not enough data 8/14 | |
| Arbitrum One → OP Mainnet | ETH | Celer | 1.92 | $199.96 | NEAR Intents 1Click | +0.13 | 0.00 | NEAR Intents 1Click 190/336 | Not enough data 8/14 | |
| Arbitrum One → Ethereum | ETH | Layerswap | 4.22 | $199.91 | Across | +1.63 | +2.50 | Across 107/336 | Not enough data 8/14 | |
| Solana → Ethereum | SOL→ETH | Chainflip | 11.21 | $199.81 | Mayan FAST_MCTP | +9.73 | −15.54 | NEAR Intents 1Click 144/336 | Not enough data 8/14 | |
| Ethereum → Solana | ETH→SOL | Chainflip | 11.95 | $199.76 | Mayan FAST_MCTP | +15.29 | +2.52 | NEAR Intents 1Click 133/336 | Not enough data 8/14 | |
| Ethereum → Arbitrum One | USDC | Eco | 0.00 | $199.96 | Layerswap | +0.60 | 0.00 | Across 154/336 | Not enough data 8/14 | |
| Ethereum → Base | USDC | Eco | 0.00 | $199.96 | Mayan FAST_MCTP | +0.31 | 0.00 | Mayan FAST_MCTP 200/336 | Not enough data 8/14 | |
| Arbitrum One → Base | USDC | Eco | 0.00 | $199.96 | Mayan FAST_MCTP | +0.31 | 0.00 | Mayan FAST_MCTP 200/336 | Not enough data 8/14 | |
| Polygon PoS → Arbitrum One | USDC | Eco | 0.00 | $199.96 | Across | +1.40 | 0.00 | Across 198/336 | Not enough data 8/14 | |
| Base → Arbitrum One | USDC | Eco | 0.00 | $199.96 | Layerswap | +0.60 | 0.00 | Eco 136/336 | Not enough data 8/14 | |
| Arbitrum One → Ethereum | USDC | Eco | 0.00 | $199.96 | Across | +1.85 | 0.00 | Eco 136/336 | Not enough data 8/14 | |
| Base → Ethereum | USDC | Eco | 0.00 | $199.96 | Across | +1.85 | 0.00 | Eco 136/336 | Not enough data 8/14 | |
| Ethereum → OP Mainnet | USDC | Eco | 0.00 | $199.96 | Mayan FAST_MCTP | +0.11 | 0.00 | Mayan FAST_MCTP 198/336 | Not enough data 8/14 | |
| Ethereum → Polygon PoS | USDC | Eco | 0.00 | $199.96 | Mayan FAST_MCTP | +1.06 | 0.00 | Mayan FAST_MCTP 197/336 | Not enough data 8/14 | |
| Arbitrum One → Polygon PoS | USDC | Eco | 0.00 | $199.96 | Mayan FAST_MCTP | +1.07 | 0.00 | Mayan FAST_MCTP 200/336 | Not enough data 8/14 | |
| Base → OP Mainnet | USDC | Eco | 0.00 | $199.96 | Mayan FAST_MCTP | +0.11 | 0.00 | Mayan FAST_MCTP 200/336 | Not enough data 8/14 | |
| OP Mainnet → Base | USDC | Eco | 0.00 | $199.96 | Mayan FAST_MCTP | +0.31 | 0.00 | Mayan FAST_MCTP 200/336 | Not enough data 8/14 | |
| Polygon PoS → Base | USDC | Eco | 0.00 | $199.96 | Mayan FAST_MCTP | +0.31 | 0.00 | Mayan FAST_MCTP 200/336 | Not enough data 8/14 | |
| Base → Polygon PoS | USDC | Eco | 0.00 | $199.96 | Mayan FAST_MCTP | +1.07 | 0.00 | Mayan FAST_MCTP 200/336 | Not enough data 8/14 | |
| Arbitrum One → Hyperliquid (HyperCore) | USDC | Hyperliquid Native | 0.00 | $199.96 | Relay | +0.00 | 0.00 | Hyperliquid Native 336/336 | Not enough data 8/14 |
Is bridging getting cheaper?
Not enough data · 8/14 daysThe median of each route’s cheapest $200 cost was 0.42 bps in run #536, down 0.04 bps from about 24 hours earlier. With under 14 days of history we do not call a trend.
Bars: quotes per run (amber = run had errors).
Which bridges win most often?
All bridges →Across was cheapest at $200 in 4,258 of 12,768 route-runs over the last 7 days (33%).
Are all quote sources working?
4 source(s) had failed calls in run #536. Paused on purpose (awaiting an API key, not a fault): Socket / Bungee (v3).
| Source | Type | Quotes | HTTP ok | Failed | Avg latency |
|---|---|---|---|---|---|
| LI.FI | aggregator | 1,017 | 114 | 0 | 1,303 ms |
| Mayan | bridge | 216 | 102 | 0 | 453 ms |
| Circle CCTP V2(费率表) | fee schedule | 126 | 63 | 0 | 324 ms |
| Relay | intent / solver | 114 | 114 | 0 | 828 ms |
| deBridge (DLN) | intent / solver | 111 | 111 | 0 | 489 ms |
| Across | intent / solver | 108 | 108 | 0 | 477 ms |
| NEAR Intents 1Click | intent / solver | 105 | 106 | 6 | 942 ms |
| Meson | bridge | 87 | 88 | 0 | 540 ms |
| Symbiosis | bridge | 87 | 87 | 0 | 806 ms |
| Layerswap | bridge | 81 | 82 | 27 | 488 ms |
| Eco Routes | bridge | 75 | 75 | 26 | 2,190 ms |
| Celer cBridge | bridge | 42 | 56 | 0 | 782 ms |
| Chainflip | bridge | 31 | 31 | 2 | 557 ms |
| Socket / Bungee (v3) | aggregator | Paused — awaiting API key | |||
When was the data last sampled?
Full log →Run #536 started 3 Nov 2026, 09:35 UTC and took 733 s. Target: every 30 minutes; missed slots are never back-filled.
| Run | Started (UTC) | Gap | Duration | Quotes | Errors |
|---|---|---|---|---|---|
| #536 | 30 min | 733 s | 2,200 | 59 | |
| #535 | 30 min | 439 s | 2,211 | 56 | |
| #534 | 30 min | 670 s | 2,208 | 56 | |
| #533 | 30 min | 532 s | 2,190 | 59 | |
| #532 | 30 min | 612 s | 2,211 | 56 | |
| #531 | 30 min | 643 s | 2,201 | 60 | |
| #530 | 30 min | 679 s | 2,193 | 59 | |
| #529 | 30 min | 708 s | 2,193 | 62 | |
| #528 | 30 min | 503 s | 2,192 | 64 | |
| #527 | 30 min | 730 s | 2,197 | 63 | |
| #526 | 30 min | 1019 s | 2,191 | 63 | |
| #525 | 30 min | 620 s | 2,199 | 56 |
Has upswap tested bridges with real money? Not yet.
Every test will list the wallet, source and destination tx hashes, the quote we saw and what actually arrived. No example wallets or txs are shown as if they were real.
How testing will work →Method, disclosure, license
Method in one line
Fixed amounts, placeholder addresses, one price snapshot per run, raw responses archived with sha256. The collector never signs anything.
No money from protocols
No swaps, no affiliate parameters, no paid placements. Across integrator ID 0x03db, app fee 0.
Open data · CC BY 4.0
Quotes downloadable as CSV/JSON with run ID. Zenodo DOI: Example / pending
