Minimum Algo Balance for opting new ASA

I wanted to raise the topic for discussion about the requirement to have minimum of 1 ALGO Balance to opt into an ASA Asset. I this this could be a barrier for adoption of various use cases.

As per the offical Algorand Website, the use cases and different types of coins where ASA can be used are

Reference link - https://www.algorand.com/technology#ALGORAND-STANDARD-ASSETS

Many of these use cases such as loyalty points, games points, system credits etc require a hosted wallet solution for a seamless UX. For example in case of Loyalty Points use case; The loyalty point will be an ASA, the app owner will create a new Algo Wallet for every user and in order to opt into the loyalty point ASA, the app owner will have to airdrop 1 Algo or ask the user to top up 1 Algo ( the later option is a barrier for UX point of view). assuming the app owners does the Algo Balance top up and opt it in the background seamlessly for a new user sign up. In such use cases if let’s say we onboard 10,000 users. The cost of onboarding as per price of $1.41 at the time of writing this topic will be 14,100, if let’s say the price increases to $10, the costs for onboarding 10,000 users for any app will be 100,000. The increase in price can actually lead to decrease in adoption.

I suggest we should change the minimum
Algo Balance requirements for opting in an ASA from 1 Algo to same as that transaction fees which is 0.001

2 Likes

Actually, the minimum balance is 0.1 Algo per asset (including Algos).
So it’s 0.2 Algos when you opt in to one asset.
Note also that this amount can be recovered when the user leaves the system.

The reason for this minimum balance is to limit the size of the Algorand account table, as all nodes need to store the full Algorand account table.

But I agree that in some scenarios, this might still be too expensive.

2 Likes

Thanks @fabrice - can you share developer docs about recovering the balance when user leaves the system. The withdrawal gives error.

1 Like

“The withdrawal gives error.” – that is too concise, more info is needed for a decent answer…
But the ASA are documented here:

If you want to opt out, then close:

### Opt out and close
eval $g asset send --assetid $asset_id_p1 -f $addr_to_close -t $dest_addr -a 0 --close-to $dest_addr
eval $g clerk send -f $addr_to_close -t $dest_addr -a 0 --close-to $dest_addr
1 Like

In fact it will be more: there will be multiple users who opt in to the same asset in parallel. So 0.2 ALGO per asset is the lower bound, and that’s expensive for NFTs scenario.

1 Like

@fabrice - Is there a community voting proposal that we can initiate to reduce the cost of opt-in asset ?

3 Likes

this is exactly the issue i’am facing right now. as @nadeem said, having a minimum balance to hold a simple asset can lead to decrease in adoption and can also be very expensive. as i’am working on a new project, I found algorand PERFECT but everything blowup once I knew I need to have a minimum balance to hold an asset :confused:

The reason for the minimum balance is that storage on chain is extremely expensive: all the nodes need to have a copy of it! Compare with Amazon S3, where only a few storage-optimized servers are storing your data.
The minimum balance is a way to pay for that.
The minimum balance is strictly better for the user than fees because contrary to fees, it is not lost: you can recover it after selling your NFT.

See Asset Limit Account and Minimum Balance - #2 by fabrice for details

i understand, thank you
Unfortunately this minimum balance per account represent a huge friction for a lot of use cases

From a technical point of view, you can always group a transaction paying the 0.2 minimum balance, the optin, and the sending of the asset.
Would that work for you or is the main issue the fact that 0.2 Algos is too much for your use case?

i was already trying to do it. account 1 have 10 algo balance, and the second 0 algo but wants to opt in for a specific asset. I created a grouped transaction where the first account is paying both fees. the issue is that I need to have a minimum balance on the second account.

and yes my main issue is that fo each user I need to pay 0.2 algo (too much). i’am working on an app and i’am targeting hundreds of users.

opt in should have a flat fee in $ not algos. you see what I mean ?

1 Like

Basically, the minimum balance is an anti-spam measure.