Best Solana to Ethereum bridge for each token
Start from what you’re holding:
| What you hold on Solana | What you want on Ethereum | Route I’d check first | Fee |
|---|---|---|---|
| USDC | USDC | Jupiter Bridge & Swap ($0.30 USDC route) | Flat $0.30, no Jupiter fee |
| USDC | USDC | A CCTP-based app | Circle: 0% Standard, 0.01% Fast, plus the Ethereum mint |
| USDC | USDC | Across (about 2-second fills) | Shown in the quote before you confirm |
| USDT | USDT | Mayan Swift or deBridge | Mayan Swift: no protocol fee. deBridge: 0.015 SOL + 0.04% |
| SOL | ETH | deBridge, Mayan Swift or Relay | Relay: 0.06% + $0.02 flat + destination gas |
| Wormhole-wrapped ETH | ETH | Portal (Wormhole) | Network fees, plus a relayer fee on automatic routes |
| Anything, one screen | Anything | Phantom’s built-in bridge | 0.85% Phantom fee + bridge provider fee |
On USDC the fees are all small enough that simplicity decides. The swap rows are where routes really differ, and that’s covered below.
Do you need ETH for gas on the Ethereum side?
Not to receive. You can receive tokens into an empty Ethereum wallet, but you can’t move, swap or deposit them until you hold some ETH. MetaMask works as the destination, and so does the Ethereum address built into Phantom. Check the first and last few characters every time you paste it.
Ethereum gas is cheap at the moment (a swap’s been around 20 cents), but it jumps around, so check the gas tracker before you go.
If you’ll arrive with zero ETH, Mayan’s gas drop helps. It delivers native ETH alongside your transfer, 0.01 ETH by default and up to 0.05 ETH, and it’s on by default unless your Ethereum wallet already holds enough gas.
The bit people miss in this direction is whether the route needs a second transaction on Ethereum:
| Route type | Who completes the Ethereum side | Need ETH before you start? |
|---|---|---|
| Intent bridges (Mayan Swift, deBridge, Relay, Across) | A solver pays you from its own funds on Ethereum | No, there’s no claim step |
| CCTP called directly | Someone has to submit the mint transaction on Ethereum | Yes, unless the app relays it or uses Circle’s Forwarding Service (Ethereum gas plus $0.05, taken from the amount by default) |
| Jupiter’s USDC route | Handled by the route | No, you only sign on Solana |
| Portal, automatic route | A relayer, for a fee shown in the quote | No |
| Portal, manual route | You, with your own gas | Yes |
How to bridge USDC from Solana to Ethereum
USDC is the cheapest thing to move out. Jupiter has a $0.30 route, and apps built on Circle’s CCTP burn USDC on Solana and mint native USDC on Ethereum. CCTP itself is free on a Standard Transfer and 0.01% on a Fast one when you send from Solana.
The catch with CCTP is the mint. It’s an Ethereum transaction, so someone pays gas. Most people never call CCTP directly. They use an app that relays the mint for them or uses Circle’s Forwarding Service. Forwarding charges the Ethereum gas plus a $0.05 service fee, quoted per transfer and by default taken out of the amount you send.

