Solana network
How Solana settles a payment
Solana is the fastest and cheapest rail on this site, and the only one that carries both major dollar stablecoins. A payment clears in well under a second and costs a small fraction of a cent. The complication is not speed or price — it is that receiving a token here needs slightly more than an address.
Sub-second to seen, seconds to final
Solana produces a slot roughly every 400 milliseconds, so a payment appears almost as fast as the customer can let go of the button. The network then distinguishes two states: confirmed, meaning a supermajority of stake has voted for the block, and finalized, which is the strongest state the cluster recognises. There are typically 32 slots between the two — about thirteen seconds.
Those are the two moments worth building against. Confirmed is enough to tell a customer the payment worked and stop them sending twice; finalized is the one to release goods against, and on this network the wait between them is measured in seconds rather than minutes.
The depth is the network’s own gap between confirmed and finalized rather than a number we invented, and it is rendered here from the running catalogue. Worth knowing that the slot time is not a fixed constant either: a staged reduction from 400 to 200 milliseconds is scheduled, in four steps, and had not activated on mainnet when this page was last checked. Anything you read that states 400 milliseconds as permanent is already aging.
A base fee, and a bid for the front of the queue
Every transaction pays a base fee of 5,000 lamports per signature — a lamport being a billionth of a SOL, so the whole thing lands well under a tenth of a cent. That fee is not a market: it is fixed, and it does not scale with the amount you are being paid.
On top of it a sender may add a priority fee, which is optional and only matters when the network is busy — it buys earlier inclusion, not a different outcome. In practice a payment on this network costs the payer a rounding error, which is most of why Solana became a rail for small and frequent payments. Your customer pays it on top of your amount; you receive what you invoiced.
What this network carries
Its own currency and both major dollar stablecoins — an unusually complete set. Rendered from the live catalogue rather than written here.
- SOLThe network’s own currency
- Nine decimal places; the smallest unit is a lamport and a billion of them make one SOL. It moves against your local currency between quote and settlement, and it is also what fees and account rent are paid in — which matters more here than on most networks.
- USDCThe dollar rails
- Both USDC and USDT settle here, each with six decimals, so an invoice can be priced in dollars and still arrive worth what you asked. Few networks carry both; this is a real reason to accept payment on Solana rather than elsewhere.
One structural difference to know before you read the next section: a token does not sit at an address the way SOL does. It sits in a separate token account belonging to that address, and that account has to exist first.
Which customers this network fits
Worth it for
- High-frequency and small payments — this is the network where a fee genuinely stops being a factor in whether a sale makes sense.
- Dollar-priced invoices, with a choice of both major stablecoins rather than whichever one the chain happens to carry.
- Anything that should feel instant: confirmation arrives while the customer is still watching.
Better suited elsewhere
- Customers whose funds already sit on an EVM chain or on Tron — the assets share a name but never the rails, so meet the money where it is.
- Payers who hold only a stablecoin and no SOL at all; they cannot send until they have a little of the native currency.
- Anything that needs Ethereum’s contract ecosystem around the payment itself.
What to plan for
A token cannot be sent to an address that has nowhere to put it. On Solana, USDC and USDT live in a token account owned by the address rather than at the address itself, and — in the documentation’s own words — you cannot send tokens to a token account that does not exist. In practice wallets and exchanges handle this by creating the account as part of the payment, so most transfers simply work; but the account is a real thing that has to be brought into being the first time, and somebody pays for it.
Creating one costs about 0.00203928 SOL, held as a rent-exempt minimum so the account is not swept away. That is a deposit rather than a fee — it stays with the account — and it is charged once per address-and-token pair, not per payment. A second USDC payment to the same address costs nothing extra; the first USDT payment to it opens a separate account, because each token gets its own.
- A payer sending USDC needs a little SOL as well, because the fee is paid in the native currency. A brand-new wallet holding only stablecoins and zero SOL cannot send at all until it is topped up — worth recognising when a customer reports that the transfer “won’t go through”.
- When the network is genuinely busy, transactions that pay no priority fee can be dropped rather than queued, and the sender has to retry. This is a real difference from a chain with a mempool, where a cheap transaction waits instead.
- Once finalized, a payment cannot be reversed by anyone, including us. That is the protection against chargebacks, and it is why a mistaken send is gone.
Questions
How long does a Solana payment take to confirm?
Under a second to appear and be confirmed, and about thirteen seconds more to be finalized. Slots arrive roughly every 400 milliseconds, and there are typically 32 of them between a confirmed block and a finalized one — which is where that second figure comes from.
What does it cost to send a payment on Solana?
A base fee of 5,000 lamports per signature, a lamport being one billionth of a SOL, so comfortably under a tenth of a cent. A sender can add an optional priority fee to be included sooner when the network is busy. Neither scales with the amount being sent.
Why does receiving USDC on Solana need a token account?
Because tokens do not sit at an address here. Each address has a separate account per token it holds, and tokens cannot be sent to one that does not exist yet. Wallets and exchanges normally create it as part of the first payment, so this is usually invisible — but it is why a brand-new address is not, by itself, ready to receive USDC.
What does opening a token account cost, and who pays it?
About 0.00203928 SOL, and whoever sends the first payment normally covers it. It is a rent-exempt deposit rather than a fee, so it stays with the account instead of being consumed, and it is paid once per address-and-token pair — not once per payment. Each token needs its own account, so USDC and USDT each cost it separately.
Can a customer pay in USDC if they hold no SOL?
No. The network fee is paid in SOL, so a wallet holding only stablecoins cannot send until it holds a little of the native currency. The amount needed is tiny — a fraction of a cent — but it cannot be zero.
Is USDC on Solana the same as USDC on Ethereum?
The same dollar from the same issuer, on a different network — like the same currency in two bank accounts. The value is equivalent but the rails never mix: a Solana transfer must go to a Solana address, and sending it to an Ethereum address loses it.
Is Solana’s block time really 400 milliseconds?
Today, yes, though slots can run a little longer under load. It is also being reduced: a staged cut to 200 milliseconds in four steps is scheduled, described by its own maintainers as tentative, and had not activated on mainnet when this page was last checked. Treat any flat statement of 400 milliseconds — including this one — as a snapshot with a date on it.
Sources
Every figure on this page comes from one of these documents. Each was read on the date shown rather than recalled.
Try the flow with test money first
Create an invoice on a test network, pay it with faucet funds, and watch detection and confirmation arrive as two separate events — the same pair you will build against in production.
Start free