1

Here we see that anybody can create an ATA for anybody else's wallet for any token:

But the process of enforcing Token-2022 Program's immutable ownership extension is applied to ATA at the time of ATA creation:

Above we see that createInitializeImmutableOwnerInstruction is performed in a transaction that creates the ATA right before createInitializeAccountInstruction in the transaction, all of which happens well after the creation of a mint that doesn't speak to enforcing immutable ownership in any way.

How can we ensure that a 3rd party that creates these ATAs for your token for somebody's wallet is indeed creating those ATAs with immutable ownership?

I do see this seemingly ambiguous statement: The Associated Token Account program always uses this extension when creating accounts. But I am confused about what this means because if it literally does this by default without any intervention by anyone in any way, why are there instructions and a code example on how to do it? Everything about the context in this documentation gives the impression it is an opt-in extension.

If it really is a perk that comes automatic with using the Token-2022 Program, is there a danger of someone explicitly creating an ATA without immutable ownership?

1 Answer 1

3

Since all associated token accounts (ATAs) are PDAs of the associated token account program (ATA program), only the ATA program can make ATAs and therefore all ATAs will have immutable ownership.

So to answer your question: No, there is no danger of creating an ATA without immutable ownership.

1
  • So immutable ownership is applied by default for all Token-2022 tokens and there is no way to NOT have it be applied when creating ATAs. This is a good thing. Many thanks. The docs make it seem like it is an optional extension! :D
    – OCDev
    Sep 13, 2022 at 21:50

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.