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.1spl-token --version
Consultez l'aide à la racine ou au niveau d'une commande :
spl-token --helpspl-token create-token --helpspl-token transfer --help
Options globales
Placez les options globales avant la commande.
| Option | Utilité |
|---|---|
-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-2022 | Utilise 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, --verbose | Affiche des informations supplémentaires. |
-V, --version | Affiche 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-metadataspl-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-groupet--enable-member--enable-metadata--enable-non-transferable--enable-pause--enable-permanent-delegate--enable-permissioned-burn--enable-transfer-hookou--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.
| Commande | Description |
|---|---|
accounts | Liste les token accounts appartenant à un portefeuille, avec un filtre facultatif par mint. |
address | Affiche l'adresse du portefeuille sélectionné ou son adresse d'associated token account. |
apply-pending-balance | Déplace les tokens confidentiels en attente vers le solde confidentiel disponible. |
approve | Approuve un délégué et une autorisation de dépense pour un token account. |
authorize | Modifie ou désactive une autorité de mint, de compte ou d'extension. |
balance | Affiche le solde d'un token account. |
bench | Exécute des commandes de benchmark de tokens. |
burn | Détruit des tokens d'un compte et réduit l'offre du mint. |
close | Ferme un token account éligible et récupère ses lamports. |
close-mint | Ferme un mint Token-2022 configuré avec l'extension close-mint. |
configure-confidential-transfer-account | Configure un compte pour utiliser les transferts confidentiels. |
create-account | Crée un token account associé ou auxiliaire. |
create-multisig | Crée un multisig M-sur-N du Token Program. |
create-token | Crée un mint, éventuellement avec des extensions Token-2022. |
deposit-confidential-tokens | Déplace des tokens non confidentiels vers un solde confidentiel en attente. |
disable-confidential-credits | Refuse les transferts confidentiels entrants pour un compte. |
disable-cpi-guard | Désactive CPI Guard pour un compte. |
disable-non-confidential-credits | Refuse les transferts non confidentiels entrants pour un compte confidentiel. |
disable-required-transfer-memos | Cesse d'exiger que les transferts entrants incluent des mémos. |
display | Affiche les détails complets d'un mint, d'un token account ou d'un multisig. |
enable-confidential-credits | Accepte les transferts confidentiels entrants pour un compte configuré. |
enable-cpi-guard | Restreint certaines opérations de token lorsqu'elles sont invoquées via CPI. |
enable-non-confidential-credits | Accepte les transferts non confidentiels entrants pour un compte confidentiel. |
enable-required-transfer-memos | Exige que les transferts entrants incluent des mémos. |
freeze | Gèle un token account à l'aide de l'autorité de gel du mint. |
gc | Ferme les token accounts inutiles et consolide les soldes lorsque c'est possible. |
help | Affiche l'aide générale ou celle d'une commande. |
initialize-group | Initialise la configuration de groupe Token-2022 pour un mint. |
initialize-member | Ajoute un mint Token-2022 en tant que membre d'un groupe. |
initialize-metadata | Initialise les métadonnées Token-2022 intégrées. |
mint | Crée de nouvelles unités de token à l'aide de l'autorité de mint. |
pause | Met en pause le mint, le burn et le transfert pour un mint Token-2022 pausable. |
resume | Reprend les opérations d'un mint Token-2022 en pause. |
revoke | Supprime le délégué d'un token account. |
set-interest-rate | Met à jour le taux d'un mint à intérêts. |
set-transfer-fee | Programme de nouveaux paramètres de frais de transfert. |
set-transfer-hook | Modifie l'ID du programme de transfer hook d'un mint. |
supply | Affiche l'offre totale d'un mint. |
sync-native | Synchronise le montant d'un compte de SOL wrappé avec ses lamports. |
thaw | Dégèle un token account gelé. |
transfer | Transfère des tokens vers un token account ou un portefeuille. |
unwrap | Ferme un compte de SOL wrappé et récupère tous les lamports. |
unwrap-sol | Retire une partie ou la totalité du SOL d'un compte de SOL wrappé. |
update-confidential-transfer-settings | Met à jour les paramètres d'approbation ou d'auditeur des transferts confidentiels d'un mint. |
update-default-account-state | Modifie l'état par défaut d'un mint pour les nouveaux token accounts. |
update-group-address | Modifie l'adresse du pointeur de groupe d'un mint. |
update-group-max-size | Modifie le nombre maximal de membres d'un groupe de tokens. |
update-member-address | Modifie l'adresse du pointeur de membre de groupe d'un mint. |
update-metadata | Modifie ou supprime des champs de métadonnées intégrées. |
update-metadata-address | Modifie l'adresse du pointeur de métadonnées d'un mint. |
update-ui-amount-multiplier | Programme un nouveau multiplicateur de montant d'interface mis à l'échelle. |
withdraw-confidential-tokens | Replace des tokens confidentiels dans le solde non confidentiel. |
withdraw-excess-lamports | Retire les lamports excédant le solde exonéré de loyer d'un compte du Token Program. |
withdraw-withheld-tokens | Récupère les frais de transfert retenus dans les token accounts ou le mint. |
wrap | Wrappe 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 jsonspl-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?