Introduction
The encrypted messaging landscape in 2026 features more choices than ever before. Two apps that frequently appear in privacy-focused discussions are BatChat (蝙蝠聊天) and Session. On the surface, both offer end-to-end encryption. Dig deeper and their approaches to privacy, identity, and infrastructure are fundamentally different.
BatChat is a China-developed encrypted messenger that encrypts all messages on-device before transmission. It requires a phone number for registration but stores no message content on its servers. Session is an open-source, decentralized messenger that requires no phone number, no email, and no personal identifier whatsoever. It routes all traffic through an onion routing network similar to Tor.
This comparison examines the encryption architectures, account models, metadata practices, and real-world usability of both platforms. By the end, you will know which app suits your threat model and daily communication needs.
Encryption Architecture
How BatChat Encrypts Messages
BatChat uses a client-side encryption model: all message content is encrypted on the sender’s device before any data leaves the phone. The app employs three cryptographic protocols working together:
- RSA for initial key exchange between contacts
- SRP (Secure Remote Password) for authentication without transmitting passwords
- Double Ratchet for forward secrecy — each message gets a new encryption key, so compromising one key does not expose previous messages
This combination means BatChat messages are encrypted at rest, in transit, and during delivery. The server acts as a relay — it passes encrypted data between users but cannot decrypt the content. BatChat publicly states it stores zero message data (零数据存储), which aligns with the client-side encryption architecture.
BatChat applies this encryption to all conversations by default. There is no toggle to “turn on encryption” — every chat, every group, and every file transfer receives the same treatment. This eliminates the user error problem where someone forgets to enable encryption before sharing sensitive information.
How Session Encrypts Messages
Session began as a fork of Signal in 2018 (originally named Loki Messenger) and used Signal’s encryption protocol. Since then, the Session Technology Foundation has developed its own Session Protocol, built on the widely audited libsodium cryptographic library.
Session’s Protocol V2, announced in 2025, added quantum-resistant encryption and Perfect Forward Secrecy. This means Session is now hardened not only against current cryptographic attacks but also against future threats from quantum computing.
Like BatChat, Session encrypts all messages end-to-end by default. The key difference is the transport layer — Session routes encrypted messages through a decentralized onion routing network, not a central server.
The Onion Routing Difference
Here is where the two apps diverge significantly:
BatChat uses a client-server model. Your encrypted message travels from your device → BatChat server → recipient’s device. The server never sees plaintext, but it does know: your IP address, when you are online, and which other users you are communicating with (metadata).
Session uses a three-hop onion routing network. Your message passes through three randomly selected nodes in the network before reaching its destination. No single node sees both the sender and the recipient. This is similar to how Tor protects browsing privacy — each node only knows the previous and next hop, never the full path.
Session’s network is operated by over 2,000 independently run nodes (as of 2026). These nodes are maintained by community operators globally, with no central point of control. Node operators must stake 25,000 Session Tokens to participate, creating an economic incentive for honest behavior.
| Security Dimension | BatChat | Session |
|---|---|---|
| Message encryption | RSA + SRP + Double Ratchet | Session Protocol V2 (libsodium) |
| Quantum resistance | Not claimed | Yes (Protocol V2) |
| Forward secrecy | Yes (Double Ratchet) | Yes (Protocol V2) |
| Transport encryption | Client-server | Onion routing (3-hop) |
| Metadata protection | Server sees metadata | No single node sees full path |
| Open source | Closed source | Fully open source |
Account Registration and Identity
BatChat: Phone Number Required
BatChat requires a mobile phone number to create an account. You enter your phone number, receive an SMS verification code, and complete registration. This is the same model used by WhatsApp, Telegram, and Signal.
The phone number acts as your identifier on the network. Other users can find you by your phone number if they have it saved in their contacts. BatChat also assigns a unique user ID that can be shared instead of your phone number.
BatChat’s approach mirrors that of most mainstream messengers: convenience first, with privacy layered on top. The phone number enables contact discovery — when you install BatChat, it checks which of your phone contacts also use the app. This makes onboarding fast but creates a link between your real identity and your messenger account.
Session: Anonymous Account IDs
Session takes a fundamentally different approach. You do not need a phone number, an email address, or any personal information to register. When you install the app and tap “Create Account,” Session generates a 66-character alphanumeric Session ID. This ID is your identifier on the network.
Your Session ID looks like this (example shortened): 05d7ab3c9f.... You share it with people you want to chat with — there is no contact discovery from your phone’s address book.
This design means:
- No phone number tied to your account
- No email address tied to your account
- No way for Session (the organization) to identify you
- No way for network observers to link your account to your real identity
The trade-off is discoverability. You cannot simply open Session and see which of your friends are already using it. Each contact must be added manually by exchanging Session IDs. This is intentional — privacy and convenience are often in tension, and Session consistently chooses privacy.
| Account Dimension | BatChat | Session |
|---|---|---|
| Identifier | Phone number (+ optional user ID) | 66-character Session ID |
| Personal info required | Phone number | None |
| Contact discovery | Phone book sync | Manual ID exchange |
| Multi-device | Yes | Per-device Session IDs |
| Account recovery | Phone number-based | Recovery phrase |
Server Architecture and Data Storage
BatChat’s Centralized Model
BatChat operates its own servers. When you send a message, the encrypted data passes through BatChat’s infrastructure. The company claims zero server-side data storage — messages are relayed, not retained.
In practice, this means:
- Messages are encrypted on your device, transmitted through BatChat servers, decrypted on the recipient’s device
- BatChat servers handle message routing, push notifications, and contact discovery
- Server uptime depends entirely on BatChat’s infrastructure
- If BatChat’s servers go offline, the app stops working
The centralized architecture provides consistent performance and simplifies multi-device sync. BatChat can push messages to all your linked devices simultaneously because there is a single point of coordination.
Session’s Decentralized Model
Session has no central servers. Message routing, storage, and delivery are handled by the network of community-operated nodes. When you send a message:
- Your device encrypts the message
- The message enters the onion routing network at the first node
- It hops through two more nodes, with each node only knowing the previous and next hop
- The final node delivers the encrypted message to the recipient
This architecture provides three privacy guarantees that a centralized model cannot match:
- No single point of failure: the network continues to operate as long as enough nodes are online
- No IP address collection: nodes see encrypted traffic but cannot correlate IPs with message content
- No metadata aggregation: no central entity can build a social graph of who talks to whom
The trade-off is speed and reliability. Onion routing adds latency — each message must travel through three nodes before reaching its destination. During periods of network congestion or when nodes go offline, message delivery can be slower than on a centralized platform.
Privacy Features Beyond Encryption
BatChat’s Privacy Toolkit
BatChat includes several features designed to give users control over their privacy:
- Secret Chat Mode: Hides the user’s identity within a chat, suppressing name and avatar display. This is different from encryption — it is about identity concealment at the UI level.
- Disappearing Messages: Configurable message auto-deletion timers. Messages can self-destruct after a set period (minutes, hours, or days after reading).
- Screenshot Protection: Prevents recipients from taking screenshots of conversations. When screenshot protection is enabled, the recipient’s device blocks screen capture attempts.
- Pre-set Messages: Encrypted message drafts that can be prepared in advance and sent later, reducing the window during which unencrypted drafts exist on the device.
- Privacy Settings Dashboard: A centralized page to manage who can see your online status, add you to groups, and view your profile information.
BatChat’s privacy approach focuses on behavioral privacy — controlling what other users can see and do within the app, in addition to the strong encryption baseline.
Session’s Privacy Toolkit
Session’s privacy features are more architectural than additive:
- No Metadata Collection: By design, Session collects zero metadata. No IP addresses, no device information, no contact lists, no timestamps beyond what is necessary for message delivery.
- Disappearing Messages: Standard timer-based message deletion, similar to other encrypted messengers.
- Note to Self: A built-in encrypted notepad for private notes, encrypted with your device keys.
- Closed Groups: Groups with a fixed member list and strong access controls. Group membership changes require consensus among existing members.
Session also includes voice and video calling as a beta feature, with full end-to-end encryption.
Group Chat Capabilities
BatChat Groups
BatChat supports standard group chat features:
- Large group capacity (specific limits vary by version)
- Admin controls including member management and message moderation
- Group-specific notification settings
- File sharing within groups
- @mentions to notify specific members
- Group invitations via shareable links or direct add
- Pre-set messages usable within groups
One notable feature is BatChat’s Group Reply system, which allows threaded replies within group conversations — a feature that keeps large group chats organized.
Session Groups
Session supports both open groups and closed groups:
- Closed Groups: Fixed membership, all members must agree to add/remove participants. Messages are fully end-to-end encrypted.
- Open Groups: Anyone can join via a link. Open group messages are not end-to-end encrypted by default (they function more like a public chat room).
Session’s group features are simpler than BatChat’s, reflecting its focus on privacy minimalism. Admin controls exist but are less granular. File sharing, @mentions, and reactions are supported.
Platform Availability
| Platform | BatChat | Session |
|---|---|---|
| Android | Yes | Yes |
| iOS | Yes | Yes |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | No | Yes |
| Web | No | No |
Both apps support the four major platforms. Session’s Linux desktop client gives it an edge for users in privacy-focused operating systems. BatChat’s focus is on mobile-first usage, with desktop clients for Windows and macOS as companion apps.
Open Source and Transparency
This is one of the most significant differences between the two messengers.
Session is fully open source. All client code (iOS, Android, desktop) and all server/network code is publicly available on GitHub. Security researchers can audit the code independently. The Session Protocol specification is publicly documented. This transparency allows the cryptographic community to verify that Session does what it claims to do.
BatChat is closed source. Neither the client application code nor the server code is publicly available. Users must trust BatChat’s claims about its encryption implementation and data handling practices. While independent security audits could theoretically verify the app’s behavior (through black-box testing and network traffic analysis), no public third-party audits are currently available.
For many privacy-conscious users, the open-source question is decisive. Closed-source encryption is unverifiable encryption — you are trusting the developer, not the math.
Real-World Usability
Network Accessibility
This is a practical consideration that often gets overlooked in encryption comparisons.
BatChat works natively within China’s network environment. Users in China do not need a VPN to use BatChat. This is a significant practical advantage for Chinese-speaking users, since alternative encrypted messengers (Signal, Telegram, WhatsApp) are all blocked in China and require VPN access.
Session runs on a decentralized network of community nodes. Because there is no central server to block, Session can be more resilient against censorship. However, individual node IPs can still be blocked by firewalls. In practice, Session accessibility in China depends on whether enough nodes maintain unblocked IPs.
User Experience
BatChat’s interface follows the familiar messaging app pattern: chat list, contacts, groups, settings. Anyone who has used WhatsApp or WeChat will find BatChat intuitive.
Session’s interface is similarly clean but with fewer features. The app is minimal by design — fewer settings, fewer customization options, and a focus on core messaging functionality. Users coming from feature-rich messengers like Telegram may find Session too sparse.
Performance
BatChat’s centralized architecture provides fast, consistent message delivery. Messages are relayed through a single server infrastructure optimized for speed.
Session’s onion routing adds measurable latency. Messages pass through three network hops, each introducing delay. Under good network conditions, this delay is typically under one second. During congestion or node issues, delays can stretch to several seconds.
BatChat vs Session: Side-by-Side Summary
| Feature | BatChat | Session |
|---|---|---|
| Default encryption | Client-side E2E | Session Protocol E2E |
| Registration | Phone number | No ID required |
| Architecture | Centralized | Decentralized (2,000+ nodes) |
| Message routing | Client → Server → Client | Client → Node 1 → Node 2 → Node 3 → Client |
| Metadata collection | Server logs metadata | No metadata collected |
| Open source | No | Yes |
| Multi-device sync | Yes | Per-device IDs |
| Voice/video calls | Yes | Beta |
| Disappearing messages | Yes | Yes |
| Screenshot protection | Yes | No |
| Works in China | Yes (no VPN) | Variable |
| Linux client | No | Yes |
Which One Should You Choose?
Choose BatChat if:
- You are in China and need a messenger that works without VPN
- You want a familiar messaging experience with strong encryption by default
- Multi-device sync is important to your workflow
- You need advanced group management features
- You want features like screenshot protection and secret chat mode
- Phone number-based contact discovery is a convenience you value
Choose Session if:
- Complete anonymity is essential to your threat model
- You do not want to provide a phone number to any service
- Open-source verifiability is non-negotiable
- You need protection against metadata collection and traffic analysis
- You are comfortable with a more minimal feature set
- You want a messenger that cannot be shut down by any single entity
The Hybrid Approach
Some users run both apps for different purposes:
- BatChat for everyday conversations with friends, family, and colleagues in China
- Session for communications that require the highest level of metadata protection and anonymity
This “defense in depth” approach recognizes that no single messenger is optimal for every use case.
The Bottom Line
BatChat and Session represent two different philosophies in the encrypted messaging space. BatChat aims to make strong encryption accessible and practical within China’s ecosystem — a messenger that works where people actually need it. Session aims to make messaging as private as technically possible — a messenger that collects nothing, knows nothing, and cannot be compelled to disclose anything.
Neither approach is wrong. They address different threat models and different user populations. The critical factor is understanding what each app protects against — and what it does not. BatChat protects your message content from third-party interception but exposes metadata to its servers. Session protects both content and metadata through decentralization, at the cost of speed and mainstream usability.
For users in China seeking a balance of strong encryption and practical accessibility, BatChat delivers encryption without the friction of VPN requirements. For users worldwide whose threat model demands maximum anonymity, Session’s no-phone-number, no-metadata architecture provides protection that no centralized messenger can match.
Frequently Asked Questions
Does BatChat store my messages on its servers?
BatChat claims zero server-side data storage (零数据存储). Messages are encrypted on the sender's device before transmission and pass through BatChat servers only as encrypted relay traffic. However, because BatChat is closed source, this claim cannot be independently verified through code audit. Network traffic analysis can confirm that data leaving the device is encrypted, but cannot confirm what happens on the server side.Can Session messages be intercepted?
Session messages are end-to-end encrypted with the Session Protocol V2, which includes quantum-resistant encryption. The content of messages cannot be decrypted by any intermediary node. However, onion routing protects the *path* of the message, not the *fact* that a message was sent. A sufficiently powerful adversary monitoring all three nodes in a message's path could theoretically correlate timing to discover communication patterns, though this is extremely difficult in practice.Why does Session not require a phone number?
Session's design philosophy treats phone numbers as a privacy liability. Phone numbers are persistent identifiers tied to real-world identities through telecom carriers, government ID requirements for SIM cards, and billing records. By eliminating the phone number requirement, Session removes the most common link between a messaging account and a real person. Your Session ID is a cryptographic key, not a piece of personal information.Which app is better for journalists and activists?
For users with high-risk threat models — journalists, activists, whistleblowers, lawyers handling sensitive cases — Session's metadata protection, onion routing, and open-source verifiability make it the stronger choice. The ability to create accounts without any personal identifier and communicate without leaving a metadata trail addresses the surveillance risks these users face. However, BatChat's screenshot protection and secret chat mode add useful layers for specific scenarios within a moderate-threat environment.Can I use BatChat outside of China?
Yes. BatChat works globally and is not geographically restricted. Users outside China can download BatChat from app stores, register with any phone number, and use all features normally. The app's China-oriented design does not limit its functionality elsewhere.Are BatChat voice and video calls also encrypted?
Yes. BatChat applies the same encryption to voice and video calls as it does to text messages. Calls are encrypted end-to-end using the app's encryption protocol. Screen sharing during calls is also encrypted.How many nodes does the Session network have?
As of 2026, the Session network is operated by over 2,000 independently run community nodes globally. Node operators must stake 25,000 Session Tokens to participate. The network supports millions of users. The node count fluctuates as operators join and leave the network.Visit the BatChatHub home page for our latest tutorials, comparisons, and guides on encrypted messaging. For more on BatChat’s security posture, read our BatChat security review. Interested in how other messengers compare? See our comprehensive guide to encrypted messaging apps. New to BatChat? Start with our BatChat beginner’s guide.