How Napstr Uses Nostr
Nostr is Napstr’s public discovery layer and encrypted negotiation channel. Audio bytes are never uploaded to Nostr relays.
What Type Is a Track?
A shared track is a custom parameterized-replaceable event of kind 30421. The event is signed by the seeder’s Napstr identity.
30421d and x tags contain the full-file SHA-256t=napstr, filename, byte size, MIME type and alt text
Republishing the same 30421 + d pair replaces that
seeder’s previous record. Removing a share publishes a replacement marked deleted.
Napstr Event Map
| Kind | Purpose | Visibility |
|---|---|---|
| 0 | Napstr profile name, description and picture | Public |
| 10050 | NIP-17 inbox relay list | Public |
| 30421 | Signed track catalogue record | Public |
| 30422 | Expiring batches of file IDs currently being seeded | Public |
| NIP-17 | Download request, refusal, onion address and capability | Encrypted gift wrap |
| 1984 | NIP-56 catalogue reports | Public and signed |
Seeder heartbeats expire after ten minutes and are refreshed every four minutes. Search groups identical SHA-256 IDs and ranks tracks by active seeders.
From Search to Download
- Napstr fetches public
30421catalogue events and live30422heartbeats. - The downloader sends selected seeders an encrypted NIP-17 request containing only a request ID and file ID.
- A seeder replies with its private app-session Tor onion and a random, short-lived per-file capability inside NIP-17.
- The audio transfer then leaves Nostr entirely and continues over Tor.
What Is Public?
Encrypted: download requests, onion addresses and capabilities.
Local: the Nostr secret key, filesystem paths and audio contents.
A Nostr relay can normally see the IP address connecting to that relay, along with public catalogue activity and encrypted-message timing. NIP-17 hides the message plaintext; it does not make the relay connection itself anonymous. Napstr stores its dedicated Nostr key in the operating-system keyring.