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.
Um núcleo, cinco formatos
| dispositivo e cliente | o núcleo dentro dele | prova uma transferência | onde a chave de gasto é guardada |
|---|---|---|---|
| iPhone: o app para iOS, iOS 16 ou posterior | um XCFramework | com cerca de 8 GB de memória, em um ou dois minutos; caso contrário, por meio de um prover pareado | o Keychain, apenas enquanto o dispositivo está desbloqueado; nunca sincronizada |
| Android: o app para Android, Android 8 ou posterior | uma biblioteca nativa | com cerca de 8 GB de memória, em um serviço em primeiro plano; caso contrário, por meio de um prover pareado | criptografada com uma chave mantida pelo Android Keystore |
| Laptop e desktop: o app desktop para macOS, Windows e Linux | o crate em Rust, vinculado ao app | na própria máquina, cerca de um minuto na CPU de um laptop; não inicia uma prova com menos de 8 GiB de RAM | um 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 web | WebAssembly | nunca: o WebAssembly dispõe de 4 GiB, então um prover pareado sempre gera a prova de bundle | o 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.