spl-token komut satırı arayüzü; mint'leri, token account'ları, yetkilileri,
transferleri ve Token-2022 uzantılarını oluşturur ve yönetir.
Bu referans, Agave v4.2.1 ile birlikte gelen
spl-token-cli v5.6.1 sürümünü temel alır. Kurulu sürümünüzde kullanılabilen
tam seçenekleri görmek için spl-token --version komutunu çalıştırın ve
<command> --help kullanın.
Mint oluşturma, transferler, yetki değişiklikleri, yakma (burn), dondurma ve account kapatma işlemleri transaction gönderir. Bir komutu çalıştırmadan önce cluster'ı, Token Program'ı, imzalayanı ve adresleri doğrulayın. Mainnet üzerindeki değişiklikler gerçek varlıkları etkiler.
Kurulum ve yardım alma
Agave CLI sürüm paketi spl-token içerir. Kurulu değilse yayımlanmış
Rust crate'ini kullanın:
cargo install spl-token-cli --version 5.6.1spl-token --version
Yardımı kök düzeyde veya komut düzeyinde görüntüleyin:
spl-token --helpspl-token create-token --helpspl-token transfer --help
Genel seçenekler
Genel seçenekleri komuttan önce yazın.
| Seçenek | Amaç |
|---|---|
-u, --url <URL_OR_MONIKER> | Bir RPC URL'si veya mainnet-beta, testnet, devnet ya da localhost seçin. |
-C, --config <PATH> | Farklı bir Solana CLI yapılandırma dosyası kullanın. |
--fee-payer <KEYPAIR> | Transaction ücretlerini ödeyecek account'u seçin. |
-p, --program-id <ADDRESS> | Açıkça belirtilen bir Token Program ID'si kullanın. |
--program-2022 | Token-2022 kullanın (TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb). |
--output <FORMAT> | Desteklenen yerlerde json veya json-compact biçiminde çıktı döndürür. |
--with-compute-unit-limit <UNITS> | Transaction compute unit sınırını belirleyin. |
--with-compute-unit-price <MICRO_LAMPORTS> | Compute unit başına öncelik ücretini belirleyin. |
-v, --verbose | Ek çıktı gösterir. |
-V, --version | Kurulu CLI sürümünü yazdırır. |
Varsayılan program, orijinal Token Program'dır. Bir Token-2022 mint'i veya
account'u için, okurken de dahil olmak üzere, --program-2022 kullanın. Seçilen
program verilen adrese sahip değilse komut başarısız olur.
Token oluşturma ve kullanma
Komutlar oluşturulan adresleri yazdırır. Sonraki komutlar için create-token
tarafından döndürülen mint adresini kaydedin.
# 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
Tutarlar, mint'in ondalık basamaklarına göre ayarlanmış UI token tutarlarıdır.
transfer, burn ve unwrap-sol gibi komutlar, yardım çıktılarında gösterilen
yerlerde ALL değerini kabul eder.
Token-2022 mint'i oluşturma
Uzantılar ek mint veya account durumu ayırır ve genellikle mint oluşturulurken seçilmelidir. Bu örnek, gömülü metadata desteğine sahip altı ondalık basamaklı bir mint oluşturur:
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
Yaygın create-token uzantı seçenekleri şunlardır:
--enable-close--enable-confidential-transfers auto|manual--enable-freeze--enable-groupve--enable-member--enable-metadata--enable-non-transferable--enable-pause--enable-permanent-delegate--enable-permissioned-burn--enable-transfer-hookveya--transfer-hook <PROGRAM_ID>--interest-rate <BASIS_POINTS>--transfer-fee-basis-points <BASIS_POINTS>ile birlikte--transfer-fee-maximum-fee <AMOUNT>--ui-amount-multiplier <MULTIPLIER>
Yalnızca Token-2022 programının birlikte kullanılmasına izin verdiği uzantıları birleştirin. Geri alınamaz bir mint yapılandırması oluşturmadan önce ilgili Token-2022 uzantı kılavuzunu inceleyin.
Yetkilileri ve delegate'leri yönetme
# 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; mint, freeze, owner, close ve uzantıya özgü yetki türlerini
destekler. --disable ile bir yetkiyi kaldırmak, başka hiçbir program mekanizması
onu geri getiremiyorsa kalıcıdır.
Dondurma, yakma ve kapatma
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 hem account bakiyesini hem de toplam arzı azaltır. close, account'taki
kalan lamport'ları yapılandırılmış alıcıya iade eder; yakılan token'ları geri
getirmez.
SOL wrap ve unwrap işlemleri
# 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
Lamport'ları doğrudan wrapped SOL token account'una aktardıktan sonra, token
tutarının alttaki lamport'larla eşleşmesi için sync-native kullanın.
Multisig ile imzalama
En fazla 11 üyeli bir M-of-N Token Program multisig'i oluşturun:
spl-token create-multisig \2 \<MEMBER_1_ADDRESS> \<MEMBER_2_ADDRESS> \<MEMBER_3_ADDRESS>
Bu multisig tarafından kontrol edilen bir transaction için multisig adresini
ilgili yetkili olarak verin ve üye keypair'lerini tekrarlanan
--multisig-signer değerleriyle sağlayın. Birincil yetkili bayrağı işleme göre
değiştiği için hedef komutun yardımını kontrol edin.
Gizli bakiyeler
Gizli bakiye komutları, gizli transferler için yapılandırılmış bir Token-2022 mint'i ve yapılandırılmış bir alıcı account gerektirir.
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
configure-confidential-transfer-account ve apply-pending-balance için
--address <TOKEN_ACCOUNT_ADDRESS> veya konumsal <MINT_ADDRESS> değerinden
yalnızca birini verin, ikisini birden değil. Konumsal biçim, sahibin associated
token account'unu kullanır. Yatırma ve çekme işlemleri her zaman mint'i alır ve
varsayılan account'u geçersiz kılmak için --address kabul eder.
Account'un hangi yatırmaları kabul edeceğini kontrol etmek için
enable-confidential-credits, disable-confidential-credits,
enable-non-confidential-credits ve disable-non-confidential-credits
komutlarını kullanın. Bu ayarlar account gizliliğini ve ödeme uyumluluğunu
etkiler; değiştirmeden önce account'u inceleyin.
Komut dizininin tamamı
Aşağıdaki dizin, spl-token-cli v5.6.1 içindeki tüm üst düzey komutları içerir.
| Komut | Açıklama |
|---|---|
accounts | Bir cüzdanın sahip olduğu token account'ları listeler, isteğe bağlı olarak mint'e göre filtreler. |
address | Seçilen cüzdan adresini veya associated token adresini yazdırır. |
apply-pending-balance | Bekleyen gizli token'ları kullanılabilir gizli bakiyeye taşır. |
approve | Bir token account için delegate'i ve harcama limitini onaylar. |
authorize | Bir mint, account veya uzantı yetkilisini değiştirir ya da devre dışı bırakır. |
balance | Bir token account bakiyesini gösterir. |
bench | Token kıyaslama (benchmark) komutlarını çalıştırır. |
burn | Bir account'taki token'ları yok eder ve mint arzını azaltır. |
close | Uygun bir token account'u kapatır ve lamport'larını geri alır. |
close-mint | close-mint uzantısıyla yapılandırılmış bir Token-2022 mint'ini kapatır. |
configure-confidential-transfer-account | Bir account'u gizli transferleri kullanacak şekilde yapılandırır. |
create-account | Bir associated veya yardımcı token account oluşturur. |
create-multisig | M-of-N Token Program multisig'i oluşturur. |
create-token | İsteğe bağlı olarak Token-2022 uzantılarıyla bir mint oluşturur. |
deposit-confidential-tokens | Gizli olmayan token'ları bekleyen gizli bakiyeye taşır. |
disable-confidential-credits | Bir account için gelen gizli transferleri reddeder. |
disable-cpi-guard | Bir account için CPI Guard'ı devre dışı bırakır. |
disable-non-confidential-credits | Gizli bir account için gelen gizli olmayan transferleri reddeder. |
disable-required-transfer-memos | Gelen transferlerde memo bulunması zorunluluğunu kaldırır. |
display | Mint, token account veya multisig ayrıntılarının tamamını gösterir. |
enable-confidential-credits | Yapılandırılmış bir account için gelen gizli transferleri kabul eder. |
enable-cpi-guard | CPI üzerinden çağrıldığında seçili token işlemlerini kısıtlar. |
enable-non-confidential-credits | Gizli bir account için gelen gizli olmayan transferleri kabul eder. |
enable-required-transfer-memos | Gelen transferlerin memo içermesini zorunlu kılar. |
freeze | Mint'in freeze yetkilisini kullanarak bir token account'u dondurur. |
gc | Gereksiz token account'ları kapatır ve mümkün olduğunda bakiyeleri birleştirir. |
help | Kök veya komut yardımını yazdırır. |
initialize-group | Bir mint için Token-2022 grup yapılandırmasını başlatır. |
initialize-member | Bir Token-2022 mint'ini grup üyesi olarak ekler. |
initialize-metadata | Gömülü Token-2022 metadata'sını başlatır. |
mint | Mint yetkilisini kullanarak yeni token birimleri oluşturur. |
pause | Duraklatılabilir bir Token-2022 mint'i için mint, burn ve transfer işlemlerini duraklatır. |
resume | Duraklatılmış bir Token-2022 mint'i için işlemleri sürdürür. |
revoke | Bir token account delegate'ini kaldırır. |
set-interest-rate | Faiz getiren bir mint'in oranını günceller. |
set-transfer-fee | Yeni transfer ücreti parametrelerini planlar. |
set-transfer-hook | Bir mint'in transfer hook program ID'sini değiştirir. |
supply | Bir mint'in toplam arzını gösterir. |
sync-native | Wrapped SOL account tutarını lamport'larıyla senkronize eder. |
thaw | Dondurulmuş bir token account'un dondurmasını kaldırır. |
transfer | Token'ları bir token account'a veya cüzdana aktarır. |
unwrap | Bir wrapped SOL account'u kapatır ve tüm lamport'ları geri alır. |
unwrap-sol | Bir wrapped SOL account'tan SOL'ün bir kısmını veya tamamını çıkarır. |
update-confidential-transfer-settings | Bir mint için gizli transfer onayı veya denetçi ayarlarını günceller. |
update-default-account-state | Bir mint'in yeni token account'lar için varsayılan durumunu değiştirir. |
update-group-address | Bir mint'in grup işaretçisi adresini değiştirir. |
update-group-max-size | Bir token grubunun azami üye sayısını değiştirir. |
update-member-address | Bir mint'in grup üyesi işaretçisi adresini değiştirir. |
update-metadata | Gömülü metadata alanlarını değiştirir veya kaldırır. |
update-metadata-address | Bir mint'in metadata işaretçisi adresini değiştirir. |
update-ui-amount-multiplier | Yeni bir ölçeklenmiş UI tutarı çarpanı planlar. |
withdraw-confidential-tokens | Gizli token'ları gizli olmayan bakiyeye geri taşır. |
withdraw-excess-lamports | Bir Token Program account'unda kira muafiyeti bakiyesinin üzerindeki lamport'ları çeker. |
withdraw-withheld-tokens | Token account'larda veya mint'te tutulan transfer ücretlerini toplar. |
wrap | SOL'ü bir native mint token account'unda wrap eder. |
Yapılandırılmış ve çevrimdışı imzalama
Görüntü metnini ayrıştırmak yerine yapılandırılmış çıktıyı kullanın:
spl-token accounts --output jsonspl-token display <MINT_ADDRESS> --output json-compact
Transaction üreten komutlar genellikle --sign-only, --blockhash,
--signer <PUBKEY=SIGNATURE>, --nonce ve --nonce-authority seçeneklerini
destekler. Gereken çevrimdışı girdiler komuta, mint ondalık basamaklarına ve
yetki düzenine bağlıdır; bu nedenle imzasız mesajı ilgili komutun --help
talimatlarına göre oluşturun ve imzaları toplamadan önce her adresi doğrulayın.
Is this page helpful?