Blog
← Back to Blog

We Benchmarked 47 Transfers Across 4 Bridges

12 min read

We had opinions going in. Strong ones. Wormhole = safe default. deBridge = fast. Allbridge = stablecoins. LayerZero = flexible. These were vibes from months of casual use, not data. Time to actually test them.

Methodology: 47 transfers over two weeks. $50K USDC each. Three routes: ETH→SOL, ETH→ARB, SOL→ETH. All four bridges on each transfer, within a 10-minute window to keep conditions comparable. Tracked fees, realized slippage (not quoted — actual), speed, and success/failure.

The Full Dataset

text
1sample from the raw data (10 of 47):
2
3# route bridge fees slippage time net output
41 ETH→SOL Wormhole $148 0.12% 4m20s $49,792
51 ETH→SOL deBridge $95 0.08% 28s $49,865 ★
61 ETH→SOL LayerZero $122 0.15% 2m45s $49,803
71 ETH→SOL Allbridge $135 0.09% 3m10s $49,820
8
92 ETH→SOL Wormhole $142 0.11% 4m05s $49,803
102 ETH→SOL deBridge $102 0.22% 32s $49,788
112 ETH→SOL LayerZero $118 0.06% 2m30s $49,852 ★
122 ETH→SOL Allbridge $130 0.14% 5m15s $49,800
13
143 ETH→ARB Wormhole $85 0.04% 3m50s $49,895
153 ETH→ARB deBridge $62 0.02% 22s $49,928 ★
163 ETH→ARB LayerZero $78 0.03% 1m55s $49,907
173 ETH→ARB Allbridge $92 0.05% 4m30s $49,883
18
19★ = best net output for that transfer

Notice #1 and #2. Same route (ETH→SOL), same amount, two days apart. Different winner. deBridge won #1 by $73 over the next best. LayerZero won #2 by $64. The conditions that make one bridge optimal are not stable.

"Wormhole Is the Safe Default"

Sort of. Highest success rate at 99.7% — only one timeout in our entire test period, and it resolved on retry. But also the most expensive on around 60% of routes.

text
1Wormhole results (47 transfers):
2 times it was cheapest: 8 (17.0%)
3 times it was most expensive: 28 (59.6%)
4 times it was fastest: 0 (0%)
5 times it was slowest: 12 (25.5%)
6 average fees: $138
7 average speed: 4m12s
8 success rate: 99.7% (46/47, 1 timeout-retry)
9
10 the "safe" choice was the expensive choice most of the time.

Guardian verification is reliable but heavy. You're paying a premium for that reliability on every transfer, even when the other bridges would have been equally reliable for that specific route at that specific moment.

"deBridge Is Always Fastest"

Mostly true and we were genuinely surprised by how consistent it was. DLN intent fills are a different model from pool-based bridges — a filler picks up your intent and executes it, which can be almost instant when fill demand is low.

text
1deBridge results (47 transfers):
2 times it was cheapest: 22 (46.8%)
3 times it was fastest: 39 (83.0%)
4 average speed: 31s
5 median speed: 27s
6 worst speed: 3m45s (high fill demand period)
7 success rate: 97.8% (46/47, 1 fill timeout)
8
9 fastest 83% of the time. but the two times it wasn't
10 were during congestion when you'd most want it to be fast.

The exception cases matter though. During high fill demand, deBridge's speed advantage disappears. And those are exactly the conditions when speed matters most — volatile markets, everyone trying to move at once.

"One Bridge Will Dominate Per Route"

This was the assumption we were most wrong about. We expected that for a given route — say ETH→SOL — one bridge would be clearly best overall if not best at everything.

typescript
1// actual data from one test day. same route, different times.
2// "optimal" = best net output after real fees + real slippage
3
4const ethToSol_march1 = [
5 { time: '14:00', winner: 'deBridge', net: 49_720, margin: '+$85' },
6 { time: '14:30', winner: 'Allbridge', net: 49_690, margin: '+$42' },
7 { time: '16:00', winner: 'Wormhole', net: 49_710, margin: '+$28' },
8 { time: '16:30', winner: 'deBridge', net: 49_740, margin: '+$110' },
9 { time: '19:00', winner: 'LayerZero', net: 49_680, margin: '+$55' },
10];
11
12// five tests on one route on one day. four different winners.

Out of 47 total transfers, the same bridge was optimal for 11. Eleven. The other 36 times, it was a different bridge.

"Direction Doesn't Matter"

Didn't even think about this until the data showed it. We assumed ETH→SOL and SOL→ETH would have similar characteristics. They don't.

text
1ETH→SOL optimal bridge distribution (23 transfers):
2 deBridge: 11 (47.8%)
3 LayerZero: 5 (21.7%)
4 Allbridge: 4 (17.4%)
5 Wormhole: 3 (13.0%)
6
7SOL→ETH optimal bridge distribution (12 transfers):
8 Wormhole: 5 (41.7%)
9 deBridge: 3 (25.0%)
10 Allbridge: 3 (25.0%)
11 LayerZero: 1 (8.3%)
12
13completely different distributions. same chains, opposite direction.

Pool balances are asymmetric. Liquidity depth differs by direction. Fees are calculated differently depending on which chain is source vs destination. Makes complete sense in retrospect. We just hadn't thought about it.

The Aggregate Numbers

Fee spread between cheapest and most expensive bridge on the same route ranged from 0.3% to 1.2%. On $50K that's $150 to $600 per transfer.

text
1aggregate results (47 transfers):
2 average savings of optimal vs default (Wormhole): $340
3 average savings of optimal vs worst: $480
4 max savings on a single transfer: $620
5 min savings: $45
6
7 if someone makes 10 transfers/month at $50K avg:
8 annual cost of using default bridge: ~$40,800
9 annual cost of optimal routing: ~$0 (engine is free)
10 annual savings: ~$40,800

47 transfers. Same bridge was optimal for 11. If you always use your default, you're picking wrong 77% of the time. That's not an edge case. That's the default experience.

What This Validated

We built MNMX on the assumption that the optimal bridge shifts constantly and unpredictably. After 47 data points across two weeks, that assumption held. It's not theoretical. The routing problem is real and it costs real money on basically every transfer where you don't check all options.

The full dataset is in the repo if anyone wants to run their own analysis.