Rand Protocol
Documentação
Ecossistema

Clientes em todos os dispositivos

A Rand Wallet no iPhone, Android, notebooks, desktops e no navegador: um único núcleo em Rust, vindo dos próprios crates do full node, em todos os dispositivos; quais deles geram eles mesmos a prova de uma transferência e quais entregam a prova do pacote a um prover, onde cada um guarda a spend key e como todos alcançam a rede.

Use esta página para ver o que roda em cada tipo de dispositivo e por que as carteiras se comportam de forma diferente. Toda Rand Wallet é a mesma carteira com uma casca diferente. Um único núcleo em Rust, construído a partir dos próprios crates do full node, guarda as chaves e faz a criptografia em cada dispositivo. A única diferença real é a memória: uma prova de bundle atinge um pico de cerca de 6 GB. Um desktop ou um celular grande a gera na hora, e qualquer dispositivo menor entrega essa prova a um prover. Os downloads e as etapas de build de cada cliente estão em /clients.

Rand Wallet clients and the network Five devices: iPhone, Android phone, laptop, desktop and browser. Each runs the same Rust core, packaged as an XCFramework, a native library, a linked crate in the desktop app, or WebAssembly. Phones prove on devices with about 8 GB of memory, laptops and desktops prove on the machine, and the browser always pairs a prover. When a device cannot prove, the bundle job goes to the desktop app, a rand-prover you run, or the validators' pool, which receive the viewing key and never the spend key. Every client submits to any RPC node, and the validators order and finalise the transaction. iPhone iOS app · Swift Android Android app · Java Laptop desktop app · Tauri Desktop macOS · Windows · Linux Browser Chrome · Firefox · web proves with ~8 GB else pairs a prover proves with ~8 GB else pairs a prover proves on the machine 8 GiB RAM or more proves on the machine and for your browser always pairs a prover 4 GiB WebAssembly cap XCFramework native library linked crate linked crate WebAssembly One Rust core, built from the full node's own crates spend key and rand1 address · ML-KEM-768 envelopes · the zkVM prover · one key file on every device bundle job: viewing key + salt signed transaction, two proofs Prover, when the device has no room the desktop app on the same computer a rand-prover you run the validators' pool · prover.randprotocol.org never sent the spend key; every proof is checked by the wallet The network any RPC node verifies and gossips validators order, vote, finalise wallets scan blocks with their keys see Validators, aggregators and provers
No celular, deslize a figura para o lado. Cinco shells sobre um único núcleo. As etiquetas destacadas são os clientes que provam uma transferência no dispositivo que você tem em mãos; a caixa tracejada é para onde vai a prova de bundle quando o dispositivo não consegue gerá-la.

Um núcleo, cinco formatos

dispositivo e clienteo núcleo dentro deleprova uma transferênciaonde a chave de gasto é guardada
iPhone: o app para iOS, iOS 16 ou posteriorum XCFrameworkcom cerca de 8 GB de memória, em um ou dois minutos; caso contrário, por meio de um prover pareadoo Keychain, apenas enquanto o dispositivo está desbloqueado; nunca sincronizada
Android: o app para Android, Android 8 ou posterioruma biblioteca nativacom cerca de 8 GB de memória, em um serviço em primeiro plano; caso contrário, por meio de um prover pareadocriptografada com uma chave mantida pelo Android Keystore
Laptop e desktop: o app desktop para macOS, Windows e Linuxo crate em Rust, vinculado ao appna própria máquina, cerca de um minuto na CPU de um laptop; não inicia uma prova com menos de 8 GiB de RAMum cofre protegido por senha (AES-256-GCM, PBKDF2 com 600.000 iterações); desbloqueada, apenas na memória do app
Navegador: as extensões para Chrome e Firefox, a carteira webWebAssemblynunca: o WebAssembly dispõe de 4 GiB, então um prover pareado sempre gera a prova de bundleo mesmo tipo de cofre; desbloqueada, na memória da página ou no armazenamento de sessão da aba

Um laptop e um desktop executam o mesmo app desktop. A única diferença é a memória que a máquina tem disponível para provar. Uma carteira criada em qualquer um deles pode ser importada nos outros e na linha de comando rand, e vice-versa: o arquivo de chave, o formato de endereço e as regras são os mesmos em todos os lugares.

Qual carteira envia na chain 20

A chain 20, em operação desde 2026-10-01 06:17 UTC, vincula cada prova e cada mensagem assinada ao seu genesis hash, de modo que uma carteira precisa do fullnode v0.6.8 para enviar nela. A Rand Wallet v0.6.8, lançada em 2026-10-01, é essa carteira: o núcleo de cada app incorpora o fullnode v0.6.8 e, por padrão, a prova de bundle é gerada pelo prover da RandProtocol, com um prover próprio como a opção privada. Os apps 0.6.7, construídos para a chain 19, não conseguem enviar na chain 20; atualize-os. A linha de comando rand da versão v0.6.8 do fullnode (Linha de comando) também envia, e usa o mesmo arquivo de chave.

O que todo cliente faz

  • Mantém a chave de gasto no dispositivo. Ela é gerada a partir da aleatoriedade do sistema operacional e armazenada criptografada. Nenhum cliente a envia para lugar algum, e a rede não tem contas para onde enviá-la.
  • Encontra as próprias notes. Ele varre a chain com a sua chave de visualização, de modo que nenhum servidor sabe quais notes lhe pertencem.
  • Gera ele mesmo a prova de autorização. Uma transferência carrega duas provas. A pequena, sobre a chave de gasto, leva segundos e é sempre gerada no dispositivo (Validators, aggregators e provers).
  • Providencia a prova de bundle. Ele a gera no dispositivo, se houver memória para isso, ou a obtém de um prover pareado. Toda prova recebida de volta é verificada antes de qualquer envio.
  • Envia a qualquer nó RPC. O que ele envia é o que todo nó vê: commitments, nullifiers, envelopes selados, a taxa e as provas.

Pareando um prover

Um celular com pouca memória, e toda carteira de navegador, pareiam um prover para a prova de bundle. No mesmo computador, o app desktop faz isso (Settings → Prove for my other devices; depois cole o link em Settings → Prover da carteira do navegador). Em outros casos, é um rand-prover que você mesmo executa (Running a node), ou o pool dos validators em prover.randprotocol.org.

Um prover pareado recebe a chave de visualização da carteira e um salt de uso único, nunca a chave de gasto. Ele pode ler todo o histórico dessa carteira, passado e futuro, e não pode gastar. Pareie apenas um prover para quem você mostraria esse histórico. Para privacidade total, prove em um desktop ou em um celular de 8 GB, ou execute o seu próprio prover.

Última verificação em relação ao commit c0878c3f do fullnode (chain 21) em 2026-10-12, e randprotocol.org `src/data/clients.ts` (the per-client pages under /clients), fullnode `749ca098`: `docs/prover.md` §§1, 9 (the spend key never leaves the wallet; the validators' prover pool), github.com/randprotocol/clients/releases on 2026-10-12: Rand Wallet v0.8.0 (12:24 UTC, tag `0926354`), whose core vendors fullnode v0.8.0 (`c0878c3`) and sends on chain 21 only; github.com/randprotocol/fullnode/releases: v0.8.0 with `rand`, `rand-node`, `rand-prover`, `msauth-vk-production.bin` (06:48 UTC), fullnode `c9c9bd3c`: `crates/randprotocol-core/src/types/binding.rs` (BIND-1). Onde o código e esta página divergirem, o código está certo; avise-nos.