مرجع SPL Token CLI

تنشئ واجهة سطر الأوامر 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.1
spl-token --version

اعرض المساعدة على مستوى الجذر أو على مستوى الأمر:

spl-token --help
spl-token create-token --help
spl-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-metadata
spl-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 json
spl-token display <MINT_ADDRESS> --output json-compact

تدعم الأوامر المنتجة للمعاملات عادةً الخيارات --sign-only و--blockhash و --signer <PUBKEY=SIGNATURE> و--nonce و--nonce-authority. تعتمد مدخلات التوقيع دون اتصال بالضبط على الأمر والخانات العشرية لـ mint وترتيب الصلاحيات، لذا أنشئ الرسالة غير الموقّعة وفق تعليمات --help الخاصة بذلك الأمر وتحقق من كل عنوان قبل جمع التوقيعات.

Is this page helpful?