Introduction

Solana has cemented itself as the second-largest smart contract platform behind Ethereum and as the most important L1 to emerge in recent years. Unlike many other established chains, Solana has taken a first-principles approach to building to building a new high-performance blockchain. Given it’s focus on performance, this has led to a number of different design decisions to achieve this goal, including Solana’s unique approach to scaling, it’s leader schedule and even it’s fee market. This piece will take a deep dive into Solana’s fee market, how it works, it’s differences with Ethereum and how this may evolve in the future.

The Importance of Fee Markets

The purpose of a blockchain’s fee market is to enable a mechanism for users to get their transactions included in a block. As block producers are profit seeking, they will seek to include the transactions that will generate the most profit. Given how cyclical demand for blockspace can be, blockchains like Ethereum operate on a Uber-like surge pricing model in which fees rise with demand for blockspace. In addition to the base fee, most blockchains also include a priority fee tip mechanism for those who wish to further incentivise the block producer to include their transaction in the block over others.

Why fee markets matter is that they play a crucial role in the user experience of a blockchain network. Well functioning fee markets ensure user transactions don’t get stuck or worse fail all together, they provide an easy to understand interface for users to estimate what their transaction fee will be and to express the price at which they are willing to pay to be included in the block and in some cases where in the block they want to be included.

Ethereum’s Mempool

To understand how Solana works, it’s helpful to first recap on how Ethereum works. Ethereum uses discrete block-building in which blocks are built one at a time. Blocks are produced on average every 12 seconds. Like most other blockchains, Ethereum operates on a gossip network and mempool model in which transactions submitted by users remain in the transaction memory pool until the network processes them.

image.png

When processed, transactions are propagated throughout the network using a gossip protocol. If the gas price set in the transaction is never reached, transactions can potentially remain in the mempool indefinitely.

Ethereum’s Fee Market

Ethereum uses a variable pricing and tip-based model in which users express their preference to be included in the block through a base fee and priority fee. Users can also set a gas limit, specifying the maximum amount of gas a user can spend on a transaction.

Metamask Advanced Gas Fee

Metamask Advanced Gas Fee

In Ethereum, the transaction fee a user will pay to be included in a block is split into two components:

Fee Component Purpose Type Recipient
Base Fee To have the transaction included in a block Dynamic 100% burned
Priority Fee To be prioritised in the current block Tip 100% block producer

The max base fee set is the maximum base fee the user is willing to pay to be included in the block. If the actual base fee is lower than the maximum base fee set by the user, the excess is refunded to the user. The base fee at the time the transaction is processed is determined by how full the last block was as well as the blocks proceeding it.

As the network gets more congested and a larger portion of blocks are full, the base fee a user is required to pay rises. Vice versa as the network gets less congested the base fee a user is expected to pay will decrease. How this works in practice is that the base fee adjusts on a sliding scale from a maximum increase of 12.5% to a maximum reduction of 12.5% reduction.

For example: