SPL Token CLI-Referenz

Die spl-token-Befehlszeilenschnittstelle erstellt und verwaltet Mints, token accounts, Authorities, Transfers und Token-2022-Erweiterungen.

Diese Referenz folgt spl-token-cli v5.6.1, der in Agave v4.2.1 enthaltenen Version. Führe spl-token --version aus und nutze <command> --help, um die genauen Optionen deiner installierten Version zu sehen.

Mint-Erstellung, Transfers, Authority-Änderungen, Burns, Freezes und das Schließen von Konten lösen Transaktionen aus. Prüfe vor dem Ausführen eines Befehls Cluster, Token Program, Signer und Adressen. Änderungen im Mainnet betreffen echte Assets.

Installation und Hilfe

Das Agave-CLI-Release-Bundle enthält spl-token. Falls es nicht installiert ist, verwende das veröffentlichte Rust-Crate:

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

Rufe die Hilfe auf Root- oder Befehlsebene auf:

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

Globale Optionen

Platziere globale Optionen vor dem Befehl.

OptionZweck
-u, --url <URL_OR_MONIKER>Wähle eine RPC-URL oder mainnet-beta, testnet, devnet oder localhost.
-C, --config <PATH>Verwende eine andere Solana-CLI-Konfigurationsdatei.
--fee-payer <KEYPAIR>Wähle das Konto, das die Transaktions-Fee zahlt.
-p, --program-id <ADDRESS>Verwende eine explizite Token Program ID.
--program-2022Verwende Token-2022 (TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb).
--output <FORMAT>Gib json oder json-compact zurück, sofern unterstützt.
--with-compute-unit-limit <UNITS>Lege das Compute-Unit-Limit der Transaktion fest.
--with-compute-unit-price <MICRO_LAMPORTS>Lege den Prioritätspreis pro Compute Unit fest.
-v, --verboseZeige zusätzliche Ausgaben an.
-V, --versionGib die installierte CLI-Version aus.

Standardmäßig wird das ursprüngliche Token Program verwendet. Nutze --program-2022 für einen Token-2022-Mint oder ein Token-2022-Konto, auch beim Lesen. Ein Befehl schlägt fehl, wenn das ausgewählte Programm die angegebene Adresse nicht besitzt.

Token erstellen und verwenden

Die Befehle geben die erstellten Adressen aus. Speichere die von create-token zurückgegebene Mint-Adresse für die folgenden Befehle.

# 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

Beträge sind UI-Token-Beträge, angepasst an die Dezimalstellen des Mints. Befehle wie transfer, burn und unwrap-sol akzeptieren ALL, wo es in ihrer Hilfe angegeben ist.

Einen Token-2022-Mint erstellen

Erweiterungen belegen zusätzlichen Mint- oder Konto-Status und müssen in der Regel bei der Erstellung des Mints gewählt werden. Dieses Beispiel erstellt einen Mint mit sechs Dezimalstellen und integrierter Metadaten-Unterstützung:

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

Gängige Erweiterungsoptionen für create-token sind:

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

Kombiniere nur Erweiterungen, die das Token-2022-Programm gemeinsam zulässt. Lies den entsprechenden Leitfaden zu Token-2022-Erweiterungen, bevor du eine unwiderrufliche Mint-Konfiguration erstellst.

Authorities und Delegates verwalten

# 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 unterstützt Mint-, Freeze-, Owner-, Close- und erweiterungsspezifische Authority-Typen. Das Entfernen einer Authority mit --disable ist endgültig, wenn kein anderer Programmmechanismus sie wiederherstellen kann.

Einfrieren, Verbrennen und Schließen

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 verringert sowohl das Guthaben des Kontos als auch den Gesamtbestand. close gibt die verbleibenden lamports des Kontos an den konfigurierten Empfänger zurück; verbrannte Token werden dadurch nicht wiederhergestellt.

SOL wrappen und unwrappen

# 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

Verwende sync-native, nachdem du lamports direkt in ein wrapped SOL token account überwiesen hast, damit dessen Token-Betrag den zugrunde liegenden lamports entspricht.

Multisig-Signierung

Erstelle eine M-of-N-Multisig für das Token Program mit bis zu 11 Mitgliedern:

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

Für eine Transaktion, die von dieser Multisig kontrolliert wird, übergib die Multisig-Adresse als relevante Authority und gib die keypairs der Mitglieder über wiederholte --multisig-signer-Werte an. Prüfe die Hilfe des Zielbefehls, da sich dessen primäres Authority-Flag je nach Operation unterscheidet.

Vertrauliche Guthaben

Befehle für vertrauliche Guthaben erfordern einen Token-2022-Mint, der für vertrauliche Transfers konfiguriert ist, sowie ein konfiguriertes Empfängerkonto.

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

Übergib für configure-confidential-transfer-account und apply-pending-balance entweder --address <TOKEN_ACCOUNT_ADDRESS> oder eine positionale <MINT_ADDRESS>, aber nicht beides. Die positionale Form verwendet das associated token account des Owners. Deposit und Withdrawal erwarten immer den Mint und akzeptieren --address, um dieses Standardkonto zu überschreiben.

Verwende enable-confidential-credits, disable-confidential-credits, enable-non-confidential-credits und disable-non-confidential-credits, um zu steuern, welche Einzahlungen das Konto akzeptiert. Diese Einstellungen wirken sich auf die Privatsphäre des Kontos und die Zahlungskompatibilität aus; prüfe das Konto, bevor du sie änderst.

Vollständiger Befehlsindex

Der folgende Index enthält jeden Top-Level-Befehl in spl-token-cli v5.6.1.

