Rand Wallet
Uma carteira blindada para RAND, uma para cada plataforma. Ela cria uma chave de gasto e um endereço rand1…, encontra suas notas varrendo a cadeia com a sua própria chave, gera as provas das transferências no dispositivo que você tem em mãos ou por meio de um prover seu, solicita fundos ao faucet da testnet e entrega a chave de visualização e as chaves por transação com as quais o randscan.org abre transações confidenciais. Nada sobre o seu saldo ou os seus pagamentos é visível para quem você não entregou uma chave — e a carteira não é exceção: ela não mantém conta alguma, apenas as suas notas.
Cadastre-se ou entre para criar uma carteira na sua conta da venda, onde o endereço vai direto para a sua alocação — ou crie uma aqui mesmo, offline, sem conta alguma.
iOS
Em breve na loja- Distribuído por meio de
- TestFlight durante os testes e, depois, a App Store
- Requer
- iOS 16 ou posterior
Android
Baixar 0.8.0- Distribuído por meio de
- Google Play, primeiro em teste aberto
- Requer
- Android 8 (API 26) ou posterior, arm64 ou x86_64
Chrome
Baixar 0.8.0- Distribuído por meio de
- a Chrome Web Store; também instala no Edge e no Brave
- Requer
- Chrome 116 ou posterior
Firefox
Baixar 0.8.0- Distribuído por meio de
- addons.mozilla.org
- Requer
- Firefox 140 ou posterior
Windows
Baixar 0.8.0- Distribuído por meio de
- um instalador .msi, do GitHub Releases
- Requer
- Windows 10 ou posterior, com o runtime WebView2; 8 GiB de memória para enviar
macOS
Baixar 0.8.0- Distribuído por meio de
- um .dmg, em GitHub Releases
- Requer
- 8 GiB de memória para enviar; Xcode Command Line Tools para compilar
Linux
Baixar 0.8.0- Distribuído por meio de
- um .deb, um .rpm, um AppImage ou o binário avulso, em GitHub Releases
- Requer
- webkit2gtk 4.1; 8 GiB de memória para enviar
Web
Executar localmente- Distribuído por meio de
- um checkout do repositório de clientes, servido na sua própria máquina
- Requer
- Node 20 ou posterior; um navegador atual
Versão 0.8.0, 2026-10-12. Todo download é um arquivo da release v0.8.0 no GitHub, e a página de cada cliente exibe o seu SHA-256; a lista completa está em SHA256SUMS. Prefere compilar? Compile a partir do código-fonte. A carteira não coleta dados: política de privacidade · termos de serviço.
Crie uma aqui, offline
O gerador à direita é o próprio código de chaves do full node, compilado para WebAssembly e carregado nesta página. Desligue o Wi‑Fi assim que ele indicar que está pronto e ele continua funcionando: a chave de gasto vem da aleatoriedade do seu dispositivo, o endereço é derivado dela na hora e nada é enviado a lugar nenhum — não há para onde enviar.
O endereço é rand1 mais 1.667 caracteres: a chave de nota da sua carteira e a chave de encapsulamento ML-KEM para a qual o remetente sela uma nota, a forma que as cadeias 18 e 19 executam. (A cadeia 11 tentou um hash de 54 caracteres de uma chave de assinatura; foi revertida porque um remetente não consegue selar uma nota para um hash — a documentação traz o registro.) Carregue o arquivo de chaves na CLI rand ou em qualquer app Rand Wallet e rand address imprime o mesmo endereço.
Quer o endereço registrado para uma distribuição? A página de endereço tem o mesmo gerador, além de uma conta para salvá-lo: um e-mail e uma senha, e apenas o endereço é armazenado.
Prefere conferir o código primeiro? Ele é crates/randprotocol-zkvm/src/address.rs no full node, e o wrapper para o navegador é server/address-wasm no repositório deste site.
- Aguarde até que o selo acima indique Ready offline. Tudo o que a carteira precisa já está, então, nesta aba.
- Desligue o Wi‑Fi ou ative o modo avião. Mantenha esta aba aberta.
- Gere a carteira. A chave de gasto vem da própria aleatoriedade do seu dispositivo e nunca sai dele.
- Baixe o wallet.key.json e copie o endereço. Depois, reconecte.
Impressão digital Leia-a em voz alta para quem vai receber o endereço, ou compare os dois lado a lado — com 16 caracteres, é impossível que dois endereços diferentes coincidam por acaso.
Salvar com a impressão digital ? Confira-a com a que o titular lê em voz alta antes de salvar.
Salvos apenas neste navegador; limpar os dados do site os remove.
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
O arquivo de chave é a carteira. Quem o tiver pode gastar todas as notes que o endereço vier a receber; sem ele, ninguém pode. Guarde-o em um local privado e fora deste navegador — um gerenciador de senhas, um disco criptografado — e só então reconecte. O mesmo arquivo abre na CLI rand (rand address imprime este endereço) e em todos os aplicativos Rand Wallet. O endereço é público por construção — ele carrega a chave da note e a chave de encapsulamento ML-KEM para a qual o remetente sela uma note, e é por isso que tem 1.667 caracteres; a chave de gasto é o único segredo. Já tem uma carteira? O endereço dela é o que rand address imprime — nada neste site jamais pede o arquivo de chave ou a chave de gasto.
Todas as plataformas, uma carteira
O mesmo arquivo de chaves, o mesmo formato de endereço e as mesmas regras em todas as plataformas. Uma carteira criada no celular é importada no navegador e na CLI rand, e vice-versa.
Um núcleo, suas chaves, o seu prover
Todo cliente envolve um único núcleo em Rust construído a partir dos próprios crates do full node: a hierarquia de chaves Poseidon2, os envelopes ML-KEM-768 e o prover do zkVM são o código do nó, compilado em um XCFramework para iOS, uma biblioteca nativa para Android, WebAssembly para os navegadores e um crate vinculado no app para desktop. O Swift, o Java e o JavaScript acima dele são a carteira: o cliente RPC, o armazenamento de notas e as telas. Sua chave de gasto é gerada localmente a partir da aleatoriedade do sistema operacional e mantida criptografada no dispositivo; o que a carteira envia ao endpoint RPC é o que um bundle publica de qualquer forma — compromissos, nullifiers, envelopes selados e uma prova. Uma prova precisa de cerca de 5,7 GB de memória, então o app para desktop e os celulares grandes geram as próprias provas, e as carteiras de navegador pareiam um prover que você executa, o qual recebe a chave selada somente para ele.
Antes de enviar qualquer coisa
- Cadeia
- O endpoint público atende a chain 21, em operação desde 12 Oct 2026 10:31 UTC (criada a partir do fullnode v0.8.0). O núcleo da carteira incorpora o fullnode v0.8.0 (c0878c3) e recusa qualquer outra chain: a chain 21 executa o constraint set 9, de modo que uma carteira 0.7.x não consegue enviar nela, e esta versão não consegue enviar na chain 20. As chaves e os endereços são mantidos; uma carteira que escaneou a chain 20 exibe uma vez um aviso de chain diferente e refaz a varredura a partir do gênesis da chain 21. Os depósitos e saques pela bridge mantêm uma taxa de 0,1% em zUSD, que a carteira mostra antes de você sacar.
- Endpoint RPC
- Settings → Network. O padrão é https://rpc.randprotocol.org; qualquer RPC de rand-node ao seu alcance funciona, e uma URL salva é verificada antes de ser mantida
- Geração de provas
- A prova de um bundle chega a cerca de 6,2 GB de memória no pico e leva cerca de um minuto em uma CPU de notebook
- Status
- Software experimental de testnet. Não auditado. RAND na testnet não tem valor real
- Licença
- GPL-3.0-only, como os crates do full node que todo cliente vincula
Ou compile você mesmo
O repositório de clientes contém o núcleo em Rust, a interface compartilhada, todos os apps e o empacotamento para cada loja. O núcleo incorpora o full node na v0.6.7, a compilação que a cadeia 19 executou, como submódulo. O guia de compilação percorre cada cliente a partir de uma máquina limpa, e a página de cada cliente traz os seus próprios passos.
# Rust 1.98.1 (fixado; o rustup o instala). Xcode 16+ para iOS, JDK 17+ com SDK 36 e NDK 27 para Android, Node 22+ para as extensões
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 .. # o núcleo, incluindo uma prova real (~1 min)
core/scripts/build-wasm.sh # → extension/shared/core/ (instala o wasm-bindgen-cli)
core/scripts/build-ios.sh # → ios/Frameworks/RandWalletCore.xcframework
core/scripts/build-android.sh # → android/app/src/main/jniLibs/ (requer um NDK)
scripts/release/build-desktop.sh # o app para desktop: dmg / msi / AppImage, deb, rpm
web/wallet/serve.sh # a carteira web local em http://127.0.0.1:8787/
# Depois: /clients/ios, /clients/android, /clients/chrome, /clients/firefox, /clients/macos …