Solana Local Fee Markets

Notes on how solana local fee markets work


Starting from scratch

Local Fee Markets

Local Fee Markets basically get create when there's a demand for blockspace from a particular hotspot, leading to higher fees for taht activity without affecting the rest of unrelated traansactions

For example, an arbitrary DEX just releasing a new product would see their accounts payuing higher fees to get their transactions added to a block in comparison to other DEXs that are just swapping tokens.

Key points here

  • Fees are added for competing for that limited blockspace.
  • Fees are paid per CU requested of such blockspace
  • Each block has ~48 million CUs available although this can dynamically adapt based on network requirements
  • Each account has a soft cap of 12 million CUs that can be exceeded by paying higher fees. Getting throttled otherwise
  • CU cost is defined by the complexity of the transaction
  • Every transaction has a maximum of 1.4 million CU

For example, the DEX mentioned before can see all its account complete the 12 milling CU soft cap while there is still room in the block (48M are not filled). At this point validators would see a wall when submitting such transactions as there is a local fee market created that require higher fees in order for transactions to coming from that hotspot to be included in the block. However, transactions coming from other DEXs would be included on the block quicker

This priority fee mechanism allows for maintaining block production estable eeven when there is more deman than avaiable blockspace

Global Fee Markets

All transactions require a really high fee to get included because blockspace demand increases and blocks are saturated, thus requiring higher priority fees for validators to include new transactions.

CU throughput

This concept could be understood as the minimum priority fee by CU for a transaction while requiring just the need CUs. This throughput could me measured by account based on priority fees paid, CU requested and consumed per transaction and total block CUs requested. After 12M, priority fees get higher thus making it less efficient to not take into account requested CUs vs Consumed CUs. In this way, throughput could be measured by the minimum CUs requested for a tx at a priority fee with regards to the local market fee that allows transaction latency to be on the average for all transactions sent by an account and comparing such latency (virtual) with the real one obtained

Links