The app
What you run. It holds your identity — a private key that never leaves your machine — and does all the encrypting and decrypting. Anything sealed is sealed here, before it goes anywhere.
Who connects to whom, what a relay actually does, what happens when a piece goes offline, and which encryption sits where — in plain English first, with the technical names alongside for anyone who wants to check.
Everything in Farder is one of three programs. Once you know which is which, the rest of this page is about how they talk to each other.
What you run. It holds your identity — a private key that never leaves your machine — and does all the encrypting and decrypting. Anything sealed is sealed here, before it goes anywhere.
Where a community lives: its channels, roles, history and files. It runs on somebody's machine — usually the owner's own PC, sometimes a mini PC or a rented VPS. There is no central Farder server; every community is its own.
A forwarding post office. It stores nothing — no messages, no history, no accounts. It exists so that the app and the server can reach each other without either one learning the other's home address (its IP).
Pick a kind of server and something that goes wrong, then step through what each piece does about it. Everything below explains the same thing in more detail.
Not today, and that is partly on purpose. In a truly peer-to-peer chat your computer connects straight to every other member's computer — which means every member learns your IP address, and from it roughly where you live. Farder's members never connect to each other. They all connect to the server, which passes things along. A server can be reached in one of two ways.
The host sees every member's real IP, and every member needs the host's IP to connect. Fine on a home network or between people who already trust each other. The app labels these servers DIRECT before you join.
Both sides dial out to the relay and it joins the two calls together. The server only ever sees the relay's address; so do you. A side benefit: the host never has to open a port on their router, because nothing ever connects in to them.
Here is everything that happens between clicking an invite link and seeing the channel list.
7f3a…, send my visitors here." That
number is a random 32-byte ID made when the server was created.
The server keeps that call open for as long as it runs.
In short: a relay moves who can see your address from "every server you join" to "the relay operator". That is only an improvement if you trust the relay operator more than the server — which is why anyone can run their own. It is one hop, not Tor: it hides your address from the server, not from the relay.
Because the relay stores nothing, losing it loses nothing. It only interrupts the conversation until the line comes back. (Prefer pictures? The step-through chart near the top shows each of these.)
There isn't one "Farder encryption". There are several, each doing a different job, stacked like envelopes inside envelopes.
QUIC + TLS 1.3
Every connection — app to relay, relay to server, app to a direct server — is encrypted in transit. Someone on your Wi-Fi or at your internet provider sees scrambled packets going to an address, and that's all. This is the outer envelope: it protects each hop, and each hop opens it.
SHA-256 fingerprint pinning
The app doesn't trust a relay because a company vouched for it. It trusts it because the relay proved it holds the key matching the exact fingerprint the app expected. Nobody can issue a "valid" impostor.
Ed25519 signatures
Your identity is a keypair. You log in by signing a one-time challenge, so the server learns your public key and nothing it could log in as you with. The private half is stored encrypted on your machine behind your PIN, and a 24-word phrase can restore it.
X25519 + AES-256-GCM
The two of you agree on a shared secret that never travels over the network, and every DM is sealed with it on your machine. Server and relay carry ciphertext they have no key for.
MLS (OpenMLS)
Group encryption built for chats whose members come and go: keys are refreshed as people join and leave, so a removed member can't read what comes after, and a new one can't read what came before.
ChaCha20-Poly1305, per-call keys
Each call gets fresh keys, handed only to the people in it. Every packet is sealed on the sender's machine, and the server and relay route packets they can't open.
A private channel is a door with a lock in the app: permissions decide who can see it, but it is stored as readable text on the server, like any normal channel. An encrypted channel is sealed on the members' own machines, so the server holds only ciphertext. If the host shouldn't read it, it needs to be encrypted, not just private. The difference matters even more for mesh hosting, where many members would be holding copies.
Farder doesn't use SSH to carry chat. People often think it does, because it borrows SSH's two best ideas:
What it doesn't borrow is SSH's transport, because SSH was built to log into a remote computer and type commands, and a chat app needs things SSH doesn't do well:
QUIC is also not exotic: it is the protocol underneath HTTP/3, and a large share of web traffic already uses it.
The questions people ask after reading the above.
Your DMs, encrypted channels and voice: no. Normal channels: today, yes — the relay is a stop in the middle of that conversation, the same way the server is. An inner tunnel that closes this is designed and not yet built. If that matters for a conversation, use an encrypted channel.
The app comes with a default relay run by the Farder project. You don't have to use it: when creating a server you can point it at a relay you run yourself (one setup script on any small Linux VPS), or skip relays and go direct.
On a relayed server, no — they see the relay's address. On a direct server, yes. The app tells you which kind it is before you join.
No. The relay keeps a list of which servers are currently checked in and which connections are live, in memory. History, files and members live on the server. Restart a relay and nothing is lost.
What the relay can see (the table above): addresses, who connects to which server, and normal-channel traffic passing through while they're in. Not your encrypted channels, DMs or calls, not your key, and not anything from before they got in — the relay keeps no history to steal.
No. A relay is one hop and it knows your address. It protects you from the servers you join and the people in them, not from the relay operator or anyone watching the whole internet at once.
Everything on this page can be checked against the source on GitHub. Back to the main page.