Rand Protocol
الجوال

Rand Wallet لنظام iOS

تطبيق SwiftUI أصلي فوق نواة المحفظة المشتركة المكتوبة بلغة Rust، ومرتبطة بوصفها XCFramework. يبقى مفتاح الإنفاق في Keychain على الآيفون خلف Face ID أو Touch ID، ولا يتصل التطبيق بأي جهة سوى نقطة RPC التي تختارها.

إدراج App Store قيد الانتظار. إلى أن يجتاز المراجعة، ابنِه من المصدر أدناه.

أيقونة Rand Wallet
مبني باستخدام
Swift · SwiftUI
يُوزَّع عبر
TestFlight أثناء الاختبار، ثم App Store
المتطلبات
iOS 16 أو أحدث
الإرسال
يُنشئ الإثبات على الهاتف، أو عبر مُثبِت RandProtocol
الإرسال

يُنشئ الإثبات على الهاتف، أو عبر مُثبِت RandProtocol

على هاتف تبلغ ذاكرته نحو 8 GB يُنشئ التطبيق إثبات التحويل على الجهاز نفسه. يستغرق ذلك دقيقة أو دقيقتين، وتُبقي شاشة الإرسال الشاشة مضاءة وتطلب منك إبقاء التطبيق مفتوحًا.

يبلغ ذروة استهلاك إثبات الحزمة نحو 6.2 GB. وعلى هاتف ذاكرته أقل سيوقف iOS التطبيق في منتصف الإثبات، لذا تُحذّرك خطوة المراجعة بأرقام جهازك نفسه. عندئذٍ يستخدم الهاتف مُثبِت RandProtocol افتراضيًا، أو rand-prover الخاص بك عبر https (الإعدادات ← المُثبِت)، ويبني التحويل بينما يُنشئ المُثبِت الإثبات.

