Rand Protocol
Móvil

Rand Wallet para Android

Una app nativa en Java sobre el núcleo de wallet compartido en Rust, cargado como biblioteca nativa. La clave de gasto se cifra con una clave que custodia el Keystore de Android, la copia de seguridad está desactivada y las compilaciones de producción solo hablan HTTPS.

La ficha en Google Play está pendiente. Hasta que supere la revisión, instale la versión 0.8.0 desde la descarga de abajo, o compílela desde el código fuente.

Icono de Rand Wallet
Desarrollada con
Java
Distribuida a través de
Google Play, primero en pruebas abiertas
Requiere
Android 8 (API 26) o posterior, arm64 o x86_64
Envío
Genera la prueba en el teléfono o a través del prover de RandProtocol
Descarga

Versión 0.8.0

Los archivos están adjuntos a la versión v0.8.0 en GitHub; los botones de aquí son enlaces a ellos, y este sitio no sirve nada.

  1. Abre el archivo en el teléfono y permite la instalación cuando Android lo pida, o ejecuta adb install sobre él desde un ordenador.
  2. El paquete está firmado con la propia clave de este proyecto. Para comprobarlo, apksigner verify --print-certs debería mostrar el SHA-256 75:22:2E:BF:22:D3:95:80:A5:11:2A:AC:B7:EC:2E:03:93:91:07:77:96:E0:45:1D:7B:CF:E3:7E:FA:06:53:52.
  3. Google Play firma con su propia clave, así que, cuando la ficha esté publicada, Android te pedirá que elimines esta copia antes de instalar aquella. Exporta antes tu archivo de claves desde Ajustes.
Paquete de Android (.apk)
arm64 y x86_64 · 11.9 MB
Descargar
rand-wallet-0.8.0-android.apk
SHA-256 400d5c4873cc70c7893a4a0bed36eecf261bd1c9bb9578c6544d8ffbf7e976d7
Compruebe lo que ha descargado
SHA256SUMS
# con SHA256SUMS descargado en la misma carpeta que el archivo
shasum -a 256 -c SHA256SUMS --ignore-missing     # macOS
sha256sum -c SHA256SUMS --ignore-missing         # Linux

# o imprima la suma de un solo archivo y compárela con la de arriba
shasum -a 256 rand-wallet-0.8.0-android.apk

Una suma coincidente indica que el archivo es el que se publicó. No indica que el archivo se haya compilado a partir del código fuente: las compilaciones aún no son reproducibles bit a bit, así que, si eso es lo que necesita saber, compílelo usted mismo.

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, en un servicio en primer plano con una notificación mientras se ejecuta, de modo que cambiar de app no la detiene.

La prueba de un paquete alcanza un pico de unos 6,2 GB. En un teléfono con menos memoria, Android 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 EncryptedSharedPreferences: AES-256-GCM con una clave maestra que custodia el Keystore de Android. La clave de visualización nunca se almacena; se deriva cuando se necesita.
Desbloqueo
Solicitud biométrica, con la credencial del dispositivo como alternativa, y bloqueo automático tras el intervalo definido en Ajustes.
Copia de seguridad
Desactivada, de modo que la bóveda nunca sale del teléfono a través del servicio de copia de seguridad de Google.
Notas
Una caché privada de la app con tus notas y con la clave de transacción de cada pago, que se reconstruye con un nuevo escaneo. Las compilaciones de producción rechazan HTTP sin cifrar.
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

O compílala tú mismo

  1. Compila un APK de depuración desde el repositorio de clients e instálalo con adb, en un teléfono o en un emulador arm64 o x86_64 (API 36).
  2. Desde el emulador, un nodo en tu propio ordenador es http://10.0.2.2:8545; las compilaciones de depuración permiten HTTP sin cifrar solo hacia esa dirección y hacia localhost.

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: android/, core/.

Rand Wallet para Android
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-android.sh   # → android/app/src/main/jniLibs/ (JDK 17, SDK 36, NDK 27)
cd android && ./gradlew assembleDebug   # → app/build/outputs/apk/debug/app-debug.apk
adb install -r app/build/outputs/apk/debug/app-debug.apk
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.