تنشئ واجهة سطر الأوامر spl-token وتدير mints وtoken
accounts والصلاحيات وعمليات التحويل وإضافات Token-2022.
يستند هذا المرجع إلى
spl-token-cli v5.6.1،
وهو الإصدار المضمَّن مع Agave v4.2.1. شغِّل spl-token --version واستخدم
<command> --help لمعرفة الخيارات المتاحة بالضبط في الإصدار المثبّت لديك.
تؤدي عمليات إنشاء mint والتحويلات وتغييرات الصلاحيات وعمليات الحرق والتجميد وإغلاق الحساب إلى إرسال معاملات. تأكد من الكلاستر وToken Program والموقّع والعناوين قبل تشغيل أي أمر. التغييرات على Mainnet تستخدم أصولًا حقيقية.
التثبيت والحصول على المساعدة
تتضمن حزمة إصدار Agave CLI الأداة spl-token. إذا لم تكن مثبّتة، فاستخدم
حزمة Rust المنشورة:
cargo install spl-token-cli --version 5.6.1spl-token --version
اعرض المساعدة على مستوى الجذر أو على مستوى الأمر:
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> | استخدم ملف إعدادات سولانا CLI مختلفًا. |
--fee-payer <KEYPAIR> | حدِّد الحساب الذي يدفع رسوم المعاملات. |
-p, --program-id <ADDRESS> | استخدم معرّف Token Program صريحًا. |
--program-2022 | استخدم Token-2022 (TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb). |
--output <FORMAT> | أعِد json أو json-compact حيثما يكون ذلك مدعومًا. |
--with-compute-unit-limit <UNITS> | حدِّد الحد الأقصى لوحدات الحوسبة للمعاملة. |
--with-compute-unit-price <MICRO_LAMPORTS> | حدِّد سعر الأولوية لكل وحدة حوسبة. |
-v, --verbose | اعرض مخرجات إضافية. |
-V, --version | اطبع إصدار CLI المثبّت. |
البرنامج الافتراضي هو Token Program الأصلي. استخدم --program-2022 مع mint أو
حساب من Token-2022، بما في ذلك عند قراءته. يفشل الأمر إذا لم يكن
البرنامج المحدد هو مالك العنوان المُدخل.
إنشاء توكن واستخدامه
تطبع الأوامر العناوين التي تم إنشاؤها. احفظ عنوان 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
المبالغ هي مبالغ التوكن كما تظهر في الواجهة، بعد ضبطها وفق الخانات العشرية الخاصة بـ 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 لا يمكن التراجع عنها.
إدارة الصلاحيات والمفوَّضين
# 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 والتجميد والمالك والإغلاق
والصلاحيات الخاصة بالإضافات. إزالة صلاحية باستخدام --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 في الحساب إلى المستلم المهيأ؛ ولا يسترد
التوكنات المحروقة.
تغليف 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 مباشرةً إلى token
account خاص بـ SOL المغلَّف، ليتطابق مقدار التوكن فيه مع lamports الأساسية.
التوقيع المتعدد (Multisig)
أنشئ multisig من Token Program بصيغة M-of-N بعدد أعضاء يصل إلى 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 الخاص بالمالك. يأخذ الإيداع
والسحب دائمًا 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 | انقل التوكنات السرية المعلّقة إلى الرصيد السري المتاح. |
approve | اعتمد مفوَّضًا وحد إنفاق لـ token account. |
authorize | غيّر صلاحية mint أو الحساب أو الإضافة أو عطّلها. |
balance | اعرض رصيد token account. |
bench | شغّل أوامر قياس أداء التوكن. |
burn | أتلف توكنات من حساب وقلّل عرض mint. |
close | أغلق token account مؤهلًا واسترد lamports الخاصة به. |
close-mint | أغلق mint من Token-2022 مهيأً بإضافة close-mint. |
configure-confidential-transfer-account | هيّئ حسابًا لاستخدام التحويلات السرية. |
create-account | أنشئ associated token account أو token account مساعدًا. |
create-multisig | أنشئ multisig من Token Program بصيغة M-of-N. |
create-token | أنشئ mint، مع إمكانية إضافة إضافات Token-2022. |
deposit-confidential-tokens | انقل التوكنات غير السرية إلى رصيد سري معلّق. |
disable-confidential-credits | ارفض التحويلات السرية الواردة إلى حساب. |
disable-cpi-guard | عطّل CPI Guard لحساب. |
disable-non-confidential-credits | ارفض التحويلات غير السرية الواردة إلى حساب سري. |
disable-required-transfer-memos | أوقف اشتراط تضمين ملاحظات memo في التحويلات الواردة. |
display | اعرض التفاصيل الكاملة لـ mint أو token account أو multisig. |
enable-confidential-credits | اقبل التحويلات السرية الواردة إلى حساب مهيأ. |
enable-cpi-guard | قيّد عمليات توكن محددة عند استدعائها عبر CPI. |
enable-non-confidential-credits | اقبل التحويلات غير السرية الواردة إلى حساب سري. |
enable-required-transfer-memos | اشترط تضمين ملاحظات memo في التحويلات الواردة. |
freeze | جمّد token account باستخدام صلاحية التجميد الخاصة بـ mint. |
gc | أغلق token accounts غير الضرورية ووحّد الأرصدة حيثما أمكن. |
help | اطبع مساعدة الجذر أو مساعدة أمر. |
initialize-group | هيّئ إعدادات مجموعة Token-2022 لـ mint. |
initialize-member | أضف mint من Token-2022 عضوًا في مجموعة. |
initialize-metadata | هيّئ البيانات الوصفية المضمَّنة في Token-2022. |
mint | أنشئ وحدات توكن جديدة باستخدام صلاحية mint. |
pause | أوقف مؤقتًا الإصدار والحرق والتحويل لـ mint من Token-2022 يدعم الإيقاف المؤقت. |
resume | استأنف العمليات لـ mint من Token-2022 موقوف مؤقتًا. |
revoke | أزل مفوَّض token account. |
set-interest-rate | حدّث معدل الفائدة لـ mint يدفع فائدة. |
set-transfer-fee | جدولة معلمات رسوم تحويل جديدة. |
set-transfer-hook | غيّر معرّف برنامج transfer hook الخاص بـ mint. |
supply | اعرض إجمالي عرض mint. |
sync-native | زامِن مقدار حساب SOL المغلَّف مع lamports الخاصة به. |
thaw | ألغِ تجميد token account مجمَّد. |
transfer | حوّل توكنات إلى token account أو محفظة. |
unwrap | أغلق حساب SOL المغلَّف واسترد جميع lamports. |
unwrap-sol | أزل بعض SOL أو كلها من حساب SOL مغلَّف. |
update-confidential-transfer-settings | حدّث إعدادات الموافقة على التحويل السري أو إعدادات المدقّق لـ mint. |
update-default-account-state | غيّر الحالة الافتراضية في mint لـ token accounts الجديدة. |
update-group-address | غيّر عنوان مؤشر المجموعة في mint. |
update-group-max-size | غيّر الحد الأقصى لعدد أعضاء مجموعة توكن. |
update-member-address | غيّر عنوان مؤشر عضو المجموعة في mint. |
update-metadata | غيّر حقول البيانات الوصفية المضمَّنة أو أزلها. |
update-metadata-address | غيّر عنوان مؤشر البيانات الوصفية في mint. |
update-ui-amount-multiplier | جدولة مضاعف جديد لمبلغ واجهة المستخدم المقيَّس. |
withdraw-confidential-tokens | انقل التوكنات السرية مجددًا إلى الرصيد غير السري. |
withdraw-excess-lamports | اسحب lamports الزائدة عن الرصيد المعفى من الإيجار من حساب تابع لـ Token Program. |
withdraw-withheld-tokens | اجمع رسوم التحويل المحتجزة في token accounts أو في mint. |
wrap | غلّف SOL في token account خاص بـ native mint. |
التوقيع المنظَّم وغير المتصل بالإنترنت
استخدم المخرجات المنظَّمة بدلًا من تحليل نص العرض:
spl-token accounts --output jsonspl-token display <MINT_ADDRESS> --output json-compact
تدعم الأوامر المنتجة للمعاملات عادةً الخيارات --sign-only و--blockhash و
--signer <PUBKEY=SIGNATURE> و--nonce و--nonce-authority. تعتمد
مدخلات التوقيع دون اتصال بالضبط على الأمر والخانات العشرية لـ mint وترتيب الصلاحيات،
لذا أنشئ الرسالة غير الموقّعة وفق تعليمات --help الخاصة بذلك الأمر
وتحقق من كل عنوان قبل جمع التوقيعات.
Is this page helpful?