AnonChat is a Stellar-based anonymous communication platform that allows users to create groups and chat freely with strangers โ without revealing identity. Access is powered by Web3 wallet authentication, ensuring privacy, decentralization, and user sovereignty.
Speak freely. Stay anonymous. Powered by Stellar.
AnonChat is a decentralized, privacy-first chat application where:
- Users connect using a Web3 wallet
- No personal data, email, or phone number is required
- Users can create or join anonymous groups
- Messages are end-to-end encrypted
- Identity is never exposed โ not even to us
The platform leverages Stellar blockchain primitives to ensure transparency, decentralization, and trustless authentication.
AnonChat is built on Stellar because it offers:
- โก Fast & low-cost transactions
- ๐ Global, borderless infrastructure
- ๐ Secure public-key cryptography
- ๐งฉ Perfect fit for wallet-based authentication
Stellar enables AnonChat to remain lightweight, scalable, and censorship-resistant.
- No usernames, emails, or profile data
- No tracking or surveillance
- Zero-knowledge architecture
- Messages are encrypted client-side
- Only chat participants can read messages
- Create or join anonymous chat rooms
- No central authority or moderation bias
- Login using a supported Web3 wallet
- Wallet address acts as a pseudonymous identity
- Real-time chat with minimal latency
- No IP logging
- No data selling or analytics exploitation
- Next.js / React
- Tailwind CSS
- Web3 Wallet Integration
- Stellar Blockchain โญ
- Wallet-based authentication
- Public-key cryptography
- Node.js / Serverless APIs
- WebSocket / Real-time messaging
- Encrypted message storage
- Vercel
- End-to-end encrypted messages
- Zero-knowledge design
- Decentralized architecture
- Open-source codebase (auditable)
- No identity or metadata storage
flowchart TB
subgraph Client["๐ค Client"]
Wallet[Web3 Wallet]
Browser[Browser]
end
subgraph Frontend["โ๏ธ Frontend (Next.js)"]
UI[React Components]
Auth[Auth Module]
Chat[Chat Interface]
end
subgraph Backend["๐ง Backend Services"]
Supabase[(Supabase)]
Realtime[Realtime Engine]
end
subgraph Blockchain["โญ Stellar"]
StellarNet[Stellar Network]
end
Wallet -->|Sign Auth| Auth
Browser --> UI
UI --> Chat
Auth -->|Verify| Supabase
Chat -->|Messages| Realtime
Realtime -->|Sync| Supabase
Auth -.->|Wallet Auth| StellarNet
| Layer | Technology |
|---|---|
| Frontend | Next.js 16, React 19, TypeScript, Tailwind CSS |
| Auth | Supabase Auth + Web3 Wallet |
| Database | Supabase (PostgreSQL) |
| Real-time | Supabase Realtime |
| Blockchain | Stellar Network |
| Hosting | Vercel |
- Node.js >= 18.x
- pnpm (recommended)
- Supabase account
# 1. Clone and install
git clone https://github.com/your-username/anonchat.git
cd AnonChat
pnpm install
# 2. Configure environment
cp .env.example .env.local
# Edit .env.local with your Supabase credentials
# 3. Run database migrations in Supabase SQL Editor
# scripts/001_create_profiles.sql
# scripts/002_create_profile_trigger.sql
# scripts/003_room_members_and_removal_votes.sql (for wallet-based removal voting)
# 4. Start dev server
pnpm devFull runbook: See docs/RUN-VOTE-REMOVE.md for step-by-step run and verify instructions.
-
Apply the migration
Runscripts/003_room_members_and_removal_votes.sqlin the Supabase SQL Editor soroom_members,room_removal_votes, andcheck_removal_thresholdexist. -
API smoke test (Node โฅ18, dev server on Node โฅ20):
With the dev server running (pnpm dev), in another terminal:pnpm run test:vote-remove
This checks that unauthenticated requests get 401 and invalid requests get 400.
-
Manual UI test
Open/chat, select a room, click the โฎ (More) button in the header. The โRoom members & votingโ dialog should open; without auth youโll see โNo members yet, or you need to sign in.โ After signing in and joining a room (e.g. by sending a message), you can vote to remove another member; when a majority votes, they are removed and can no longer send messages in that room.
NEXT_PUBLIC_SUPABASE_URL=your-project-url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
NEXT_PUBLIC_STELLAR_NETWORK=testnet
NEXT_PUBLIC_APP_NAME=AnonChatFind credentials in Supabase Dashboard โ Settings โ API
- Group ownership via Stellar accounts
- On-chain group identity
- DAO-based moderation
- Encrypted file sharing
- Mobile PWA support
See CONTRIBUTING.md for guidelines. Quick steps:
- Fork โ Create branch
fix-[issue-number]โ Make changes โ Test โ PR - Important: Only submit PRs for issues you're assigned to
This project is licensed under the MIT License.
๐ https://anonchat-one.vercel.app
Built with privacy in mind and powered by Stellar Blockchain.
If you believe communication should be free, anonymous, and decentralized โ AnonChat is for you.