createAccountAndInitializeMint static method

List<Instruction> createAccountAndInitializeMint({
  1. required Ed25519HDPublicKey mint,
  2. required Ed25519HDPublicKey mintAuthority,
  3. required int rent,
  4. required int space,
  5. required int decimals,
  6. Ed25519HDPublicKey? freezeAuthority,
})

Initialize a new spl token with address mint, decimals decimal places, and mintAuthority as the mint authority.

You can use RPCClient.getMinimumBalanceForRentExemption to determine rent for the required space.

The freezeAuthority is optional and can be used to specify a the freeze authority for this token.

Implementation

static List<Instruction> createAccountAndInitializeMint({
  required Ed25519HDPublicKey mint,
  required Ed25519HDPublicKey mintAuthority,
  required int rent,
  required int space,
  required int decimals,
  Ed25519HDPublicKey? freezeAuthority,
}) =>
    [
      SystemInstruction.createAccount(
        newAccount: mint,
        fundingAccount: mintAuthority,
        lamports: rent,
        space: space,
        owner: Ed25519HDPublicKey.fromBase58(TokenProgram.programId),
      ),
      TokenInstruction.initializeMint(
        mint: mint,
        decimals: decimals,
        mintAuthority: mintAuthority,
        freezeAuthority: freezeAuthority,
      ),
    ];