Rand Wallet для iOS
Нативное приложение на SwiftUI поверх общего ядра кошелька на Rust, подключённого как XCFramework. Ключ расходования остаётся в Keychain iPhone под защитой Face ID или Touch ID, а приложение обращается только к тому RPC-узлу, который вы выбрали.
Публикация в App Store ожидается. Пока она не прошла проверку, соберите клиент из исходного кода, как описано ниже.
- Технологии
- 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.
Где хранится ключ
Ключ траты — единственный секрет кошелька. Нет ни учётной записи, ни сервера, хранящего его копию: потеряв ключ, его не сможет восстановить никто, поэтому сохраните его, когда кошелёк его покажет.
Обмен в приложении
Начиная с версии 0.7.1 в мобильных приложениях есть экран Swap, как в расширениях и настольном приложении: торгуйте RAND и токенами через пулы durian.market, не выходя из кошелька. Доказательство вызова программы и авторизацию траты телефон формирует сам, для чего требуется около 1,5 ГБ памяти, а крупное доказательство строят провайверы RandProtocol. Сумма, которую вы получите, точна; если пул изменится раньше, ничего не будет отправлено, и вы получите новую котировку.
Пока публикация в App Store не одобрена
- Apple устанавливает приложения только из TestFlight или App Store, поэтому для iOS нет файла, который можно скачать.
- Соберите и запустите его из репозитория clients в Xcode 16 или новее — на симуляторе или на собственном устройстве.
- Ссылки randpay: открывают экран отправки с заполненными полями; ничего не отправляется, пока вы не подтвердите.
Набор инструментов: Rust 1.98.1, зафиксирован в репозитории и устанавливается через rustup. Руководство по сборке охватывает каждый клиент на чистой машине. Каталоги с исходным кодом: ios/, core/.
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.
Прежде чем что-либо отправлять
- Цепочка
- Публичная конечная точка обслуживает 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.