Solana Fee History
Solana transaction fees have two components: a fixed base fee and an optional priority fee. The fee model has evolved significantly since mainnet launch and continues to change through SIMD proposals.
Current fee structure
| Component | Amount | Purpose |
|---|---|---|
| Base fee | 5,000 lamports per signature (~$0.0000007) | Spam prevention, 50% burned, 50% to validator |
| Priority fee | Variable (microlamports per CU) | Transaction ordering within a block |
| Compute budget | 200,000 CU default, 1.4M max | Limits program execution resources |
Total fee = base fee + (priority fee per CU × CUs requested)
Fee history timeline
2020–2022: Fixed fees only
Early Solana had only the base fee. All transactions paid the same 5,000 lamports per signature regardless of complexity or urgency. This was sufficient when network utilization was low.
2022–2023: Priority fees introduced
As network demand increased (NFT mints, DeFi activity), the fixed fee model could not differentiate between urgent and non-urgent transactions. Priority fees were introduced to create a fee market:
Priority fee = computeUnitPrice (microlamports/CU) × computeUnitLimit
Validators order transactions by priority fee, giving higher-paying transactions earlier inclusion.
2024–2025: Local fee markets and SIMD proposals
Several SIMDs (Solana Improvement and Design proposals) addressed fee market improvements:
- Per-account fee markets (hot accounts like popular DEX pools have higher effective fees)
- Better priority fee estimation
- Fee smoothing mechanisms
Ongoing: Future fee evolution
The fee model continues to evolve. Proposals under discussion include:
- Dynamic base fees based on network utilization
- More granular compute pricing
- Improved local fee markets that price access to congested accounts
Priority fee estimation
Applications estimate appropriate priority fees using recent fee data:
const recentFees = await connection.getRecentPrioritizationFees({
lockedWritableAccounts: [accountToWrite],
});
const feesBySlot = recentFees
.filter(f => f.prioritizationFee > 0)
.sort((a, b) => b.slot - a.slot);
const medianFee = feesBySlot[Math.floor(feesBySlot.length / 2)]?.prioritizationFee || 0;
Fee comparison with other chains
| Chain | Typical transaction fee |
|---|---|
| Solana | $0.0001–$0.01 |
| Ethereum L1 | $0.50–$50+ |
| Ethereum L2 (Arbitrum/Base) | $0.01–$0.50 |
| Polygon | $0.001–$0.01 |
FAQ
Why are Solana fees so low? Solana’s architecture processes thousands of transactions per second in parallel, so the network can handle high throughput without fee competition driving prices up. The base fee is intentionally minimal.
Do priority fees guarantee inclusion? No. Priority fees increase the likelihood of inclusion and improve ordering, but during extreme congestion, even well-priced transactions may be dropped. Staked connections (SWQoS) and Jito bundles provide additional inclusion guarantees.
Where do fees go? 50% of the base fee is burned (permanently removed from supply). The remaining 50% goes to the validator that produced the block. Priority fees go entirely to the validator.
Updated: