Rand Protocol
Mobile

Rand Wallet pour Android

Une application Java native au-dessus du cœur de portefeuille Rust partagé, chargé comme bibliothèque native. La clé de dépense est chiffrée sous une clé conservée par le Keystore d'Android, la sauvegarde est désactivée, et les versions de production ne parlent qu'en HTTPS.

La fiche sur Google Play est en attente. Tant qu'elle n'a pas passé la validation, installez la version 0.8.0 depuis le téléchargement ci-dessous, ou compilez-la depuis les sources.

Icône de Rand Wallet
Développé avec
Java
Distribué via
Google Play, d'abord en test ouvert
Prérequis
Android 8 (API 26) ou version ultérieure, arm64 ou x86_64
Envoi
Prouve sur le téléphone, ou via le prover de RandProtocol
Téléchargement

Version 0.8.0

Les fichiers sont joints à la release v0.8.0 sur GitHub ; les boutons ci-dessous sont des liens vers ces fichiers, et rien n'est servi depuis ce site.

  1. Ouvrez le fichier sur le téléphone et autorisez l'installation lorsqu'Android vous le demande, ou exécutez adb install dessus depuis un ordinateur.
  2. Le paquet est signé avec la clé propre à ce projet. Pour le vérifier, apksigner verify --print-certs doit afficher 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 signe avec sa propre clé : lorsque la fiche sera en ligne, Android vous demandera donc de supprimer cette copie avant d'installer celle-là. Exportez d'abord votre fichier de clé depuis Réglages.
Paquet Android (.apk)
arm64 et x86_64 · 11.9 MB
Télécharger
rand-wallet-0.8.0-android.apk
SHA-256 400d5c4873cc70c7893a4a0bed36eecf261bd1c9bb9578c6544d8ffbf7e976d7
Vérifier ce que vous avez téléchargé
SHA256SUMS
# avec SHA256SUMS téléchargé dans le même dossier que le fichier
shasum -a 256 -c SHA256SUMS --ignore-missing     # macOS
sha256sum -c SHA256SUMS --ignore-missing         # Linux

# ou affichez la somme d'un seul fichier et comparez-la à celle indiquée ci-dessus
shasum -a 256 rand-wallet-0.8.0-android.apk

Une somme identique indique que le fichier est bien celui qui a été publié. Elle n'indique pas que le fichier a été compilé à partir des sources : les builds ne sont pas encore reproductibles bit à bit ; si c'est ce que vous devez savoir, compilez-le vous-même.

Envoi

Prouve sur le téléphone, ou via le prover de RandProtocol

Sur un téléphone disposant d'environ 8 Go de mémoire, l'application prouve un transfert sur l'appareil, dans un service au premier plan accompagné d'une notification pendant son exécution ; changer d'application ne l'interrompt donc pas.

Une preuve de lot atteint un pic d'environ 6,2 Go. Sur un téléphone moins bien doté en mémoire, Android arrêterait l'application en pleine preuve ; l'étape de vérification avant envoi vous avertit donc avec les chiffres propres à l'appareil. Le téléphone utilise alors par défaut le prover de RandProtocol, ou votre propre rand-prover via https (Réglages → Prover), et construit le transfert pendant que le prover produit la preuve.

