Katzenpost Documentation
Choose your audience.
forward (Sphinx) return (SURB reply)
──────────────────────────▶ ──────────────────────────▶
gateway ─▶ mix¹ ─▶ mix² ─▶ mix³ ─▶ service ─▶ mix¹ ─▶ mix² ─▶ mix³ ─▶ gateway
For users
You wish to use a Katzenpost client application to communicate.
| Title | Description | |
|---|---|---|
| 🐈 | Namenlos public mixnet (coming soon) | A public Katzenpost mix network that anyone may use, without the burden of operating their own. |
| 📦 | kpclientd packages and binaries (coming soon) |
Pre-built distribution packages and binaries for the client daemon, so users will not need to build from source. |
| 💬 | katzenqt group chat | A decentralised group chat application running over the Katzenpost mix network and the Pigeonhole storage services. Pre-built packages forthcoming. Build and run from source in the meantime. |
For operators
You wish to run your own Katzenpost mix network with friends and collaborators.
| Title | Description | |
|---|---|---|
| 📖 | Admin Guide | Deploying and operating Katzenpost servers: installation, configuration, the Docker test mixnet, NAT considerations, and a full configuration appendix. |
| 🐳 | Run a Mix Server in Docker | A focused recipe for running a single Katzenpost mix server inside a Docker container, intended for operators who wish to participate in an existing mix network. |
| 🔧 | Build from source | Pinned versions of the Katzenpost stack and brief instructions for building each component (kpclientd, thin clients, katzenqt, server-side) from source. |
For application developers
You wish to build software that integrates with Katzenpost.
| Title | Description | |
|---|---|---|
| 📘 | Thin Client API Reference | Complete API reference for the Go, Rust, and Python thin client libraries. |
| 📗 | Thin Client How-to Guide | Task-oriented guides for accomplishing common operations with the thin client API. |
| 🕊️ | Understanding Pigeonhole | A high-level introduction to the Pigeonhole anonymous storage protocol for application developers. |
| 🔧 | Build from source | Pinned versions of the Katzenpost stack and brief instructions for building each component from source. |
For core developers
You wish to contribute code to Katzenpost itself.
| Title | Description | |
|---|---|---|
| 🛠️ | Design Specifications | The protocol specifications that the implementation must honour: Sphinx, KEMSphinx, the wire protocol, the directory authority, replay detection, and more. |
| Source Repository | The Katzenpost monorepo on GitHub: server, dirauth, client, courier, replica, and core. Issues, pull requests, and discussions live here. |
For academics
You are a mathematician, computer scientist, security researcher, or hacker investigating the design.
| Title | Description | |
|---|---|---|
| Echomix paper | Echomix: a Strong Anonymity System with Messaging. The principal academic treatment of the Katzenpost design (arXiv). | |
| 🔒 | Threat Model (PDF) | An evolving treatment of Katzenpost’s security assumptions, attack scenarios, and mitigation strategies. |
| 📚 | Literature Review | A curated review of the academic literature underpinning Katzenpost’s design decisions. |
| 🎧 | Audio Engineering Considerations (PDF) | A technical report on the challenges of carrying voice traffic through a modern mix network, with attention to usability and scalability. |
| 🛠️ | Design Specifications | The full set of protocol specifications. Useful reading for anyone investigating the design in depth. |