Home/Security

Assume the network is hostile.

The security model behind Tor Wallet: local keys, fail-closed networking and a small control plane that cannot move funds.

Security model

Keys never leave the device. A BIP39 wallet is generated locally. The recovery phrase is encrypted with AES-256-GCM using a key held by the Android Keystore. The master password derives a verifier with PBKDF2-HMAC-SHA256 and a per-install salt.

Networking fails closed. Requests use SOCKS5 to the embedded Tor client with remote DNS. Hosts are checked against an allowlist. There is no direct-connection fallback and no “try clearnet” switch.

The server is not in the signing path. The control plane serves update metadata and an APK. It never receives a private key, unsigned transaction or signed transaction. Compromising it cannot move funds from a device.

Updates are verified by hash. Every release publishes a SHA-256 checksum. The app can compare the downloaded APK before handing it to the Android installer.

What it protects against

  • Network observers learning which RPC or price host your wallet contacts.
  • A direct connection revealing your home or mobile IP to a blockchain provider.
  • Silent fallback to clearnet when Tor is blocked or slow.
  • Server-side key storage, account takeover and cloud backup exposure.
  • Casual inspection of the recovery phrase: secret screens use FLAG_SECURE and the vault is encrypted at rest.
  • Installing a corrupted download when the published checksum is verified.

What it does not protect

  • A compromised phone, a malicious operating system, or malware with accessibility access.
  • An unlocked device handed to someone else.
  • You sharing the recovery phrase, a screenshot or a clipboard containing a key.
  • Public blockchain data. Addresses, amounts and timing are visible on-chain.
  • A malicious or dishonest RPC provider returning false chain data. Tor hides the path, not the content.
  • Loss of the device without a written backup. There is no recovery service.

Verify a release

Download only from torwallets.org/download. Compare the SHA-256 on the download page with the file on your machine:

terminal
sha256sum TorWallet-0.3.1.apk
b07f28f2b5799b3507ca5fd0df1a5ab0e2b005fb93e9c147605a7842f6c22c5d

If the values differ, delete the file and download again from this domain. Do not install it.

Report a vulnerability

Open an in-app support ticket with a subject beginning with Security. Include the app version, Android version, a clear description and reproduction steps. Do not include real recovery phrases or private keys; use a freshly generated test wallet. If you cannot install the app, use the project contact form.

Please do not test on other people’s devices or wallets. We will acknowledge a responsible report and credit you if you want. There is no paid bug bounty at this time.