No Fianto fee during the beta. Any fee comes with at least 30 days notice. See pricing
Stablecoins8 min read

How to move USDC to Solana from another chain, and arrive with the right token.

To move USDC to Solana, either withdraw it from an exchange straight to your Solana address on the Solana network, or use Circle's Cross-Chain Transfer Protocol (CCTP), which burns USDC on the chain it leaves and mints native USDC on Solana. Both routes end with the native mint EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v, the only USDC a Fianto checkout accepts. Avoid any bridge that hands you a wrapped copy instead.

On this page
Which way should you move USDC to Solana?How does CCTP move USDC to Solana?How do you withdraw USDC from an exchange to Solana?What if the bridge gave you wrapped USDC?What does your wallet need before it pays with Fianto?What should a merchant tell customers who hold USDC elsewhere?SourcesQuestions
TL;DR
  • CCTP's Standard Transfer is free and Fast Transfer costs 1 basis point from Ethereum and 1.3 from Base, per Circle's fee page on 15 October 2026; you also pay network fees on both chains.
  • What arrives must be the native USDC mint, EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v. Fianto accepts no bridged copy.
  • Before paying with Fianto the wallet also needs a little SOL; the checkout tells you the exact amount.

Which way should you move USDC to Solana?

Use an exchange withdrawal if the USDC already sits on an exchange, and CCTP if it sits in your own wallet on another chain. A bridge is any service that moves value between blockchains; the question that matters is whether it gives you native USDC, issued by Circle on Solana, or a wrapped token, a copy someone else issues against USDC locked elsewhere.

Where your USDC is nowRouteWhat arrives on SolanaWhat you pay
On an exchange accountWithdraw to your Solana address, network "Solana"Native USDCThe exchange's withdrawal fee, as it lists it
In your wallet on Ethereum, Base, Arbitrum or another CCTP chainCCTP, from Circle or an app built on itNative USDC, minted on SolanaNetwork fees on both chains, plus 0 (Standard) or a small fee (Fast)
In your wallet, through a bridge that wrapsLock on one chain, receive a wrapped tokenA different token with its own mintThe bridge's fees, and a token many checkouts refuse

Circle lists Solana as CCTP domain 5 on its supported chains page, next to Ethereum (0), Arbitrum (3), Base (6), Polygon PoS (7) and more than twenty others. Which network to take payments on in the first place is a separate question, answered in USDC on Solana vs Ethereum, Base or Polygon.

How does CCTP move USDC to Solana?

CCTP destroys your USDC on the chain it leaves and creates the same amount on Solana, so nothing is locked in a pool and nothing wrapped is issued. Circle's CCTP docs open with: "Cross-Chain Transfer Protocol (CCTP) is a permissionless onchain utility for crosschain digital asset transfers." The steps, whether you run them yourself or an app runs them for you:

  1. Burn: a transaction on the source chain burns the USDC and names your Solana USDC token account as the recipient. You pay that chain's network fee in its own coin, ETH on Ethereum or Base.
  2. Attest: Circle watches for the burn to reach the number of block confirmations its table sets, then signs an attestation, a signed message that says the burn happened.
  3. Mint: a Solana transaction presents the attestation, and native USDC is minted into your token account. Someone pays that transaction's fee in SOL: you, the app you use, or Circle's Forwarding Service for a fee.

Circle's Forwarding Service broadcasts the mint for you and charges a per-transfer service fee on top of the CCTP fee. For a Solana destination it can also create the USDC account if the recipient has none, but only when the transfer asks for it; otherwise the transfer fails.

Standard or Fast Transfer

Circle's fee page says: "CCTP charges fees on Fast Transfers only. Standard Transfers are free." The fee is taken from the amount when it is minted. Times come from Circle's finality table and depend on the chain the USDC leaves; they measure the wait until Circle's attestation is available, read on 15 October 2026:

Leaving fromStandard: fee, average attestation timeFast: fee, average attestation time
EthereumFree, about 15 to 19 minutes1 basis point, about 20 seconds
BaseFree, about 15 to 19 minutes1.3 basis points, about 8 seconds
ArbitrumFree, about 15 to 19 minutes1.4 basis points, about 8 seconds

A worked example: 500 USDC moved from Base by Fast Transfer costs 500 x 0.00013 = 0.065 USDC, so 499.935 USDC is minted on Solana. By Standard Transfer all 500 arrive, after an attestation wait of about 15 to 19 minutes. In both cases you also pay the gas on Base and, unless someone pays it for you, a Solana fee for the mint. Circle notes that "Fees are subject to change at any time", so check the page on the day.

How do you withdraw USDC from an exchange to Solana?

Withdraw USDC to your Solana wallet address and pick Solana as the network; no bridge is involved, and an exchange withdrawal on the Solana network normally sends native USDC, which the mint check below confirms. The network choice is the step people get wrong.

  1. Copy your wallet address from your Solana wallet (Phantom, Solflare or Backpack, for example). It is the address you pay from, not a token account address.
  2. In the exchange, choose USDC, then the Solana network. Any other network is not a Solana transfer, and your Solana wallet will never see it.
  3. Send a small amount first. When it lands, open the token in your wallet or an explorer and check the mint address before you send the rest.

The step that saves you is the mint check. Circle publishes the Solana address on its USDC contract addresses page; how to read it on an explorer, and how to tell a wrapped copy, is in how to check real USDC on Solana.

