Rand Protocol
Мобильное

Rand Wallet для iOS

Нативное приложение на SwiftUI поверх общего ядра кошелька на Rust, подключённого как XCFramework. Ключ расходования остаётся в Keychain iPhone под защитой Face ID или Touch ID, а приложение обращается только к тому RPC-узлу, который вы выбрали.

Публикация в App Store ожидается. Пока она не прошла проверку, соберите клиент из исходного кода, как описано ниже.

Значок Rand Wallet
Технологии
Swift · SwiftUI
Распространяется через
TestFlight на время тестирования, затем App Store
Требуется
iOS 16 или новее
Отправка
Доказательство строится на телефоне или через prover RandProtocol
Отправка

Доказательство строится на телефоне или через prover RandProtocol

На телефоне с памятью около 8 ГБ приложение строит доказательство перевода прямо на устройстве. Это занимает минуту-две; экран отправки не даёт экрану погаснуть и просит не закрывать приложение.

Доказательство для пакета достигает пика около 6,2 ГБ. На телефоне с меньшим объёмом памяти iOS остановила бы приложение посреди построения доказательства, поэтому на шаге проверки выводится предупреждение с реальными показателями устройства. Тогда телефон по умолчанию использует prover RandProtocol или ваш собственный rand-prover по https (Settings → Prover) и формирует перевод, пока prover строит доказательство.

Устройство, которое не может построить доказательство, по умолчанию использует provers RandProtocol: несколько машин, которыми управляют валидаторы (сегодня их четыре, по адресу https://prover.randprotocol.org), без комиссии. Начиная с 0.6.9 у каждой из них свой ключ, который кошелёк закрепляет, и кошелёк сообщает об этом перед первой отправкой. Машина, строящая доказательство для отправки, получает ключ просмотра кошелька и одноразовую соль: её оператор может прочитать всю историю кошелька, то есть каждый полученный и отправленный платёж, но не может тратить средства. Ключ расходования никогда не покидает ваше устройство, которое само строит небольшое доказательство авторизации. Для большей приватности выберите собственный prover в Settings → Prover: ему всегда будет отдаваться предпочтение; кошелёк проверяет каждое доказательство перед отправкой.

Подключение prover шаг за шагом: docs/prover.md.

Ваши ключи

Где хранится ключ

Ключ траты — единственный секрет кошелька. Нет ни учётной записи, ни сервера, хранящего его копию: потеряв ключ, его не сможет восстановить никто, поэтому сохраните его, когда кошелёк его покажет.

Ключ расходования
В Keychain, доступен только пока устройство разблокировано, и никогда не синхронизируется с другими устройствами. Ключ просмотра и адрес выводятся из него при разблокировке и не сохраняются.
Разблокировка
Face ID или Touch ID, с резервным вариантом в виде код-пароля устройства. Приложение блокируется по истечении интервала, заданного в Settings, когда уходит в фоновый режим, но никогда не блокируется во время построения доказательства.
Ноты
Хранилище нот — это кэш данных цепочки, записанный с полной защитой файлов, поэтому оно недоступно для чтения, пока телефон заблокирован.
Приватность
Манифест приватности заявляет об отсутствии отслеживания и сбора данных. Единственный сетевой хост — настроенный вами RPC URL, а также randscan.org, когда вы нажимаете на ссылку.
Также

Обмен в приложении

Начиная с версии 0.7.1 в мобильных приложениях есть экран Swap, как в расширениях и настольном приложении: торгуйте RAND и токенами через пулы durian.market, не выходя из кошелька. Доказательство вызова программы и авторизацию траты телефон формирует сам, для чего требуется около 1,5 ГБ памяти, а крупное доказательство строят провайверы 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 из CLI rand; каждый клиент экспортирует один и тот же файл.
Получение и отправка
Ваш баланс — это набор нот, которые может открыть только ваш ключ; чтобы найти их, кошелёк сканирует дерево обязательств. Перевод RAND или любого токена RPL из списка — это один пакет 4-in-4-out, авторизованный доказательством. Никто не узнаёт ни отправителя, ни получателя, ни сумму, ни то, какой актив перемещался.
Faucet
В testnet с открытым faucet одно нажатие чеканит 100 RAND в ноту, которую может открыть только вы.
Раскрывайте только то, что выберете
Скопируйте свой ключ просмотра и откройте My history в RandScan, чтобы увидеть каждую ноту, которую вы отправили или получили, либо скопируйте ключ транзакции одного платежа, чтобы раскрыть именно этот платёж и ничего больше. Обозреватель расшифровывает данные в вашем браузере и никуда не отправляет ключ.

Ключи просмотра и ключи транзакций открываются на randscan.org.

Заметки о testnet

Прежде чем что-либо отправлять

Цепочка
Публичная конечная точка обслуживает chain 21, работающую с 12 Oct 2026 10:31 UTC (выпущена на fullnode v0.8.0). Ядро кошелька включает fullnode v0.8.0 (c0878c3) и отвергает любую другую цепочку: chain 21 работает на constraint set 9, поэтому кошелёк 0.7.x не может отправлять в ней транзакции, а этот релиз не может отправлять в chain 20. Ключи и адреса сохраняются; кошелёк, сканировавший chain 20, один раз показывает баннер о другой цепочке и заново сканирует с генезиса chain 21. Пополнения и выводы через мост по-прежнему облагаются комиссией 0,1% в zUSD, которую кошелёк показывает до вывода средств.
RPC-endpoint
Settings → Network. По умолчанию https://rpc.randprotocol.org; подойдёт любой RPC rand-node, до которого вы можете достучаться, а сохранённый URL проверяется до того, как будет сохранён
Построение доказательств
Пик памяти при доказательстве пакета составляет около 6,2 GB, на процессоре ноутбука это занимает около минуты
Статус
Экспериментальное программное обеспечение для testnet. Не проходило аудит. RAND в testnet не имеет реальной стоимости
Лицензия
GPL-3.0-only, как и крейты полного узла, с которыми компонуется каждый клиент
Другие клиенты

Один кошелёк, все платформы

Один и тот же файл ключа, формат адреса и правила везде: кошелёк, созданный здесь, импортируется в любой другой клиент и в CLI rand.