# OffCode Encrypted Tor Chat

> OffCode Tor Chat: self-hosted Tor chat with browser WebCrypto AES-GCM.

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.

## Facts
- Website: https://www.dev-offcode.com/TorChatPage.html
- Pricing: freemium
- Categories: Open Source
- LotsDirectory page: https://lots.directory/products/offcode-encrypted-tor-chat
- Listing state: Unclaimed. We listed this product from its public website, and its owner has not claimed it yet.

## Detailed info

## 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](https://www.dev-offcode.com/TorChatPage.html)). The maker can claim this listing to edit it.

## FAQ

### 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.

---
Source: https://lots.directory/products/offcode-encrypted-tor-chat · Machine-readable context by LotsDirectory.