Party Social is a decentralized, real-time multiplayer party game powered by the Nostr protocol. Inspired by classic "fill-in-the-blank" party games, players can join rooms, answer prompts, and vote on the funniest or most creative submissions—all without a centralized server.
-
Decentralized Gameplay
Uses Nostr relays (Kinds21000-21004) to manage game states, prompts, and voting. -
Prompt Packs
Create, browse, and edit custom prompt packs stored as Kind30311(Metadata) and Kind30312(Prompts) events. -
Flexible Identity
Sign in as a Guest (ephemeral key) or use your existing Nostr identity via NIP-7 browser extensions. -
Real-time Interaction
Live synchronization of game phases (Answering, Voting, Results) across all connected clients. -
No Database Required
All game data and community packs are fetched directly from the Nostr network.
- Guest: Generates a temporary keypair for the session.
- NIP-7: Uses your Nostr extension (like Alby or Nos2x) to sign events.
- Host: Click Create Game to generate a unique Game ID. Share this ID with your friends.
- Player: Enter the shared Game ID and click Join Game.
The host selects a Prompt Pack and starts the round. Everyone types their best response to the prompt.
Once answers are in, everyone votes for their favorite (you can't vote for yourself!).
The winner is revealed based on the number of votes received.
You can contribute to the community by creating your own content:
- Create Pack: Start a new themed pack (e.g., Tech Jokes, College Life).
- Add Prompts: Add custom fill-in-the-blank questions to your packs.
- Browse: Load and search for packs created by other users across the Nostr relay network.
| Kind | Name | Description |
|---|---|---|
| 21000 | Game Metadata | Identifies the host and game session |
| 21001 | Game Prompt | The active prompt for the current round |
| 21002 | Game Answer | A player's submission for the round |
| 21003 | Game Vote | A vote cast for a specific answer |
| 21004 | Game Phase | Signals state changes (e.g., moving to "Voting") |
| 30311 | Pack Meta | NIP-33 parameterized replaceable event for pack details |
| 30312 | Pack Prompt | Individual prompt events linked to a pack |
By default, the app connects to:
wss://nos.lolwss://relay.primal.net
The project is a web application built with:
- Vanilla JS — Logic and DOM manipulation
- Nostr-tools — Cryptographic signing and relay communication
- CSS — Simple, clean box-model styling
Use ./server to run locally.
cd server
npm inode serverThis project is licensed under MIT. Feel free to fork, modify, and host your own version!