Rand Wallet
Un wallet shielded per RAND, uno per ogni piattaforma. Crea una spend key e un indirizzo rand1…, trova le tue note scansionando la catena con la tua chiave, genera le prove dei trasferimenti sul dispositivo che hai in mano o tramite un prover tuo, richiede fondi al faucet di testnet e ti fornisce la viewing key e le chiavi per singola transazione con cui randscan.org apre le transazioni riservate. Nulla del tuo saldo o dei tuoi pagamenti è visibile a chi non abbia ricevuto una chiave da te — e il wallet non fa eccezione: non detiene alcun account, solo le tue note.
Registrati o accedi per creare un wallet sul tuo account della vendita, dove l'indirizzo finisce direttamente sulla tua allocazione — oppure creane uno qui, offline, senza alcun account.
iOS
In arrivo sullo store- Distribuito tramite
- TestFlight durante la fase di test, poi l'App Store
- Requisiti
- iOS 16 o successivo
Android
Scarica 0.8.0- Distribuito tramite
- Google Play, prima in test aperto
- Requisiti
- Android 8 (API 26) o successivo, arm64 o x86_64
Chrome
Scarica 0.8.0- Distribuito tramite
- il Chrome Web Store; si installa anche in Edge e Brave
- Requisiti
- Chrome 116 o successivo
Firefox
Scarica 0.8.0- Distribuito tramite
- addons.mozilla.org
- Requisiti
- Firefox 140 o successivo
Windows
Scarica 0.8.0- Distribuito tramite
- un programma di installazione .msi, da GitHub Releases
- Requisiti
- Windows 10 o successivo, con il runtime WebView2; 8 GiB di memoria per inviare
macOS
Scarica 0.8.0- Distribuito tramite
- un .dmg, da GitHub Releases
- Requisiti
- 8 GiB di memoria per inviare; Xcode Command Line Tools per compilare
Linux
Scarica 0.8.0- Distribuito tramite
- un .deb, un .rpm, un AppImage o il binario nudo, da GitHub Releases
- Requisiti
- webkit2gtk 4.1; 8 GiB di memoria per inviare
Web
Esegui in locale- Distribuito tramite
- un checkout del repository clients, servito sulla tua macchina
- Requisiti
- Node 20 o successivo; un browser aggiornato
Versione 0.8.0, 2026-10-12. Ogni download è un file della release v0.8.0 su GitHub, e la pagina di ciascun client riporta il relativo SHA-256; l'elenco completo è in SHA256SUMS. Preferisci compilarlo? Compilalo dai sorgenti. Il wallet non raccoglie dati: informativa sulla privacy · termini di servizio.
Creane uno qui, offline
Il generatore a destra è il codice delle chiavi del full node, compilato in WebAssembly e caricato in questa pagina. Disattiva il Wi‑Fi quando indica di essere pronto e continuerà a funzionare: la spend key nasce dalla casualità del tuo dispositivo, l'indirizzo ne viene derivato al momento e nulla viene inviato altrove — non c'è un altrove in cui possa andare.
L'indirizzo è rand1 più 1.667 caratteri: la chiave delle note del tuo wallet e la chiave di incapsulamento ML-KEM a cui il mittente sigilla una nota, la forma in uso sulle chain 18 e 19. (La chain 11 aveva provato con un hash di 54 caratteri di una chiave di firma; è stata ripristinata perché un mittente non può sigillare una nota a un hash — la documentazione ne conserva la cronaca.) Carica il file della chiave nella CLI rand o in una qualsiasi app Rand Wallet e rand address stampa lo stesso indirizzo.
Vuoi l'indirizzo registrato per una distribuzione? La pagina dell'indirizzo offre lo stesso generatore più un account in cui salvarlo: un'email e una password, e viene conservato solo l'indirizzo.
Preferisci verificare prima il codice? Si trova in crates/randprotocol-zkvm/src/address.rs nel full node, mentre il wrapper per il browser è server/address-wasm nel repository di questo sito.
- Attendi che il badge qui sopra indichi Ready offline. Tutto ciò che serve al wallet è allora in questa scheda.
- Disattiva il Wi‑Fi oppure attiva la modalità aereo. Tieni aperta questa scheda.
- Genera. La chiave di spesa deriva dalla casualità del tuo dispositivo e non lo lascia mai.
- Scarica wallet.key.json e copia l'indirizzo. Poi riconnettiti.
Impronta Leggila a voce a chi dovrà inviarti i fondi, oppure confrontala affiancata: con 16 caratteri, due indirizzi diversi non coincidono per caso.
Salvare con l'impronta ? Confrontala con quella che il titolare ti legge a voce prima di salvare.
Salvati solo in questo browser; cancellando i dati del sito vengono rimossi.
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
Il file della chiave è il wallet. Chi lo possiede può spendere ogni nota che l'indirizzo riceverà in futuro; senza di esso, nessuno può farlo. Conservalo in un luogo privato e fuori da questo browser — un gestore di password, un'unità cifrata — e solo dopo riconnettiti. Lo stesso file si apre nella CLI rand (rand address stampa questo indirizzo) e in ogni app Rand Wallet. L'indirizzo è pubblico per progetto: contiene la chiave della nota e la chiave di incapsulamento ML-KEM a cui il mittente sigilla una nota, ed è per questo che è lungo 1.667 caratteri; la chiave di spesa è l'unico segreto. Hai già un wallet? Il suo indirizzo è ciò che stampa rand address — nulla su questo sito richiede mai il file della chiave o la chiave di spesa.
Ogni piattaforma, un solo wallet
Lo stesso file della chiave, lo stesso formato di indirizzo e le stesse regole su ogni piattaforma. Un wallet creato sul telefono si importa nel browser e nella CLI rand, e viceversa.
Un solo core, le tue chiavi, il tuo prover
Ogni client incapsula un unico core in Rust costruito a partire dai crate del full node: la gerarchia di chiavi Poseidon2, le envelope ML-KEM-768 e il prover zkVM sono il codice del nodo, compilato in un XCFramework per iOS, in una libreria nativa per Android, in WebAssembly per i browser e in un crate collegato nell'app desktop. Lo Swift, il Java e il JavaScript sopra di esso sono il wallet: il client RPC, l'archivio delle note e le schermate. La tua spend key viene generata in locale dalla casualità del sistema operativo e conservata cifrata sul dispositivo; ciò che il wallet invia all'endpoint RPC è ciò che un bundle pubblica comunque — commitment, nullifier, envelope sigillate e una prova. Una prova richiede circa 5,7 GB di memoria, quindi l'app desktop e i telefoni di fascia alta generano le prove da sé, mentre i wallet nel browser si associano a un prover che gestisci tu, il quale riceve la chiave sigillata solo per sé.
Prima di inviare qualsiasi cosa
- Chain
- L'endpoint pubblico serve la chain 21, attiva dal 12 ottobre 2026, 10:31 UTC (creata su fullnode v0.8.0). Il core del wallet incorpora fullnode v0.8.0 (c0878c3) e rifiuta qualsiasi altra chain: la chain 21 esegue il constraint set 9, quindi un wallet 0.7.x non può inviare su di essa, e questa release non può inviare sulla chain 20. Chiavi e indirizzi restano validi; un wallet che ha scansionato la chain 20 mostra una sola volta un banner di chain diversa e riesegue la scansione dal genesis della chain 21. I depositi e i prelievi tramite bridge mantengono una commissione dello 0,1% in zUSD, che il wallet mostra prima del prelievo.
- Endpoint RPC
- Impostazioni → Rete. Per impostazione predefinita https://rpc.randprotocol.org; funziona qualsiasi RPC di rand-node raggiungibile, e un URL salvato viene verificato prima di essere conservato
- Generazione delle prove
- La prova di un bundle raggiunge un picco di circa 6,2 GB di memoria e richiede circa un minuto su una CPU di un portatile
- Stato
- Software testnet sperimentale. Non sottoposto ad audit. RAND sulla testnet non ha alcun valore reale
- Licenza
- GPL-3.0-only, come i crate del full node a cui si collega ogni client
Oppure compilalo tu
Il repository dei client contiene il core in Rust, l'interfaccia condivisa, ogni app e il packaging per ciascuno store. Il core include il full node alla v0.6.7, la build su cui girava la chain 19, come submodule. La guida alla compilazione percorre ogni client partendo da una macchina pulita, e la pagina di ciascun client ha i propri passaggi.
# Rust 1.98.1 (versione fissata; la installa rustup). Xcode 16+ per iOS, JDK 17+ con SDK 36 e NDK 27 per Android, Node 22+ per le estensioni
git clone --recurse-submodules https://github.com/randprotocol/clients.git && cd clients # core/vendor/fullnode @ v0.6.7 (86941a1)
cd core && cargo test --release && cd .. # il core, inclusa una prova reale (~1 min)
core/scripts/build-wasm.sh # → extension/shared/core/ (installa wasm-bindgen-cli)
core/scripts/build-ios.sh # → ios/Frameworks/RandWalletCore.xcframework
core/scripts/build-android.sh # → android/app/src/main/jniLibs/ (richiede un NDK)
scripts/release/build-desktop.sh # l'app desktop: dmg / msi / AppImage, deb, rpm
web/wallet/serve.sh # il wallet web locale su http://127.0.0.1:8787/
# Poi: /clients/ios, /clients/android, /clients/chrome, /clients/firefox, /clients/macos …