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.
- 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
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.
- 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.
- 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.
- 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.
# 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.
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.
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.
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.
Ou compilez-la vous-même
- 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).
- 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/.
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 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.
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
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.