Référence de la CLI SPL Token

L'interface en ligne de commande spl-token permet de créer et de gérer des mints, des token accounts, des autorités, des transferts et des extensions Token-2022.

Cette référence correspond à spl-token-cli v5.6.1, la version incluse dans Agave v4.2.1. Exécutez spl-token --version et utilisez <command> --help pour connaître les options exactes disponibles dans votre version installée.

La création de mints, les transferts, les changements d'autorité, les burns, les gels et la fermeture de comptes soumettent des transactions. Vérifiez le cluster, le Token Program, le signataire et les adresses avant d'exécuter une commande. Les modifications sur Mainnet utilisent de vrais actifs.

Installation et aide

Le bundle de distribution de la CLI Agave inclut spl-token. S'il n'est pas installé, utilisez le crate Rust publié :

cargo install spl-token-cli --version 5.6.1
spl-token --version

Consultez l'aide à la racine ou au niveau d'une commande :

spl-token --help
spl-token create-token --help
spl-token transfer --help

Options globales

Placez les options globales avant la commande.

OptionUtilité
-u, --url <URL_OR_MONIKER>Sélectionne une URL RPC ou mainnet-beta, testnet, devnet ou localhost.
-C, --config <PATH>Utilise un autre fichier de configuration de la CLI Solana.
--fee-payer <KEYPAIR>Sélectionne le compte qui paie les frais de transaction.
-p, --program-id <ADDRESS>Utilise un ID de Token Program explicite.
--program-2022Utilise Token-2022 (TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb).
--output <FORMAT>Renvoie json ou json-compact lorsque c'est pris en charge.
--with-compute-unit-limit <UNITS>Définit la limite d'unités de calcul de la transaction.
--with-compute-unit-price <MICRO_LAMPORTS>Définit le prix de priorité par unité de calcul.
-v, --verboseAffiche des informations supplémentaires.
-V, --versionAffiche la version installée de la CLI.

Le programme par défaut est le Token Program d'origine. Utilisez --program-2022 pour un mint ou un compte Token-2022, y compris pour le consulter. Une commande échoue si le programme sélectionné n'est pas propriétaire de l'adresse fournie.

Créer et utiliser un token

Les commandes affichent les adresses créées. Conservez l'adresse du mint renvoyée par create-token pour les commandes suivantes.

# Create a six-decimal mint under the original Token Program.
spl-token --url devnet create-token --decimals 6
# Create the default signer's associated token account for the mint.
spl-token --url devnet create-account <MINT_ADDRESS>
# Mint 100 tokens to that associated token account.
spl-token --url devnet mint <MINT_ADDRESS> 100
# Read supply, balance, and complete mint or account details.
spl-token --url devnet supply <MINT_ADDRESS>
spl-token --url devnet balance <MINT_ADDRESS>
spl-token --url devnet display <MINT_OR_TOKEN_ACCOUNT_ADDRESS>
# Transfer tokens to a wallet and create its associated account if needed.
spl-token --url devnet transfer \
<MINT_ADDRESS> \
10 \
<RECIPIENT_WALLET_ADDRESS> \
--fund-recipient

Les montants sont des montants de token en unités d'interface, ajustés selon les décimales du mint. Des commandes telles que transfer, burn et unwrap-sol acceptent ALL lorsque leur aide l'indique.

Créer un mint Token-2022

Les extensions allouent un état supplémentaire au mint ou au compte et doivent généralement être choisies lors de la création du mint. Cet exemple crée un mint à six décimales avec prise en charge des métadonnées intégrées :

spl-token --program-2022 create-token \
--decimals 6 \
--enable-metadata
spl-token --program-2022 initialize-metadata \
<MINT_ADDRESS> \
"Example Token" \
EXAMPLE \
https://example.com/token.json

Les options d'extension courantes de create-token sont notamment :

  • --enable-close
  • --enable-confidential-transfers auto|manual
  • --enable-freeze
  • --enable-group et --enable-member
  • --enable-metadata
  • --enable-non-transferable
  • --enable-pause
  • --enable-permanent-delegate
  • --enable-permissioned-burn
  • --enable-transfer-hook ou --transfer-hook <PROGRAM_ID>
  • --interest-rate <BASIS_POINTS>
  • --transfer-fee-basis-points <BASIS_POINTS> avec --transfer-fee-maximum-fee <AMOUNT>
  • --ui-amount-multiplier <MULTIPLIER>

Ne combinez que des extensions que le programme Token-2022 autorise ensemble. Consultez le guide des extensions Token-2022 approprié avant de créer une configuration de mint irréversible.

