Antarmuka baris perintah spl-token digunakan untuk membuat dan mengelola mint, token
account, otoritas, transfer, serta ekstensi Token-2022.
Referensi ini mengacu pada
spl-token-cli v5.6.1,
versi yang dibundel dengan Agave v4.2.1. Jalankan spl-token --version dan gunakan
<command> --help untuk melihat opsi yang tersedia di versi yang Anda instal.
Pembuatan mint, transfer, perubahan otoritas, burn, freeze, dan penutupan akun akan mengirimkan transaksi. Konfirmasikan cluster, Token Program, signer, dan alamat sebelum menjalankan perintah. Perubahan di mainnet menggunakan aset sungguhan.
Instal dan dapatkan bantuan
Paket rilis Agave CLI sudah menyertakan spl-token. Jika belum terinstal, gunakan
crate Rust yang dipublikasikan:
cargo install spl-token-cli --version 5.6.1spl-token --version
Lihat bantuan di tingkat root atau tingkat perintah:
spl-token --helpspl-token create-token --helpspl-token transfer --help
Opsi global
Letakkan opsi global sebelum perintah.
| Opsi | Fungsi |
|---|---|
-u, --url <URL_OR_MONIKER> | Pilih URL RPC atau mainnet-beta, testnet, devnet, atau localhost. |
-C, --config <PATH> | Gunakan file konfigurasi Solana CLI yang berbeda. |
--fee-payer <KEYPAIR> | Pilih akun yang membayar biaya transaksi. |
-p, --program-id <ADDRESS> | Gunakan Token Program ID secara eksplisit. |
--program-2022 | Gunakan Token-2022 (TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb). |
--output <FORMAT> | Mengembalikan json atau json-compact jika didukung. |
--with-compute-unit-limit <UNITS> | Atur batas compute unit transaksi. |
--with-compute-unit-price <MICRO_LAMPORTS> | Atur harga prioritas per compute unit. |
-v, --verbose | Tampilkan output tambahan. |
-V, --version | Cetak versi CLI yang terinstal. |
Program default adalah Token Program asli. Gunakan --program-2022 untuk
mint atau akun Token-2022, termasuk saat membacanya. Perintah akan gagal jika
program yang dipilih bukan pemilik alamat yang diberikan.
Membuat dan menggunakan token
Perintah akan mencetak alamat yang dibuat. Simpan alamat mint yang dikembalikan oleh
create-token untuk perintah-perintah berikutnya.
# 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
Jumlah yang digunakan adalah jumlah token UI, disesuaikan dengan desimal mint. Perintah seperti
transfer, burn, dan unwrap-sol menerima ALL sebagaimana ditampilkan pada bantuannya.
Membuat mint Token-2022
Ekstensi mengalokasikan state mint atau akun tambahan dan biasanya harus dipilih saat mint dibuat. Contoh ini membuat mint dengan enam desimal dan dukungan metadata tertanam:
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
Opsi ekstensi create-token yang umum meliputi:
--enable-close--enable-confidential-transfers auto|manual--enable-freeze--enable-groupdan--enable-member--enable-metadata--enable-non-transferable--enable-pause--enable-permanent-delegate--enable-permissioned-burn--enable-transfer-hookatau--transfer-hook <PROGRAM_ID>--interest-rate <BASIS_POINTS>--transfer-fee-basis-points <BASIS_POINTS>bersama--transfer-fee-maximum-fee <AMOUNT>--ui-amount-multiplier <MULTIPLIER>
Hanya gabungkan ekstensi yang diizinkan digunakan bersamaan oleh program Token-2022. Tinjau panduan ekstensi Token-2022 yang relevan sebelum membuat konfigurasi mint yang tidak dapat diubah.
Mengelola otoritas dan delegate
# 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 mendukung tipe otoritas mint, freeze, owner, close, dan otoritas
khusus ekstensi. Menghapus otoritas dengan --disable bersifat permanen jika tidak ada
mekanisme program lain yang dapat memulihkannya.
Freeze, burn, dan close
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 mengurangi saldo akun sekaligus total suplai. close mengembalikan sisa
lamport akun ke penerima yang dikonfigurasi; perintah ini tidak memulihkan token
yang sudah di-burn.
Wrap dan 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
Gunakan sync-native setelah mentransfer lamport langsung ke token
account SOL yang di-wrap agar jumlah tokennya sesuai dengan lamport yang mendasarinya.
Penandatanganan multisig
Buat multisig Token Program M-of-N dengan hingga 11 anggota:
spl-token create-multisig \2 \<MEMBER_1_ADDRESS> \<MEMBER_2_ADDRESS> \<MEMBER_3_ADDRESS>
Untuk transaksi yang dikendalikan oleh multisig tersebut, berikan alamat multisig sebagai
otoritas yang relevan dan sediakan keypair anggota melalui nilai
--multisig-signer yang diulang. Periksa bantuan perintah yang dituju karena flag
otoritas utamanya berbeda-beda tergantung operasinya.
Saldo rahasia
Perintah saldo rahasia memerlukan mint Token-2022 yang dikonfigurasi untuk transfer rahasia dan akun penerima yang telah dikonfigurasi.
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
Untuk configure-confidential-transfer-account dan apply-pending-balance, berikan
--address <TOKEN_ACCOUNT_ADDRESS> atau <MINT_ADDRESS> posisional, tidak
keduanya. Bentuk posisional menggunakan associated token account milik owner. Deposit dan
penarikan selalu menggunakan mint dan menerima --address untuk menimpa akun
default tersebut.
Gunakan enable-confidential-credits, disable-confidential-credits,
enable-non-confidential-credits, dan disable-non-confidential-credits untuk
mengontrol deposit mana yang diterima akun. Pengaturan ini memengaruhi privasi akun
dan kompatibilitas pembayaran; periksa akun sebelum mengubahnya.
Indeks perintah lengkap
Indeks berikut mencakup setiap perintah tingkat atas di spl-token-cli v5.6.1.
| Perintah | Deskripsi |
|---|---|
accounts | Daftar token account milik sebuah wallet, dapat difilter berdasarkan mint. |
address | Cetak alamat wallet yang dipilih atau alamat associated token account-nya. |
apply-pending-balance | Pindahkan token rahasia yang tertunda ke saldo rahasia yang tersedia. |
approve | Setujui delegate dan batas pengeluaran untuk sebuah token account. |
authorize | Ubah atau nonaktifkan otoritas mint, akun, atau ekstensi. |
balance | Tampilkan saldo token account. |
bench | Jalankan perintah benchmark token. |
burn | Hancurkan token dari sebuah akun dan kurangi suplai mint. |
close | Tutup token account yang memenuhi syarat dan pulihkan lamport-nya. |
close-mint | Tutup mint Token-2022 yang dikonfigurasi dengan ekstensi close-mint. |
configure-confidential-transfer-account | Konfigurasikan akun untuk menggunakan transfer rahasia. |
create-account | Buat token account asosiasi atau tambahan. |
create-multisig | Buat multisig Token Program M-of-N. |
create-token | Buat mint, opsional dengan ekstensi Token-2022. |
deposit-confidential-tokens | Pindahkan token non-rahasia ke saldo rahasia yang tertunda. |
disable-confidential-credits | Tolak transfer rahasia masuk untuk sebuah akun. |
disable-cpi-guard | Nonaktifkan CPI Guard untuk sebuah akun. |
disable-non-confidential-credits | Tolak transfer non-rahasia masuk untuk akun rahasia. |
disable-required-transfer-memos | Berhenti mewajibkan transfer masuk menyertakan memo. |
display | Tampilkan detail lengkap mint, token account, atau multisig. |
enable-confidential-credits | Terima transfer rahasia masuk untuk akun yang sudah dikonfigurasi. |
enable-cpi-guard | Batasi operasi token tertentu saat dipanggil melalui CPI. |
enable-non-confidential-credits | Terima transfer non-rahasia masuk untuk akun rahasia. |
enable-required-transfer-memos | Wajibkan transfer masuk menyertakan memo. |
freeze | Bekukan token account menggunakan otoritas freeze milik mint. |
gc | Tutup token account yang tidak diperlukan dan konsolidasikan saldo jika memungkinkan. |
help | Cetak bantuan root atau bantuan perintah. |
initialize-group | Inisialisasi konfigurasi grup Token-2022 untuk sebuah mint. |
initialize-member | Tambahkan mint Token-2022 sebagai anggota grup. |
initialize-metadata | Inisialisasi metadata Token-2022 yang tertanam. |
mint | Buat unit token baru menggunakan otoritas mint. |
pause | Jeda mint, burn, dan transfer untuk mint Token-2022 yang dapat dijeda. |
resume | Lanjutkan operasi untuk mint Token-2022 yang dijeda. |
revoke | Hapus delegate token account. |
set-interest-rate | Perbarui suku bunga mint yang berbunga. |
set-transfer-fee | Jadwalkan parameter biaya transfer baru. |
set-transfer-hook | Ubah ID program transfer hook milik mint. |
supply | Tampilkan total suplai mint. |
sync-native | Sinkronkan jumlah pada akun SOL yang di-wrap dengan lamport-nya. |
thaw | Cairkan kembali token account yang dibekukan. |
transfer | Transfer token ke token account atau wallet. |
unwrap | Tutup akun SOL yang di-wrap dan pulihkan semua lamport. |
unwrap-sol | Keluarkan sebagian atau seluruh SOL dari akun SOL yang di-wrap. |
update-confidential-transfer-settings | Perbarui pengaturan persetujuan atau auditor transfer rahasia untuk sebuah mint. |
update-default-account-state | Ubah state default mint untuk token account baru. |
update-group-address | Ubah alamat group pointer milik mint. |
update-group-max-size | Ubah jumlah anggota maksimum sebuah grup token. |
update-member-address | Ubah alamat group member pointer milik mint. |
update-metadata | Ubah atau hapus field metadata yang tertanam. |
update-metadata-address | Ubah alamat metadata pointer milik mint. |
update-ui-amount-multiplier | Jadwalkan pengali jumlah UI berskala yang baru. |
withdraw-confidential-tokens | Pindahkan token rahasia kembali ke saldo non-rahasia. |
withdraw-excess-lamports | Tarik lamport di atas saldo bebas sewa (rent-exempt) dari akun Token Program. |
withdraw-withheld-tokens | Kumpulkan biaya transfer yang ditahan di token account atau mint. |
wrap | Wrap SOL ke dalam token account mint native. |
Penandatanganan terstruktur dan offline
Gunakan output terstruktur daripada mengurai teks tampilan:
spl-token accounts --output jsonspl-token display <MINT_ADDRESS> --output json-compact
Perintah yang menghasilkan transaksi umumnya mendukung --sign-only, --blockhash,
--signer <PUBKEY=SIGNATURE>, --nonce, dan --nonce-authority. Input
offline yang tepat bergantung pada perintah, desimal mint, dan pengaturan otoritas,
jadi buat pesan yang belum ditandatangani sesuai petunjuk --help perintah tersebut dan
verifikasi setiap alamat sebelum mengumpulkan tanda tangan.
Is this page helpful?