Files
mfahampshire 7c890ea0c5 TS SDK docs (#6840)
* First sweep packages + some minor tweaking

* Second sweep

* Regenerate lockfile + package.json mods

* Regenerate lockfile again

* Fix CI

* Fix CI again

* All building properly

* unblock

* Tweak examples

* Comments + readme + fix rotten unit test

* First pass docs

* Big pass

* Massive pass on new docs

* Update integrations.md w mobile

* Partial overhaul review

* new playground + big pass

* new fix lychee err

* IPR notice tweak
2026-06-09 13:31:08 +00:00

41 lines
2.5 KiB
Plaintext

---
title: "mix-dns: Hostname Resolution Over the Nym Mixnet"
description: "TypeScript package that resolves hostnames through the Nym mixnet as UDP DNS via an IPR exit gateway."
schemaType: "TechArticle"
section: "Developers"
lastUpdated: "2026-06-05"
---
# mix-dns
[`@nymproject/mix-dns`](https://www.npmjs.com/package/@nymproject/mix-dns) resolves hostnames to IPs through the Nym mixnet. The query travels as a UDP datagram to a public resolver via the [IPR (Internet Packet Router)](/network/infrastructure/exit-services#ip-packet-router) exit gateway, not through the browser or OS resolver.
```text
┌──────────────────────────────────────────────────────────────┐
│ Your browser app │
│ └─ mixDNS('example.com') │
│ └─ mix-tunnel (smolmix-wasm, Web Worker) │
│ └─ UDP datagram via the IPR │
│ └─ public resolver (default 8.8.8.8:53) │
└──────────────────────────────────────────────────────────────┘
```
The resolver sees a query from the IPR's IP, not yours, and the browser's own resolver path (the OS stub resolver, any local DoH) is bypassed entirely.
## When to use it
`mix-dns` is for cases where you need the resolved IP itself, not a connection that uses it. [`mix-fetch`](/developers/mix-fetch) and [`mix-websocket`](/developers/mix-websocket) already resolve via the mixnet internally; you don't need to call `mixDNS` before either.
Direct uses:
- Validate that a hostname resolves to an expected IP range before connecting through any path.
- Build IP-based allow / deny lists for an app that performs the connection itself.
- Probe whether a hostname is reachable from the IPR exit's perspective without opening a connection.
## In this section
- [Get started](/developers/mix-dns/get-started): install and resolve your first hostname.
- [Reference & security](/developers/mix-dns/guides): configure the resolver, and what it sees.
- [TypeDoc reference](/developers/mix-dns/api/globals): generated from the source.
- [Browser example](https://github.com/nymtech/nym/tree/develop/sdk/typescript/examples/mix-dns/browser): a runnable example app.