Fees

Solana Transaction Fees Explained: Base, Priority and Rent

Cover image for Solana Transaction Fees Explained: Base, Priority and Rent

Solana transaction fees explained: the 5,000-lamport base fee, how priority fees are calculated, why rent is a refundable deposit, and what actions really cost.

By 7 min read1499 words

Key takeaways

  • The Solana base fee is 5,000 lamports (0.000005 SOL) per signature, regardless of what the transaction does.
  • A Solana priority fee equals the compute-unit price in micro-lamports multiplied by the compute-unit limit the transaction requests, and it is optional.
  • Solana rent is a refundable deposit held in an account, not a fee; a standard SPL token account holds 0.00203928 SOL that is returned when the account is closed.
  • A first swap into a new token on Solana often costs about 0.002 SOL extra because the wallet must fund a new token account.
  • Solana fees are fixed in lamports, so their dollar cost rises and falls with the price of SOL.

The short answer#

A Solana transaction costs a base fee of 5,000 lamports (0.000005 SOL) per signature, plus an optional priority fee that depends on how much compute the transaction requests and how busy the network is. Anything larger you see leaving your wallet, such as the familiar 0.002 SOL, is almost always rent: a refundable deposit placed in a new account, not a fee paid to anyone.

What are the three costs of a Solana transaction?#

The three costs are the base fee, the priority fee and rent, and only the first two are actually fees. People mix them up because wallets tend to show one combined "network fee" figure or simply a change in SOL balance.

CostHow it is setWho receives itRefundable?
Base fee5,000 lamports per signature, fixedHalf is burned, half goes to the validatorNo
Priority feeCompute-unit price × compute-unit limit, chosen by the senderThe validator that produces the blockNo
Rent(128 + data bytes) × 3,480 lamports × 2, per new accountNobody; it stays inside the accountYes, when the account is closed

Lamports, briefly#

A lamport is one billionth of a SOL, and it is the unit Solana uses for every balance and fee on chain. 5,000 lamports is 0.000005 SOL; 2,039,280 lamports is 0.00203928 SOL. If the zeros are hard to keep straight, the lamports converter turns one into the other.

How is the Solana base fee calculated?#

The Solana base fee is 5,000 lamports multiplied by the number of signatures on the transaction. It does not depend on the amount sent, the number of instructions or the programs called. A normal wallet transaction has one signature, so it pays 0.000005 SOL. A transaction that also needs a second signer, such as creating a token where a newly generated mint keypair must sign, pays 0.00001 SOL.

The base fee is deducted from the fee payer before the transaction executes. That ordering matters later: it is why a transaction that lands and then fails still costs you, as covered in why Solana transactions fail.

How does the Solana priority fee work?#

The Solana priority fee is an optional tip, set by the sender, that makes a transaction more attractive for a validator to include ahead of others competing for the same accounts. It is defined by two numbers attached through the Compute Budget program: a compute-unit price, in micro-lamports per compute unit, and a compute-unit limit. A compute unit is Solana's measure of execution work, and a micro-lamport is one millionth of a lamport.

The formula is:

priority fee (lamports) = compute-unit price (micro-lamports) × compute-unit limit ÷ 1,000,000

A worked example: a swap requests a limit of 200,000 compute units at a price of 50,000 micro-lamports.

  1. 50,000 × 200,000 = 10,000,000,000 micro-lamports.
  2. Divide by 1,000,000 to get 10,000 lamports.
  3. 10,000 lamports is 0.00001 SOL, twice the base fee.
  4. Total fee for the one-signature transaction: 5,000 + 10,000 = 15,000 lamports, or 0.000015 SOL.

Two details are easy to miss. First, the fee is charged on the limit requested, not on the units actually consumed. If a transaction does not set a limit, it gets a default of 200,000 units per instruction, so an app that sets a tight limit pays less for the same price. Second, Solana's fee market is local. What matters is competition for the specific accounts your transaction writes to, such as a busy liquidity pool, rather than activity across the whole network. A plain transfer can be cheap at the same moment a hot token launch is expensive.

To see current numbers, the free Priority Fee tracker samples the most recent 150 slots, roughly the last minute, and shows Low, Medium, High and Turbo tiers as percentiles of recent fees, with the cost in SOL and USD for a transfer, a token transfer, a swap and an NFT mint. You can paste the pool or token accounts your transaction writes to and see the fee market for those accounts only. Most wallets pick a priority fee automatically; the tracker is useful when you set it yourself or want to know whether "stuck" means "underpriced".

Why is Solana rent not a fee?#

Solana rent is a deposit, because the SOL stays inside the account you created and comes back when the account is closed. Every account on Solana must hold a rent-exempt minimum of (128 + data bytes) × 3,480 lamports per byte-year × 2 years. A standard SPL token account is 165 bytes, which gives 2,039,280 lamports, or 0.00203928 SOL. An 82-byte mint account needs 1,461,600 lamports. Token-2022 accounts can be larger when the mint uses extensions, so their deposit is higher. The rent calculator works out the figure for any size, and the background is in what is Solana rent.

The distinction is practical. A fee is gone. Rent is parked. An active trader who has bought two hundred different tokens has roughly 0.4 SOL sitting in token accounts, most of them empty.

What do common Solana actions really cost?#

Common Solana actions cost between 0.000005 SOL and about 0.02 SOL, and nearly all of the difference is rent rather than fees. The table uses the base fee plus rent; priority fees are extra and vary with congestion, and app or exchange fees are not included.

