[Wallet Council][Breakoutgroup][Opt-in]

The point of opt-ins is to serve as an anti spam-ASA feature. However, it is causing significant friction. Since many really feel like it protects them, here’s my suggestion to change it:

  • Keep the opt-in guard as is for initialized addresses.

  • For uninitialized addresses, as part of initializing them you can also pass along whatever ASA you want, so long as you also include the MBR for each ASA.

An address that does not (currently) exist in the ledger is considered uninitialized. Such an address needs to be seeded with 0.1 Algo MBR just to be registered. (I’m ommitting tx fees here.)

This suggestion is helpful in the following scenarios:

  • Giving NFTs to new users at crypto events.

For every person, you have them generate a seed in their wallet and then generate an address. They present that address to the event holder, who sends a group transaction containing 0.2 Algo + 1 NFT ASA. Any additional transfers of NFTs will however need an opt-in, or for them to accept the NFT into a new address.

  • Sending USDC from Coinbase to your address

For an existing address you’ll need to opt in to USDC, or you could generate a fresh address and receive it there instead.

  • One time addresses

Some of the payment providers we have been talking to would like one-time addresses as a minor form of privacy mitigation. So you generate a new address for each payment which will include at least 0.2A + ASA. Without addressing the problems of opt-ins one-time addresses will need 3 transactions instead of 1.

ARC-52 will make it easy to generate thousands of new addresses from a single seed.

There is one concern here. It is possible to “close out” an account, i.e. empty it completely of Algo to signal to the ledger that it should forget it. Thus it would become “Uniinitialized” again. But a spammer could still target such an address, thinking it might come back into use one day.

4 Likes