Dokumentacja referencyjna SPL Token CLI

Interfejs wiersza poleceń spl-token służy do tworzenia i zarządzania mintami, token account, uprawnieniami, transferami oraz rozszerzeniami Token-2022.

Ta dokumentacja odpowiada wersji spl-token-cli v5.6.1, dołączonej do Agave v4.2.1. Uruchom spl-token --version i użyj <command> --help, aby sprawdzić dokładne opcje dostępne w zainstalowanej wersji.

Tworzenie mintów, transfery, zmiany uprawnień, spalanie, zamrażanie i zamykanie kont wysyłają transakcje. Przed uruchomieniem polecenia potwierdź klaster, Token Program, podpisującego i adresy. Zmiany w sieci mainnet dotyczą prawdziwych aktywów.

Instalacja i pomoc

Pakiet wydania Agave CLI zawiera spl-token. Jeśli nie jest zainstalowany, użyj opublikowanego crate'a Rusta:

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

Wyświetl pomoc na poziomie głównym lub poszczególnych poleceń:

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

Opcje globalne

Opcje globalne umieszczaj przed poleceniem.

OpcjaPrzeznaczenie
-u, --url <URL_OR_MONIKER>Wybierz adres URL RPC lub mainnet-beta, testnet, devnet albo localhost.
-C, --config <PATH>Użyj innego pliku konfiguracyjnego Solana CLI.
--fee-payer <KEYPAIR>Wybierz konto, które pokrywa opłaty transakcyjne.
-p, --program-id <ADDRESS>Użyj jawnie podanego identyfikatora Token Program.
--program-2022Użyj Token-2022 (TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb).
--output <FORMAT>Zwróć json lub json-compact, tam gdzie jest to obsługiwane.
--with-compute-unit-limit <UNITS>Ustaw limit jednostek obliczeniowych transakcji.
--with-compute-unit-price <MICRO_LAMPORTS>Ustaw cenę priorytetową za jednostkę obliczeniową.
-v, --verbosePokaż dodatkowe dane wyjściowe.
-V, --versionWyświetl wersję zainstalowanego CLI.

Domyślnym programem jest oryginalny Token Program. Użyj --program-2022 dla mintu lub konta Token-2022, również przy jego odczycie. Polecenie kończy się błędem, jeśli wybrany program nie jest właścicielem podanego adresu.

Tworzenie i używanie tokenu

Polecenia wyświetlają utworzone adresy. Zapisz adres mintu zwrócony przez create-token do użycia w kolejnych poleceniach.

# 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

Kwoty to kwoty tokenów w jednostkach UI, dostosowane do liczby miejsc dziesiętnych mintu. Polecenia takie jak transfer, burn i unwrap-sol akceptują ALL tam, gdzie wskazuje to ich pomoc.

Tworzenie mintu Token-2022

Rozszerzenia alokują dodatkowy stan mintu lub konta i zwykle trzeba je wybrać podczas tworzenia mintu. Ten przykład tworzy mint z sześcioma miejscami dziesiętnymi i obsługą osadzonych metadanych:

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

Typowe opcje rozszerzeń create-token to:

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

Łącz tylko te rozszerzenia, które program Token-2022 dopuszcza razem. Zapoznaj się z odpowiednim przewodnikiem po rozszerzeniach Token-2022 przed utworzeniem nieodwracalnej konfiguracji mintu.

Zarządzanie uprawnieniami i delegatami

# 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 obsługuje typy uprawnień: mint, freeze, owner, close oraz specyficzne dla rozszerzeń. Usunięcie uprawnienia za pomocą --disable jest trwałe, jeśli żaden inny mechanizm programu nie może go przywrócić.

Zamrażanie, spalanie i zamykanie

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 zmniejsza zarówno saldo konta, jak i całkowitą podaż. close zwraca pozostałe lamports konta skonfigurowanemu odbiorcy; nie odzyskuje spalonych tokenów.

Wrap i unwrap 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

Użyj sync-native po bezpośrednim przesłaniu lamports na wrapped SOL token account, aby jego kwota tokenów odpowiadała bazowym lamports.

Podpisywanie multisig

Utwórz multisig Token Program typu M-z-N z maksymalnie 11 członkami:

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

W przypadku transakcji kontrolowanej przez ten multisig podaj adres multisig jako odpowiednie uprawnienie i przekaż keypair członków za pomocą powtarzanych wartości --multisig-signer. Sprawdź pomoc docelowego polecenia, ponieważ jego główna flaga uprawnienia różni się w zależności od operacji.

Salda poufne

Polecenia poufnych sald wymagają mintu Token-2022 skonfigurowanego pod poufne transfery oraz skonfigurowanego konta odbiorcy.

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

W przypadku configure-confidential-transfer-account i apply-pending-balance podaj albo --address <TOKEN_ACCOUNT_ADDRESS>, albo pozycyjny argument <MINT_ADDRESS>, ale nie oba naraz. Forma pozycyjna używa associated token account właściciela. Wpłata i wypłata zawsze przyjmują mint i akceptują --address, aby zastąpić to domyślne konto.

Użyj enable-confidential-credits, disable-confidential-credits, enable-non-confidential-credits i disable-non-confidential-credits, aby kontrolować, jakie wpłaty konto akceptuje. Te ustawienia wpływają na prywatność konta i zgodność płatności; przed ich zmianą sprawdź konto.

