I was surprised to see this logging appear when my transaction was executed:

"Please upgrade to SPL Token 2022 for immutable owner support"

Leaving aside my surprise at the fact that the Associated Token Program was apparently upgraded without my knowledge, meaning that I cannot be certain that it won't be changed in a way that breaks my program in future, I would like to understand this logging and whether or not I need to respond to it.

For the purposes of transferring a token to a user, I use the SPL Associated Token Account instruction "Create" to create the token account.

However, before doing so, I check to see if the account that the SPL Associated Token Account program would create exists (has > 0 lamports) and is owned by the system account for which the associated token account is to be the owner. If that is the case, then the existing account is used, otherwise the Create instruction is used to create it.

After creating the account and transferring a token to it, my program does not use the account any more, and the user is free to do what they want with it, including re-assigning ownership, without any negative impact on my program.

Given the above, is there any additional benefit to using the token-2022 program and its "ImmutableOwner" feature?

1 Answer 1


Any upgradeable program, including those built in, can be upgraded by the upgrade authority, in order to fix bugs and so forth.

The same would happen for an Api, so solana is no different here really.

The contract is that the arguments and parameters should, however, stay the same - as in no breaking changes for clients between major versions. Otherwise an entirely new version is needed, be it api or solana program.

This is what has happened. A token program update, which would potentially break expectation for clients, so they made token 2022. However, the initialise account instruction, by default, will now try to initialize the account as an immutable owner, but those extensions are only supported by token program 2022, not the original token program.

So, the ATA program is updated with a non-breaking "info" message, informing you if you want that, then you need to upgrade the token.

The benefit is that the owner of the ATA cannot be changed, meaning less vulnerable ATA accounts.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.