Gérer les autorités et les délégués

# Change the mint authority.
spl-token authorize <MINT_ADDRESS> mint <NEW_AUTHORITY_ADDRESS>
# Permanently remove the mint authority.
spl-token authorize <MINT_ADDRESS> mint --disable
# Let a delegate spend up to 25 tokens from one token account.
spl-token approve \
<TOKEN_ACCOUNT_ADDRESS> \
25 \
<DELEGATE_ADDRESS>
# Remove the current delegate.
spl-token revoke <TOKEN_ACCOUNT_ADDRESS>

authorize prend en charge les types d'autorité mint, freeze, owner, close et ceux spécifiques aux extensions. La suppression d'une autorité avec --disable est permanente si aucun autre mécanisme de programme ne peut la rétablir.

Geler, brûler et fermer

spl-token freeze <TOKEN_ACCOUNT_ADDRESS>
spl-token thaw <TOKEN_ACCOUNT_ADDRESS>
spl-token burn <TOKEN_ACCOUNT_ADDRESS> 5
# A token account must normally have a zero token balance before closing.
spl-token close --address <TOKEN_ACCOUNT_ADDRESS>

burn réduit à la fois le solde du compte et l'offre totale. close renvoie les lamports restants du compte au destinataire configuré ; il ne permet pas de récupérer les tokens brûlés.

Wrapper et unwrapper du SOL

# Create or fund the owner's wrapped SOL token account.
spl-token wrap 1
# Unwrap part of the wrapped SOL balance.
spl-token unwrap-sol 0.25
# Close the wrapped SOL account and return its full lamport balance.
spl-token unwrap

Utilisez sync-native après avoir transféré des lamports directement vers un token account de SOL wrappé afin que son montant de tokens corresponde aux lamports sous-jacents.

Signature multisig

Créez un multisig M-sur-N du Token Program avec jusqu'à 11 membres :

spl-token create-multisig \
2 \
<MEMBER_1_ADDRESS> \
<MEMBER_2_ADDRESS> \
<MEMBER_3_ADDRESS>

Pour une transaction contrôlée par ce multisig, transmettez l'adresse du multisig comme autorité concernée et fournissez les keypairs des membres via des valeurs --multisig-signer répétées. Consultez l'aide de la commande ciblée, car son indicateur d'autorité principale varie selon l'opération.

Soldes confidentiels

Les commandes de solde confidentiel nécessitent un mint Token-2022 configuré pour les transferts confidentiels et un compte destinataire configuré.

spl-token --program-2022 configure-confidential-transfer-account \
--address <TOKEN_ACCOUNT_ADDRESS>
spl-token --program-2022 deposit-confidential-tokens \
<MINT_ADDRESS> \
10 \
--address <TOKEN_ACCOUNT_ADDRESS>
spl-token --program-2022 apply-pending-balance \
--address <TOKEN_ACCOUNT_ADDRESS>
spl-token --program-2022 withdraw-confidential-tokens \
<MINT_ADDRESS> \
5 \
--address <TOKEN_ACCOUNT_ADDRESS>
spl-token --program-2022 transfer \
<MINT_ADDRESS> \
1 \
<RECIPIENT_ADDRESS> \
--confidential

Pour configure-confidential-transfer-account et apply-pending-balance, transmettez soit --address <TOKEN_ACCOUNT_ADDRESS>, soit un <MINT_ADDRESS> positionnel, mais pas les deux. La forme positionnelle utilise l'associated token account du propriétaire. Les dépôts et retraits prennent toujours le mint et acceptent --address pour remplacer ce compte par défaut.

Utilisez enable-confidential-credits, disable-confidential-credits, enable-non-confidential-credits et disable-non-confidential-credits pour contrôler les dépôts que le compte accepte. Ces paramètres affectent la confidentialité du compte et la compatibilité des paiements ; inspectez le compte avant de les modifier.

Index complet des commandes

L'index suivant inclut toutes les commandes de premier niveau de spl-token-cli v5.6.1.

