On this page
- An exchange account cannot connect to a checkout page or sign a transaction; only a self-custody wallet can.
- Withdraw USDC on the Solana network to your own wallet, plus a little SOL; choosing the wrong network can lose the funds for good.
- Paying from your own wallet also means a refund can come back to you, and you can sign in to cancel a subscription.
Why can you not pay a USDC checkout from an exchange account?
You cannot pay from an exchange account because the checkout asks a wallet to sign, and an exchange account is not a wallet you can sign with. On an exchange, the company holds the keys and moves coins for you when you press Withdraw. That company is the kind of intermediary the KYC rules are written for; what they ask of a merchant paid wallet to wallet is in do merchants need to KYC crypto payers. A self-custody wallet, such as a browser extension or a phone app with its own recovery phrase, holds the keys on your device and signs what you approve.
Fianto's checkout finds wallets through the Wallet Standard, the interface Solana wallets use to announce themselves to a web page, and it only works with wallets that offer solana:signTransaction: signing a transaction without sending it. The page builds the payment, your wallet signs it, and Fianto sends it to Solana. There is no step where you copy an address and send USDC from somewhere else: the payment only exists as the transaction the page builds for your wallet to sign.
So an exchange balance never appears in the list of wallets. Why some installed wallets are missing from that list too is covered in why your wallet does not show at checkout.
What is the difference between an exchange account and a wallet at checkout?
An exchange account and a wallet can both show a USDC balance, but only the wallet can take part in a payment page:
| Exchange account | Your own wallet | |
|---|---|---|
| Who holds the keys | The exchange | You, through the recovery phrase |
| Connects to a checkout page | No | Yes, if it registers through the Wallet Standard and can sign without sending |
| Signs a payment you can read first | No: you fill in a withdrawal form | Yes |
| Can start a subscription | No | Yes, with one approval |
| Where a refund can be sent | An address the exchange may share between users | Back to the wallet that paid |
| Signs in to the subscription portal | No | Yes, with a signed message |
The wallet is not harder to get. It takes a few minutes to install and one withdrawal to fund, and after that every payment is a single approval.
How do you move USDC from an exchange to a wallet you can pay with?
You move USDC from an exchange by withdrawing it on the Solana network to your wallet's address. The order below avoids the mistakes that cost money:
- Install a Solana wallet that works in your browser or on your phone, write its recovery phrase down offline, and copy its address from the wallet itself, never from an old message or your transaction history (address poisoning on Solana explains why).
- On the exchange, choose Withdraw or Send for USDC, paste the address, and pick Solana as the network. Binance's withdrawal FAQ, updated 18 September 2026, warns: "If you select the wrong network, your funds might be lost and will not be able to be recovered." A transfer on a blockchain cannot be called back, so check the network before you confirm.
- Withdraw a little SOL to the same address too. A Solana transaction is paid for in SOL, and USDC alone cannot pay it.
- If the amount is large, send a small test first and wait for it to show in the wallet.
- Open the checkout link, choose your wallet, check the amount, and approve. The docs page paying with Fianto shows each screen.
The checkout's own warning sits under the token and network rows: "Send only USDC on Solana. Anything else is lost." USDC on another network, or another dollar token on Solana, is not the same asset to the payment. More cases like this, and what to do after one, are in wrong amount, token or network.
See what the checkout shows before you approve: the amount, the network fee and who receives the money.
Look at the hosted checkoutHow much USDC and SOL does the wallet need to pay?
The wallet needs the price in USDC plus any fee shown on the checkout, and enough SOL for the network fee and the minimum balance a Solana wallet has to keep. On a payment, the "Solana network fee" row of the checkout reads "paid by you, under $0.01". The minimum balance for a plain wallet was 650,240 lamports, about 0.00065 SOL, on 15 October 2026 (a lamport is a billionth of a SOL); it stays in the wallet and is not spent. If the wallet is short of SOL, the checkout says so before your wallet opens and tells you about how much SOL to add.
A subscription needs a little more SOL than a one-off payment, because it opens accounts on Solana that hold rent; the checkout lists each amount before you approve. Why SOL is needed at all is in why you need SOL to send USDC, and the fee of each Fianto transaction, in lamports, is in how much a Solana transaction costs.
One more check: the wallet must already hold USDC in a USDC account. If it does not, the checkout says "This wallet does not hold any USDC yet." A withdrawal that arrived means the account exists.
Why does paying from your own wallet matter for refunds and subscriptions?
Paying from your own wallet matters because the merchant can only send a refund to an address, and the wallet that paid is the obvious one. With Fianto there is no card reversal: a refund is USDC the merchant sends back from its own wallet, as chargebacks vs crypto refunds explains.
Exchanges complicate that whenever someone pays a merchant by plain transfer straight from one. Circle's refund guide for its payments network warns merchants that "Many exchanges send from omnibus wallets shared across users." An omnibus wallet is one address the exchange uses for many customers, so a refund sent back to it does not say whose money it is.
Subscriptions add a second reason. The customer portal at fianto.xyz/my shows the subscriptions a wallet pays only after that wallet signs in with a message, and cancelling is a signature from the same wallet. Each renewal is collected from that wallet on its due date, so it has to be one you control and keep funded.