Source: https://twitter.com/nickfrosty/status/1727060521608974573
What are account “rent” fees on @solana? Why pay it?
And why will automatic rent fee collection be disabled?
Let’s chat 👇 🧵
“rent” is the small fee that you pay the runtime to allocate account space on the Solana blockchain
(aka the fee you pay for an account’s data to be stored on-chain)
And to be clear:
By “pay the runtime”, I mean you are actually depositing this fee (which is a small fraction of a SOL token) in the account itself. Giving the account a small SOL/lamport token balance.
Why pay this fee? Good question 🧠
Side note:
Unlike other blockchains, on @solana you can actually reclaim this account rent deposit. Allowing the runtime to remove the account’s data, freeing up space in global state
So this “rent” fee is more like a “storage deposit” fee since you can get it back when you want
So why collect a rent fee?
Essentially it monetarily aligns incentives of you (who wants to store some data on-chain) and the validators that are processing this data and transactions
you 🤝 validators
It’s sort of like a “put your money where your mouth is” concept 🤑
These days, newly created on-chain accounts are required to deposit enough into the account to become “rent exempt”
The total deposit required is proportional to the storage space desired and a nerdy calculation of the real cost for storage hardware (based on Moore’s law)
To become rent exempt, an account must have a higher balance than the total cost of the “rent collection fees” over a 2 year period
Essentially, you deposit 2 years of rent fees upfront and no fees will actually be taken. Plus you can still reclaim that deposit anytime you want
Non rent exempt accounts will periodically have their balance automatically deducted by the runtime (aka “collecting rent”) until their balance becomes zero.
Once zero, the account will be garbage collected by the runtime, removing it stored data from Solana’s global state
Rent exempt accounts (i.e those that paid 2 years of rent upfront) will NOT have fees collected from their balance
The account and its stored data will continue to persist in the global state and be accessible to all people and programs. Until manually closed by its owner
When @solana mainnet launched, newly created accounts were not required to be “rent exempt”. There were quite a few of these for a long time
A while ago, it became mandatory for new accounts to be rent exempt by default. Capping the number of “rent collecting accounts”.
⌚ As time progressed, the runtime dutifully collected rent fees from the straggling accounts until their balance got to zero, and then garbage collected and removed
As of very recently:
there are now no longer any accounts on mainnet that have rent being periodically collected!
We are officially rent fee collection free 🎉 🥳
Enter SIMD-84:
This is a proposal to disable the automatic rent fee collection
(this sets the stage to eventually remove quite a bit of code and simplify the runtime altogether)
You can read all the Solana Improvement Document (SIMD) and get your technical gibberish fix satisfied here:
https://github.com/solana-foundation/solana-improvement-documents/pull/84
Thanks for sticking with me in this thread :)
I hope you learned something and I hope you are as excited as many of us are about the progress of our wonderful blockchain we call @solana