الجهاز الذي لا يستطيع إنشاء إثبات يستخدم مُثبِتات RandProtocol افتراضيًا: عدة أجهزة يشغّلها المدقّقون (أربعة حاليًا، تحت https://prover.randprotocol.org)، دون رسوم. ابتداءً من 0.6.9 يملك كلٌّ منها مفتاحه الخاص الذي تثبّته المحفظة، وتُبلغك المحفظة بذلك قبل أول عملية إرسال. يتلقى الجهاز الذي يُنشئ إثبات عملية الإرسال مفتاح العرض الخاص بالمحفظة وملحًا يُستخدم مرة واحدة: يستطيع مشغّله قراءة سجل المحفظة كاملًا، أي كل دفعة مستلمة ومُرسلة، ولا يستطيع الإنفاق. أما مفتاح الإنفاق فلا يغادر جهازك أبدًا، وهو الذي يُنشئ بنفسه إثبات التفويض الصغير. وللمزيد من الخصوصية اختر مُثبِتك الخاص في الإعدادات ← المُثبِت، ليكون عندئذٍ المفضّل دائمًا؛ وتتحقق المحفظة من كل إثبات قبل أن ترسله.

إقران مُثبِت (prover) خطوة بخطوة: docs/prover.md.

مفاتيحك

أين يقيم المفتاح

مفتاح الإنفاق هو السر الوحيد للمحفظة. لا يوجد حساب ولا خادم يحتفظ بنسخة: إن فقدت المفتاح فلن يستطيع أحد استعادته، فاحفظه عندما تعرضه المحفظة عليك.

مفتاح الإنفاق
في Keychain، ولا يتاح إلا أثناء فتح قفل الجهاز ولا يُزامَن أبدًا مع جهاز آخر. يُشتق مفتاح العرض والعنوان منه عند فتح القفل ولا يُخزَّنان.
فتح القفل
Face ID أو Touch ID، مع رمز مرور الجهاز بديلًا. يُقفل التطبيق بعد المدة المحددة في الإعدادات عند انتقاله إلى الخلفية، لكن لا يُقفل أبدًا أثناء إنشاء إثبات.
النوتات
مخزن النوتات ذاكرة مؤقتة لبيانات السلسلة، يُكتب بحماية الملفات الكاملة فلا يمكن قراءته أثناء قفل الهاتف.
الخصوصية
يُعلن بيان الخصوصية عدم وجود أي تتبّع وعدم جمع أي بيانات. والمضيف الوحيد على الشبكة هو عنوان RPC الذي تضبطه، إضافةً إلى randscan.org عند النقر على رابط.
أيضًا

المبادلة داخل التطبيق

ابتداءً من 0.7.1 صار في تطبيقات الهاتف شاشة المبادلة (Swap) الموجودة في الإضافات وتطبيق سطح المكتب: تداوَل RAND والرموز عبر مجمّعات durian.market دون مغادرة المحفظة. يُنشئ الهاتف بنفسه إثبات استدعاء البرنامج وتفويض الإنفاق، وهذا يحتاج إلى نحو 1.5 GB من الذاكرة، بينما تُنشئ مُثبِتات RandProtocol الإثبات الكبير. المبلغ الذي تتلقاه دقيق؛ وإذا تحرّك المجمّع أولًا فلا يُرسل شيء وتحصل على عرض سعر جديد.

البناء من المصدر

إلى أن تُجاز قائمة App Store

  1. لا تثبّت Apple تطبيقًا إلا من TestFlight أو App Store، لذا لا يوجد ملف يُنزَّل لنظام iOS.
  2. ابنِه وشغّله من مستودع clients في Xcode 16 أو أحدث، على محاكٍ أو على جهازك.
  3. تفتح روابط randpay: شاشة الإرسال معبّأة مسبقًا؛ ولا يُرسل شيء حتى تؤكد.

سلسلة الأدوات: Rust 1.98.1، مثبّتة في المستودع، ويثبّتها rustup. دليل البناء يغطي كل عميل انطلاقًا من جهاز نظيف. أدلة المصدر: ios/, core/.

Rand Wallet لنظام iOS
bash
git clone --recurse-submodules https://github.com/randprotocol/clients.git && cd clients
git checkout v0.8.0 && git submodule update --init   # الإصدار الرسمي؛ core/vendor/fullnode @ v0.8.0 (c0878c3)
core/scripts/build-ios.sh   # → ios/Frameworks/RandWalletCore.xcframework
open ios/RandWallet.xcodeproj   # أو ابنِ باستخدام xcodebuild، أدناه

cd ios && xcodebuild -project RandWallet.xcodeproj -scheme RandWallet \
  -destination 'platform=iOS Simulator,name=iPhone 17' build
كل عميل

ما يفعله، على كل منصة

إنشاء محفظة
مفتاح إنفاق يُولَّد على الجهاز ويُعرض مرة واحدة لتحفظه، وعنوان rand1… المشتق منه. استورد مفتاحًا موجودًا، أو ملف wallet.key.json من واجهة rand CLI؛ فكل عميل يصدّر الملف نفسه.
الاستلام والإرسال
رصيدك هو مجموعة الملاحظات (notes) التي لا يفتحها سوى مفتاحك؛ وتمسح المحفظة شجرة الالتزامات لتجدها. والتحويل بعملة RAND أو بأي رمز RPL مدرج هو حزمة واحدة بأربعة مدخلات وأربعة مخرجات يخوّلها إثبات. لا أحد يعرف المرسل ولا المستلم ولا المبلغ ولا الأصل الذي انتقل.
الحنفية (Faucet)
على testnet ذات حنفية مفتوحة، تُصدر نقرة واحدة 100 RAND في ملاحظة (note) لا يفتحها سواك.
اكشف ما تختاره فقط
انسخ مفتاح العرض الخاص بك وافتح My history في RandScan لترى كل ملاحظة (note) أرسلتها أو استلمتها، أو انسخ مفتاح معاملة دفعة واحدة لتكشف تلك الدفعة بالذات ولا شيء غيرها. يفك المستكشف التشفير في متصفحك ولا يرسل المفتاح إلى أي مكان.

تُفتح مفاتيح العرض ومفاتيح المعاملات على randscan.org.

ملاحظات testnet

قبل أن ترسل أي شيء

السلسلة
تخدم نقطة النهاية العامة السلسلة 21، وهي تعمل منذ 12 Oct 2026 10:31 UTC (قُطعت على fullnode v0.8.0). تضمّن نواة المحفظة fullnode v0.8.0 (c0878c3) وترفض أي سلسلة أخرى: تعمل السلسلة 21 بمجموعة القيود 9، ولذلك لا تستطيع محفظة 0.7.x الإرسال عليها، ولا يستطيع هذا الإصدار الإرسال على السلسلة 20. تنتقل المفاتيح والعناوين كما هي؛ وتعرض المحفظة التي فحصت السلسلة 20 لافتة «سلسلة مختلفة» مرة واحدة ثم تعيد الفحص من كتلة التكوين الأولى للسلسلة 21. تحتفظ إيداعات الجسر وسحوباته برسم قدره 0.1% بعملة zUSD، وتعرضه المحفظة قبل أن تسحب.
نقطة نهاية RPC
Settings → Network. القيمة الافتراضية https://rpc.randprotocol.org؛ ويصلح أي RPC لـ rand-node تستطيع الوصول إليه، ويُفحص العنوان المحفوظ قبل اعتماده
الإثبات
يبلغ استهلاك إثبات الحزمة ذروته عند نحو 6.2 GB من الذاكرة، ويستغرق نحو دقيقة على معالج حاسوب محمول
الحالة
برمجيات testnet تجريبية. لم تخضع للتدقيق. لا قيمة حقيقية لعملة RAND على testnet
الترخيص
GPL-3.0-only، مثل حزم العقدة الكاملة التي يرتبط بها كل عميل
عملاء آخرون

محفظة واحدة، كل منصة

ملف المفتاح نفسه وصيغة العنوان نفسها والقواعد نفسها في كل مكان: المحفظة المنشأة هنا تُستورد إلى أي عميل آخر وإلى واجهة سطر الأوامر rand.