ActionFees spentRent depositedNotes
Send SOL to an existing wallet0.000005 SOLNoneA brand-new address must receive at least 0.00089088 SOL to exist
Send a token to someone who already holds it0.000005 SOLNone
Send a token to a new holder0.000005 SOL0.00203928 SOLThe sender pays for the recipient's token account
Swap into a token you already hold0.000005 SOL + priorityNoneA temporary wrapped SOL account may be opened and closed in the same transaction
Swap into a token for the first time0.000005 SOL + priority0.00203928 SOLRefundable once the account is empty and closed
Mint a standard Metaplex NFTAbout 0.00001 SOLAbout 0.021 SOLMint, token account, metadata (includes the 0.01 SOL Metaplex fee) and master edition
Create a fungible token with metadataAbout 0.00001 SOLAbout 0.0186 SOLMint, your token account and Metaplex metadata

A few qualifications. The 0.01 SOL Metaplex create fee inside the metadata figure is a true fee paid to Metaplex and does not come back. Compressed NFTs store their data in a shared Merkle tree and hold no rent per NFT, which is why large collections use them. Launch tools add their own charge on top of network costs: the SOLTidy Token Creator, for example, is a flat 0.1 SOL in addition to the roughly 0.0186 SOL of rent.

Why did a "cheap" swap cost 0.002 SOL?#

A swap costs about 0.002 SOL more than expected the first time you buy a token because your wallet has to create a token account for it. The aggregator's transaction includes a create-associated-token-account instruction, and your wallet funds the new account with 0.00203928 SOL. Buy the same token again and the cost drops back to the base fee plus priority fee.

That SOL is recoverable. When you later sell the whole position, the token account remains, empty, still holding its deposit. Closing it returns the full 0.00203928 SOL to your wallet. There are three ways to do that:

  • Some wallets offer to close empty accounts, one at a time.
  • The Solana CLI's spl-token close command does it for free, if you are comfortable in a terminal.
  • The Token Account Closer on SOLTidy scans the wallet and closes empty accounts in batches, for 5% of the recovered rent.

For a handful of accounts the free routes are fine. The batch tool earns its fee when there are dozens or hundreds. An account must have a zero balance before it can be closed, except a wrapped SOL account, which returns its lamports on close. What a typical wallet gets back is worked through in how much SOL you can recover from token accounts.

Why does the dollar cost of Solana fees change?#

The dollar cost of a Solana transaction changes because fees are fixed in lamports while the price of SOL floats. The base fee has been 5,000 lamports per signature regardless of the market. At $150 per SOL, for illustration, that is $0.00075; at $75 it would be half that. The same applies to rent: 0.00203928 SOL is about $0.31 at $150 per SOL and scales directly with the price.

When you want the figure in dollars, euros or pounds at the current rate, the SOL to USD converter shows it alongside the lamport amount. It matters most when budgeting something repetitive, such as an airdrop to thousands of wallets where rent dominates the bill.

For protocol-level detail on fees and the compute budget, the official Solana docs are the reference.

Bottom line#

Solana fees are small and predictable: 0.000005 SOL per signature, plus a priority fee you can calculate as compute-unit price times compute-unit limit. The amounts that surprise people are rent deposits, above all the 0.00203928 SOL for each new token account, and those are refundable. Check live priority fees before blaming the network for a stuck transaction, and close empty token accounts now and then to get the parked SOL back. I built the tools on this site to make those chores quick; the reasoning is on the about page.

Questions & answers

How much is a Solana transaction fee?

The minimum Solana transaction fee is 5,000 lamports, or 0.000005 SOL, per signature. Most transactions have one signature, so that is the whole mandatory cost. Wallets and apps usually add a priority fee on top, which commonly ranges from a fraction of the base fee to a few times it, and rises sharply for contested accounts during busy periods. Rent deposits for new accounts are separate and refundable.

Why did my Solana swap cost 0.002 SOL?

The first time a wallet receives a particular token, Solana needs a token account to hold it, and that account must contain a rent-exempt deposit of 0.00203928 SOL. The swap transaction creates the account and funds it from your balance. It is not paid to the exchange or the validators. The deposit stays in the token account and returns to you when the account is emptied and closed.

Is Solana rent a fee?

No. Solana rent is a deposit that must sit in every account to keep it stored on chain, sized by the account's data length. The network does not collect it while the account is rent-exempt, which all new accounts must be. Closing the account returns the full deposit to an address the owner chooses. The only related costs that are truly spent are the transaction fees to create and close the account.

How is the Solana priority fee calculated?

The priority fee is the compute-unit price, quoted in micro-lamports, multiplied by the compute-unit limit the transaction requests, then divided by one million to get lamports. A price of 50,000 micro-lamports with a 200,000 unit limit costs 10,000 lamports, or 0.00001 SOL. It is charged on the requested limit, not on the units actually used, so setting a tight limit lowers the fee.

Do failed Solana transactions still cost fees?

Yes, if the transaction was included in a block. A transaction that lands and then fails during execution still pays the base fee and the full priority fee, because validators verified and processed it. State changes are rolled back, so no rent deposit or swap amount is lost. A transaction that expires without ever landing costs nothing at all.

What is a lamport?

A lamport is the smallest unit of SOL: one SOL equals 1,000,000,000 lamports. Solana stores every balance and fee as an integer number of lamports on chain, and wallets convert to SOL for display. Priority fee prices use an even smaller accounting unit, the micro-lamport, which is one millionth of a lamport and exists only for pricing compute units.