OffCode Encrypted Tor Chat
OffCode Tor Chat: self-hosted Tor chat with browser WebCrypto AES-GCM.
Is this your product? Claim it to edit the listing, post updates and answer questions. Prove it with an email address at the product's domain (the listing becomes Claimed), or put the LotsDirectory badge on your website (the listing becomes Verified, and its link to your website is followed while the badge is live).
Description
OffCode Tor Chat: self-hosted Tor chat with browser WebCrypto AES-GCM. Password rooms are server-blind E2EE; open rooms are public encrypted channels. SignalR relay, SQLCipher, Server Manager, optional Full Vanguards.
About OffCode Encrypted Tor Chat
What is OffCode Encrypted Tor Chat?
OffCode Tor Chat is self-hosted E2EE chat over a Tor Hidden Service. Guests open the onion link in Tor Browser, and password rooms are server-blind.
What OffCode Encrypted Tor Chat does
The host runs ChatServer with Server Manager on Windows or with Docker, then copies the onion URL for guests. Guests join with a display name only: no account, no phone number, and nothing to install on their side. Messages are encrypted in the browser before they reach the server. Password rooms keep the room key in the browser, so the host cannot read those messages. Open rooms still encrypt, but the key is public by design and is derivable from the room id. Hidden rooms stay off the public list and join through an invite link.
Who OffCode Encrypted Tor Chat is for
People hosting their own Tor Hidden Service chat, and guests who join a room in Tor Browser. Server Manager is the Windows host console. Docker is the other host path, with Tor as the only public path.
How OffCode Encrypted Tor Chat works
Password rooms use PBKDF2-v2 in the browser: PBKDF2-HMAC-SHA256 with 600 000 iterations, then AES-256-GCM. Plaintext never leaves Tor Browser for those rooms. ChatServer receives ciphertext, stores it in SQLCipher, and broadcasts the same blob. Open rooms take the key from torchat-open-material-v2 and the room id. A 1:1 ECDH hybrid can add a safety number, 8 by 5 decimal, 128-bit, for peer verify and TOFU. Message expiry is required, from 30 min to 1 week, default 8 h, with no forever option. Server Manager starts ChatServer, then a Tor v3 hidden service, and can enable Full Vanguards.
Key features
- Server Manager binds ChatServer to 127.0.0.1 and publishes a v3 onion. Docker listens on 0.0.0.0:8080 inside the compose network only, with no host ports.
- Locked rooms are server-blind. Open rooms are public by design. The page says there is no Double Ratchet yet, and prefers short message retention if passwords may leak.
- Hidden rooms are not listed. Join uses an invite link, plus a password when the room is locked. Guests have a display name only.
- Message lifetime is required, from 30 min to 1 week, default 8 h. A room keeps at most 500 messages. A pinned row can be kept until TTL or wipe.
- FileSeal attachments go up to 32 MiB. Images strip EXIF and XMP in the browser before encrypt when possible. The creator can disable file and image sending.
- Creator settings can close joins, cap members from 2 to 50, set announcement or read-only mode, set slow mode from 1 min to 4 h, lock an open room later, pin one message, or delete the room.
- Plaintext is never written to disk. Storage is SQLCipher under LocalAppData on Windows, with DPAPI, or a Docker volume with an env key. Expired rows use a WAL checkpoint and VACUUM.
- The Copper and Forge UI uses no third-party CDNs, self-hosted fonts, and a strict CSP. CORS is fail-closed until the onion allowlist is set. There is no IndexedDB and no WebRTC.
Facts from dev-offcode.com, checked 13 October 2026
- Docker pins Alpine tor to 0.4.9.13-r0. On Windows, Server Manager refuses a tor.exe that does not match the pinned SHA-256, and it does not download Tor.
- The page lists a global HTTP ceiling of 600/min, hub negotiate at 30/min, and create, join, and send at 20/min. Tor has no useful client IP.
- The page says Attach Complete and Cancel have no hub limiter.
- There is no Double Ratchet yet.
Written from OffCode Encrypted Tor Chat's own website (Homepage). The maker can claim this listing to edit it.
Categories
Frequently asked questions
Can the host read a password room?
No. Password rooms are server-blind. The password stays in the browser, plaintext never leaves Tor Browser, and the server stores ciphertext only.
Are open rooms private?
Open rooms still encrypt, but the key is public by design and is derivable from the room id. The page treats open rooms as public channels.
Do guests need an account?
No. Guests join in Tor Browser with a display name only. There is no phone number and nothing to install on their side.
How long do messages last?
Message expiry is required, from 30 min to 1 week, with a default of 8 h. There is no forever option. Max 500 messages per room, with the oldest trimmed and a pinned row kept until TTL or wipe.
What does Server Manager control?
It starts and stops ChatServer and a Tor v3 hidden service, shows the onion URL, and can enable Full Vanguards. The host does not receive plaintext from password rooms.
Where do admin controls listen?
Admin routes return 404 on the Tor-facing port. The admin channel uses a separate loopback port that the hidden service does not publish.