Η διεπαφή γραμμής εντολών spl-token δημιουργεί και διαχειρίζεται mints, token
accounts, αρχές εξουσιοδότησης, μεταφορές και επεκτάσεις Token-2022.
Η παρούσα αναφορά ακολουθεί το
spl-token-cli v5.6.1,
την έκδοση που συνοδεύει το Agave v4.2.1. Εκτελέστε spl-token --version και χρησιμοποιήστε
<command> --help για τις ακριβείς επιλογές που διαθέτει η εγκατεστημένη έκδοσή σας.
Η δημιουργία mint, οι μεταφορές, οι αλλαγές αρχών εξουσιοδότησης, οι καύσεις, τα παγώματα και το κλείσιμο λογαριασμών υποβάλλουν συναλλαγές. Επιβεβαιώστε το cluster, το Token Program, τον signer και τις διευθύνσεις πριν εκτελέσετε μια εντολή. Οι αλλαγές στο Mainnet αφορούν πραγματικά περιουσιακά στοιχεία.
Εγκατάσταση και βοήθεια
Το πακέτο έκδοσης του Agave CLI περιλαμβάνει το spl-token. Αν δεν είναι εγκατεστημένο, χρησιμοποιήστε
το δημοσιευμένο crate της Rust:
cargo install spl-token-cli --version 5.6.1spl-token --version
Δείτε τη βοήθεια σε επίπεδο root ή εντολής:
spl-token --helpspl-token create-token --helpspl-token transfer --help
Καθολικές επιλογές
Τοποθετήστε τις καθολικές επιλογές πριν από την εντολή.
| Επιλογή | Σκοπός |
|---|---|
-u, --url <URL_OR_MONIKER> | Επιλέξτε ένα RPC URL ή mainnet-beta, testnet, devnet ή localhost. |
-C, --config <PATH> | Χρησιμοποιήστε διαφορετικό αρχείο ρυθμίσεων του Solana CLI. |
--fee-payer <KEYPAIR> | Επιλέξτε τον λογαριασμό που πληρώνει τα τέλη συναλλαγής. |
-p, --program-id <ADDRESS> | Χρησιμοποιήστε ρητά ένα Token Program ID. |
--program-2022 | Χρησιμοποιήστε το Token-2022 (TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb). |
--output <FORMAT> | Επιστρέφει json ή json-compact όπου υποστηρίζεται. |
--with-compute-unit-limit <UNITS> | Ορίστε το όριο compute units της συναλλαγής. |
--with-compute-unit-price <MICRO_LAMPORTS> | Ορίστε την τιμή προτεραιότητας ανά compute unit. |
-v, --verbose | Εμφάνιση επιπλέον εξόδου. |
-V, --version | Εμφάνιση της εγκατεστημένης έκδοσης του CLI. |
Το προεπιλεγμένο πρόγραμμα είναι το αρχικό Token Program. Χρησιμοποιήστε --program-2022 για
mint ή λογαριασμό Token-2022, ακόμη και κατά την ανάγνωσή του. Μια εντολή αποτυγχάνει αν το
επιλεγμένο πρόγραμμα δεν κατέχει την παρεχόμενη διεύθυνση.
Δημιουργία και χρήση ενός token
Οι εντολές εκτυπώνουν τις διευθύνσεις που δημιουργήθηκαν. Αποθηκεύστε τη διεύθυνση του mint που
επιστρέφει η create-token για τις επόμενες εντολές.
# 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
Τα ποσά είναι ποσά token σε μορφή UI, προσαρμοσμένα στα δεκαδικά ψηφία του mint. Εντολές όπως οι
transfer, burn και unwrap-sol δέχονται το ALL εκεί όπου αναφέρεται στη βοήθειά τους.
Δημιουργία mint Token-2022
Οι επεκτάσεις δεσμεύουν επιπλέον κατάσταση mint ή λογαριασμού και συνήθως πρέπει να επιλεγούν κατά τη δημιουργία του mint. Αυτό το παράδειγμα δημιουργεί ένα mint με έξι δεκαδικά ψηφία και ενσωματωμένη υποστήριξη μεταδεδομένων:
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
Συνήθεις επιλογές επεκτάσεων του create-token περιλαμβάνουν:
--enable-close--enable-confidential-transfers auto|manual--enable-freeze--enable-groupκαι--enable-member--enable-metadata--enable-non-transferable--enable-pause--enable-permanent-delegate--enable-permissioned-burn--enable-transfer-hookή--transfer-hook <PROGRAM_ID>--interest-rate <BASIS_POINTS>--transfer-fee-basis-points <BASIS_POINTS>με--transfer-fee-maximum-fee <AMOUNT>--ui-amount-multiplier <MULTIPLIER>
Συνδυάζετε μόνο επεκτάσεις που επιτρέπεται να χρησιμοποιούνται μαζί από το πρόγραμμα Token-2022. Ανατρέξτε στον σχετικό οδηγό επεκτάσεων Token-2022 πριν από τη δημιουργία μιας μη αναστρέψιμης διαμόρφωσης mint.
Διαχείριση αρχών εξουσιοδότησης και delegates
# 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, καθώς και
ειδικούς για επεκτάσεις. Η αφαίρεση μιας αρχής με --disable είναι μόνιμη όταν κανένας άλλος
μηχανισμός προγράμματος δεν μπορεί να την επαναφέρει.
Πάγωμα, καύση και κλείσιμο
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 μειώνει τόσο το υπόλοιπο του λογαριασμού όσο και τη συνολική προσφορά. Η close επιστρέφει
τα εναπομείναντα lamports του λογαριασμού στον ρυθμισμένο παραλήπτη· δεν ανακτά τα tokens που
έχουν καεί.
Wrap και 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
Χρησιμοποιήστε το sync-native αφού μεταφέρετε lamports απευθείας σε έναν wrapped SOL token
account, ώστε το ποσό των token του να ταιριάζει με τα υποκείμενα lamports.
Υπογραφή multisig
Δημιουργήστε ένα multisig M-of-N του Token Program με έως 11 μέλη:
spl-token create-multisig \2 \<MEMBER_1_ADDRESS> \<MEMBER_2_ADDRESS> \<MEMBER_3_ADDRESS>
Για μια συναλλαγή που ελέγχεται από αυτό το multisig, περάστε τη διεύθυνση του multisig ως την
αντίστοιχη αρχή εξουσιοδότησης και δώστε τα keypairs των μελών μέσω επαναλαμβανόμενων τιμών
--multisig-signer. Ελέγξτε τη βοήθεια της εντολής-στόχου, επειδή η σημαία της κύριας
αρχής εξουσιοδότησης διαφέρει ανά λειτουργία.
Εμπιστευτικά υπόλοιπα
Οι εντολές εμπιστευτικών υπολοίπων απαιτούν ένα mint Token-2022 ρυθμισμένο για εμπιστευτικές μεταφορές και έναν ρυθμισμένο λογαριασμό παραλήπτη.
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 και apply-pending-balance, περάστε
είτε --address <TOKEN_ACCOUNT_ADDRESS> είτε ένα θεσιακό όρισμα <MINT_ADDRESS>, όχι
και τα δύο. Η θεσιακή μορφή χρησιμοποιεί τον associated token account του owner. Η κατάθεση και η
ανάληψη λαμβάνουν πάντα το mint και δέχονται το --address για να παρακάμψουν αυτόν τον
προεπιλεγμένο λογαριασμό.
Χρησιμοποιήστε τις enable-confidential-credits, disable-confidential-credits,
enable-non-confidential-credits και disable-non-confidential-credits για να
ελέγξετε ποιες καταθέσεις δέχεται ο λογαριασμός. Αυτές οι ρυθμίσεις επηρεάζουν το απόρρητο του
λογαριασμού και τη συμβατότητα πληρωμών· ελέγξτε τον λογαριασμό πριν τις αλλάξετε.
Πλήρες ευρετήριο εντολών
Το παρακάτω ευρετήριο περιλαμβάνει κάθε εντολή ανώτατου επιπέδου του spl-token-cli v5.6.1.
| Εντολή | Περιγραφή |
|---|---|
accounts | Εμφανίζει τους token accounts που ανήκουν σε ένα πορτοφόλι, με προαιρετικό φιλτράρισμα ανά mint. |
address | Εκτυπώνει τη διεύθυνση του επιλεγμένου πορτοφολιού ή τη διεύθυνση του associated token account του. |
apply-pending-balance | Μετακινεί τα εκκρεμή εμπιστευτικά tokens στο διαθέσιμο εμπιστευτικό υπόλοιπο. |
approve | Εγκρίνει έναν delegate και ένα όριο δαπάνης για έναν token account. |
authorize | Αλλάζει ή απενεργοποιεί μια αρχή εξουσιοδότησης mint, λογαριασμού ή επέκτασης. |
balance | Εμφανίζει το υπόλοιπο ενός token account. |
bench | Εκτελεί εντολές benchmarking των token. |
burn | Καταστρέφει tokens από έναν λογαριασμό και μειώνει την προσφορά του mint. |
close | Κλείνει έναν επιλέξιμο token account και ανακτά τα lamports του. |
close-mint | Κλείνει ένα mint Token-2022 που έχει ρυθμιστεί με την επέκταση close-mint. |
configure-confidential-transfer-account | Ρυθμίζει έναν λογαριασμό ώστε να χρησιμοποιεί εμπιστευτικές μεταφορές. |
create-account | Δημιουργεί έναν associated ή βοηθητικό token account. |
create-multisig | Δημιουργεί ένα multisig M-of-N του Token Program. |
create-token | Δημιουργεί ένα mint, προαιρετικά με επεκτάσεις Token-2022. |
deposit-confidential-tokens | Μετακινεί μη εμπιστευτικά tokens σε εκκρεμές εμπιστευτικό υπόλοιπο. |
disable-confidential-credits | Απορρίπτει τις εισερχόμενες εμπιστευτικές μεταφορές για έναν λογαριασμό. |
disable-cpi-guard | Απενεργοποιεί το CPI Guard για έναν λογαριασμό. |
disable-non-confidential-credits | Απορρίπτει τις εισερχόμενες μη εμπιστευτικές μεταφορές για έναν εμπιστευτικό λογαριασμό. |
disable-required-transfer-memos | Σταματά να απαιτεί από τις εισερχόμενες μεταφορές να περιλαμβάνουν memos. |
display | Εμφανίζει πλήρη στοιχεία για ένα mint, έναν token account ή ένα multisig. |
enable-confidential-credits | Δέχεται εισερχόμενες εμπιστευτικές μεταφορές για έναν ρυθμισμένο λογαριασμό. |
enable-cpi-guard | Περιορίζει επιλεγμένες λειτουργίες token όταν καλούνται μέσω CPI. |
enable-non-confidential-credits | Δέχεται εισερχόμενες μη εμπιστευτικές μεταφορές για έναν εμπιστευτικό λογαριασμό. |
enable-required-transfer-memos | Απαιτεί από τις εισερχόμενες μεταφορές να περιλαμβάνουν memos. |
freeze | Παγώνει έναν token account χρησιμοποιώντας την αρχή πάγωματος (freeze authority) του mint. |
gc | Κλείνει τους περιττούς token accounts και ενοποιεί τα υπόλοιπα όπου είναι δυνατόν. |
help | Εκτυπώνει τη βοήθεια του root ή μιας εντολής. |
initialize-group | Αρχικοποιεί τη διαμόρφωση ομάδας Token-2022 για ένα mint. |
initialize-member | Προσθέτει ένα mint Token-2022 ως μέλος ομάδας. |
initialize-metadata | Αρχικοποιεί τα ενσωματωμένα μεταδεδομένα Token-2022. |
mint | Δημιουργεί νέες μονάδες token χρησιμοποιώντας την αρχή εξουσιοδότησης του mint. |
pause | Θέτει σε παύση το mint, το burn και τη μεταφορά για ένα mint Token-2022 με δυνατότητα παύσης. |
resume | Συνεχίζει τις λειτουργίες ενός mint Token-2022 που βρίσκεται σε παύση. |
revoke | Αφαιρεί τον delegate ενός token account. |
set-interest-rate | Ενημερώνει το επιτόκιο ενός mint με τόκους. |
set-transfer-fee | Προγραμματίζει νέες παραμέτρους τέλους μεταφοράς. |
set-transfer-hook | Αλλάζει το program ID του transfer hook ενός mint. |
supply | Εμφανίζει τη συνολική προσφορά ενός mint. |
sync-native | Συγχρονίζει το ποσό ενός wrapped SOL account με τα lamports του. |
thaw | Ξεπαγώνει έναν παγωμένο token account. |
transfer | Μεταφέρει tokens σε έναν token account ή σε ένα πορτοφόλι. |
unwrap | Κλείνει έναν wrapped SOL account και ανακτά όλα τα lamports. |
unwrap-sol | Αφαιρεί μέρος ή το σύνολο των SOL από έναν wrapped SOL account. |
update-confidential-transfer-settings | Ενημερώνει τις ρυθμίσεις έγκρισης εμπιστευτικών μεταφορών ή ελεγκτή (auditor) για ένα mint. |
update-default-account-state | Αλλάζει την προεπιλεγμένη κατάσταση ενός mint για νέους token accounts. |
update-group-address | Αλλάζει τη διεύθυνση του group pointer ενός mint. |
update-group-max-size | Αλλάζει το μέγιστο πλήθος μελών μιας ομάδας token. |
update-member-address | Αλλάζει τη διεύθυνση του group member pointer ενός mint. |
update-metadata | Αλλάζει ή αφαιρεί ενσωματωμένα πεδία μεταδεδομένων. |
update-metadata-address | Αλλάζει τη διεύθυνση του metadata pointer ενός mint. |
update-ui-amount-multiplier | Προγραμματίζει νέο πολλαπλασιαστή scaled UI amount. |
withdraw-confidential-tokens | Μετακινεί εμπιστευτικά tokens πίσω στο μη εμπιστευτικό υπόλοιπο. |
withdraw-excess-lamports | Αναλαμβάνει lamports πάνω από το υπόλοιπο απαλλαγής από rent από έναν λογαριασμό του Token Program. |
withdraw-withheld-tokens | Συλλέγει τέλη μεταφοράς που παρακρατούνται σε token accounts ή στο mint. |
wrap | Κάνει wrap SOL σε έναν token account του native mint. |
Δομημένη και offline υπογραφή
Χρησιμοποιήστε δομημένη έξοδο αντί να αναλύετε το κείμενο εμφάνισης:
spl-token accounts --output jsonspl-token display <MINT_ADDRESS> --output json-compact
Οι εντολές που παράγουν συναλλαγές υποστηρίζουν συνήθως τα --sign-only, --blockhash,
--signer <PUBKEY=SIGNATURE>, --nonce και --nonce-authority. Οι ακριβείς
εισόδοι για offline χρήση εξαρτώνται από την εντολή, τα δεκαδικά ψηφία του mint και τη διάταξη των αρχών εξουσιοδότησης,
γι' αυτό δημιουργήστε το μη υπογεγραμμένο μήνυμα ακολουθώντας τις οδηγίες --help της συγκεκριμένης εντολής και
επαληθεύστε κάθε διεύθυνση πριν συλλέξετε υπογραφές.
Is this page helpful?