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.
- 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
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.
- 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.
- 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.
- 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.
# 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.
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.
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.
O compílala tú mismo
- 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).
- 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/.
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 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.