nostrbasedocs
Start building
Guide
.md

Required capabilities

Feature Relay requirement
Tables Kind 30078, address replacement, scope tags
Deletes Kind 5, deletion pointers or removal of targeted records
Live changes Persistent subscriptions
Broadcast / Presence Delivery of ephemeral kind 20078 and channel tags
Negentropy NIP-77; ordinary query fallback is available
Raw search NIP-50; matching rules vary

The SDK does not select relays, discover an outbox, or guarantee public relay compatibility. Configure explicit endpoints. Test event acceptance, retention, result limits, and reconnect behavior on the relays you intend to use.

Authenticate to a relay

Some relays require NIP-42 authentication. Authenticate through Applesauce before requesting data:

await db.pool.relay(url).authenticate(signer);

App signer sign-in and relay authentication are separate. Relay authentication is not automatic.

Plan for incomplete results

Multiple relays can improve availability, but each can retain a different set of events. Nostr replacement resolves known versions; it does not establish a global snapshot.

Use author filters, smaller collections, and recovery. A successful query or Negentropy exchange describes configured relay data. It cannot recover records already pruned everywhere.

Deploy the app

A browser app can use static hosting. Use HTTPS and wss: endpoints; extension sign-in runs in a browser user action. Keep the app namespace stable between builds. Keep private keys out of a public bundle.

Files need a separate Blossom server with browser CORS support. Hosting the UI does not supply relay storage, file retention, or trusted background jobs.

Search guides, API methods, and protocols.