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.1spl-token --version
Wyświetl pomoc na poziomie głównym lub poszczególnych poleceń:
spl-token --helpspl-token create-token --helpspl-token transfer --help
Opcje globalne
Opcje globalne umieszczaj przed poleceniem.
| Opcja | Przeznaczenie |
|---|---|
-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-2022 | Uż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, --verbose | Pokaż dodatkowe dane wyjściowe. |
-V, --version | Wyś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-metadataspl-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-groupi--enable-member--enable-metadata--enable-non-transferable--enable-pause--enable-permanent-delegate--enable-permissioned-burn--enable-transfer-hooklub--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.
| Polecenie | Opis |
|---|---|
accounts | Wyświetl token account należące do portfela, opcjonalnie filtrowane według mintu. |
address | Wyświetl adres wybranego portfela lub adres jego associated token account. |
apply-pending-balance | Przenieś oczekujące poufne tokeny do dostępnego salda poufnego. |
approve | Zatwierdź delegata i limit wydatków dla token account. |
authorize | Zmień lub wyłącz uprawnienie mintu, konta lub rozszerzenia. |
balance | Pokaż saldo token account. |
bench | Uruchom polecenia benchmarkowe tokenów. |
burn | Zniszcz tokeny na koncie i zmniejsz podaż mintu. |
close | Zamknij kwalifikujący się token account i odzyskaj jego lamports. |
close-mint | Zamknij mint Token-2022 skonfigurowany z rozszerzeniem close-mint. |
configure-confidential-transfer-account | Skonfiguruj konto do używania poufnych transferów. |
create-account | Utwórz associated token account lub pomocniczy token account. |
create-multisig | Utwórz multisig Token Program typu M-z-N. |
create-token | Utwórz mint, opcjonalnie z rozszerzeniami Token-2022. |
deposit-confidential-tokens | Przenieś niepoufne tokeny do oczekującego salda poufnego. |
disable-confidential-credits | Odrzucaj przychodzące poufne transfery dla konta. |
disable-cpi-guard | Wyłącz CPI Guard dla konta. |
disable-non-confidential-credits | Odrzucaj przychodzące niepoufne transfery dla konta poufnego. |
disable-required-transfer-memos | Przestań wymagać, aby przychodzące transfery zawierały memo. |
display | Pokaż pełne szczegóły mintu, token account lub multisig. |
enable-confidential-credits | Akceptuj przychodzące poufne transfery dla skonfigurowanego konta. |
enable-cpi-guard | Ogranicz wybrane operacje na tokenach wywoływane przez CPI. |
enable-non-confidential-credits | Akceptuj przychodzące niepoufne transfery dla konta poufnego. |
enable-required-transfer-memos | Wymagaj, aby przychodzące transfery zawierały memo. |
freeze | Zamroź token account przy użyciu uprawnienia freeze mintu. |
gc | Zamknij zbędne token account i w miarę możliwości skonsoliduj salda. |
help | Wyświetl pomoc główną lub dla polecenia. |
initialize-group | Zainicjuj konfigurację grupy Token-2022 dla mintu. |
initialize-member | Dodaj mint Token-2022 jako członka grupy. |
initialize-metadata | Zainicjuj osadzone metadane Token-2022. |
mint | Utwórz nowe jednostki tokenu przy użyciu uprawnienia mint authority. |
pause | Wstrzymaj mint, burn i transfer dla mintu Token-2022 z możliwością wstrzymania. |
resume | Wznów operacje dla wstrzymanego mintu Token-2022. |
revoke | Usuń delegata token account. |
set-interest-rate | Zaktualizuj oprocentowanie mintu oprocentowanego. |
set-transfer-fee | Zaplanuj nowe parametry opłaty transferowej. |
set-transfer-hook | Zmień identyfikator programu transfer hook mintu. |
supply | Pokaż całkowitą podaż mintu. |
sync-native | Zsynchronizuj kwotę na koncie wrapped SOL z jego lamports. |
thaw | Odmroź zamrożony token account. |
transfer | Przelej tokeny na token account lub do portfela. |
unwrap | Zamknij konto wrapped SOL i odzyskaj wszystkie lamports. |
unwrap-sol | Usuń część lub całość SOL z konta wrapped SOL. |
update-confidential-transfer-settings | Zaktualizuj ustawienia zatwierdzania poufnych transferów lub audytora dla mintu. |
update-default-account-state | Zmień domyślny stan nowych token account dla mintu. |
update-group-address | Zmień adres wskaźnika grupy mintu. |
update-group-max-size | Zmień maksymalną liczbę członków grupy tokenów. |
update-member-address | Zmień adres wskaźnika członka grupy mintu. |
update-metadata | Zmień lub usuń pola osadzonych metadanych. |
update-metadata-address | Zmień adres wskaźnika metadanych mintu. |
update-ui-amount-multiplier | Zaplanuj nowy mnożnik skalowanej kwoty UI. |
withdraw-confidential-tokens | Przenieś poufne tokeny z powrotem na saldo niepoufne. |
withdraw-excess-lamports | Wypłać lamports powyżej salda zwolnionego z opłaty za wynajem (rent-exempt) z konta Token Program. |
withdraw-withheld-tokens | Odbierz opłaty transferowe zatrzymane w token account lub w mincie. |
wrap | Wykonaj 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 jsonspl-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?