Skip to content

Repository files navigation

napstr-logo-small image

Napstr uses Nostr for discovery and Tor for private file sharing.

https://napstr.net

Build your own Napstr!

See the complete Napstr protocol specification for everything needed to build an interoperable client.

Build from source

Install Node.js, Rust, and the Tauri prerequisites for your OS, then:

git clone https://github.com/lnbits/napstr.git
cd napstr
npm ci
npm run desktop

Development builds use NAPSTR_TOR_PATH when set, then a bundled Tor binary, then tor on PATH.

On macOS, install Tor with Homebrew and start Napstr with:

brew install tor
NAPSTR_TOR_PATH="$(command -v tor)" npm run desktop

To create a package for your operating system with Tor included, run:

npm run bundle

Napstr automatically downloads and verifies the pinned official Tor Expert Bundle for your platform before building.

Implemented architecture

  • On first launch, Napstr creates a Nostr identity and securely stores its private key using your operating system's credential store.
  • Nostr publishes the searchable catalogue, live seeders, NIP-C7 trollbox, and per-track discussions; NIP-17 handles private download negotiation.
  • A bundled Tor process carries transfers without a direct-IP fallback.
  • One recursively watched folder contains both downloads and shared audio.
  • Files are audio-validated and identified by SHA-256. Downloads use a responsive seeder, verify the complete hash, and are available in the built-in player.

Profiles and catalogue metadata are public. Requests, transfer credentials, file contents, and peer IP addresses are not published. Tor use may still be visible to an ISP.

About

No description, website, or topics provided.

Resources

Stars

20 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages