Rand Wallet para iOS
Una app nativa en SwiftUI sobre el núcleo de wallet compartido en Rust, enlazado como XCFramework. Tu clave de gasto permanece en el llavero (Keychain) del iPhone, protegida por Face ID o Touch ID, y la app no se comunica con nada más que el endpoint RPC que tú elijas.
La ficha en App Store está pendiente. Hasta que supere la revisión, compílela desde el código fuente, más abajo.
- Desarrollada con
- Swift · SwiftUI
- Distribuida a través de
- TestFlight durante las pruebas y, después, la App Store
- Requiere
- iOS 16 o posterior
- Envío
- Genera la prueba en el teléfono o a través del prover de RandProtocol
Genera la prueba en el teléfono o a través del prover de RandProtocol
En un teléfono con unos 8 GB de memoria, la app genera la prueba de una transferencia en el propio dispositivo. Tarda uno o dos minutos, y el flujo de envío mantiene la pantalla encendida y te pide que mantengas la app abierta.
La prueba de un paquete alcanza un pico de unos 6,2 GB. En un teléfono con menos memoria, iOS detendría la app a mitad de la prueba, por lo que el paso de revisión advierte con las cifras del propio dispositivo. Entonces el teléfono usa por defecto el prover de RandProtocol, o tu propio rand-prover mediante https (Ajustes → Prover), y construye la transferencia mientras el prover genera la prueba.
Un dispositivo que no puede generar una prueba usa por defecto los provers de RandProtocol: unas pocas máquinas operadas por los validadores (cuatro hoy, bajo https://prover.randprotocol.org), sin comisión. Desde la versión 0.6.9, cada una tiene su propia clave, que la wallet fija (pinning), y la wallet lo indica antes del primer envío. La máquina que genera la prueba de un envío recibe la clave de visualización de la wallet y una sal de un solo uso: su operador puede leer todo el historial de la wallet, cada pago recibido y enviado, pero no puede gastar. La clave de gasto nunca sale de tu dispositivo, que genera por sí mismo la pequeña prueba de autorización. Para mayor privacidad, elige tu propio prover en Ajustes → Prover, que entonces se prefiere siempre; la wallet verifica cada prueba antes de enviarla.
Cómo emparejar un prover, paso a paso: docs/prover.md.
Dónde reside la clave
La clave de gasto es el único secreto de la billetera. No hay ninguna cuenta ni ningún servidor que guarde una copia: si pierde la clave, nadie puede restaurarla, así que guárdela cuando la billetera se la muestre.
Swap, en la app
Desde la versión 0.7.1, las apps para teléfono tienen la pantalla Swap que ya tenían las extensiones y la app de escritorio: intercambia RAND y tokens a través de los pools de durian.market sin salir de la wallet. El teléfono genera por sí mismo la prueba de la llamada al programa y la autorización de gasto, lo que requiere unos 1,5 GB de memoria, y los provers de RandProtocol generan la prueba grande. El importe que recibes es exacto; si el pool se mueve antes, no se envía nada y obtienes una nueva cotización.
Hasta que la ficha de la App Store sea aprobada
- Apple instala una app solo desde TestFlight o la App Store, por lo que no hay ningún archivo que descargar para iOS.
- Compílala y ejecútala desde el repositorio de clients en Xcode 16 o posterior, en un simulador o en tu propio dispositivo.
- Los enlaces randpay: abren la pantalla de envío con los datos rellenados; no se envía nada hasta que confirmes.
Cadena de herramientas: Rust 1.98.1, fijada en el repositorio, que rustup instala. La guía de compilación cubre todos los clientes desde una máquina limpia. Directorios del código fuente: ios/, core/.
git clone --recurse-submodules https://github.com/randprotocol/clients.git && cd clients
git checkout v0.8.0 && git submodule update --init # la versión publicada; core/vendor/fullnode @ v0.8.0 (c0878c3)
core/scripts/build-ios.sh # → ios/Frameworks/RandWalletCore.xcframework
open ios/RandWallet.xcodeproj # o compila con xcodebuild, más abajo
cd ios && xcodebuild -project RandWallet.xcodeproj -scheme RandWallet \
-destination 'platform=iOS Simulator,name=iPhone 17' build Qué hace, en cada plataforma
- Crear una wallet
- Una clave de gasto generada en el dispositivo, mostrada una sola vez para que la guardes, y la dirección rand1… derivada de ella. Importa una clave existente, o un wallet.key.json de la CLI rand; todos los clientes exportan el mismo archivo.
- Recibir y enviar
- Tu saldo es el conjunto de notas que solo tu clave puede abrir; la wallet escanea el árbol de compromisos para encontrarlas. Una transferencia de RAND o de cualquier token RPL listado es un único bundle de 4 entradas y 4 salidas autorizado por una prueba. Nadie llega a saber quién envía, quién recibe, el importe ni qué activo se movió.
- Faucet
- En un testnet con faucet abierto, un toque acuña 100 RAND en una nota que solo tú puedes abrir.
- Divulga solo lo que elijas
- Copia tu clave de visualización y abre My history en RandScan para ver todas las notas que enviaste o recibiste, o copia la clave de transacción de un pago para divulgar exactamente ese pago y nada más. El explorador descifra en tu navegador y nunca envía la clave a ninguna parte.
Las claves de visualización y las claves de transacción se abren en randscan.org.
Antes de enviar nada
- Cadena
- El endpoint público sirve la cadena 21, activa desde el 12 Oct 2026 10:31 UTC (generada a partir de fullnode v0.8.0). El núcleo de la wallet incorpora fullnode v0.8.0 (c0878c3) y rechaza cualquier otra cadena: la cadena 21 ejecuta el conjunto de restricciones 9, por lo que una wallet 0.7.x no puede enviar en ella, y esta versión no puede enviar en la cadena 20. Las claves y las direcciones se mantienen; una wallet que haya escaneado la cadena 20 muestra una vez un aviso de cadena distinta y vuelve a escanear desde el génesis de la cadena 21. Los depósitos y retiros del puente mantienen una comisión del 0,1 % en zUSD, que la wallet muestra antes de retirar.
- Endpoint RPC
- Settings → Network. Por defecto es https://rpc.randprotocol.org; sirve cualquier RPC de rand-node al que puedas acceder, y una URL guardada se comprueba antes de conservarla
- Generación de pruebas
- Una prueba de bundle alcanza un pico de unos 6,2 GB de memoria y tarda cerca de un minuto en la CPU de un portátil
- Estado
- Software experimental de testnet. Sin auditar. RAND en el testnet no tiene valor real
- Licencia
- GPL-3.0-only, como los crates del nodo completo que enlaza cada cliente
Una billetera, todas las plataformas
El mismo archivo de claves, el mismo formato de dirección y las mismas reglas en todas partes: una billetera creada aquí se importa en cualquier otro cliente y en la CLI rand.