-
Notifications
You must be signed in to change notification settings - Fork 0
Privacy Chain
The Privacy tab lets you compose a sequence of hops between the phone's traffic and the internet. Each hop is independently configured. They can be combined arbitrarily — for example, you can chain Mullvad through Tor through Nym for maximum unlinkability, at the cost of speed.
| Hop | What it does | Strengths | Tradeoffs |
|---|---|---|---|
| WireGuard | Generic WG endpoint via BoringTun | Fast, lightweight, standard | Single point of trust |
| Mullvad | WireGuard configured against Mullvad's relay network | Optional post-quantum tunnel (ML-KEM-1024), DAITA traffic shaping, multihop, app-level split-tunnel | Requires a Mullvad subscription |
| NymVPN | Sphinx-format three-hop mixnet | Breaks address-association (entry node and exit node don't share state); resists traffic analysis | Higher latency; needs zk-nym mnemonic for paid bandwidth |
| Tor | Embedded Arti client with bridge support and vanguards | Anti-censorship, .onion routing, pluggable transports | TCP only; some sites block exit nodes |
Paste a standard [Interface] / [Peer] configuration block. Any
config a normal WireGuard client would accept works here.
[Interface]
PrivateKey = <base64>
Address = 10.66.0.2/32
DNS = 1.1.1.1
[Peer]
PublicKey = <base64>
Endpoint = endpoint.example:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
Enter your sixteen-digit Mullvad account number, tap Fetch servers, pick an entry server, then choose the extras you want:
- Post-quantum tunnel — uses Mullvad's ML-KEM-1024 quantum-resistant key exchange layered on top of the WireGuard handshake.
- Multihop — adds a separate exit server. Traffic enters via the entry server and emerges from the exit server.
- DAITA — Defense Against AI-guided Traffic Analysis. Reshapes packet timing and sizes via the maybenot framework to defeat machine-learning-based traffic classifiers.
-
Obfuscation transport — wrap the WireGuard tunnel in one of:
- UDP-over-TCP (length-prefixed)
- Shadowsocks
- QUIC (via quinn)
- Exclude apps from VPN — opens a picker for split-tunnel. Selected apps bypass the VPN entirely.
The mixnet uses zk-nym credentials paid in NYM tokens for the bandwidth. To configure:
- Generate or import a wallet mnemonic at nymtech.net.
- Paste it into the mnemonic field on the Privacy tab.
- Optionally pin a specific entry and exit gateway by ID. If left blank, the SDK picks defaults from the topology.
Without a mnemonic the SDK falls back to testnet credentials, which is fine for testing but not for real use.
Paste BridgeDB-format bridge lines into the bridges field, one per
line. Plain vanilla bridges (no obfs4/meek/etc prefix) work
without any extra setup. Pluggable transports need the corresponding
binary bundled in the APK:
-
obfs4,meek,webtunnel— bundled inlibtetherand_pt.soautomatically. -
conjure— bundled aslibconjure_client.sofrom upstream gotapdance. -
snowflake— not bundled in v0.1; awaiting an upstream fix for Go 1.26 compatibility.
Two toggles:
- Vanguards — engages Tor's anti-Sybil entry-guard hardening.
- Prefer PQ-NTor handshake — wires the prop362 / NTor-ML-KEM-v1 hybrid handshake preference. The setting is in place; the actual on-the-wire engagement lights up automatically once upstream Arti exposes the cipher-suite knob in a release crate.
The chain orchestrator processes hops in the order they are enabled. A typical paranoid stack for DEFCON might be:
Apps → Tetherand TUN → Tor → Mullvad PQ → Internet
Each hop adds latency. Measure with the small ping/throughput counter at the top of the Privacy tab and trim hops you don't need.
These are non-negotiable:
- No telemetry. Tetherand never phones home.
- Model and bridge updates flow only through whatever chain is currently active. There is no out-of-band update path.
- DNS goes through the last enabled hop. No host-resolver leaks.
Use
Features
Build
Project