Every Solana transaction pays two types of fees: a base fee and an optional prioritization fee. The base fee is 5,000 lamports per signature in the transaction. It is distributed 50% to the block-producing validator and 50% is permanently burned, reducing the circulating SOL supply. This base fee is charged regardless of whether the transaction succeeds or fails.
The prioritization fee is entirely optional and goes 100% to the validator (none is burned). It is calculated as: ceil(compute_unit_price_in_microlamports × compute_unit_limit / 1,000,000) lamports. The fee is based on the requested CU limit, not actual usage — so setting a higher limit than needed means paying for unused compute units.
Total fee = base fee (5,000 lamports/signature, 50% burned) + priority fee (CU_price × CU_limit / 1M lamports, 100% to validator). The fee is always charged, even if the transaction fails.
Solana Fee Structure Documentation
Solana's fee structure differs significantly from Ethereum's gas model. There is no global mempool or fee auction — instead, the transaction scheduler uses the compute unit price as one factor in determining transaction priority alongside other scheduling criteria. Validators using the Jito client also have access to a pseudo-mempool (MempoolStream) that enables more sophisticated ordering based on fees and MEV opportunities.
For multi-signature transactions, note that the base fee scales with the number of signers. A transaction with 3 signers pays 15,000 lamports in base fees alone. Factor this into your total cost calculations when building programs that require multiple signers.
