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.1spl-token --version
Rufe die Hilfe auf Root- oder Befehlsebene auf:
spl-token --helpspl-token create-token --helpspl-token transfer --help
Globale Optionen
Platziere globale Optionen vor dem Befehl.
| Option | Zweck |
|---|---|
-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-2022 | Verwende 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, --verbose | Zeige zusätzliche Ausgaben an. |
-V, --version | Gib 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-metadataspl-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-groupund--enable-member--enable-metadata--enable-non-transferable--enable-pause--enable-permanent-delegate--enable-permissioned-burn--enable-transfer-hookoder--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.
| Befehl | Beschreibung |
|---|---|
accounts | Listet token accounts auf, die einer Wallet gehören, optional nach Mint gefiltert. |
address | Gibt die ausgewählte Wallet-Adresse oder deren zugehörige Token-Adresse aus. |
apply-pending-balance | Verschiebt ausstehende vertrauliche Token in das verfügbare vertrauliche Guthaben. |
approve | Genehmigt einen Delegate und ein Ausgabelimit für ein token account. |
authorize | Ändert oder deaktiviert die Authority eines Mints, Kontos oder einer Erweiterung. |
balance | Zeigt das Guthaben eines token account an. |
bench | Führt Token-Benchmarking-Befehle aus. |
burn | Vernichtet Token eines Kontos und verringert den Mint-Bestand. |
close | Schließt ein berechtigtes token account und holt dessen lamports zurück. |
close-mint | Schließt einen Token-2022-Mint, der mit der Close-Mint-Erweiterung konfiguriert ist. |
configure-confidential-transfer-account | Konfiguriert ein Konto für vertrauliche Transfers. |
create-account | Erstellt ein associated token account oder ein zusätzliches token account. |
create-multisig | Erstellt eine M-of-N-Multisig für das Token Program. |
create-token | Erstellt einen Mint, optional mit Token-2022-Erweiterungen. |
deposit-confidential-tokens | Verschiebt nicht vertrauliche Token in ein ausstehendes vertrauliches Guthaben. |
disable-confidential-credits | Lehnt eingehende vertrauliche Transfers für ein Konto ab. |
disable-cpi-guard | Deaktiviert CPI Guard für ein Konto. |
disable-non-confidential-credits | Lehnt eingehende nicht vertrauliche Transfers für ein vertrauliches Konto ab. |
disable-required-transfer-memos | Beendet die Pflicht, dass eingehende Transfers Memos enthalten müssen. |
display | Zeigt vollständige Details zu Mint, token account oder Multisig an. |
enable-confidential-credits | Akzeptiert eingehende vertrauliche Transfers für ein konfiguriertes Konto. |
enable-cpi-guard | Schränkt ausgewählte Token-Operationen ein, wenn sie über CPI aufgerufen werden. |
enable-non-confidential-credits | Akzeptiert eingehende nicht vertrauliche Transfers für ein vertrauliches Konto. |
enable-required-transfer-memos | Verlangt, dass eingehende Transfers Memos enthalten. |
freeze | Friert ein token account mit der Freeze Authority des Mints ein. |
gc | Schließt nicht benötigte token accounts und konsolidiert Guthaben, wo möglich. |
help | Gibt die Hilfe auf Root- oder Befehlsebene aus. |
initialize-group | Initialisiert die Token-2022-Gruppenkonfiguration für einen Mint. |
initialize-member | Fügt einen Token-2022-Mint als Gruppenmitglied hinzu. |
initialize-metadata | Initialisiert eingebettete Token-2022-Metadaten. |
mint | Erzeugt neue Token-Einheiten mithilfe der Mint Authority. |
pause | Pausiert Mint, Burn und Transfer für einen pausierbaren Token-2022-Mint. |
resume | Setzt die Operationen eines pausierten Token-2022-Mints fort. |
revoke | Entfernt den Delegate eines token account. |
set-interest-rate | Aktualisiert den Zinssatz eines verzinslichen Mints. |
set-transfer-fee | Plant neue Parameter für die Transfer-Fee. |
set-transfer-hook | Ändert die Transfer-Hook-Programm-ID eines Mints. |
supply | Zeigt den Gesamtbestand eines Mints an. |
sync-native | Synchronisiert den Betrag eines wrapped-SOL-Kontos mit dessen lamports. |
thaw | Taut ein eingefrorenes token account auf. |
transfer | Überträgt Token an ein token account oder eine Wallet. |
unwrap | Schließt ein wrapped-SOL-Konto und holt alle lamports zurück. |
unwrap-sol | Entfernt einen Teil oder alles SOL aus einem wrapped-SOL-Konto. |
update-confidential-transfer-settings | Aktualisiert 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-multiplier | Plant einen neuen Multiplikator für skalierte UI-Beträge. |
withdraw-confidential-tokens | Verschiebt vertrauliche Token zurück in das nicht vertrauliche Guthaben. |
withdraw-excess-lamports | Hebt lamports oberhalb des mietbefreiten Guthabens von einem Konto des Token Program ab. |
withdraw-withheld-tokens | Sammelt einbehaltene Transfer-Fee in token accounts oder im Mint ein. |
wrap | Wrappt SOL in einem token account des nativen Mints. |
Strukturierte und Offline-Signierung
Verwende strukturierte Ausgaben, anstatt Anzeigetext zu parsen:
spl-token accounts --output jsonspl-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?