Rand Protocol
Estensione del browser

Rand Wallet per Firefox

La stessa estensione della versione per Chrome, dallo stesso codice, impacchettata per Firefox. Nulla è minificato né incluso in un bundle, quindi il codice che Mozilla verifica è il codice che esegui.

Scheda su Firefox Add-ons in attesa. Finché non supera la revisione, installa la versione 0.8.0 dal download qui sotto, oppure compilala dai sorgenti.

Icona di Rand Wallet
Realizzato con
JavaScript · Manifest V3
Distribuito tramite
addons.mozilla.org
Richiede
Firefox 140 o successivo
Invio
Invia tramite il prover di RandProtocol, o il tuo
Download

Versione 0.8.0

I file sono allegati alla release v0.8.0 su GitHub; i pulsanti qui sono collegamenti a quei file e da questo sito non viene servito nulla.

  1. Apri about:debugging, scegli This Firefox → Load Temporary Add-on… e seleziona lo zip.
  2. Un componente aggiuntivo temporaneo viene rimosso al riavvio di Firefox. La versione release di Firefox installa in modo permanente solo ciò che addons.mozilla.org ha firmato, quindi funziona così finché la scheda non è pubblicata.
  3. Firefox concede i permessi di sito di un'estensione al momento dell'installazione. Se lì hai rifiutato randbridge.org, concedilo in seguito dal pannello dei permessi dell'estensione.
Componente aggiuntivo Firefox (.zip)
Firefox 140 o successivo · 2.7 MB
Scarica
rand-wallet-firefox-0.8.0.zip
SHA-256 2982e605ba06dfac9de02e67652e3afc6d8b4d4ce20cb17225fe5c8335a503c6
Verifica ciò che hai scaricato
SHA256SUMS
# con SHA256SUMS scaricato nella stessa cartella del file
shasum -a 256 -c SHA256SUMS --ignore-missing     # macOS
sha256sum -c SHA256SUMS --ignore-missing         # Linux

# oppure stampa la somma di un singolo file e confrontala con quella indicata sopra
shasum -a 256 rand-wallet-firefox-0.8.0.zip

Una somma corrispondente indica che il file è quello che è stato pubblicato. Non indica che il file sia stato compilato dai sorgenti: le build non sono ancora riproducibili bit per bit, quindi, se è ciò che ti serve sapere, compilalo tu stesso.

Invio

Invia tramite il prover di RandProtocol, o il tuo

La prova di un bundle raggiunge un picco di circa 6,2 GB di memoria e un browser concede a WebAssembly 4 GiB, quindi l'estensione non genera mai le prove da sé. Costruisce il trasferimento, fa generare la prova a un prover (per impostazione predefinita il prover di RandProtocol, oppure uno che abbini tu), verifica la prova in locale e la invia.

