USDT contract (mint) address on Solana: native vs wrapped
The USDT contract address on Solana (its mint) is:
Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB
That’s the address Tether lists for Solana on its supported protocols page. Every USDT that Tether issues on Solana has that mint. Anything else called “USDT” is a different token. It could be a bridge’s wrapped version or a scam token with the same name and logo. If mint addresses are new to you, this short explainer on Solana tokens covers them in a couple of minutes.
If a route runs through Wormhole’s Portal, I’d assume you’re getting wrapped USDT. Wormhole’s docs describe its Wrapped Token Transfers as lock-and-mint: your tokens are locked on the source chain and a wrapped version is minted on the destination. Wormhole did launch “native USDT transfers” on 8 July 2024, but per its own announcement those covered Ethereum, Arbitrum, Base, Optimism, Polygon, BNB Chain, Celo and Avalanche. Solana wasn’t on the list. So treat any Portal or Wormhole token bridge route as wrapped until the mint proves otherwise.
How to check:
- Before you send: look at the output token in the bridge UI. Most let you click it or show the address.
- After it lands: open the token in Phantom or Solflare, copy its address and compare it with Es9v…NYB.
If you already ended up with wrapped USDT, you can usually swap it for native USDT on a DEX aggregator. You lose a little to the swap, so it’s better to pick the right route first.
USDT to Solana bridge fees by source chain
Fees are from each protocol’s docs or official page (checked 7 October 2026). Gas on the source chain comes on top.
| From | Route | Protocol fee | Speed (per the provider) | What you need |
|---|---|---|---|---|
| Tron | USDT0 Transfer Hub (Legacy Mesh) | 0.03%, paid in USDT | Not stated in the Legacy Mesh docs | Tron wallet, TRX for gas |
| Tron | Rhino.fi | $0.06 + $0.50 Solana withdrawal cost | “Most routes” under a minute | Tron wallet, TRX for gas |
| Tron | deBridge | 0.04% + 4 TRX | Not stated | Tron wallet, TRX for gas |
| Tron | Allbridge Core | 0.1% + relayer fee | Not stated | Tron wallet, TRX for gas |
| Ethereum | USDT0 Transfer Hub (Legacy Mesh) | 0.03%, paid in USDT | Not stated in the Legacy Mesh docs | ETH for gas |
| Ethereum | deBridge | 0.04% + 0.001 ETH | Not stated | ETH for gas |
| BNB Chain | deBridge (direct or inside Jupiter) | 0.04% + 0.005 BNB | Not stated | BNB for gas |
| Exchange | Withdraw on the Solana network | Exchange’s withdrawal fee | Exchange dependent | Solana address |
In dollars, on a $1,000 transfer: 0.03% is $0.30, 0.04% is $0.40 plus the flat fee, and 0.1% is $1 plus the relayer fee. Rhino.fi’s flat cost is about $0.56 at any size. On Ethereum, gas is usually a bigger cost than any of these protocol fees.
What is the USDT0 Legacy Mesh?
The Legacy Mesh is USDT0’s network for moving native USDT between chains without a wrapped copy. Per USDT0’s docs, it connects Ethereum (ERC-20), Tron (TRC-20), TON, Arbitrum, Solana (native USDT as an SPL token) and Celo, plus any chain with native USDT0. BNB Chain is not on that list. The fee is 0.03% per transfer, paid in USDT, and you use it through the USDT0 Transfer Hub. TON holders can use the same hub.
Solana joined on 15 October 2025, per the USDT0 announcement. Solana’s own case study says the integration is built on LayerZero’s OFT standard and “does not create a synthetic copy of the asset”. It also says that before this, moving USDT in and out of Solana often meant third-party lock-and-mint protocols.
If your USDT is on Tron or Ethereum, this is the route I’d try first: 0.03% is the lowest percentage fee here and you end up with native USDT. You can check the chain list yourself in USDT0’s Legacy Mesh docs.
How to bridge USDT from Tron (TRC-20) to Solana
The cheapest way to bridge TRC-20 USDT to Solana on protocol fees is the USDT0 Transfer Hub: 0.03%, and you get native USDT. You’ll need a Tron wallet such as TronLink with some TRX for gas.
Here are the steps, following USDT0’s own transfer tutorial:
- Open usdt0.to/transfer and click the green Transfer button.
- Connect your Tron wallet.
- Pick Tron under From and Solana under To.
- Enter the amount. Keep it small the first time.
- Set your Solana wallet as the destination address. The tutorial lets you send to a different address on the destination chain. No Solana wallet yet? Create one first.
- If your Solana wallet has no SOL, add gas on destination. The hub offers None, Medium, Max or a custom amount, airdropped to you on arrival.
- Approve the spending cap, then confirm the bridge transaction. That’s two wallet popups.
- Wait for it to arrive. The hub shows the transfer status.