What if the bridge gave you wrapped USDC?

Wrapped USDC on Solana is a different token from USDC, with its own mint, and a checkout that accepts only native USDC will treat your wallet as holding none. Your wallet may still show it under a USDC-like name. The fix is to swap it for native USDC, or move it back and use CCTP.

What does your wallet need before it pays with Fianto?

Once the native USDC has landed, a wallet needs three things to pay at a Fianto checkout: enough native USDC, a USDC account that is not frozen, and enough SOL for the network fee and the wallet's own minimum balance. SOL is Solana's own coin; every Solana transaction is paid in it, even one that moves USDC.

ItemOne-off paymentSubscription
USDCThe priceThe price, plus a flat 0.01 USDC network fee with each charge today, on plans created since 6 October 2026
Fianto feeNone during the beta; after it, about 0.1 to 0.5% on top, paid by the customerThe same
Solana network feeUnder $0.01Under $0.01
The wallet's own minimum SOL balance650,240 lamports, about 0.00065 SOL, as of 15 October 2026The same
Account rentNoneAbout 0.00144 SOL for the subscription account, returned when you reclaim it after the subscription ends; about 0.00119 SOL once, on a wallet's first subscription, not returned (both as of 15 October 2026)

A lamport is the smallest unit of SOL: one billionth of it. Solana is cutting rent in phases, so read the figures above as a snapshot; the checkout reads the live amounts and tells you exactly how much SOL to add before you sign. Why a wallet needs SOL at all to send USDC is explained in why you need SOL to send USDC.

The USDC account matters too. The first transfer that delivers native USDC to your wallet creates that account, and whoever creates it, usually the sender, pays its rent: 1,488,440 lamports, about 0.00149 SOL, on 15 October 2026. After that it stays, and its rent comes back only if the empty account is closed, as closing empty token accounts explains. The merchant, for its part, pays nothing and never pays a network fee. What the customer signs and what the merchant receives is laid out on USDC subscriptions and in the payer docs on what it costs.

Customers pay from their own Solana wallet, in native USDC, straight to yours.

Accept USDC on Solana

What should a merchant tell customers who hold USDC elsewhere?

Tell them before they reach the checkout that you take USDC on Solana only, and link them here. A customer who arrives with USDC on Base meets a Solana wallet prompt and a balance of zero, and has to leave the checkout to move it first.

If many of your customers hold USDC on Base or Ethereum and will not move it, a Solana-only checkout is the wrong tool for them, and a provider that takes payment on their network fits better; Request Network vs Fianto compares one such provider. Fianto takes USDC on Solana only; the trade-offs between networks for a business are in stablecoin payments for business.

Sources
Questions

Questions about moving USDC to Solana.

Is CCTP free?

Standard Transfers carry no CCTP fee; Fast Transfers do, 1 to 1.4 basis points from Ethereum, Base or Arbitrum on Circle's fee page as of 15 October 2026. Network fees on both chains are separate.

Can I send USDC from Base straight to a Solana address?

Not with a plain transfer: a Base transaction cannot pay a Solana address. Use CCTP, or send it to an exchange and withdraw on the Solana network.

How do I know the USDC that arrived is native?

Check its mint address. Native USDC on Solana is EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v, as Circle lists it; anything else is a different token.

Does Fianto accept USDC on Base or Ethereum?

No. Fianto accepts native USDC on Solana only, and it does not bridge, swap or convert tokens for customers.

How much SOL do I need to pay with USDC?

Enough for a network fee under $0.01 plus the wallet's own minimum balance, and account rent for a subscription. The checkout reads the live amounts and tells you exactly how much to add.

Read next.

StablecoinsWallets8 min read

Real USDC on Solana: the mint address, and native vs bridged USDC

Real USDC on Solana is the token whose mint address is EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v, the address Circle publishes for USDC on Solana mainnet. Anyone can create a token called USDC with the same symbol and logo; nobody can give it that address, so the address is the check. Fianto's checkout accepts only this native mint: bridged versions of USDC and lookalikes are different mints, and a wallet that holds only those cannot pay.

DataStablecoins7 min read

USDC on Solana in numbers: supply, share and costs, read on 15 October 2026

On 15 October 2026 the USDC mint on Solana reported a supply of about 7.76 billion USDC, while Circle's own figure for USDC on Solana was about 6.77 billion, 9.3% of the 72.71 billion USDC Circle counted across all chains, second only to Ethereum. The two Solana numbers differ because Circle counts circulation, and its reserve report leaves out tokens that exist on Solana but are not issued to any holder. Moving USDC on Solana costs a base fee of 5,000 lamports per signature.

WalletsCompare8 min read

Phantom vs Solflare vs Backpack for paying with USDC on Solana

All three can pay a USDC checkout on Solana: as of 15 October 2026 the Phantom, Solflare and Backpack browser extensions each register sign-only transaction signing through the Wallet Standard, which is what Fianto's checkout needs. The real differences are elsewhere: which browsers and hardware wallets each vendor lists, whether the wallet is Solana-only, and how the checkout hands a payment to the app on a phone. Pick by those, not by a ranking; if you already hold USDC in one of them, use that one.

Arrive with native USDC and a little SOL.

Then the checkout is one signature.

New posts are announced on X and Discord.