Di default usa il prover di RandProtocol, dopo un'informativa una tantum. Per tenere la tua cronologia fuori dalla sua portata, abbina l'app desktop Rand Wallet sullo stesso computer (in Settings → Prove for my other devices, poi incolla il link in Settings → Prover dell'estensione) oppure il tuo rand-prover su un server.

Un dispositivo che non può generare una prova usa per impostazione predefinita i prover di RandProtocol: alcune macchine gestite dai validator (quattro oggi, sotto https://prover.randprotocol.org), senza commissioni. Dalla versione 0.6.9 ciascuno ha la propria chiave, che il wallet fissa (pin), e il wallet lo segnala prima del primo invio. La macchina che genera la prova di un invio riceve la viewing key del wallet e un salt monouso: il suo operatore può leggere l'intera cronologia del wallet, ogni pagamento ricevuto e inviato, e non può spendere. La spend key non lascia mai il tuo dispositivo, che genera da sé la piccola prova di autorizzazione. Per maggiore riservatezza scegli il tuo prover in Settings → Prover, che da quel momento è sempre preferito; il wallet verifica ogni prova prima di inviarla.

Abbinare un prover, passo per passo: docs/prover.md.

Le tue chiavi

Dove risiede la chiave

La chiave di spesa è l'unico segreto del wallet. Non esiste alcun account né alcun server che ne conservi una copia: se perdi la chiave nessuno può ripristinarla, quindi salvala quando il wallet te la mostra.

Spend key
Generata all'interno del core del wallet a partire dalla casualità del sistema operativo e conservata solo come vault AES-256-GCM sotto PBKDF2-SHA256. Da sbloccata risiede nella session storage del browser, che si svuota alla chiusura del browser e che le pagine web non possono leggere.
Chiavi a schermo
La viewing key e l'esportazione della spend key sono protette da una nuova verifica della password che costa quanto lo sblocco. Nessuna chiave viene mai inserita in un URL, nella console o nell'archiviazione persistente dell'estensione.
Blocco automatico
Un allarme del browser, non un timer di pagina, così il wallet si blocca in orario anche dopo che il popup è stato chiuso e il worker in background è stato messo in sospensione.
Rete
Solo l'URL RPC nelle Settings. Puntarlo altrove richiede il permesso di raggiungere quel solo host. Nessuna analisi e nessun codice remoto: l'estensione esegue solo gli script con cui è stata installata.
Inoltre

Swap, e window.rand per i siti Rand

La schermata Swap del wallet scambia RAND e token attraverso i pool di durian.market: ricava dal pool sulla chain l'importo esatto, poi genera la prova e invia lo swap da sé, e durian.market può richiedere lo stesso swap tramite window.rand.invoke.

randbridge.org trova l'estensione come window.rand e può chiedere di connettersi. La connessione richiede un wallet sbloccato e la tua approvazione per quel sito, e un sito connesso conosce il tuo indirizzo e il relativo hash del destinatario del bridge, nient'altro.

Compila dai sorgenti

Oppure compilala tu

  1. Compila e impacchetta l'estensione dal repository clients, qui sotto.
  2. Apri about:debugging, scegli This Firefox → Load Temporary Add-on… e seleziona dist/firefox/manifest.json.

Toolchain: Rust 1.98.1, fissata nel repository e installata da rustup. La guida alla compilazione copre ogni client a partire da una macchina pulita. Directory dei sorgenti: firefox/, extension/, ui/, core/.

Rand Wallet per Firefox
bash
git clone --recurse-submodules https://github.com/randprotocol/clients.git && cd clients
git checkout v0.8.0 && git submodule update --init   # la release; core/vendor/fullnode @ v0.8.0 (c0878c3)
core/scripts/build-wasm.sh   # → extension/shared/core/ (installa wasm-bindgen-cli)
firefox/pack.sh   # → dist/firefox/ e dist/rand-wallet-firefox-<version>.zip
npx web-ext lint --source-dir dist/firefox
Ogni client

Cosa fa, su ogni piattaforma

Crea un wallet
Una chiave di spesa generata sul dispositivo, mostrata una sola volta perché tu la salvi, e l'indirizzo rand1… che ne deriva. Importa una chiave esistente, o un wallet.key.json dalla CLI rand; ogni client esporta lo stesso file.
Ricevi e invia
Il tuo saldo è l'insieme delle note che solo la tua chiave può aprire; il wallet scansiona il commitment tree per trovarle. Un trasferimento di RAND o di qualsiasi token RPL in elenco è un unico bundle 4-in-4-out autorizzato da una prova. Nessuno viene a sapere il mittente, il destinatario, l'importo o quale asset si è mosso.
Faucet
Su una testnet con un faucet aperto, un tocco conia 100 RAND in una nota che solo tu puoi aprire.
Rivela solo ciò che scegli
Copia la tua viewing key e apri La mia cronologia su RandScan per vedere ogni nota che hai inviato o ricevuto, oppure copia la transaction key di un singolo pagamento per rivelare esattamente quel pagamento e nient'altro. L'explorer decifra nel tuo browser e non invia mai la chiave da nessuna parte.

Le chiavi di visualizzazione e le chiavi di transazione si aprono su randscan.org.

Note sulla testnet

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
Altri client

Un unico wallet, ogni piattaforma

Lo stesso file di chiavi, lo stesso formato di indirizzo e le stesse regole ovunque: un wallet creato qui si importa in qualsiasi altro client e nella CLI rand.