CommandeDescription
accountsListe les token accounts appartenant à un portefeuille, avec un filtre facultatif par mint.
addressAffiche l'adresse du portefeuille sélectionné ou son adresse d'associated token account.
apply-pending-balanceDéplace les tokens confidentiels en attente vers le solde confidentiel disponible.
approveApprouve un délégué et une autorisation de dépense pour un token account.
authorizeModifie ou désactive une autorité de mint, de compte ou d'extension.
balanceAffiche le solde d'un token account.
benchExécute des commandes de benchmark de tokens.
burnDétruit des tokens d'un compte et réduit l'offre du mint.
closeFerme un token account éligible et récupère ses lamports.
close-mintFerme un mint Token-2022 configuré avec l'extension close-mint.
configure-confidential-transfer-accountConfigure un compte pour utiliser les transferts confidentiels.
create-accountCrée un token account associé ou auxiliaire.
create-multisigCrée un multisig M-sur-N du Token Program.
create-tokenCrée un mint, éventuellement avec des extensions Token-2022.
deposit-confidential-tokensDéplace des tokens non confidentiels vers un solde confidentiel en attente.
disable-confidential-creditsRefuse les transferts confidentiels entrants pour un compte.
disable-cpi-guardDésactive CPI Guard pour un compte.
disable-non-confidential-creditsRefuse les transferts non confidentiels entrants pour un compte confidentiel.
disable-required-transfer-memosCesse d'exiger que les transferts entrants incluent des mémos.
displayAffiche les détails complets d'un mint, d'un token account ou d'un multisig.
enable-confidential-creditsAccepte les transferts confidentiels entrants pour un compte configuré.
enable-cpi-guardRestreint certaines opérations de token lorsqu'elles sont invoquées via CPI.
enable-non-confidential-creditsAccepte les transferts non confidentiels entrants pour un compte confidentiel.
enable-required-transfer-memosExige que les transferts entrants incluent des mémos.
freezeGèle un token account à l'aide de l'autorité de gel du mint.
gcFerme les token accounts inutiles et consolide les soldes lorsque c'est possible.
helpAffiche l'aide générale ou celle d'une commande.
initialize-groupInitialise la configuration de groupe Token-2022 pour un mint.
initialize-memberAjoute un mint Token-2022 en tant que membre d'un groupe.
initialize-metadataInitialise les métadonnées Token-2022 intégrées.
mintCrée de nouvelles unités de token à l'aide de l'autorité de mint.
pauseMet en pause le mint, le burn et le transfert pour un mint Token-2022 pausable.
resumeReprend les opérations d'un mint Token-2022 en pause.
revokeSupprime le délégué d'un token account.
set-interest-rateMet à jour le taux d'un mint à intérêts.
set-transfer-feeProgramme de nouveaux paramètres de frais de transfert.
set-transfer-hookModifie l'ID du programme de transfer hook d'un mint.
supplyAffiche l'offre totale d'un mint.
sync-nativeSynchronise le montant d'un compte de SOL wrappé avec ses lamports.
thawDégèle un token account gelé.
transferTransfère des tokens vers un token account ou un portefeuille.
unwrapFerme un compte de SOL wrappé et récupère tous les lamports.
unwrap-solRetire une partie ou la totalité du SOL d'un compte de SOL wrappé.
update-confidential-transfer-settingsMet à jour les paramètres d'approbation ou d'auditeur des transferts confidentiels d'un mint.
update-default-account-stateModifie l'état par défaut d'un mint pour les nouveaux token accounts.
update-group-addressModifie l'adresse du pointeur de groupe d'un mint.
update-group-max-sizeModifie le nombre maximal de membres d'un groupe de tokens.
update-member-addressModifie l'adresse du pointeur de membre de groupe d'un mint.
update-metadataModifie ou supprime des champs de métadonnées intégrées.
update-metadata-addressModifie l'adresse du pointeur de métadonnées d'un mint.
update-ui-amount-multiplierProgramme un nouveau multiplicateur de montant d'interface mis à l'échelle.
withdraw-confidential-tokensReplace des tokens confidentiels dans le solde non confidentiel.
withdraw-excess-lamportsRetire les lamports excédant le solde exonéré de loyer d'un compte du Token Program.
withdraw-withheld-tokensRécupère les frais de transfert retenus dans les token accounts ou le mint.
wrapWrappe du SOL dans un token account de mint natif.

Signature structurée et hors ligne

Utilisez la sortie structurée plutôt que d'analyser le texte affiché :

spl-token accounts --output json
spl-token display <MINT_ADDRESS> --output json-compact

Les commandes qui produisent une transaction prennent généralement en charge --sign-only, --blockhash, --signer <PUBKEY=SIGNATURE>, --nonce et --nonce-authority. Les entrées hors ligne exactes dépendent de la commande, des décimales du mint et de la configuration des autorités ; générez donc le message non signé en suivant les instructions --help de cette commande et vérifiez chaque adresse avant de collecter les signatures.

Is this page helpful?

Table des matières

Modifier la page
© 2026 Fondation Solana. Tous droits réservés.