Musiquay is built on the Nostr protocol — a simple, open protocol for decentralized social networking based on cryptographic keypairs and relays. But Musiquay is not just a music player on Nostr. It is a social and professional network for the entire music scene, layered on top of an open event system.
The platform rests on six core pillars that sit on top of the infrastructure layers:
The event roster (#3) and release credits (#4) together form a unified credits system — the same validation model (scene police, wiki-style editing, cryptographic confirmations) applied to both live events and recorded music. Together they build the complete professional history of everyone in the scene.
The merchandise system (#5) is the storefront for the credits system's catalog — physical releases for sale link directly to their edition data, giving buyers full provenance (pressing plant, mastering engineer, catalog number) right from the product listing.
All six pillars share the same Nostr identities, the same relay infrastructure, the same social graph, and the same payment layer. They reinforce each other: the calendar creates events, the marketplace fills crew needs, the roster documents the live side, the credits document the studio side, the merch system sells the physical artifacts, and the scene graph accumulates everything into the reputation that generates more work.
The architecture is designed around five infrastructure layers:
┌─────────────────────────────────────────────┐
│ Client Layer │
│ (Web UI, Mobile Apps) │
├─────────────────────────────────────────────┤
│ Social Layer │
│ (Scene Graph, Discovery, Networking) │
├─────────────────────────────────────────────┤
│ Payment Layer │
│ (Lightning Network / Stripe) │
├─────────────────────────────────────────────┤
│ Relay Layer │
│ (Musiquay Relay + Nostr Network) │
├─────────────────────────────────────────────┤
│ Media Layer │
│ (Blossom Servers / CDN) │
└─────────────────────────────────────────────┘
The initial release is a full-stack deployment: relay, media infrastructure, payment layer, and client applications — all shipping together.
MVP decisions:
Nostr is a protocol, not a platform. The key concepts:
kind field that determines their type (text note, metadata, contact list, etc.). Musiquay will use existing music-related event kinds where they exist and define new ones only when necessary.Nostr was designed for social networking, which makes it a natural fit not just for music distribution but for the entire social and professional layer Musiquay aims to build.
The music layer and six pillars — scene graph, event calendar, event roster, release credits, merchandise, and services marketplace — are the product-level features that define what Musiquay is. They are documented in detail across this file and dedicated feature docs:
The pillars share everything: identities, social graph, relay infrastructure, media layer, and payment rails. A record shop is one Nostr identity that lists inventory (NIP-15), hosts in-store events (NIP-52), gets tagged on rosters, and connects with labels and distros — all on the same key, the same relay, the same protocol.
This is the architectural heart of what makes Musiquay different from a simple music player. The platform models the entire music ecosystem as a graph of Nostr identities and their relationships.
Every user is a Nostr keypair. Profile metadata indicates their role(s) in the scene. A single identity can hold multiple roles (e.g., a musician who also promotes shows and does sound engineering).
| Role | Description | Example Activity |
|---|---|---|
| Artist / Band | Musicians, solo or collective | Publish tracks, albums, tour dates |
| Listener / Fan | Music consumers and supporters | Stream, build playlists, support artists |
| Venue | Physical spaces for live music | List shows, capacity, technical specs, location |
| Promoter | Event organizers | Create and promote events, book artists |
| Label | Music labels, collectives | Curate rosters, publish releases, manage catalogs |
| Agent / Manager | Artist representation | Connect with venues and promoters |
| Producer | Studio producers | Showcase credits and portfolio |
| Engineer | Sound, mix, mastering engineers | Showcase credits and portfolio |
| Tech Staff | Live sound, lighting, staging | Availability, skills, past work |
| Road Crew / Rigger | Touring and rigging professionals | Availability, skills, tour history |
| Designer / Illustrator | Visual artists for album art, merch, posters | Portfolio, availability |
| Photographer | Music and event photographers | Portfolio, gig coverage |
| Filmmaker | Music video, live recording | Portfolio, showreel |
| Record Shop | Independent physical retail | Catalog inventory, sell new and used records, host in-store events |
| Distro | Distribution labels and services | Catalog carried titles, connect with labels, ship to customers and retail |
| Merch Company | Screen printers, merch manufacturers | Produce physical merch, get credited on products |
The social graph isn't just "follows." It encodes professional and creative relationships:
These relationships are expressed as Nostr events — taggable, queryable, and owned by the participants. They form the connective tissue that turns Musiquay from a music platform into a scene platform.
The primary mechanisms for building these relationships are the [event roster](./FEATURES_ROSTER.md) and [release credits](./FEATURES_CREDITS.md) — together forming a unified credits system. Every confirmed roster entry (live) and every confirmed release credit (studio) creates a node in the scene graph: a connection between people, a credit on a profile, a piece of professional history. Over time, the combined system builds a dense, verifiable map of who has worked with whom — on stage and in the studio — across every role in the scene.
The scene graph enables powerful discovery:
This is the professional network the music scene has never had — and it emerges naturally from structured Nostr events rather than from a proprietary database.
The Musiquay relay is the core infrastructure the foundation operates. It is a Nostr relay optimized for music and scene events.
Responsibilities:
Design considerations:
Federation model:
Audio files and artwork are not stored inside Nostr events (which are lightweight JSON). Instead, media is hosted on Blossom servers — the media storage layer of the Nostr ecosystem.
Blossom (Bitcoin Lightning Object Storage Model):
Streaming:
Content policy:
The social layer is what transforms Musiquay from a music distribution tool into a home for the scene. It sits on top of the relay layer and leverages Nostr's native social primitives.
Core capabilities:
Social features are protocol-native:
Payments flow directly from listeners to artists using the Lightning Network, a Layer 2 protocol on Bitcoin that enables instant, near-zero-fee micropayments.
How it works for listeners:
How it works for artists:
Payment distribution:
Musiquay develops and maintains reference client applications — but because the protocol is open, anyone can build a client that interacts with the same network.
Reference clients:
Client responsibilities:
Third-party clients:
Musiquay's data model is expressed as Nostr events. The strategy is to maximize reuse of existing NIPs and only create custom event kinds when nothing suitable exists.
Full spec: FEATURES_MUSIC.md.
| Concept | Description | NIP Strategy |
|---|---|---|
| Track | A single recording; addressable event carrying all published encodings (Blossom blobs identified by SHA-256 + codec spec), with metadata modeled on ID3/MusicBrainz tags | Custom kind 32210 |
| Album / Release | An ordered collection of tracks; references track event addresses. Full structured credits, format editions, and manufacturing details via release credits system. | Custom kind 32211 |
| Playlist | An ordered list of track references; can be public or private (NIP-44 encrypted) | Custom kind 32212, NIP-51 set conventions |
| Play Event | A record of a listener playing a track; used for payment distribution and play statistics | Custom kind 3221; NIP-38 kind 30315 d:music for the live now-playing layer |
| Concept | Description | NIP Strategy |
|---|---|---|
| Scene Profile | Extended Nostr profile metadata with role(s), skills, location, portfolio links, Lightning address | Extend NIP-01 metadata |
| Credit | Links a participant to a work (e.g., "mixed by", "artwork by", "photographed by") | Release credits 32214 / track credits 32215, plus NIP-32 labels for validation |
| Booking | A professional connection between promoter/venue and artist for a show | Future work, likely custom |
See FEATURES_CALENDAR.md for full details.
| Concept | Description | NIP |
|---|---|---|
| Date-Based Event | All-day/multi-day events (festivals, release dates) | NIP-52, kind 31922 |
| Time-Based Event | Shows, gigs, listening parties with specific start/end times; includes geohash, location, participant tags | NIP-52, kind 31923 |
| Calendar | Collection of events (venue calendar, tour schedule, promoter season) | NIP-52, kind 31924 |
| RSVP | Attendance response (accepted/declined/tentative) linked to a calendar event | NIP-52, kind 31925 |
| Waitlist Position | Queue entry for sold-out events | NIP-52, kind 31925 — RSVP with status: waitlist + position/joined_at tags |
| Release Countdown | Future release date with subscriber notifications | Date-based event + custom tags |
See FEATURES_ROSTER.md for full details.
| Concept | Description | NIP |
|---|---|---|
| Roster | Structured post-event record of all participants with roles — wiki-style, open for community contributions | NIP-52, kind 31923 — the calendar event updated post-show |
| Roster Confirmation | Participant confirms their role on a roster (cryptographically signed) | NIP-32, kind 1985 — label event |
| Roster Attestation | Third-party vouch for a participant's role ("I was there, can confirm") | NIP-32, kind 1985 — label event |
| Roster Contribution | Community member adds a missing participant to a roster (wiki-style) | NIP-22, kind 1111 — comment scoped to the roster |
| Setlist | Per-artist song list for an event — songs linked to published tracks, featured artists tagged | Custom kind 32213 |
See FEATURES_CREDITS.md for full details.
| Concept | Description | NIP |
|---|---|---|
| Release Credits | Full structured credits for a release — all participants with roles (performers, engineers, producers, label, visual, etc.) | Custom kind 32214 |
| Track Credits | Per-track credits that override/extend release-level credits (session musicians, featured artists, different songwriters) | Custom kind 32215 |
| Edition | Format-specific variant of a release — vinyl, CD, cassette, etc. with manufacturing details, catalog numbers, and edition-specific credits | Custom kind 32216; NIP-73 i/k tags for external IDs |
Confirmation, attestation, and contribution events are shared with the roster system — the same mechanisms (NIP-32 label events and NIP-22 comments), referencing different targets. This means the scene graph treats live and studio credits uniformly.
See FEATURES_MERCHANDISE.md for full details.
| Concept | Description | NIP |
|---|---|---|
| Stall | A named product collection — artist merch store, record shop inventory, distro catalog. Includes currency and shipping zones. | NIP-15, kind 30017 |
| Product | A single item for sale — merch, physical music, accessories. Structured specs for size, format, condition, edition linking. | NIP-15, kind 30018 |
| Resale Listing | One-off fan-to-fan sale of merch or physical music. Same protocol as services marketplace. | NIP-99, kind 30402 |
The merchandise system requires zero new custom event kinds — it fully reuses NIP-15 and NIP-99 with Musiquay-specific conventions for specs and tags.
See FEATURES_MARKETPLACE.md for full details.
| Concept | Description | NIP |
|---|---|---|
| Service Listing (Active) | "Available for hire" or "Looking to hire" — structured with role, location, price, availability | NIP-99, kind 30402 |
| Service Listing (Draft) | Unpublished or closed listing | NIP-99, kind 30403 |
| Concept | Description | NIP |
|---|---|---|
| Profile Metadata | Display name, bio, avatar, banner | NIP-01 |
| Follow / Contact List | Who a user follows | NIP-02 |
| Direct Messages | Encrypted peer-to-peer messages | NIP-17 (NIP-04 legacy) |
| Reactions | Likes, emoji reactions | NIP-25 |
| Reposts | Sharing someone else's event | NIP-18 |
| Deletion | Requesting removal of own events | NIP-09 |
Addressable kinds occupy the block 32210-32217. The regular (immutable) kinds are 3221, 3222, 32218, 32219, and 32220 - stored and counted, so they cannot be addressable, replaceable, or ephemeral. Re-checked free of collisions against the registry of kinds as of 2026-09-28; register there before implementation.
| Kind | Name | Replaceability | Spec |
|---|---|---|---|
| 32210 | Track | Addressable | FEATURES_MUSIC.md |
| 32211 | Album | Addressable | FEATURES_MUSIC.md |
| 32212 | Playlist | Addressable | FEATURES_MUSIC.md |
| 32213 | Setlist | Addressable | FEATURES_ROSTER.md |
| 32214 | Release credits | Addressable | FEATURES_CREDITS.md |
| 32215 | Track credits | Addressable | FEATURES_CREDITS.md |
| 32216 | Edition | Addressable | FEATURES_CREDITS.md |
| 32217 | Access filter | Addressable | FEATURES_ACCESS.md |
| 3221 | Play report | Regular | FEATURES_MUSIC.md |
| 3222 | Purchase order | Regular, NIP-59 only | FEATURES_ACCESS.md |
| 32218 | Delivery receipt | Regular | FEATURES_ACCESS.md |
| 32219 | Host aggregate | Regular | FEATURES_ACCESS.md |
| 32220 | Publisher rollup | Regular | FEATURES_ACCESS.md |
Access filters are blob-backed: the 32217 event carries filter parameters, the accepted payment legs (mint tags), and an x tag pointing at a Blossom blob holding the filter itself, so filters scale to any size while events stay small. An asset is free if and only if no filter event exists for it; free assets are served by open GET and still produce delivery receipts for listen counts. A requester identifies with a BUD-11 kind 24242 authorization token (Authorization: Nostr <base64url>), and the filter — not a payment token presented per request — is the entitlement.
NIP-reused event kinds (no custom kind): roster (NIP-52 kind 31923), confirmation and attestation (NIP-32 kind 1985), contribution (NIP-22 kind 1111), calendar (NIP-52 31922-31925), marketplace (NIP-15/NIP-99), live now-playing (NIP-38 kind 30315), private receipt delivery (NIP-59), payment requests (NUT-24/BUD-07), blind signatures (Cashu NUT-00 BDHKE).
Message flows. This registry says what each message type is; PROTOCOL_FLOWS.md says how messages move — who sends what, in what order, over which transport (Nostr WebSocket, Blossom HTTP, Cashu mint HTTP, NIP-59 wraps), and what each side must verify first. It also carries the open decisions that must be settled before implementation, including the purchase-order message, blob-to-asset resolution, blind-signature verification, and ticket representation.
┌──────────────┐
│ Scene │
│ (Clients) │
└──────┬───────┘
│ WebSocket
┌──────▼───────┐
│ Musiquay │
┌──────────┤ Relay ├─────────┐
│ └──────┬───────┘ │
│ │ │
┌────────▼──┐ ┌──────────▼─────────┐ ┌─────▼─────────┐
│ Blossom │ │ Public Nostr │ │ Lightning │
│ Server │ │ Relays │ │ Node │
│ (Media) │ │ (Federation) │ │ (Payments) │
└───────────┘ └────────────────────┘ └──────┬────────┘
│
┌─────▼─────┐
│ Stripe │
│ (On-ramp) │
└───────────┘
The foundation operates:
Independent operators can run:
The architecture is designed to be built incrementally, but the MVP ships as a full stack:
| Phase | Scope |
|---|---|
| MVP | Full stack: relay + blossom + Lightning + web client. Nostr-native identity only. Originals only. Core music features (publish, stream, pay). Basic scene profiles and social. |
| Calendar pillar | Location-based event calendar — NIP-52 calendar events, RSVPs, venue calendars, social discovery. See FEATURES_CALENDAR.md. |
| Roster pillar | Event rosters with wiki-style editing, scene police validation, setlists, and live-to-recorded track linking. See FEATURES_ROSTER.md. |
| Credits pillar | Release credits — exhaustive structured credits for recorded music, format/edition tracking, shared validation model with rosters. Together with rosters, builds the complete scene graph. See FEATURES_CREDITS.md. |
| Merchandise pillar | Merch stores, record shop inventory, distro catalogs, fan resale — NIP-15 stalls/products and NIP-99 classifieds. Physical releases link to edition data. See FEATURES_MERCHANDISE.md. |
| Marketplace pillar | Services marketplace — NIP-99 classified listings, structured service offerings and hiring needs, scene graph reputation. See FEATURES_MARKETPLACE.md. |
| Onboarding chapter | Custodial identity management — managed keys behind email signup to lower the barrier for non-technical users. |
| Moderation chapter | Takedown processes, content policy enforcement, reporting mechanisms. |
| Scene expansion | Deeper professional networking — advanced credits, bookings, availability, waitlists, ticket pre-sales, release countdowns. |
Each phase builds on the protocol foundation laid in the MVP. The Nostr-native architecture means nothing is thrown away — custodial onboarding wraps the same keypair system, moderation adds policy layers on the same event model, the calendar, roster, credits, merchandise, and marketplace are just event kinds (NIP-52, NIP-15, NIP-99, and custom kinds) on the same relay, and every confirmed credit — live or studio — deepens the scene graph.