# Yggdrasil Network

Yggdrasil is an overlay mesh network where every node has a stable IPv6 address derived from its public key. The address doesn't depend on the node's physical location or its underlying ISP-assigned IP — connectivity is established through peer links (manual, link-local discovery, or public peer lists), and routing is end-to-end without central coordinators.

Topologically it's a *tree-with-shortcuts*: the network elects a root and builds a spanning tree for fallback routing, but actively discovers shorter paths between any two nodes. This gives the cryptographic-identity guarantees of Tor/I2P and the addressing guarantees of CJDNS without requiring either the onion-routing overhead or the CJDNS routing weirdness.

Use cases:
- **Decentralized application networking** — Matrix federation (Dendrite has a Yggdrasil transport), distributed databases that need stable peer identities
- **NAT traversal** — every node has a routable IPv6 even behind double-NAT
- **Local-mesh fallback** — link-local autopeering creates ad-hoc networks without internet uplink
- **Circumvention** — though not designed for anonymity, the public-peer-list model + carrier-network abstraction makes it composable with Tor/I2P/SOCKS for [[russia-vpn-bypass-state-2026-04]]-shaped problems

The network is small (low thousands of public peers as of 2026). It's "experimental" in the project's own framing — production networks should treat it as research-grade.

Reference implementations:
- `yggdrasil-network/yggdrasil-go` — official, daemon-shaped, runs a system TUN interface
- `asciimoth/ygg` — fork separating `ygglib` library from `yggd` daemon, adds in-process userspace TCP/IP stack ([[asciimoth-ygg]])

For the embedded-library walkthrough, see [[yggdrasil-embedded-go]].
