How Solana transaction fees work
Every Solana transaction pays a fee in SOL. The current fee model has two components: a base fee charged per signature and an optional priority fee that can increase scheduling priority when demand is high.
The base fee is charged per signature
Solana's current documentation lists the base fee at 5,000 lamports per signature. The signature count can include ordinary transaction signatures and supported signature-verification precompiles.
The base fee pays for cryptographic verification. Current runtime documentation says 50% of this base fee is burned and 50% goes to the block-producing validator.
Priority fees are optional and workload-dependent
An application can request a compute-unit price to increase transaction scheduling priority. In the current transaction format, the prioritization fee is calculated from the requested compute-unit price and compute-unit limit.
Paying a larger priority fee does not change what the program is allowed to do. It only influences scheduling priority under competing demand.
Compute settings affect the priority fee
Solana meters program execution in compute units. Current documentation lists a default of 200,000 compute units per non-builtin instruction and a maximum of 1.4 million compute units per transaction.
A common mistake is requesting a much larger compute limit than the transaction actually needs while also setting a compute-unit price. Because the priority fee uses the requested limit, over-allocation can increase cost.
Why can a failed transaction still cost SOL?
The fee payer is charged before execution begins. If an instruction later fails, the transaction's state changes are rolled back, but the network fee is not refunded. That prevents unlimited free execution attempts and still compensates network work.
Transaction fees are not the same as account storage balances
Some operations create new onchain accounts and require those accounts to hold enough lamports to remain rent-exempt under the current account model. That balance is separate from the transaction fee. Depending on the program and account type, lamports held in a closed account may be recoverable.
When estimating the cost of an operation, distinguish the network fee from any SOL that must be placed into newly created accounts.
How to estimate a Solana fee
- Count the charged signatures. Multiply by the current base-fee rate.
- Determine whether a priority fee is being requested. Wallets and applications may estimate this automatically.
- Check the compute-unit limit. The requested limit participates in the priority-fee calculation.
- Separate account funding. New token or program accounts can require additional lamports that are not “fees.”
Solana fee questions
Are Solana transactions free?
No. Every transaction pays a fee in SOL. The current base fee is 5,000 lamports per charged signature, plus any optional priority fee.
What is a lamport?
A lamport is the smallest native unit of SOL. One SOL equals one billion lamports.
Do failed transactions pay a fee?
Yes. Current fee documentation states that the transaction fee is charged even if execution fails.
Does a priority fee guarantee success?
No. It can improve scheduling priority, but the transaction can still fail because of program errors, invalid state, expired blockhashes or other conditions.
Related Solana Factory guides
Sources and further reading
This guide prioritizes current first-party documentation. Network parameters, wallet software and implementation guidance can change, so check primary sources before acting on time-sensitive technical details.
Editorial note: Solana Factory is independent and is not affiliated with or endorsed by the Solana Foundation, Solana Labs, the Ethereum Foundation or any wallet/provider mentioned. References are descriptive. Nothing on this page is financial advice.
