Rand Protocol
Mobile

Rand Wallet para Android

Um aplicativo Java nativo sobre o núcleo de carteira em Rust compartilhado, carregado como biblioteca nativa. A chave de gasto é criptografada com uma chave mantida pelo Keystore do Android, o backup está desativado e as versões de lançamento só usam HTTPS.

Listagem na Google Play pendente. Até que ela passe pela revisão, instale a versão 0.8.0 pelo download abaixo ou compile-a a partir do código-fonte.

Ícone do Rand Wallet
Desenvolvido com
Java
Distribuído por meio de
Google Play, primeiro em teste aberto
Requer
Android 8 (API 26) ou posterior, arm64 ou x86_64
Envio
Gera a prova no celular ou por meio do prover da RandProtocol
Download

Versão 0.8.0

Os arquivos estão anexados à release v0.8.0 no GitHub; os botões aqui são links para eles, e nada é servido por este site.

  1. Abra o arquivo no celular e autorize a instalação quando o Android solicitar, ou execute adb install nele a partir de um computador.
  2. O pacote é assinado com a chave própria deste projeto. Para conferir, apksigner verify --print-certs deve exibir o SHA-256 75:22:2E:BF:22:D3:95:80:A5:11:2A:AC:B7:EC:2E:03:93:91:07:77:96:E0:45:1D:7B:CF:E3:7E:FA:06:53:52.
  3. O Google Play assina com a sua própria chave; por isso, quando a listagem estiver no ar, o Android pedirá que você remova esta cópia antes de instalar aquela. Exporte antes o seu arquivo de chave em Ajustes.
Pacote Android (.apk)
arm64 e x86_64 · 11.9 MB
Baixar
rand-wallet-0.8.0-android.apk
SHA-256 400d5c4873cc70c7893a4a0bed36eecf261bd1c9bb9578c6544d8ffbf7e976d7
Verifique o que você baixou
SHA256SUMS
# com o SHA256SUMS baixado na mesma pasta do arquivo
shasum -a 256 -c SHA256SUMS --ignore-missing     # macOS
sha256sum -c SHA256SUMS --ignore-missing         # Linux

# ou imprima a soma de um único arquivo e compare-a com a indicada acima
shasum -a 256 rand-wallet-0.8.0-android.apk

Uma soma coincidente indica que o arquivo é o que foi publicado. Ela não indica que o arquivo foi compilado a partir do código-fonte: as compilações ainda não são reproduzíveis bit a bit, portanto, se é isso que você precisa saber, compile-o você mesmo.

Envio

Gera a prova no celular ou por meio do prover da RandProtocol

Em um celular com cerca de 8 GB de memória, o aplicativo gera a prova de uma transferência no próprio dispositivo, em um serviço em primeiro plano com uma notificação enquanto ele executa, de modo que trocar de aplicativo não o interrompe.

Uma prova de bundle atinge um pico de cerca de 6,2 GB. Em um celular com menos memória, o Android encerraria o aplicativo durante a prova, por isso a etapa de revisão avisa com os números do próprio dispositivo. O celular passa então a usar por padrão o prover da RandProtocol, ou o seu próprio rand-prover via https (Ajustes → Prover), e monta a transferência enquanto o prover gera a prova.

