Solana Docs for the Token program state that:

It's important to note that the InitializeAccount instruction does not require the Solana
account being initialized also be a signer. The InitializeAccount instruction should be
atomically processed with the system instruction that creates the Solana account by
including both instructions in the same transaction.

On the other hand, docs for the runtime state that:

Only the owner of the account may change owner.
 - And only if the account is writable.
 - And only if the account is not executable.
 - And only if the data is zero-initialized or empty.

So I wonder, is there any downsides/issues/risks on executing the SystemProgram.createAccount and Token. InitializeAccount in different transactions (non atomic) when creating a token account?

1 Answer 1


I see the answer now, the documentation in the actual token program source code goes even further and says the two transactions 'MUST' be included in the same transaction and it explains why:

/// The `InitializeMultisig` instruction requires no signers and MUST be
/// included within the same Transaction as the system program's
/// `CreateAccount` instruction that creates the account being initialized.
/// Otherwise another party can acquire ownership of the uninitialized
/// account.

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.