gill

buildCreateTokenTransaction

Call Signature

function buildCreateTokenTransaction<TVersion, TFeePayer>(args): Promise<{
  feePayer: Readonly<{
     address: Address<TAddress>;
  }>;
  instructions: readonly IInstruction<string, readonly (IAccountLookupMeta<string, string> | IAccountMeta<string>)[]>[];
  version: TVersion;
}>;

Create a transaction that can create a token with metadata

The transaction has the following defaults:

  • Default version = legacy
  • Default computeUnitLimit:
    • for TOKEN_PROGRAM_ADDRESS => 60_000
    • for TOKEN_2022_PROGRAM_ADDRESS => 10_000

Example

const mint = await generateKeyPairSigner();

const transaction = await buildCreateTokenTransaction({
  feePayer: signer,
  latestBlockhash,
  mint,
  metadata: {
    name: "Test Token",
    symbol: "TEST",
    uri: "https://example.com/metadata.json",
    isMutable: true,
  },
  // tokenProgram: TOKEN_PROGRAM_ADDRESS, // default
  // tokenProgram: TOKEN_2022_PROGRAM_ADDRESS,
});

Type Parameters

Type ParameterDefault type
TVersion extends TransactionVersion"legacy"
TFeePayer extends TransactionSignerTransactionSigner

Parameters

ParameterType
args{ computeUnitLimit?: number | bigint; computeUnitPrice?: number | bigint; latestBlockhash?: undefined; version?: TVersion; } & { decimals?: number | bigint; feePayer: Address | TransactionSigner; freezeAuthority?: Address | TransactionSigner; metadata: { isMutable: boolean; name: string; symbol: string; uri: string; }; metadataAddress?: Address; mint: KeyPairSigner; mintAuthority?: TransactionSigner; tokenProgram?: Address; updateAuthority?: TransactionSigner; }

Returns

Promise<{ feePayer: Readonly<{ address: Address<TAddress>; }>; instructions: readonly IInstruction<string, readonly (IAccountLookupMeta<string, string> | IAccountMeta<string>)[]>[]; version: TVersion; }>

Call Signature

function buildCreateTokenTransaction<TVersion, TFeePayer, TLifetimeConstraint>(args): Promise<{
  feePayer: Readonly<{
     address: Address<TAddress>;
  }>;
  instructions: readonly IInstruction<string, readonly (IAccountLookupMeta<string, string> | IAccountMeta<string>)[]>[];
  lifetimeConstraint: BlockhashLifetimeConstraint;
  version: TVersion;
}>;

Create a transaction that can create a token with metadata

The transaction has the following defaults:

  • Default version = legacy
  • Default computeUnitLimit:
    • for TOKEN_PROGRAM_ADDRESS => 60_000
    • for TOKEN_2022_PROGRAM_ADDRESS => 10_000

Example

const mint = await generateKeyPairSigner();

const transaction = await buildCreateTokenTransaction({
  feePayer: signer,
  latestBlockhash,
  mint,
  metadata: {
    name: "Test Token",
    symbol: "TEST",
    uri: "https://example.com/metadata.json",
    isMutable: true,
  },
  // tokenProgram: TOKEN_PROGRAM_ADDRESS, // default
  // tokenProgram: TOKEN_2022_PROGRAM_ADDRESS,
});

Type Parameters

Type ParameterDefault type
TVersion extends TransactionVersion"legacy"
TFeePayer extends TransactionSignerTransactionSigner
TLifetimeConstraint extends Readonly<{ blockhash: Blockhash; lastValidBlockHeight: bigint; }>Readonly<{ blockhash: Blockhash; lastValidBlockHeight: bigint; }>

Parameters

ParameterType
args{ computeUnitLimit?: number | bigint; computeUnitPrice?: number | bigint; latestBlockhash?: TLifetimeConstraint; version?: TVersion; } & { decimals?: number | bigint; feePayer: Address | TransactionSigner; freezeAuthority?: Address | TransactionSigner; metadata: { isMutable: boolean; name: string; symbol: string; uri: string; }; metadataAddress?: Address; mint: KeyPairSigner; mintAuthority?: TransactionSigner; tokenProgram?: Address; updateAuthority?: TransactionSigner; }

Returns

Promise<{ feePayer: Readonly<{ address: Address<TAddress>; }>; instructions: readonly IInstruction<string, readonly (IAccountLookupMeta<string, string> | IAccountMeta<string>)[]>[]; lifetimeConstraint: BlockhashLifetimeConstraint; version: TVersion; }>

On this page