FLIP 66 - Revisiting Flow storage minimum account balance

Is there any other chain like Flow where holder is paying instead of creator?

The “who” here is an interesting thing as well, because it could go lots of ways. The Payer of a transaction should in-theory also be able to pay for storage costs should they choose to. Is it the first Authorizer on a tranasction otherwise? That would essentially be the same thing as storage paid by normal users with the exception of the ability to attack someone else

I proposed that some time ago too.

It is pretty good solution actually, but hard to balance the cost. Moving nft inside your account will incur cost.

Also it is a bit non compatible with child accounts. Somehow charging first creation is a must in both cases.

1000x increase is way too astonishing and I’m personally against this number for a few reasons:

  1. As many have mentioned in the post, this would break a lot of things:
    i) Flovatar onchain svgs, other nft projects, marketplaces, et al.;
    ii) User onboarding process and costs - remember that blocto, lilico, nufi, other wallets are paying for account creation fees - raising the bar 1000x would greatly hinder the goal to onboard mass-adoption users;
    iii) Existing accounts, exchange integrations, user experiences, even smart contracts would be impacted or even broken if not made backward compatible - looks like it would happen? as I saw the replies to bt.wood’s question

  2. The question then comes to:
    i) Would Dapper be sponsoring / backfilling the difference of storage requirement for existing accounts?
    YMMV, but to me the answer should clearly be yes: Existing users & UXs are innocent and shouldn’t be affected just due to any non-backward compatible changes.
    ii) Dapper is holding tons of both liquid and staked $flow, the backfilling costs could definitely be covered by either $flow allocated to ecosystem pools, or generated staking rewards.

  3. There should be a way for ppl to totally destruct accounts and reclaim $flow back. Right now there’s no way to do so, for just 0.001 flow imo it’s fine, but if the minimum account balance was changed to 0.1 flow, without destructing & reclaiming ability, it would be a big waste and problem.

  4. IMHO, in order to strengthen economics, raising tx fees should be way more effective than raising storage fees:
    i) Especially right now Flow’s tx fees are negligible, raising tx fees by 100x it’s still cheaper than solana’s tx fee: rn 0.00000843 flow tx cost for a swap trade:
    ii) When evaluating L1’s activity and P/S data, ppl mainly only calculate based on tx fees: https://cryptofees.info.

  5. Lastly, even in the end raising storage fees is a must do, I’d suggest to do in multiple batches: for example 10x raise each time.

I think it can definitely x1000
strong currency brings prosperity to its inhabitants :wink:

to begin with it costs nothing because coin only serves as proof of possession, your loss is nothing

i see you mostly promoting transaction fees , but what do you think disturbs a user more ?

1: pay for every time he has to change his flovatar , or ship it (so effectively lost money)

2:or that user shows that he supports network and must store 2 flow there . and day he is fed up can take his 2 flow home

It’s not really a storage fee since it isn’t paid to anyone. A user needs to self escrow, but there’s no trigger to pay anyone so I don’t see how this offsets the cost of storage…

0.1Flow for each wallet to hold, which can be considered lost - since there is now way for anyone to get “delete” the wallet and retrieve back that amount sounds a lot.
Also, it doesnt add up considering to the 1B token circulating supply.

Are you hiding something regarding the FLOW token circulating supply?
Any upcoming changes?
Also is your intention to drive the value of $flow ($ price) up or you do not consider this in your plan?
Although it would not be possible for you to not have considered to $ price of FLOW for such a change, would it?

In the end, my personal feelings is that this is a discouraging change for flow devs, and for me as a new cadence learner (thanks to Jacob) I am starting to re-think on spending more of time to learn flow dev, as I do not see any good on a 0.1$ min cost per wallet.
It seems like the opposite of easy onboarding and consumer-friendly.

so how soon do you intent to implement that?

It’s a fee charged to everyone using Flow, including both users and projects. Without holding 0.1 flow you can never use your wallet, even moving 1 token out, can you imagine this?

0.1 Flow would sum up a ton and you’re totally right bro. Also see my point 3), there should be a way to totally destruct accounts and releasing any flow “locked” for using chain resources.

