Skip to Content
DevelopersOverview

Developers

Shosho is built on Nostr — your code can interoperate with Nostr in the same way Shosho does, and can use Nostr keys to authenticate into Shosho API endpoints. This reference covers identity, going live, chat, clips, products, custom emoji, the Show Chat API, and media uploads.

What you can build

  1. Create or use Nostr profiles.
  2. Get streaming credentials, create and publish live stream events to Shosho and Nostr.
  3. Go live via Show Chat — Shosho signs, publishes, and monitors the live event for you.
  4. Create and publish video clips to Shosho and Nostr.
  5. Create and publish products for sale on Shosho and Nostr as Classified products.
  6. Comment on live streams and clips as an audience member.
  7. Create and publish a live stream.
  8. Create and publish custom emoji sets.
  9. Much more.

Channels

Shosho exposes functionality through three channels:

  • Shosho Streaming APIhttps://api.shosho.live/api/v1. The Shosho instance of Zap Stream Server. Streaming operations: account info, stream keys, going live. (Uses NIP-98 auth).
  • Shosho Show Chat APIhttps://shosho.live/api/show-chat. Live stream event publishing to Nostr. Shosho signs and publishes kind 30311 events for the user. (Uses NIP-98 auth).
  • Nostr Protocol — reading and publishing events to Nostr relays for profiles, stream discovery, chat, clips, products, and social.

Supported Nostr NIPs

Nostr defines functionality in the Nostr NIPs .

Shosho supports the following Nostr functionality.

NIPPurposeKinds
NIP-01Basic protocol, event signingAll
NIP-02Contacts / follow list3
NIP-05DNS-based identifiers
NIP-07Browser-extension signer
NIP-09Event deletion requests5
NIP-19Bech32 encoding (npub, nsec, naddr)
NIP-22Comments (clip comments)1111
NIP-25Reactions7
NIP-30Custom emoji10030, 30030
NIP-46Remote signer (Nostr Connect)
NIP-51Lists (mute list, follow packs)10000, 39089
NIP-53Live events, chat, room presence30311, 1311, 10312
NIP-57Zaps (read)9734, 9735
NIP-65Relay list metadata10002
NIP-71Video events (clips)21, 22, 34235, 34236
NIP-96File storage (media uploads)
NIP-98HTTP auth27235
NIP-99Classified listings (products)30402

Nostr relays

Shosho queries these relays when fetching data (profiles, streams, clips, products):

  • wss://purplepag.es — always included in profile queries (excellent profile data, doesn’t accept user notes)
  • wss://relay.shosho.live – Shosho’s Web Of Trust (WOT) relay
  • wss://relay.damus.io
  • wss://nostrelites.org
  • wss://nostr.wine

For guest users with no relay list, Shosho publishes to:

  • wss://relay.damus.io
  • wss://relay.primal.net

For a logged-in user who has published a relay list (kind 10002) Shosho uses those write relays instead of the defaults.

For a live stream viewer, Shosho also uses the stream event’s host’s relays so that the live stream host can see the chat messages.

Tools

  • NAK — Nostr Army Knife CLI. go install github.com/fiatjaf/nak@latest
  • nostr-tools — JS/TS library. npm install nostr-tools

Several Shosho APIs require NIP-98 authentication — auth tokens are signed Nostr events. The examples in this reference use curl for the HTTP call, but any HTTP client works once you have the token.

Where to start

Last updated on