BefehlBeschreibung
accountsListet token accounts auf, die einer Wallet gehören, optional nach Mint gefiltert.
addressGibt die ausgewählte Wallet-Adresse oder deren zugehörige Token-Adresse aus.
apply-pending-balanceVerschiebt ausstehende vertrauliche Token in das verfügbare vertrauliche Guthaben.
approveGenehmigt einen Delegate und ein Ausgabelimit für ein token account.
authorizeÄndert oder deaktiviert die Authority eines Mints, Kontos oder einer Erweiterung.
balanceZeigt das Guthaben eines token account an.
benchFührt Token-Benchmarking-Befehle aus.
burnVernichtet Token eines Kontos und verringert den Mint-Bestand.
closeSchließt ein berechtigtes token account und holt dessen lamports zurück.
close-mintSchließt einen Token-2022-Mint, der mit der Close-Mint-Erweiterung konfiguriert ist.
configure-confidential-transfer-accountKonfiguriert ein Konto für vertrauliche Transfers.
create-accountErstellt ein associated token account oder ein zusätzliches token account.
create-multisigErstellt eine M-of-N-Multisig für das Token Program.
create-tokenErstellt einen Mint, optional mit Token-2022-Erweiterungen.
deposit-confidential-tokensVerschiebt nicht vertrauliche Token in ein ausstehendes vertrauliches Guthaben.
disable-confidential-creditsLehnt eingehende vertrauliche Transfers für ein Konto ab.
disable-cpi-guardDeaktiviert CPI Guard für ein Konto.
disable-non-confidential-creditsLehnt eingehende nicht vertrauliche Transfers für ein vertrauliches Konto ab.
disable-required-transfer-memosBeendet die Pflicht, dass eingehende Transfers Memos enthalten müssen.
displayZeigt vollständige Details zu Mint, token account oder Multisig an.
enable-confidential-creditsAkzeptiert eingehende vertrauliche Transfers für ein konfiguriertes Konto.
enable-cpi-guardSchränkt ausgewählte Token-Operationen ein, wenn sie über CPI aufgerufen werden.
enable-non-confidential-creditsAkzeptiert eingehende nicht vertrauliche Transfers für ein vertrauliches Konto.
enable-required-transfer-memosVerlangt, dass eingehende Transfers Memos enthalten.
freezeFriert ein token account mit der Freeze Authority des Mints ein.
gcSchließt nicht benötigte token accounts und konsolidiert Guthaben, wo möglich.
helpGibt die Hilfe auf Root- oder Befehlsebene aus.
initialize-groupInitialisiert die Token-2022-Gruppenkonfiguration für einen Mint.
initialize-memberFügt einen Token-2022-Mint als Gruppenmitglied hinzu.
initialize-metadataInitialisiert eingebettete Token-2022-Metadaten.
mintErzeugt neue Token-Einheiten mithilfe der Mint Authority.
pausePausiert Mint, Burn und Transfer für einen pausierbaren Token-2022-Mint.
resumeSetzt die Operationen eines pausierten Token-2022-Mints fort.
revokeEntfernt den Delegate eines token account.
set-interest-rateAktualisiert den Zinssatz eines verzinslichen Mints.
set-transfer-feePlant neue Parameter für die Transfer-Fee.
set-transfer-hookÄndert die Transfer-Hook-Programm-ID eines Mints.
supplyZeigt den Gesamtbestand eines Mints an.
sync-nativeSynchronisiert den Betrag eines wrapped-SOL-Kontos mit dessen lamports.
thawTaut ein eingefrorenes token account auf.
transferÜberträgt Token an ein token account oder eine Wallet.
unwrapSchließt ein wrapped-SOL-Konto und holt alle lamports zurück.
unwrap-solEntfernt einen Teil oder alles SOL aus einem wrapped-SOL-Konto.
update-confidential-transfer-settingsAktualisiert die Genehmigungs- oder Auditor-Einstellungen für vertrauliche Transfers eines Mints.
update-default-account-stateÄndert den Standardstatus eines Mints für neue token accounts.
update-group-addressÄndert die Gruppen-Pointer-Adresse eines Mints.
update-group-max-sizeÄndert die maximale Mitgliederzahl einer Token-Gruppe.
update-member-addressÄndert die Gruppenmitglied-Pointer-Adresse eines Mints.
update-metadataÄndert oder entfernt eingebettete Metadatenfelder.
update-metadata-addressÄndert die Metadaten-Pointer-Adresse eines Mints.
update-ui-amount-multiplierPlant einen neuen Multiplikator für skalierte UI-Beträge.
withdraw-confidential-tokensVerschiebt vertrauliche Token zurück in das nicht vertrauliche Guthaben.
withdraw-excess-lamportsHebt lamports oberhalb des mietbefreiten Guthabens von einem Konto des Token Program ab.
withdraw-withheld-tokensSammelt einbehaltene Transfer-Fee in token accounts oder im Mint ein.
wrapWrappt SOL in einem token account des nativen Mints.

Strukturierte und Offline-Signierung

Verwende strukturierte Ausgaben, anstatt Anzeigetext zu parsen:

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

Befehle, die Transaktionen erzeugen, unterstützen häufig --sign-only, --blockhash, --signer <PUBKEY=SIGNATURE>, --nonce und --nonce-authority. Die genauen Offline-Eingaben hängen vom Befehl, den Dezimalstellen des Mints und der Authority-Konstellation ab. Erzeuge die unsignierte Nachricht daher anhand der --help-Anweisungen dieses Befehls und prüfe jede Adresse, bevor du Signaturen sammelst.

Is this page helpful?

© 2026 Solana Foundation. Alle Rechte vorbehalten.