Rand Protocol
Móvil

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.

Icono de Rand Wallet
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
Envío

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.

Sus claves

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.

Clave de gasto
En el llavero (Keychain), disponible solo mientras el dispositivo está desbloqueado y nunca sincronizada con otro dispositivo. La clave de visualización y la dirección se derivan de ella al desbloquear y no se almacenan.
Desbloqueo
Face ID o Touch ID, con el código del dispositivo como alternativa. La app se bloquea tras el intervalo definido en Ajustes cuando pasa a segundo plano, pero nunca durante una prueba.
Notas
El almacén de notas es una caché de datos de la cadena, escrita con protección completa de archivos, de modo que es ilegible mientras el teléfono está bloqueado.
Privacidad
El manifiesto de privacidad declara que no hay seguimiento ni datos recopilados. El único host de red es la URL RPC que configuras, además de randscan.org cuando pulsas un enlace.
También

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.

Compilar desde el código fuente

Hasta que la ficha de la App Store sea aprobada

  1. Apple instala una app solo desde TestFlight o la App Store, por lo que no hay ningún archivo que descargar para iOS.
  2. Compílala y ejecútala desde el repositorio de clients en Xcode 16 o posterior, en un simulador o en tu propio dispositivo.
  3. 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/.

Rand Wallet para iOS
bash
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
Todos los clientes

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.

Notas sobre la testnet

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
Otros clientes

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.