Pełny indeks poleceń

Poniższy indeks obejmuje wszystkie polecenia najwyższego poziomu w spl-token-cli v5.6.1.

PolecenieOpis
accountsWyświetl token account należące do portfela, opcjonalnie filtrowane według mintu.
addressWyświetl adres wybranego portfela lub adres jego associated token account.
apply-pending-balancePrzenieś oczekujące poufne tokeny do dostępnego salda poufnego.
approveZatwierdź delegata i limit wydatków dla token account.
authorizeZmień lub wyłącz uprawnienie mintu, konta lub rozszerzenia.
balancePokaż saldo token account.
benchUruchom polecenia benchmarkowe tokenów.
burnZniszcz tokeny na koncie i zmniejsz podaż mintu.
closeZamknij kwalifikujący się token account i odzyskaj jego lamports.
close-mintZamknij mint Token-2022 skonfigurowany z rozszerzeniem close-mint.
configure-confidential-transfer-accountSkonfiguruj konto do używania poufnych transferów.
create-accountUtwórz associated token account lub pomocniczy token account.
create-multisigUtwórz multisig Token Program typu M-z-N.
create-tokenUtwórz mint, opcjonalnie z rozszerzeniami Token-2022.
deposit-confidential-tokensPrzenieś niepoufne tokeny do oczekującego salda poufnego.
disable-confidential-creditsOdrzucaj przychodzące poufne transfery dla konta.
disable-cpi-guardWyłącz CPI Guard dla konta.
disable-non-confidential-creditsOdrzucaj przychodzące niepoufne transfery dla konta poufnego.
disable-required-transfer-memosPrzestań wymagać, aby przychodzące transfery zawierały memo.
displayPokaż pełne szczegóły mintu, token account lub multisig.
enable-confidential-creditsAkceptuj przychodzące poufne transfery dla skonfigurowanego konta.
enable-cpi-guardOgranicz wybrane operacje na tokenach wywoływane przez CPI.
enable-non-confidential-creditsAkceptuj przychodzące niepoufne transfery dla konta poufnego.
enable-required-transfer-memosWymagaj, aby przychodzące transfery zawierały memo.
freezeZamroź token account przy użyciu uprawnienia freeze mintu.
gcZamknij zbędne token account i w miarę możliwości skonsoliduj salda.
helpWyświetl pomoc główną lub dla polecenia.
initialize-groupZainicjuj konfigurację grupy Token-2022 dla mintu.
initialize-memberDodaj mint Token-2022 jako członka grupy.
initialize-metadataZainicjuj osadzone metadane Token-2022.
mintUtwórz nowe jednostki tokenu przy użyciu uprawnienia mint authority.
pauseWstrzymaj mint, burn i transfer dla mintu Token-2022 z możliwością wstrzymania.
resumeWznów operacje dla wstrzymanego mintu Token-2022.
revokeUsuń delegata token account.
set-interest-rateZaktualizuj oprocentowanie mintu oprocentowanego.
set-transfer-feeZaplanuj nowe parametry opłaty transferowej.
set-transfer-hookZmień identyfikator programu transfer hook mintu.
supplyPokaż całkowitą podaż mintu.
sync-nativeZsynchronizuj kwotę na koncie wrapped SOL z jego lamports.
thawOdmroź zamrożony token account.
transferPrzelej tokeny na token account lub do portfela.
unwrapZamknij konto wrapped SOL i odzyskaj wszystkie lamports.
unwrap-solUsuń część lub całość SOL z konta wrapped SOL.
update-confidential-transfer-settingsZaktualizuj ustawienia zatwierdzania poufnych transferów lub audytora dla mintu.
update-default-account-stateZmień domyślny stan nowych token account dla mintu.
update-group-addressZmień adres wskaźnika grupy mintu.
update-group-max-sizeZmień maksymalną liczbę członków grupy tokenów.
update-member-addressZmień adres wskaźnika członka grupy mintu.
update-metadataZmień lub usuń pola osadzonych metadanych.
update-metadata-addressZmień adres wskaźnika metadanych mintu.
update-ui-amount-multiplierZaplanuj nowy mnożnik skalowanej kwoty UI.
withdraw-confidential-tokensPrzenieś poufne tokeny z powrotem na saldo niepoufne.
withdraw-excess-lamportsWypłać lamports powyżej salda zwolnionego z opłaty za wynajem (rent-exempt) z konta Token Program.
withdraw-withheld-tokensOdbierz opłaty transferowe zatrzymane w token account lub w mincie.
wrapWykonaj wrap SOL na native mint token account.

Podpisywanie strukturalne i offline

Używaj ustrukturyzowanych danych wyjściowych zamiast parsować tekst wyświetlany:

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

Polecenia tworzące transakcje zwykle obsługują --sign-only, --blockhash, --signer <PUBKEY=SIGNATURE>, --nonce oraz --nonce-authority. Dokładne dane wejściowe offline zależą od polecenia, liczby miejsc dziesiętnych mintu i układu uprawnień, dlatego wygeneruj niepodpisaną wiadomość zgodnie z instrukcjami --help danego polecenia i zweryfikuj każdy adres przed zebraniem podpisów.

Is this page helpful?

Spis treści

Edytuj stronę