Typescript
SPL Token avec Web3.js

SPL Token avec Web3.js

Instruction Mint To

Crée de nouveaux jetons et les dépose dans un compte donné. Seule l'autorité de mint peut effectuer cette opération.

Avant de pouvoir créer un jeton, nous devons déjà avoir :

  • Initialisé un compte de Mint pour lequel nous détenons la mintAuthority
  • Initialisé un compte de Token ou Associated Token où nous allons créer des jetons dedans

Le nombre de jetons que nous créons est "normalisé" au niveau des décimales. Cela signifie que si nous voulons créer 1 jeton comportant 6 décimales, nous devrons en réalité saisir 1e6 comme montant

Instruction Brute

En utilisant uniquement une instruction "brute" sans aucune abstraction, voici à quoi ressemble la création d'un jeton :

ts
const destination = Keypair.generate();
 
const tokenAccount = await getAssociatedTokenAddress(
    mint.publicKey,
    destination.publicKey,
);
 
// Create ATA creation instruction
const createAtaInstruction = createAssociatedTokenAccountIdempotentInstruction(
    keypair.publicKey, // payer
    tokenAccount, // associated token account address
    destination.publicKey, // owner
    mint.publicKey, // mint
);
 
// Mint tokens to ATA 
const mintToInstruction = createMintToInstruction(
    mint.publicKey, // mint
    tokenAccount, // destination
    keypair.publicKey, // mint authority
    1_000e6, // amount of tokens
);
 
const transaction = new Transaction().add(
    createAtaInstruction,
    mintToInstruction,
);
 
const signature = await sendAndConfirmTransaction(connection, transaction, [keypair]);
 
console.log(`Token accounts created and tokens minted! Check out your TX here: https://explorer.solana.com/tx/${signature}?cluster=devnet`);

Instruction Abstraite

Voici à quoi ressemble la même instruction si elle est abstraite à l'aide de l'instruction mintTo() :

ts
const destination = Keypair.generate();
 
const ata = await getOrCreateAssociatedTokenAccount(
    connection,
    keypair,
    mint,
    destination.publicKey
);
 
console.log(`This is your ATA: ${ata.address}!`)
  
let tx = await mintTo(
    connection,
    keypair,
    mint,
    ata.address,
    keypair.publicKey,
    1e6,
);
 
console.log(`Succesfully Minted!. Transaction Here: https://explorer.solana.com/tx/${tx}?cluster=devnet`)
Blueshift © 2025Commit: 6d01265