There is also a security aspect of keeping storage low; it increases cases when transaction can fail. Developers now have to handle storage failed cases too. ( which most will forget unless they are burned once )

Imagine you are a dev, making merkle proof based drop for a NFT collection. You have an off-chain whitelist, where you check address is in a whitelist, and if so, you let them mint NFT with proof from your server side.

In normal cases, user just sends the proof, and gets the NFT. In case they don’t have enough storage, transaction fails, anyone watching the chain, can see that and send the proof as theirs, and grab the NFT.

Just joining in the conversation, and I have to say, I’m confused by the dramatic change proposal that will surely confuse the community.

Everyone is wanting Flow prices to rise, but forcing people to hold Flow doesn’t encourage people’s behaviours, users should “want” to have $Flow. I agree with @luca about a possible tier system increase - implement a 10x increase requirement, followed by 2 more additional storage increased requirements.

I’ll read some more and come back to converse on the other topics as well. But for now, I think a staggered implementation would be best, to a reasonable ceiling.

As a new Flow Dapp company Traderflow, one that is bringing Forex/Futures Traders to Flow blockchain, these changes are extremely concerning. Please slow down the changes into x10 x10 x10 to look at the dampening effect of those not using blocto/dapper wallet onboarding. The new account storage i believe should always be subzided by the flow foundation as way to burn flow from circulations. What is the worst that can happen 1 billion new users? That is not a bad problem. If we make the new account storageflow part of a burn program we can link Flow success to burn and would help tokenomics alot.

Please note that what I was suggesting is not to increase the fee for any type of TX (like equipping a Flobit on a Flovatar), but instead to increase substantially (even almost 1000x) the cost of the TX when it creates new Resources on the blockchain.
Just like right now it calculate the TX fee based on the amount of loops or data read/write, it could be added an additional parameter that would take into account the increased storage.
In this way the user wouldn’t have to worry to know how much FLOW he needs to keep in account to maintain it operative and each time he could decide if it would be worth spending that amount of money to add the resource to the chain.

Finally, I think it would be also better for the blockchain from a financial point of view, because tokens you burn are more likely to keep the price up, than those that are staked and that could eventually be freed and sold one day.

3 Likes

I feel like I would’ve written an essay but most of my concerns have already been brought up thanks to many community members here. Few more I’ll throw in:

  1. If this change were to happen (or any increase for that matter), it must be the case that Dapper/Flow subsidize the wallets that run out of storage. Users should not be penalized for buying into a system that changes on them later. Especially if Flow is to support “mass adoption,” that can’t be bringing users in and locking their wallets due to transactions failing once costs go up.
  2. Given the point above, the next question becomes “how will wallets subsidize after all is initially settled?” Will Dapper be responsible, for filling Dapper Wallets with enough FLOW to initialize collections? But Lilico is responsible for doing that on their behalf? And same for Blocto, NuFi, etc? Blocto is already slowly leaving the ecosystem, this would only push them out. Then we will all be forced to use Dapper Wallet, unless Dapper/Flow plan to fill accounts upon creation themselves, but then wouldn’t that not bring the price up (edit: I am a horrible economist and probably sound really dumb, but making an educated guess lol), which seems to be the sole goal here:

“what I am working on is improving the intrinsic value of Flow – that’s my primary responsibility imo”

  1. I personally believe that part of the reason why so much data exists on chain now anyways is because infrastructural tools that query the chain like Flowgraph are not being supported enough. Oracles are non existent, and tools querying the chain (like Flowgraph) are so few. Not to mention that Flowgraph itself experiences very frequent downtimes probably because it isn’t funded properly. So the only other option becomes just store event data on chain instead. If we want to reduce storage costs on the chain as a whole, we should look into the root of the problem
  2. Been said before, but want to emphasize that Cadence doesn’t work this way. We can spam an account with NFTs all we want and brick their account. Like others, I strongly suggest the cost of an an asset’s storage get placed on the creator. That fixes so many problems
  3. The ask to setup a collection/vault in Cadence becomes basically impossible now. “Set up this collection to be able to access our site.” Don’t want to do that, sorry, it will cost a dollar. We’ve designed and promoted a system that encourages users to set up their own storage and take proudful ownership over their assets, but are now asking them to be okay with forcefully paying for assets created by others. Of course this design pattern is not new, but really comes to light with increased costs
