# Tor specifications These documents describe how Tor works, and try to do so in enough detail to allow other compatible implementations of the Tor protocols. They were once a separate set of text files, but in late 2023 we migrated to use [`mdbook`](https://rust-lang.github.io/mdBook/). We're in the process of updating these documents to improve their quality. In addition to these specifications, you should look at the set of `FINISHED` Tor proposals: They are the ones that have been implemented, but not yet merged into these documents. You can also see all the Tor proposals here. ---- # Permalinks Additionally, these URLs at `spec.toprorject.org` are intended to be long-term permalinks. TODO: Revise them to point somewhere sensible again.
/address-spec
https://gitweb.torproject.org/torspec.git/tree/address-spec.txt (Special Hostnames in Tor)
/bandwidth-file-spec
https://gitweb.torproject.org/torspec.git/tree/bandwidth-file-spec.txt (Directory Authority Bandwidth File spec)
/bridgedb-spec
https://gitweb.torproject.org/torspec.git/tree/bridgedb-spec.txt (BridgeDB specification)
/cert-spec
https://gitweb.torproject.org/torspec.git/tree/cert-spec.txt (Ed25519 certificates in Tor)
/collector-protocol
https://gitweb.torproject.org/collector.git/tree/src/main/resources/docs/PROTOCOL (Protocol of CollecTor's File Structure)
/control-spec
https://gitweb.torproject.org/torspec.git/tree/control-spec.txt (Tor control protocol, version 1)
/dir-spec
https://gitweb.torproject.org/torspec.git/tree/dir-spec.txt (Tor directory protocol, version 3)
/dir-list-spec
https://gitweb.torproject.org/torspec.git/tree/dir-list-spec.txt (Tor Directory List file format)
/ext-orport-spec
https://gitweb.torproject.org/torspec.git/tree/ext-orport-spec.txt (Extended ORPort for pluggable transports)
/gettor-spec
https://gitweb.torproject.org/torspec.git/tree/gettor-spec.txt (GetTor specification)
/padding-spec
https://gitweb.torproject.org/torspec.git/tree/padding-spec.txt (Tor Padding Specification)
/path-spec
https://gitweb.torproject.org/torspec.git/tree/path-spec.txt (Tor Path Specification)
/pt-spec
https://gitweb.torproject.org/torspec.git/tree/pt-spec.txt (Tor Pluggable Transport Specification, version 1)
/rend-spec
https://gitweb.torproject.org/torspec.git/tree/rend-spec-v3.txt (Tor Onion Service Rendezvous Specification, Version 2)
/rend-spec-v2
https://gitweb.torproject.org/torspec.git/tree/attic/rend-spec-v2.txt (Tor Onion Service Rendezvous Specification, Version 2)
/rend-spec-v3
https://gitweb.torproject.org/torspec.git/tree/rend-spec-v3.txt (Tor Onion Service Rendezvous Specification, Version 3)
/socks-extensions
https://gitweb.torproject.org/torspec.git/tree/socks-extensions.txt (Tor's extensions to the SOCKS protocol)
/srv-spec
https://gitweb.torproject.org/torspec.git/tree/srv-spec.txt (Tor Shared Random Subsystem Specification)
/tor-fw-helper-spec
https://gitweb.torproject.org/torspec.git/tree/attic/tor-fw-helper-spec.txt (Tor's (little) Firewall Helper specification)
/tor-spec
https://gitweb.torproject.org/torspec.git/tree/tor-spec.txt (Tor Protocol Specification)
/torbrowser-design
https://2019.www.torproject.org/projects/torbrowser/design/ (The Design and Implementation of the Tor Browser)
/version-spec
https://gitweb.torproject.org/torspec.git/tree/version-spec.txt (How Tor Version Numbers Work)
/tor-design
https://svn.torproject.org/svn/projects/design-paper/tor-design.pdf (Tor: The Second-Generation Onion Router)
/walking-onions
https://github.com/nmathewson/walking-onions-wip/tree/master/specs (Walking Onions specifications (work in progress))