On this page
- The USDC mint on Solana mainnet is EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v, as listed on Circle's contract-address page. Compare every character.
- Bridged USDC is a separate token created by a third party; Circle says it is not issued nor redeemable by Circle. USDC moved with Circle's CCTP arrives as native USDC.
- Fianto's checkout pays only in native USDC. The mint is written into Fianto's code, not read from a setting.
What is the USDC mint address on Solana?
The USDC mint address on Solana mainnet is EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v. A mint is the account that defines a token on Solana: its decimals, its supply and who may create more. Every token account, the account that holds one wallet's balance of one token, records which mint it belongs to, so the mint is what makes a balance "USDC" and not something else.
Circle lists the address in the mainnet table of its USDC contract addresses page, and its USDC on Solana page answers its own question "Is USDC on Solana a native form of USDC?" with a yes, adding: "Bridged versions of USDC are not issued by Circle and are not supported by Circle Mint or Circle APIs." We read the mint account from Solana mainnet on 15 October 2026 (slot 457,195,371). This is what it held:
| Field | Value on 15 October 2026 | What it tells you |
|---|---|---|
| Owner program | TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA | Solana's original Token program, not the newer Token-2022 |
| Decimals | 6 | 1 USDC is 1,000,000 base units; 0.01 USDC is 10,000 |
| Supply | About 7.77 billion USDC at that slot | A snapshot only: supply changes whenever USDC is issued or redeemed; more figures are in USDC on Solana in numbers |
| Mint authority | BJE5MMbqXjVwjAF7oxwPYXnTXDyspzZyt4vwenNw5ruG | The one address that can create more |
| Freeze authority | 7dGbd2QZcCKcTndnHcTL8q7SMVXAkp688NTQYwrRCrar | Set: a USDC token account can be frozen |
Circle also lists a devnet address, 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU, under a heading that warns "Testnet tokens have no financial value". A balance of that token is test money, whatever the wallet calls it.
How do you check a token on a Solana explorer?
You check a token on an explorer by reading its mint address in a transaction or a token account and comparing it, character by character, with the one above. For a payment you received:
- Open the transaction on Solscan or the Solana Explorer by its signature. Fianto's receipt links the signature in its "Transaction" row straight to Solscan.
- Find the token transfer. It names the token, the amount, the sending and receiving accounts, and the token's mint.
- Open the mint, or copy it, and compare all 44 characters with EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v. A short form such as "EPjF...Dt1v" is not enough to tell two addresses apart.
- Check that the decimals are 6 and the owner program is the Token program. A lookalike can match both, so these checks only rule a token out; the address is what rules USDC in.
A Fianto payment uses the Token program's TransferChecked instruction, which, in Solana's words, "requires the caller to provide the mint and decimals and checks those values before moving tokens between token accounts of the same mint". The mint therefore sits in the instruction itself. How to read the rest of a payment on an explorer is in how to read a Solana payment on an explorer.
Can you trust the name and logo your wallet shows?
No: the name, symbol and logo a wallet shows come from metadata the token's creator chose and from third-party data, so they prove nothing about who issued the token. Phantom's token verification docs say it "displays token information using data from trusted third-party sources", naming CoinGecko and Jupiter, and add: "We're unable to provide specific details about how token verification status is determined in Phantom." Solflare, for its part, warns when you interact with assets it treats as unverified.
Those labels help, but the address decides. Open the token's detail in your wallet, copy its address where the wallet shows it, and compare it with the explorer. A token you never bought deserves suspicion on sight; Phantom's scam guide says "Assume any unsolicited token or NFT in your wallet is a scam, especially those offering something for free."
What is the difference between native and bridged USDC?
Native USDC is issued by Circle on the chain itself; bridged USDC is a token a third party creates on one chain against USDC locked on another. Circle set out the difference in its Bridged USDC Standard post (21 November 2023):
| Native USDC | Bridged USDC | |
|---|---|---|
| Issuer | "Issued by Circle, a regulated fintech" | "Created by a third party" |
| Backing | "Backed by US dollars and always redeemable 1:1" | "Backed by USDC on another blockchain locked in a smart contract" |
| Status | "Official form of USDC on a given blockchain" | Not in the table; the post says: "While bridged USDC is unofficial and not issued nor redeemable by Circle, it serves as a proxy to USDC that's extensible to any ecosystem where bridging is made possible." |
| Circle's CCTP | "Interoperable with multiple blockchain networks via CCTP" | "Not compatible with CCTP" |
CCTP, Circle's Cross-Chain Transfer Protocol, is why moving USDC between chains does not have to produce a bridged token. Circle's CCTP docs say "CCTP natively transfers USDC across blockchains using burn-and-mint": USDC is destroyed on the chain it leaves and created by Circle on the chain it arrives on, so USDC that arrives on Solana this way is the native mint. Circle's EU entity also publishes a MiCA white paper for USDC that lists Solana among its networks, as MiCA and stablecoins notes.
On Solana a bridged USDC is simply another mint, often with "USDC" in its name. Circle's address page gives an example from another chain: "X Layer also has a separate bridged USDC representation, labeled USDC.e, which is not issued or backed by Circle." The test on Solana stays the same: a mint other than EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v is not Circle's USDC, whatever it is called.
Which USDC does Fianto's checkout accept?
Fianto's checkout accepts native USDC only, on Solana mainnet. The mint is written into Fianto's backend as a constant, not read from configuration, so no setting or environment variable can point payments at another token. Every step compares against that one mint:
- The checkout looks up your USDC account for the native mint, the associated token account (the standard address for one wallet and one token) that an associated token account explainer covers.
- The transaction it builds moves that mint, with 6 decimals, and a signed transaction that moves any other mint is refused before it is sent.
- A payment counts only from the change in the merchant's balance of that mint once the transaction is finalized on chain.
A wallet that holds only bridged or fake USDC usually has no account for the native mint at all, and the checkout says so before your wallet asks you to sign anything: "This wallet does not hold any USDC yet. Add USDC to it, or pay from a different wallet, then try again." A wallet whose native USDC account is frozen sees: "This wallet's USDC account is frozen, so it cannot send USDC. Pay from a different wallet." Nothing is charged in either case. What the checkout refuses after signing, and why, is in crypto payment mistakes.
Merchants get the same guarantee from the other side: the wallet a merchant is paid to must already have a USDC account for this mint, and the money lands there directly. A merchant never has to check whether a payment through Fianto was real USDC. A merchant who also takes USDC at a bare wallet address still does.
Get paid in native USDC, straight to your own wallet, from a checkout that checks the mint for you.
How to accept USDC on SolanaWhat can you do if you hold the wrong USDC?
What you can do with the wrong USDC depends on which kind it is. A lookalike token that appeared in your wallet unasked is worth nothing to you: leave it alone, and do not visit any site its name or memo points to. Bridged USDC is a real claim, but on the bridge that issued it, not on Circle, and Fianto cannot convert it.
Before you pay a Fianto checkout, check the mint of what you hold. If it is not EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v, get native USDC into that wallet first, plus a little SOL for the network fee (why you need SOL to send USDC). Paying from an exchange account instead of a wallet is a separate question, answered in can I pay from Coinbase or Binance instead of a wallet. The payer docs list everything a payment needs on Paying with Fianto.
- Circle: USDC contract addresses (Solana mainnet and devnet)
- Circle: USDC on Solana
- Circle: Bridged USDC Standard (21 November 2023)
- Circle developer docs: Cross-Chain Transfer Protocol
- Phantom docs: Token verification
- Phantom: Common crypto scams
- Solflare help: The token I bought is frozen (10 July 2024)
- Solana docs: Transfer tokens (TransferChecked)
- Solscan: the USDC mint account