Discreetly is an anonymous, gated, chat application. Under the hood it uses a multiple zero-knowledge protocols such as RLN (Rate-Limiting Nullifier) to rate limit messages and Semaphore for identity management and group membership.
Semaphore Identities are the core of Rate Limiting Nullifiers (RLN), CryptKeeper, and Bandada, providing support for anonymous signalling and experimental voting mechanisms within each chat room.
Rate Limiting Nullifier (RLN) is used to control the frequency of user interactions, thereby providing a robust mechanism to prevent spam.
Bandada is employed for the management of user and group interactions within Semaphore Identity Commitments.
See the frontend to set that up as well
npm i
PASSWORD= //password for admin endpoints
NODE_ENV= //development
DATABASE_URL= //MongoDB Atlas URL
DATABASE_URL_TEST= //MongoDB Atlas URL same as above or a seperate cluster for testing
npx prisma db init && npx prisma db push
npm run dev
Server information and endpoints will display in the console in development mode
npm run test
Endpoint | Expected Response |
---|---|
[ '/', '/api' ] |
Status: 200 OK |
[ '/rooms/:idc', '/api/rooms/:idc' ] |
Status: 200 OK |
[ '/room/:id', '/api/room/:id' ] |
Status: 200 OK |
[ '/join', '/api/join' ] |
Status: 200 OK |
- Single Quotes