7c890ea0c5
* 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
41 lines
2.5 KiB
Plaintext
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.
|