USDT0’s tutorial also describes a faster route called Aori on some chains (under 5 seconds). Its fee is dynamic and you set a maximum tolerance of 0.5%, 1% or 3%, which could end up well above 0.03%. I’d only use it if speed really matters to you.
The other Tron routes:
- Rhino.fi: per Rhino.fi’s Tron to Solana page, $0.06 per transaction plus gas, and most routes finish in under a minute. Rhino.fi’s help centre adds a $0.50 cost on any withdrawal to Solana, so the real cost is about $0.56 plus Tron gas. That only beats the Legacy Mesh’s 0.03% above roughly $1,850. On a $20 test, 0.03% is under one cent.
- deBridge: 0.04% plus a flat 4 TRX, per deBridge’s docs.
- Allbridge Core: per Allbridge Core’s docs, a flat 0.1% service fee plus a relayer fee that changes with gas on the destination chain. You can pay the relayer fee in the source chain’s gas token, take it out of the stablecoins you’re sending, or pay in ABR0 for a discount.
One thing that catches people out: you can’t paste a Solana address into TronLink and send TRC-20 USDT to it. Tron and Solana are separate chains with different address formats. You need a bridge, or an exchange in between.
How to bridge USDT from Ethereum (ERC-20) to Solana
Use the same USDT0 Transfer Hub steps as above, with an Ethereum wallet (MetaMask, Rabby or similar) and Ethereum picked under From. The fee is the same 0.03%, paid in USDT. Your real cost on this route is mostly Ethereum gas for the approval and the bridge transaction.
The alternative is deBridge: 0.04% plus a flat 0.001 ETH, per deBridge’s fee table. With deBridge you pick the output token on Solana yourself, so select USDT and check the mint shows Es9v…NYB before you sign.
How to bridge USDT from BNB Chain (BEP-20) to Solana
BNB Chain isn’t in the Legacy Mesh, so the USDT0 hub is out. The clean route is deBridge:
- deBridge directly: 0.04% plus a flat 0.005 BNB, per the same deBridge fee table. Set the destination token to USDT on Solana.
- Through Jupiter: per Jupiter’s bridge docs, its Bridge and Swap page compares GUM Universal Bridge, GUM Universal Deposit and deBridge, and lists BNB Chain among 11 source networks (Tron isn’t one of them). Jupiter says the output is native Solana tokens, not wrapped ones. Some of these routes are built around USDC, though. GUM Universal Deposit, for example, lands as USDC. If you want USDT, check the output token before you confirm.
If you’ve used deBridge before for points, our deBridge farming guide covers the app itself.
What about Stargate? It’s a common pick between EVM chains, but a Stargate USDT route into Solana isn’t confirmed in its own docs, so it’s not in this guide.
Already on an exchange? Withdraw USDT straight to Solana
If your USDT is on a centralised exchange, you often don’t need a bridge at all. Exchanges such as Binance show the networks available for each coin on the withdrawal screen. If Solana (sometimes shown as SPL) is listed for USDT, pick it and paste your Solana address. The exchange shows its withdrawal fee before you confirm. Still choosing an exchange? Start with our guide to buying SOL on exchanges.
Before you hit withdraw, check two things: the network says Solana, and the address is a Solana one. Pick the wrong network and the funds can be lost.
Can you bridge USDT to Solana in Phantom?
Phantom’s built-in bridge works, but it costs more than 1%. Phantom’s November 2023 blog post on its cross-chain swapper lists network gas, a bridge provider fee of “usually around 0.3%” and Phantom’s own 0.85% fee. That post names Ethereum, Polygon and Base alongside Solana; Tron and BNB Chain aren’t listed as sources in it. On a $1,000 move, around 1.15% is over $11 more than the Legacy Mesh’s $0.30. Fees may have changed since that post, so read the breakdown the app shows before you confirm. I’d only use it for small amounts where saving a few steps matters more to you than the fee.
USDT arrived but you can’t see it?
Work through these in order:
- Check the mint. If it’s not Es9v…NYB, you’ve got a wrapped or fake token, not native USDT.
- Find the transaction. Paste your Solana address into Solscan or SolanaFM and look it up on a block explorer. If the transfer shows there, the token is in your wallet. Your wallet just isn’t displaying it yet.
- Hidden token. Some wallets hide tokens they don’t recognise. Search for the mint and unhide it.
- No SOL. You need a little SOL to move or swap the USDT later. Use the gas on destination option next time, or buy a small amount.
- Still pending? Our main bridging guide, linked at the top of this page, has a troubleshooting section for stuck transfers and refunds.
Stay safe while bridging
- Type bridge URLs yourself or use bookmarks. Fake bridge sites with lookalike domains are a common way to get drained.
- Approve only the amount you’re sending, and revoke leftover approvals once you’re done.
- Send a small test first. A test costs the route’s flat fee plus source-chain gas, often under a dollar or a few dollars, far less than losing a large transfer to the wrong network. Sending a big amount to the wrong network can cost you all of it.
More on this in our Solana security habits guide.
What to do once your USDT lands
- Swap it. For anything beyond a quick SOL swap, I’d usually go through an aggregator. Here’s why aggregators usually beat going direct.
- Earn on it. Our roundup of stablecoin yields on Solana compares the main options, and our Solana stablecoins rundown explains how USDT compares with USDC and the rest.
- LP with it. I LP on Meteora DLMM myself. If you’re curious, read the DLMM beginners guide before you put stablecoins in a pool. Concentrated liquidity has its own risks.
For more basics like these, browse the Solana Guides academy.
FAQ
What is the cheapest way to bridge USDT to Solana?
On protocol fees, the USDT0 Legacy Mesh at 0.03% is the cheapest from Tron and Ethereum, per USDT0’s docs. Rhino.fi’s flat cost (about $0.56 including its $0.50 Solana withdrawal cost) only beats it above roughly $1,850. If your USDT is already on an exchange that offers Solana withdrawals, that skips bridging altogether.
What is the USDT contract address on Solana?
The native USDT contract (mint) address on Solana is Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB, per Tether’s supported protocols page. Any other token called USDT is a wrapped version or a fake.
Can I send TRC-20 USDT straight to my Phantom wallet?
Not from a Tron wallet. Tron and Solana are separate chains with different address formats. Use a bridge such as the USDT0 Transfer Hub, Rhino.fi, deBridge or Allbridge Core. Or send the USDT to an exchange and withdraw it on the Solana network.
Is USDT on Solana the same as USDT on Tron?
Both are issued by Tether and both are native on their own chain, but they’re separate tokens on separate networks. Moving one to the other needs a bridge or an exchange.
What is USDT0?
USDT0 is an omnichain version of Tether’s USDT built on LayerZero’s OFT standard. Its Legacy Mesh links native USDT on Ethereum, Tron, TON, Arbitrum, Solana and Celo, plus chains with native USDT0, for a 0.03% fee per transfer, per USDT0’s docs. Solana was added on 15 October 2025.
Can I bridge USDT from BNB Chain (BSC) to Solana?
Yes, but not through the Legacy Mesh, because BNB Chain isn’t on its list. Use deBridge (0.04% plus 0.005 BNB per its docs), directly or through Jupiter’s Bridge and Swap. Set the output token to USDT and check the mint.
Why did I get wrapped USDT instead of USDT?
You probably used a lock-and-mint route such as Wormhole’s token bridge (Portal). Per Wormhole’s docs, that route mints a wrapped token on the destination, and its 2024 native USDT transfers didn’t include Solana. Swap the wrapped token for native USDT on an aggregator, and pick a native route next time.
How do I bridge USDT from Solana back to Ethereum or Tron?
Use the same routes in reverse. In the USDT0 Transfer Hub, pick Solana as From and Ethereum or Tron as To. deBridge charges a flat 0.015 SOL plus 0.04% when Solana is the source chain, per its fee docs.