2 Likes

Hey Jacob, the price oracle for major tokens are here: Oracle States, let’s talk more on discord if you like :slight_smile:

@kshitij.chaudhary have you considered moderating this increase and rather increase tx fees by 1000x?

Hi @everyone, thanks a ton for all the thoughtful feedback.

  1. I’m planning on organizing a live community forum on these topics to steer a healthy discussion with varied viewpoints. I’ll reach out with some time slots soon.
  2. Meanwhile, below is a summary of what we’ve heard so far. Please feel free to add if I’ve missed something important.

SUMMARY

Immediate Concerns

  1. 10kB minimum balance is too low for many use-cases like Flovatarts, Doodles, others that are storing data on-chain
  2. 0.1 FLOW minimum account balance could be too high as a proportion of a dApp’s CAC

Implementation Concerns

  1. Need to re-assess impact based on active user %, and what % of active user use <10kB storage
  2. Developers need to be given some reaction/ planning time before such a big change (1000x) is introduced. Staggered implementation might be a better way
  3. Who should pay - Dapper, wallets, dApps, users - pros and cons
  4. What happens with accounts that don’t get topped up? Will they be blocked until they have sufficient tokens?

Future Concerns

  1. Storage pricing should be predictable for builders and potential builders on Flow
  2. What happens when FLOW becomes $10 or $100 - do we revise the pricing again?
  3. Large state thesis - what happens when we reach a petabyte state in future?
  4. Storage pricing model itself needs to consider more market factors, not just competitive pricing vis-a-vis other blockchains or a linear function of byte length
  5. Storage pricing - minimum balance versus fee charged - ENs pay for storage, charge fee to include in reward equation and offset inflation, etc.
  6. Need capability to destroy accounts and reclaim FLOW

With the proposal, and the tons and tons of comments here, I’m still trying to grasp what this change means. I’d rate myself not too high with respect to knowing all the macro and micro effects such a change could have, but intuitively such a massive increase is problematic for my project, which like Flovatar will be storing NFT assets data on-chain.

For months I’ve crafted the project in such a way that I hope users will frequently process transactions to change their on-chain artwork and build various accessories. The goal is to have people own many accessory layers for their NFTs, like we do with things we own in the real world. If somehow such a drastic change of storage would somehow make that more difficult, this change would be highly problematic for my project, which is a grant project sponsored by Dapper.

IMO the 1000x increase is significant when compared to previous Flow storage fees, but when compared to other chains, having $1 on your account to store NFTs is not unattainable - people may pay more in gas fees in an ETH transfer or when trading using Dapper balance (the higher of $0.40 and 1% per transaction).

There are currently platforms that create thousands of accounts for “potential” users who may never use their Flow account; while this is cool from a tech perspective it also adds a lot of potentially useless data to the chain. Platforms must be mindful of the data they store on chain and avoid adding it simply because they can.

The storage fees may be reconsidered in the future if the FLOW token reaches its previous ATH (~$40), but given the FLOW total supply, I doubt that will happen anytime soon.

Edit to address some concerns above.
Wallet providers are businesses just like any other, hence in my opinion, Dapper shouldn’t subsidize wallets. The wallet provider needs to figure out how to make money from its venture.

Wallets should display low storage information in order to warn users that they won’t be able to store new NFTs if they use up their entire FLOW balance.

Millions for sure, but the problem is this change doesn’t affect them much.

This is the best example that against this change. Now when I go TopShot ( with Dapper Wallet ), I go sell my 1$ moment with my dapper balance I got 0.95$. When I go sell on any open market how much I will get ? 0.57$. ( or something around )

It will be the same with storage fees, I will go Dapper Wallet, I will not think about storage fees. I will go non-custodial or blocto, I have to manage storage fees, or Wallet has to pay for me to stay competitive with Dapper Wallet.

Do we want a world like that?