Un appareil qui ne peut pas produire de preuve utilise par défaut les provers de RandProtocol : quelques machines exploitées par les validateurs (quatre aujourd'hui, sous https://prover.randprotocol.org), sans frais. Depuis la version 0.6.9, chacune possède sa propre clé, que le portefeuille épingle, et le portefeuille vous en informe avant le premier envoi. La machine qui produit la preuve d'un envoi reçoit la clé de visualisation du portefeuille et un sel à usage unique : son opérateur peut lire tout l'historique du portefeuille, chaque paiement reçu et envoyé, mais ne peut pas dépenser. La clé de dépense ne quitte jamais votre appareil, qui produit lui-même la petite preuve d'autorisation. Pour plus de confidentialité, choisissez votre propre prover dans Réglages → Prover ; il est alors toujours préféré, et le portefeuille vérifie chaque preuve avant de la soumettre.

Appairer un prover, pas à pas : docs/prover.md.

Vos clés

Où se trouve la clé

La clé de dépense est l'unique secret du portefeuille. Il n'y a ni compte ni serveur qui en détienne une copie : si vous perdez la clé, personne ne peut la restaurer ; enregistrez-la donc dès que le portefeuille vous l'affiche.

Clé de dépense
Dans EncryptedSharedPreferences : AES-256-GCM sous une clé maître que détient le Keystore d'Android. La clé de visualisation n'est jamais stockée ; elle est dérivée en cas de besoin.
Déverrouillage
Invite biométrique, avec les identifiants de l'appareil en secours, et verrouillage automatique à l'issue du délai défini dans Réglages.
Sauvegarde
Désactivée : le coffre ne quitte donc jamais le téléphone via le service de sauvegarde de Google.
Notes
Un cache privé à l'application de vos notes et de la clé de transaction de chaque paiement, reconstruit par une nouvelle analyse. Les versions de production refusent le HTTP en clair.
Également

Swap, dans l'application

Depuis la version 0.7.1, les applications mobiles disposent de l'écran Swap que proposent les extensions et l'application de bureau : échangez des RAND et des jetons via les pools de durian.market sans quitter le portefeuille. Le téléphone produit lui-même la preuve de l'appel de programme et l'autorisation de dépense, ce qui demande environ 1,5 Go de mémoire, et les provers de RandProtocol produisent la preuve volumineuse. Le montant que vous recevez est exact ; si le pool bouge avant, rien n'est envoyé et vous obtenez une nouvelle cotation.

Compiler depuis les sources

Ou compilez-la vous-même

  1. Compilez un APK de débogage depuis le dépôt clients et installez-le avec adb, sur un téléphone ou sur un émulateur arm64 ou x86_64 (API 36).
  2. Depuis l'émulateur, un nœud sur votre propre ordinateur est http://10.0.2.2:8545 ; les versions de débogage n'autorisent le HTTP en clair que vers cette adresse et vers localhost.

Chaîne d'outils : Rust 1.98.1, épinglé dans le dépôt, que rustup installe. Le guide de compilation couvre chaque client à partir d'une machine vierge. Répertoires des sources : android/, core/.

Rand Wallet pour Android
bash
git clone --recurse-submodules https://github.com/randprotocol/clients.git && cd clients
git checkout v0.8.0 && git submodule update --init   # la version publiée ; 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
Tous les clients

Ce qu'il fait, sur toutes les plateformes

Créer un portefeuille
Une clé de dépense générée sur l'appareil, affichée une seule fois pour que vous la sauvegardiez, et l'adresse rand1… qui en est dérivée. Importez une clé existante, ou un wallet.key.json issu de la CLI rand ; tous les clients exportent le même fichier.
Recevoir et envoyer
Votre solde est l'ensemble des notes que seule votre clé peut ouvrir ; le portefeuille parcourt l'arbre d'engagements pour les trouver. Un transfert de RAND ou de n'importe quel jeton RPL répertorié est un seul bundle 4 entrées, 4 sorties, autorisé par une preuve. Personne n'apprend l'expéditeur, le destinataire, le montant ni l'actif déplacé.
Faucet
Sur un testnet doté d'un faucet ouvert, une simple pression crée 100 RAND dans une note que vous seul pouvez ouvrir.
Ne divulguer que ce que vous choisissez
Copiez votre clé de visualisation et ouvrez My history sur RandScan pour voir chaque note que vous avez envoyée ou reçue, ou copiez la clé de transaction d'un paiement pour divulguer exactement ce paiement et rien d'autre. L'explorateur déchiffre dans votre navigateur et n'envoie la clé nulle part.

Les clés de consultation et les clés de transaction s'ouvrent sur randscan.org.

Notes sur le testnet

Avant d'envoyer quoi que ce soit

Chaîne
Le point d'accès public sert la chain 21, en service depuis le 12 Oct 2026 10:31 UTC (issue de fullnode v0.8.0). Le cœur du portefeuille intègre fullnode v0.8.0 (c0878c3) et refuse toute autre chaîne : la chain 21 exécute le constraint set 9, de sorte qu'un portefeuille 0.7.x ne peut pas y envoyer de transactions, et cette version ne peut pas en envoyer sur la chain 20. Les clés et les adresses sont conservées ; un portefeuille qui scannait la chain 20 affiche une seule fois une bannière de chaîne différente, puis relance l'analyse depuis le bloc de genèse de la chain 21. Les dépôts et retraits via le bridge appliquent des frais de 0,1 % en zUSD, que le portefeuille affiche avant le retrait.
Point d'accès RPC
Settings → Network. Par défaut https://rpc.randprotocol.org ; tout RPC rand-node que vous pouvez joindre convient, et une URL enregistrée est vérifiée avant d'être conservée
Génération de preuves
Une preuve de bundle atteint environ 6,2 GB de mémoire au pic et prend environ une minute sur un CPU de portable
Statut
Logiciel testnet expérimental. Non audité. Le RAND sur le testnet n'a aucune valeur réelle
Licence
GPL-3.0-only, comme les crates du nœud complet que chaque client lie
Autres clients

Un portefeuille, toutes les plateformes

Le même fichier de clé, le même format d'adresse et les mêmes règles partout : un portefeuille créé ici s'importe dans tout autre client et dans la CLI rand.