Um dispositivo que não consegue gerar uma prova usa por padrão os provers da RandProtocol: algumas máquinas operadas pelos validadores (quatro atualmente, em https://prover.randprotocol.org), sem taxa. A partir da versão 0.6.9, cada uma tem a sua própria chave, que a carteira fixa, e a carteira informa isso antes do primeiro envio. A máquina que gera a prova de um envio recebe a chave de visualização da carteira e um salt de uso único: seu operador pode ler todo o histórico da carteira, cada pagamento recebido e enviado, mas não pode gastar. A chave de gasto nunca sai do seu dispositivo, que gera por conta própria a pequena prova de autorização. Para mais privacidade, escolha o seu próprio prover em Ajustes → Prover, que passa então a ser sempre o preferido; a carteira verifica cada prova antes de enviá-la.

Como emparelhar um prover, passo a passo: docs/prover.md.

Suas chaves

Onde a chave fica

A chave de gasto é o único segredo da carteira. Não há conta nem servidor guardando uma cópia: se você perder a chave, ninguém poderá restaurá-la, então salve-a quando a carteira a mostrar.

Chave de gasto
Em EncryptedSharedPreferences: AES-256-GCM com uma chave mestra mantida pelo Android Keystore. A chave de visualização nunca é armazenada; ela é derivada quando necessário.
Desbloqueio
Solicitação biométrica, com a credencial do dispositivo como alternativa, e bloqueio automático após o intervalo definido em Ajustes.
Backup
Desativado, de modo que o cofre nunca sai do celular pelo serviço de backup do Google.
Notes
Um cache privado do aplicativo com suas notes e com a chave de transação de cada pagamento, reconstruído por uma nova varredura. As versões de lançamento recusam HTTP em texto claro.
Também

Swap, no aplicativo

A partir da versão 0.7.1, os aplicativos para celular têm a tela de Swap que as extensões e o aplicativo para desktop já têm: negocie RAND e tokens pelos pools da durian.market sem sair da carteira. O celular gera por conta própria a prova da chamada de programa e a autorização de gasto, o que exige cerca de 1,5 GB de memória, e os provers da RandProtocol geram a prova grande. O valor que você recebe é exato; se o pool se mover antes, nada é enviado e você recebe uma nova cotação.

Compilar a partir do código-fonte

Ou compile você mesmo

  1. Compile um APK de depuração a partir do repositório clients e instale-o com adb, em um celular ou em um emulador arm64 ou x86_64 (API 36).
  2. A partir do emulador, um nó no seu próprio computador é http://10.0.2.2:8545; as versões de depuração só permitem texto claro para esse endereço e para localhost.

Toolchain: Rust 1.98.1, fixada no repositório, que o rustup instala. O guia de compilação cobre todos os clientes, a partir de uma máquina limpa. Diretórios do código-fonte: android/, core/.

Rand Wallet para Android
bash
git clone --recurse-submodules https://github.com/randprotocol/clients.git && cd clients
git checkout v0.8.0 && git submodule update --init   # a versão publicada; core/vendor/fullnode @ v0.8.0 (c0878c3)
core/scripts/build-android.sh   # → android/app/src/main/jniLibs/ (JDK 17, SDK 36, NDK 27)
cd android && ./gradlew assembleDebug   # → app/build/outputs/apk/debug/app-debug.apk
adb install -r app/build/outputs/apk/debug/app-debug.apk
Todos os clientes

O que ele faz, em todas as plataformas

Criar uma carteira
Uma chave de gasto gerada no dispositivo, exibida uma única vez para você guardar, e o endereço rand1… derivado dela. Importe uma chave existente, ou um wallet.key.json da CLI rand; todos os clientes exportam o mesmo arquivo.
Receber e enviar
O seu saldo é o conjunto de notes que somente a sua chave consegue abrir; a carteira varre a árvore de commitments para encontrá-los. Uma transferência de RAND ou de qualquer token RPL listado é um único bundle de 4 entradas e 4 saídas autorizado por uma prova. Ninguém descobre o remetente, o destinatário, o valor nem qual ativo se moveu.
Faucet
Em uma testnet com faucet aberto, um toque cunha 100 RAND em um note que somente você consegue abrir.
Divulgue apenas o que você escolher
Copie a sua viewing key e abra My history no RandScan para ver cada note que você enviou ou recebeu, ou copie a transaction key de um pagamento para divulgar exatamente esse pagamento e nada além. O explorador descriptografa no seu navegador e nunca envia a chave a lugar nenhum.

As chaves de visualização e as chaves de transação abrem no randscan.org.

Notas sobre a testnet

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
Outros clientes

Uma carteira, todas as plataformas

O mesmo arquivo de chave, o mesmo formato de endereço e as mesmas regras em toda parte: uma carteira criada aqui pode ser importada em qualquer outro cliente e na CLI rand.