Step 1: Open Jupiter Bridge & Swap
Go to Jupiter’s bridge page and connect your Solana wallet. The page compares several providers for getting money into Solana, but going out there’s only one route, Universal Deposit, and it’s USDC only. Jupiter itself charges no fee. If the rest of the app is new to you, our Jupiter walkthrough covers it.
Step 2: Set the destination
Choose USDC on Solana as what you send and USDC on Ethereum as what you receive. Enter or connect the Ethereum address that should get the funds.
Step 3: Check the quote and sign
Universal Deposit takes USDC from Solana to Ethereum, Base, Arbitrum, Sui or BNB Chain for that flat $0.30. You also pay the normal Solana network fee, so judge the route on the amount the quote says you’ll receive rather than the fee line. You only sign on Solana. There’s no claim step on Ethereum.
Step 4: Check it arrived
Look up your Ethereum address on Etherscan. Native USDC on Ethereum is Circle’s contract starting 0xA0b86991. Jupiter’s route should land as native USDC, but check the contract before you do anything with it. If it’s different, you’ve been sent a wrapped version. Our rundown of native versus bridged stablecoins explains the difference.
Jupiter’s page won’t give you a competing quote for this direction. When speed counts, Across is worth a look: it fills Solana to Ethereum USDC in about 2 seconds, delivers native USDC and shows its fee before you confirm. If its delivered amount beats Jupiter’s on the day, use it.
How to bridge or swap SOL to ETH
deBridge, Mayan Swift and Relay all swap SOL to ETH in one go: they sell your SOL on Solana and pay you ETH on Ethereum. SOL doesn’t exist on Ethereum, so there’s nothing to bridge as such. It’s always a swap. Jupiter’s USDC route can’t do it, since it only carries USDC out.
Relay takes 0.06% on SOL to ETH, plus $0.02 and the Ethereum gas. Price impact hides in swap routes, so on anything over a few hundred dollars quote at least two of them and take whichever puts more ETH in your wallet. It’s the same logic as aggregators versus going direct when you swap on Solana.
Using an exchange instead
If your money’s already on an exchange like Coinbase or Binance, you can skip the bridge: send SOL there, sell it for ETH and withdraw the ETH on the Ethereum network. Getting SOL onto Coinbase is the Coinbase to Phantom trip in reverse. You pay the trading fee plus the withdrawal fee, so it only makes sense if you’re using the exchange anyway. Here’s which exchanges list SOL if you need one.
How to bridge USDT from Solana to Ethereum
There’s no CCTP for USDT, so it’s Mayan Swift or deBridge. Tether issues it separately on each chain, so an intent bridge pays you USDT on Ethereum from a solver’s own balance.
- Mayan Swift: no protocol fee, single transfers up to around $1M.
- deBridge: a flat 0.015 SOL for an order created on Solana (refunded if the order is cancelled), plus 0.04% in the token you send, which is $0.40 on $1,000 USDT.
On a few hundred dollars I’d lean Mayan, because that 0.015 SOL is a bigger share of a small transfer. If you’ll be using deBridge a lot, our deBridge farming guide is worth a read. USDT0’s Legacy Mesh is a third option at 0.03% per transfer, routed through Arbitrum as a hub. It’s newer than the other two for this trip, so send a small amount first. Tether’s Ethereum contract starts 0xdAC17F95. For the trip back later, here’s moving USDT onto Solana.
How to bridge ETH from Solana to Ethereum (Wormhole ETH)
First check which ETH you’ve got. The common one on Solana is Wormhole’s, shown as Ether (Portal), with a mint address starting 7vfCX. Open the token on Solscan to check, and if token pages confuse you, here’s reading a block explorer.
If that’s yours, send it home through Portal, which burns it on Solana and releases the same amount of native ETH on Ethereum. A different bridge won’t unwrap it. You’d just end up holding another wrapped token.
On Portal, set Solana as the source, Ethereum as the destination and ETH as the asset. With no ETH for gas, take the automatic route, where a relayer finishes the Ethereum side for a fee shown in the quote. Relaying to Ethereum mainnet can cost a few dollars, a lot more than to an L2. On the manual route you come back and claim on Ethereum yourself, within 24 hours. After that your funds aren’t lost, but the claim may need its signatures refreshed first, which is an extra technical step. Any other wrapped ETH needs a cross-chain swap on deBridge or Mayan instead.
Bridge to Ethereum mainnet, Base or Arbitrum?
If the app you’re heading for lives on Base or Arbitrum, bridge straight there. Landing on mainnet and bridging again means two sets of fees and two waits for nothing. Jupiter’s same USDC route goes to both, and native USDC is the contract starting 0x833589fC on Base and 0xaf88d065 on Arbitrum. deBridge and Mayan also support both chains, so you can swap SOL straight into ETH on Base or Arbitrum too.
With mainnet gas this low, it’s less of a reason to avoid mainnet than it used to be. Where L2s bite is coming back down. Withdrawing to mainnet through the official bridges takes about 7 days from Arbitrum, then you claim on Ethereum. From Base it’s about 5 days (1 day on Base’s dual-proof fast path), plus up to an hour or so to prove and finalise. So if you know you’ll need mainnet, land there directly. If you do end up on Base, here’s the trip back from Base for later.
How to bridge from Solana to Ethereum in Phantom
Phantom can do this from the Swap screen, but you pay for the convenience. You can swap SOL to ETH there the same way you’d move stablecoins. In the browser extension:
- On the Home tab, click Swap.
- In You Pay, pick the Solana token you’re sending.
- In You Receive, pick the token on Ethereum (USDC on Ethereum, or ETH on Ethereum if you’re swapping SOL).
- Enter the amount, review the quote and fees, then confirm.
Phantom routes through LI.FI (which includes Mayan), Relay, deBridge and Garden. The provider’s fee is folded into the price impact figure on the confirm screen. Open swap settings, then Provider, to see which one you’re on. Cross-chain swaps can also carry network fees on both chains.
Phantom’s own fee is 0.85% on most swaps. On $1,000 that’s $8.50, against Jupiter’s $0.30 for USDC. The two meet at about $35, and that’s before the provider fee.
Phantom’s fallen off massively for me. It feels slower now, and at 0.85% I wouldn’t bridge anything big through it. I rate Solflare way higher these days, and for size I’d go to the bridge directly whatever wallet you’re on. Our wallet rankings go through the trade-offs.
Solana to Ethereum bridge fees compared
For USDC, Jupiter’s $0.30 route and a CCTP app are the cheapest, and the gap between them is cents. For SOL and USDT the fee line tells you little: quote Mayan and deBridge and take whichever delivers more.
| Route | Tokens | Protocol fee | Fee on $1,000 (excl. gas) |
|---|---|---|---|
| Circle CCTP Fast Transfer (via an app) | USDC | 0.01% | $0.10 |
| Circle CCTP Standard Transfer (via an app) | USDC | 0% | $0 |
| Circle Forwarding Service (if the app uses it) | USDC | Ethereum gas + $0.05, on top of CCTP | $0.05 + gas |
| Jupiter Universal Deposit | USDC | Flat $0.30 | $0.30 |
| Across | USDC | Quoted before you confirm | Shown in quote |
| deBridge | USDT, SOL, many more | 0.015 SOL + 0.04% | 0.015 SOL + $0.40 |
| Mayan Swift | USDT, SOL, many more | No protocol fee | Shown in quote |
| USDT0 Legacy Mesh | USDT | 0.03% | $0.30 |
| Relay, same-token bridge | Many | 0% + $0.02 flat + destination gas | $0.02 + destination gas |
| Relay, SOL to ETH | SOL, ETH | 0.06% + $0.02 flat + destination gas | $0.62 + destination gas |
| Phantom built-in | Many | 0.85% + provider fee | $8.50 + provider fee |
Ethereum gas may come on top depending on the route. Relay’s execution cost already includes destination gas. None of these include price impact on swaps.
For USDC I’d open Jupiter’s bridge page first. CCTP’s own fee looks lower, but once you add the Ethereum mint (or the Forwarding Service’s gas plus $0.05) the difference is a few cents either way. Jupiter’s fee also stays at $0.30 however much you send, while CCTP Fast’s 0.01% grows with the amount. And signing only on Solana, with no claim step, is hard to beat for simplicity.
Bridge front ends are a favourite phishing target, so type the URL or use a bookmark, and never sign an approval you don’t understand. Our Solana security checklist covers the habits that stop most drains. The rest of our wallet, swap and bridging guides sit in the Solana Guides academy.
FAQ
How long does it take to bridge from Solana to Ethereum?
Seconds on most routes. Mayan Swift settles in as little as 2 seconds, and Across fills Solana to Ethereum USDC in about 2 seconds. Circle attests a CCTP transfer from Solana in about 8 seconds on Fast and about 25 on Standard, then an Ethereum transaction delivers the funds. A manual Portal transfer takes as long as you take to claim it.
What’s the cheapest way to bridge from Solana to Ethereum?
For USDC, Jupiter’s $0.30 route or a CCTP app (0% Standard, 0.01% Fast, plus the Ethereum mint). For SOL to ETH and USDT there’s no fixed answer: it’s whichever of Mayan and deBridge delivers more on the day. Phantom is the dearest of the lot at 0.85% before the provider fee.
Can I bridge SOL to ETH on Jupiter?
Not directly. Jupiter’s route out of Solana only carries USDC. You can swap SOL to USDC on Jupiter and bridge that for $0.30, then buy ETH on the other side, or do it in one go on deBridge, Mayan Swift or Relay.
Can I swap SOL to ETH in Phantom?
Yes. On the Swap screen, pick SOL in You Pay and ETH on Ethereum in You Receive. Phantom charges 0.85% on most swaps, plus the provider’s fee inside the price impact figure, so for bigger amounts going to deBridge, Mayan or Relay directly is cheaper.
Can I send SOL or USDC straight to a MetaMask address?
No. Solana tokens use the SPL standard, Ethereum uses ERC-20, and nothing moves between them without a bridge. A Solana wallet won’t accept a 0x address as a destination. Use one of the routes above with your MetaMask address as the destination. If SPL is new to you, here’s how Solana tokens work.
Why did I receive less on Ethereum than I sent?
Every route takes something. Jupiter takes its $0.30, Circle’s Forwarding Service takes Ethereum gas plus $0.05 out of the amount, deBridge, Relay and USDT0 take their percentage, and swaps like SOL to ETH lose a bit to price impact. Phantom adds 0.85% on top. If what landed is well below what the quote showed, check the transaction on Solscan and the bridge’s own order page.




