New: a threat-model-first guide to choosing your network defence, plus the nym-smoldvpn dVPN package and nym-swizzle sender hygiene.
Developers
Standalone Clients
Overview

Standalone Clients

A standalone client is a separate process that connects to the mixnet and exposes a local interface your application talks to. Use one when embedding an SDK is not an option. Three cases call for it. Your application is written in a language with no Nym SDK. You cannot change its source. Or you want the Nym client's lifecycle managed independently of your process.

If you are writing Rust or TypeScript, prefer the SDKs instead. They give you the same transport without a second process to supervise.

Which client

ClientLocal interfaceUse it when
SOCKS5SOCKS4/4a/5 proxy on localhostYour application already speaks SOCKS, so you can point it at the proxy without code changes
WebSocketWebSocket on localhostYou are writing in a language with no Nym SDK and can open a WebSocket
WebAssemblyLoaded into a wasm runtimeYou are in a browser or another wasm host. Usually consumed through the TypeScript SDK rather than directly

The SOCKS5 and WebSocket clients are native binaries. The WebAssembly client is a module you load, not a process you run.

Exit behaviour

The SOCKS5 client is a proxy-mode integration. Traffic leaves the mixnet at an Exit Gateway and continues to the destination over the public internet. See Exit Gateway Services for what that exit gateway observes. Note also that anonymous replies are off by default, so the Network Requester receives your Nym address unless you pass --use-anonymous-replies.

The WebSocket and WebAssembly clients send messages to another Nym client. There is no Exit Gateway and no clearnet hop, unless you address a service provider that itself exits.