Yggdrasil Network

title
Yggdrasil Network
type
concept
summary
Experimental overlay IPv6 mesh network where each node's address is derived from its public key; routing is location-independent and decentralized
tags
networking, mesh, p2p
created
2026-05-10
updated
2026-05-10

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)
  • voluminor/ratatoskr β€” wraps the official implementation rather than forking it, with a gVisor userspace TCP/IP stack so an application can join the mesh without TUN or root (ratatoskr)

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

Sub-pages