Skip to Content
New: a threat-model-first guide to choosing your network defence, plus the nym-smoldvpn dVPN package and nym-swizzle sender hygiene.
Developersmix-fetch (HTTPS requests)mix-fetch: fetch() Over the Nym Mixnet

mix-fetch

@nymproject/mix-fetch routes HTTP and HTTPS through the Nym mixnet behind the browser fetch signature: mixFetch(url, init) returns the same Response you would get from fetch(url, init). The request travels mixnet hops first, exits at an IPR (Internet Packet Router) gateway, and reaches the destination with the IPR’s IP, not yours. It is not a perfect substitute for fetch: no cookies or credentials, no HTTP cache, no AbortController, and HTTPS-only in practice (plain HTTP is fully visible at the exit; see drop-in caveats).

┌────────────────────────────────────────────────────────────────────┐ │ Your browser app │ │ └─ mixFetch('https://...') │ │ └─ mix-tunnel (shared singleton, Web Worker, smolmix-wasm) │ │ └─ smoltcp userspace TCP/IP + rustls TLS │ │ └─ WebSocket to entry gateway │ │ └─ Nym mixnet (3 mix layers) │ │ └─ IPR exit gateway → destination │ └────────────────────────────────────────────────────────────────────┘

TLS terminates end-to-end between the WASM bundle and the destination server. The IPR sees destination IP and port; for HTTPS targets, payload is TLS ciphertext.

In this section

Last updated on