Giao diện dòng lệnh spl-token tạo và quản lý mint, token
account, authority, các giao dịch chuyển token và các tiện ích mở rộng Token-2022.
Tài liệu tham chiếu này dựa trên
spl-token-cli v5.6.1,
phiên bản đi kèm với Agave v4.2.1. Chạy spl-token --version và dùng
<command> --help để xem chính xác các tùy chọn có trong phiên bản bạn đã cài đặt.
Việc tạo mint, chuyển token, thay đổi authority, đốt token, đóng băng và đóng tài khoản đều gửi giao dịch. Hãy xác nhận cluster, Token Program, signer và địa chỉ trước khi chạy lệnh. Các thay đổi trên Mainnet sử dụng tài sản thật.
Cài đặt và xem trợ giúp
Gói phát hành Agave CLI đã bao gồm spl-token. Nếu chưa được cài đặt, hãy dùng
crate Rust đã được phát hành:
cargo install spl-token-cli --version 5.6.1spl-token --version
Xem trợ giúp ở cấp gốc hoặc cấp lệnh:
spl-token --helpspl-token create-token --helpspl-token transfer --help
Tùy chọn toàn cục
Đặt các tùy chọn toàn cục trước lệnh.
| Tùy chọn | Mục đích |
|---|---|
-u, --url <URL_OR_MONIKER> | Chọn một URL RPC hoặc mainnet-beta, testnet, devnet hay localhost. |
-C, --config <PATH> | Dùng một tệp cấu hình Solana CLI khác. |
--fee-payer <KEYPAIR> | Chọn tài khoản trả phí giao dịch. |
-p, --program-id <ADDRESS> | Dùng một Token Program ID cụ thể. |
--program-2022 | Dùng Token-2022 (TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb). |
--output <FORMAT> | Trả về json hoặc json-compact ở nơi được hỗ trợ. |
--with-compute-unit-limit <UNITS> | Đặt giới hạn compute unit của giao dịch. |
--with-compute-unit-price <MICRO_LAMPORTS> | Đặt giá ưu tiên cho mỗi compute unit. |
-v, --verbose | Hiển thị thêm đầu ra. |
-V, --version | In phiên bản CLI đã cài đặt. |
Chương trình mặc định là Token Program gốc. Hãy dùng --program-2022 cho mint hoặc
token account Token-2022, kể cả khi chỉ đọc. Lệnh sẽ thất bại nếu chương trình
được chọn không sở hữu địa chỉ được cung cấp.
Tạo và sử dụng token
Các lệnh sẽ in ra địa chỉ đã tạo. Hãy lưu địa chỉ mint do
create-token trả về để dùng cho các lệnh tiếp theo.
# 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
Số lượng là số token theo giao diện (UI), được điều chỉnh theo số chữ số thập phân của mint. Các lệnh như
transfer, burn và unwrap-sol chấp nhận ALL ở nơi phần trợ giúp có nêu.
Tạo mint Token-2022
Các tiện ích mở rộng cấp phát thêm trạng thái cho mint hoặc tài khoản và thường phải được chọn khi tạo mint. Ví dụ này tạo một mint có sáu chữ số thập phân với hỗ trợ metadata nhúng:
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
Các tùy chọn tiện ích mở rộng phổ biến của create-token gồm:
--enable-close--enable-confidential-transfers auto|manual--enable-freeze--enable-groupvà--enable-member--enable-metadata--enable-non-transferable--enable-pause--enable-permanent-delegate--enable-permissioned-burn--enable-transfer-hookhoặc--transfer-hook <PROGRAM_ID>--interest-rate <BASIS_POINTS>--transfer-fee-basis-points <BASIS_POINTS>cùng với--transfer-fee-maximum-fee <AMOUNT>--ui-amount-multiplier <MULTIPLIER>
Chỉ kết hợp các tiện ích mở rộng mà chương trình Token-2022 cho phép dùng cùng nhau. Hãy xem lại hướng dẫn về tiện ích mở rộng Token-2022 có liên quan trước khi tạo cấu hình mint không thể hoàn tác.
Quản lý authority và 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 hỗ trợ các loại authority: mint, freeze, owner, close và
theo từng tiện ích mở rộng. Việc gỡ bỏ một authority bằng --disable là vĩnh viễn nếu không có
cơ chế chương trình nào khác có thể khôi phục.
Đóng băng, đốt và đóng
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 giảm cả số dư tài khoản lẫn tổng nguồn cung. close trả lại
lamports còn lại của tài khoản cho người nhận đã cấu hình; lệnh này không khôi phục
token đã bị đốt.
Wrap và 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
Dùng sync-native sau khi chuyển lamports trực tiếp vào một token
account SOL đã wrap để số lượng token của nó khớp với lamports bên dưới.
Ký multisig
Tạo một multisig M-of-N của Token Program với tối đa 11 thành viên:
spl-token create-multisig \2 \<MEMBER_1_ADDRESS> \<MEMBER_2_ADDRESS> \<MEMBER_3_ADDRESS>
Với giao dịch do multisig đó kiểm soát, hãy truyền địa chỉ multisig làm
authority liên quan và cung cấp keypair của các thành viên thông qua các giá trị
--multisig-signer lặp lại. Hãy kiểm tra phần trợ giúp của lệnh đích vì cờ
authority chính thay đổi tùy theo thao tác.
Số dư bảo mật
Các lệnh về số dư bảo mật yêu cầu một mint Token-2022 được cấu hình cho chuyển khoản bảo mật và một tài khoản nhận đã được cấu hình.
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
Với configure-confidential-transfer-account và apply-pending-balance, hãy truyền
--address <TOKEN_ACCOUNT_ADDRESS> hoặc <MINT_ADDRESS> theo vị trí, không dùng
cả hai. Dạng theo vị trí dùng associated token account của chủ sở hữu. Lệnh gửi và
rút luôn nhận mint và chấp nhận --address để ghi đè tài khoản mặc định đó.
Dùng enable-confidential-credits, disable-confidential-credits,
enable-non-confidential-credits và disable-non-confidential-credits để
kiểm soát những khoản nạp mà tài khoản chấp nhận. Các thiết lập này ảnh hưởng đến quyền
riêng tư của tài khoản và khả năng tương thích thanh toán; hãy kiểm tra tài khoản trước khi thay đổi.
Chỉ mục lệnh đầy đủ
Chỉ mục sau đây gồm mọi lệnh cấp cao nhất trong spl-token-cli v5.6.1.
| Lệnh | Mô tả |
|---|---|
accounts | Liệt kê các token account thuộc sở hữu của một ví, có thể lọc theo mint. |
address | In địa chỉ ví đã chọn hoặc associated token account address của ví đó. |
apply-pending-balance | Chuyển token bảo mật đang chờ vào số dư bảo mật khả dụng. |
approve | Phê duyệt một delegate và hạn mức chi tiêu cho một token account. |
authorize | Thay đổi hoặc vô hiệu hóa authority của mint, tài khoản hoặc tiện ích mở rộng. |
balance | Hiển thị số dư của một token account. |
bench | Chạy các lệnh đo hiệu năng token. |
burn | Hủy token từ một tài khoản và giảm nguồn cung của mint. |
close | Đóng một token account đủ điều kiện và thu hồi lamports của nó. |
close-mint | Đóng một mint Token-2022 được cấu hình với tiện ích mở rộng close-mint. |
configure-confidential-transfer-account | Cấu hình một tài khoản để sử dụng chuyển khoản bảo mật. |
create-account | Tạo một associated token account hoặc token account phụ trợ. |
create-multisig | Tạo một multisig M-of-N của Token Program. |
create-token | Tạo một mint, có thể kèm các tiện ích mở rộng Token-2022. |
deposit-confidential-tokens | Chuyển token không bảo mật vào số dư bảo mật đang chờ. |
disable-confidential-credits | Từ chối các khoản chuyển bảo mật đến một tài khoản. |
disable-cpi-guard | Tắt CPI Guard cho một tài khoản. |
disable-non-confidential-credits | Từ chối các khoản chuyển không bảo mật đến một tài khoản bảo mật. |
disable-required-transfer-memos | Ngừng yêu cầu các khoản chuyển đến phải kèm memo. |
display | Hiển thị đầy đủ thông tin chi tiết về mint, token account hoặc multisig. |
enable-confidential-credits | Chấp nhận các khoản chuyển bảo mật đến một tài khoản đã được cấu hình. |
enable-cpi-guard | Hạn chế một số thao tác token nhất định khi được gọi qua CPI. |
enable-non-confidential-credits | Chấp nhận các khoản chuyển không bảo mật đến một tài khoản bảo mật. |
enable-required-transfer-memos | Yêu cầu các khoản chuyển đến phải kèm memo. |
freeze | Đóng băng một token account bằng freeze authority của mint. |
gc | Đóng các token account không cần thiết và hợp nhất số dư nếu có thể. |
help | In phần trợ giúp gốc hoặc của lệnh. |
initialize-group | Khởi tạo cấu hình nhóm Token-2022 cho một mint. |
initialize-member | Thêm một mint Token-2022 làm thành viên của nhóm. |
initialize-metadata | Khởi tạo metadata nhúng của Token-2022. |
mint | Tạo thêm đơn vị token mới bằng mint authority. |
pause | Tạm dừng mint, burn và transfer cho một mint Token-2022 có thể tạm dừng. |
resume | Tiếp tục hoạt động cho một mint Token-2022 đang bị tạm dừng. |
revoke | Gỡ bỏ delegate của một token account. |
set-interest-rate | Cập nhật lãi suất của mint sinh lãi. |
set-transfer-fee | Lên lịch các tham số phí chuyển mới. |
set-transfer-hook | Thay đổi program ID của transfer hook cho một mint. |
supply | Hiển thị tổng nguồn cung của một mint. |
sync-native | Đồng bộ số lượng của tài khoản SOL đã wrap với lamports của nó. |
thaw | Rã đông một token account đang bị đóng băng. |
transfer | Chuyển token đến một token account hoặc ví. |
unwrap | Đóng một tài khoản SOL đã wrap và thu hồi toàn bộ lamports. |
unwrap-sol | Rút một phần hoặc toàn bộ SOL khỏi một tài khoản SOL đã wrap. |
update-confidential-transfer-settings | Cập nhật cài đặt phê duyệt hoặc auditor của chuyển khoản bảo mật cho một mint. |
update-default-account-state | Thay đổi trạng thái mặc định của mint đối với các token account mới. |
update-group-address | Thay đổi địa chỉ group pointer của một mint. |
update-group-max-size | Thay đổi số thành viên tối đa của một nhóm token. |
update-member-address | Thay đổi địa chỉ group member pointer của một mint. |
update-metadata | Thay đổi hoặc xóa các trường metadata nhúng. |
update-metadata-address | Thay đổi địa chỉ metadata pointer của một mint. |
update-ui-amount-multiplier | Lên lịch hệ số nhân số lượng UI theo tỷ lệ mới. |
withdraw-confidential-tokens | Chuyển token bảo mật trở lại số dư không bảo mật. |
withdraw-excess-lamports | Rút lamports vượt quá số dư miễn phí thuê (rent-exempt) từ một tài khoản của Token Program. |
withdraw-withheld-tokens | Thu các khoản phí chuyển bị giữ lại trong token account hoặc mint. |
wrap | Wrap SOL vào một token account của native mint. |
Ký có cấu trúc và ký ngoại tuyến
Hãy dùng đầu ra có cấu trúc thay vì phân tích văn bản hiển thị:
spl-token accounts --output jsonspl-token display <MINT_ADDRESS> --output json-compact
Các lệnh tạo giao dịch thường hỗ trợ --sign-only, --blockhash,
--signer <PUBKEY=SIGNATURE>, --nonce và --nonce-authority. Các đầu vào
ngoại tuyến chính xác phụ thuộc vào lệnh, số chữ số thập phân của mint và cách bố trí authority,
vì vậy hãy tạo thông điệp chưa ký theo hướng dẫn --help của lệnh đó và
xác minh mọi địa chỉ trước khi thu thập chữ ký.
Is this page helpful?