Introduction
"The government of India does not like technologies like Bitchat and wants it taken down."
— Jack Dorsey, posting on X, July 24, 2026
This is article #133 in the Open Source Project of the Day series. Today's project is BitChat — Jack Dorsey's decentralized P2P encrypted messaging application.
Technically, BitChat is an interesting system: Bluetooth mesh networking, Nostr relay protocol, end-to-end encryption, no accounts, no servers — and it keeps working when the internet goes down. The project has accumulated 30.4k Stars. But what put it in global headlines this week wasn't a tech blog post. It was a government takedown notice screenshot.
On July 23, 2026, India's Ministry of Home Affairs, acting through I4C (the Indian Cybercrime Coordination Centre), sent GitHub a notice demanding removal of three BitChat repositories within three hours. The stated reason: the app carries "substantial risk of misuse by anti-national elements, terrorists, and organized crime groups to evade lawful surveillance."
The direct trigger: tens of thousands of Indian students were protesting at Jantar Mantar in New Delhi over the NEET exam leak scandal. The government cut mobile internet at the protest site five times in a single week. Protesters started using BitChat to coordinate over Bluetooth. The government realized its standard internet shutdown playbook had a gap.
What You'll Learn
- BitChat's dual-transport architecture: Bluetooth mesh (offline) + Nostr (online)
- How 7-hop Bluetooth mesh routing works
- The XChaCha20-Poly1305 + Noise Protocol encryption design
- India's NEET protest background: how an exam scandal became a political crisis
- The legal basis for India's takedown demand — and why digital rights groups say it doesn't hold
- GitHub's response and where things stand
Prerequisites
- Basic familiarity with P2P networks and encrypted messaging concepts
- Some awareness of the Nostr protocol is helpful
- Interest in digital rights and internet governance issues
Project Background
What BitChat Is
Three phrases summarize the design philosophy: no accounts, no phone numbers, no central servers.
BitChat operates in two modes:
- Bluetooth mesh mode: Direct device-to-device communication, no internet required, up to 7 relay hops
- Nostr mode: Communication through 290+ globally distributed Nostr relay servers
The two modes switch seamlessly. Users don't see which transport is active at any given moment.
Author / Team
- Developer: Jack Dorsey (co-founder of Twitter/X, founder of Square/Block)
- Organization: permissionlesstech
- License: Unlicense (public domain — the most permissive open-source license, placing code entirely in the public commons)
- Stack: Swift, iOS + macOS Universal
Project Stats
- ⭐ GitHub Stars: 30,400+
- 🍴 Forks: 4,700+
- 📄 License: Unlicense (public domain)
- 📱 Platform: iOS, macOS
Technical Architecture
Dual-Transport Design
User sends a message
↓
├── Internet available → Nostr protocol
│ 290+ globally distributed relay nodes
│ Decentralized, no single point of failure
│
└── No internet (shutdown / underground / remote) → Bluetooth mesh
Bluetooth LE
Up to 7 relay hops
Coverage radius scales with crowd density
One design choice worth noting: BitChat's private message envelope format is custom protocol — not compatible with standard NIP-17/44/59 formats. This trades interoperability for stronger privacy: the message structure doesn't match any known surveillance tool's analysis patterns.
7-Hop Bluetooth Mesh Routing
Bluetooth LE has a direct range of roughly 10–30 meters in open space. BitChat extends this through 7-hop mesh forwarding:
Alice [BLE] → relay1 [BLE] → relay2 [BLE] → ... → Bob
(every device is simultaneously a terminal and a routing node)
Theoretical range: 7 × 30m = 210m+ (varies with crowd density)
Dense crowd effect: every phone running BitChat becomes a mesh node
At Jantar Mantar, thousands of people in close proximity made this mechanism particularly effective. Each phone running BitChat extended the mesh.
Encryption Design
Private messages (P2P):
Noise Protocol handshake (identity verification + key agreement)
XChaCha20-Poly1305 symmetric encryption
→ Forward secrecy (independent key per session)
→ Authenticated encryption (AEAD: confidentiality + integrity)
→ Replay attack resistance
Channel messages:
LZ4 compression (reduces Bluetooth payload size)
Optional end-to-end encryption
Additional Features
- Emergency wipe: Triple-tap clears all local messages and keys
- Location-based channels: geohash coordinates (block to country-level precision)
- Adaptive battery modes: Bluetooth scan frequency adjusts to battery state
-
IRC-style commands:
/msgfor private messages,/whoto see online peers,/slapfor the classics
Quick Start
Installation
BitChat is currently a native iOS + macOS Swift app, available via GitHub source or TestFlight.
# Clone the source
git clone https://github.com/permissionlesstech/bitchat.git
# Open in Xcode
open bitchat.xcodeproj
Usage Modes
Local communication (fully offline):
- Open the app — no registration required
- Nearby devices running BitChat automatically mesh together
- Join or create channels (geohash-based for location channels)
Global communication (internet available):
- App automatically uses Nostr mode
- Messages route through 290+ global relay nodes
- No account needed — identity is a key pair
Why India Tried to Take It Down
Background: The NEET Exam Scandal
In 2026, India saw one of its largest student protest movements in years. The immediate trigger was a leak scandal involving NEET — the National Eligibility cum Entrance Test, India's sole gateway exam for undergraduate medical admissions:
- NEET is extraordinarily competitive; medical careers often depend on a single sitting
- In May 2026, exam results were cancelled days before release — the cause confirmed as a paper leak
- A 22-year-old NEET aspirant died by suicide in the days after the cancellation
- Other students followed; the toll grew as the scandal deepened
- Students directed outrage at educational corruption and official negligence, demanding the Education Minister's resignation
The protest grew into a broader anti-corruption movement. Participants called themselves the Cockroach Janta Party (CJP) — a name reclaimed as a badge of resilience, since cockroaches in Indian idiom survive everything.
Internet Shutdowns and BitChat
The government cut mobile internet at Jantar Mantar five times in one week, attempting to disrupt protesters' coordination.
The result was the opposite of intended. Some protesters started using BitChat, coordinating over Bluetooth mesh while the cell network was down. The government found its standard internet shutdown playbook wasn't working.
The Takedown Notice
On July 23, the Ministry of Home Affairs sent the notice through I4C. Key contents:
- Demand: Remove three BitChat repositories within three hours
- Stated reason: Risk of use by "anti-national elements, terrorists, and organized crime groups" to "evade lawful surveillance and interception"
- Technical concern: The app functions during internet shutdowns and has no central server available for tracking
Dorsey posted the notice screenshot on X:
"The government of India does not like technologies like Bitchat and wants it taken down."
The Legal Argument — and Its Problems
India typically invokes Section 69A of the IT Act to demand content takedowns, using national security and public order as justification. Multiple digital rights organizations raised problems with this application:
Internet Freedom Foundation (IFF) statement, July 24, 2026:
"The blocking of BitChat's code on GitHub is unconstitutional and authoritarian. Deleting repositories does not delete the app from phones already running it, and actually prevents public scrutiny of the underlying code."
SFLC.in (Software Freedom Law Centre):
Section 69A targets specific illegal content, not software based on what it can do. "This app works during internet shutdowns" is not a valid basis for a takedown under the law as written — by that logic, any app supporting offline functionality could be targeted.
Access Now:
Blocking offline communication tools during internet shutdowns risks a "total communication blackout" that violates constitutionally protected fundamental rights.
GitHub's Response
GitHub did not publicly confirm receiving the notice. As of the notice being sent, BitChat's repositories remained accessible in India.
The Broader Pattern
The BitChat case isn't isolated. It's a recurring conflict with a consistent structure:
Governments' position: Communication infrastructure must retain "lawful interception" capability. This is a baseline requirement for intelligence agencies and law enforcement. Decentralized, encrypted, serverless communication tools structurally eliminate that capability.
Technical communities' and digital rights organizations' position: Internet shutdowns are direct suppression of freedom of expression and assembly. Tools that let people communicate during shutdowns protect fundamental human rights — not just protest rights.
What Unlicense means here: BitChat uses a public domain license. Anyone can freely copy, modify, and redistribute the code. If GitHub pulled the repositories, the code already exists in thousands of forks worldwide. The takedown notice can't actually erase it.
That design choice now looks like it was made with this kind of scenario in mind.
Links and Resources
- 🌟 GitHub: permissionlesstech/bitchat
- 📰 Coverage: TechCrunch · The Hindu · Indian Express
Conclusion
BitChat is technically a well-designed project. The Bluetooth mesh plus Nostr dual-transport makes it functional under any network condition. The XChaCha20-Poly1305 encryption and serverless architecture set a high privacy bar. The Unlicense means it can't be legally "deleted."
India's attempt to take it down reveals something about the current moment: when internet shutdowns become a standard government tool, engineering workarounds get built; when those workarounds appear, the dispute shifts from "can we shut down the internet" to "can we suppress the tools that route around shutdowns."
IFF's point lands cleanly: removing code repositories doesn't remove the app from phones, and it blocks public code review — the transparency that makes these tools trustworthy in the first place is exactly what a repository takedown eliminates.
30.4k Stars, Unlicense, 4,700+ forks worldwide. The code lives in too many places for a three-hour notice to reach.
Explore PrimeSkills — A marketplace for handpicked AI Agents and skills. Each is validated in real enterprise workflows, stripping away hype and keeping only what truly works.
Welcome to my Homepage for more useful insights and interesting products.
Top comments (0)