Directories
¶
| Path | Synopsis |
|---|---|
|
Package config holds the embedded YAML configuration for the search subsystem: profile scoring weights, NIP-05/LUD-16 verification bonuses, and search-engine/cache tuning.
|
Package config holds the embedded YAML configuration for the search subsystem: profile scoring weights, NIP-05/LUD-16 verification bonuses, and search-engine/cache tuning. |
|
Package nip01 implements NIP-01: the core event, filter, and subscription types every other package in this SDK builds on — event construction, signing, verification, and NIP-01 subscription filters.
|
Package nip01 implements NIP-01: the core event, filter, and subscription types every other package in this SDK builds on — event construction, signing, verification, and NIP-01 subscription filters. |
|
Package nip04 implements NIP-04: Encrypted Direct Message, the legacy (pre-NIP-44) shared-secret AES-256-CBC encryption scheme for kind-4 direct messages.
|
Package nip04 implements NIP-04: Encrypted Direct Message, the legacy (pre-NIP-44) shared-secret AES-256-CBC encryption scheme for kind-4 direct messages. |
|
Package nip05 implements NIP-05: Mapping Nostr Keys to DNS-based Internet Identifiers, letting a pubkey advertise a human-readable "name@domain" identifier that resolves via a domain's /.well-known/nostr.json document.
|
Package nip05 implements NIP-05: Mapping Nostr Keys to DNS-based Internet Identifiers, letting a pubkey advertise a human-readable "name@domain" identifier that resolves via a domain's /.well-known/nostr.json document. |
|
Package nip09 implements NIP-09: Event Deletion Request, the kind-5 event a user publishes to ask relays to stop serving their earlier events.
|
Package nip09 implements NIP-09: Event Deletion Request, the kind-5 event a user publishes to ask relays to stop serving their earlier events. |
|
Package nip11 implements NIP-11: Relay Information Document, the application/nostr+json metadata a relay serves describing its name, supported NIPs, and connection limits.
|
Package nip11 implements NIP-11: Relay Information Document, the application/nostr+json metadata a relay serves describing its name, supported NIPs, and connection limits. |
|
Package nip13 implements NIP-13: Proof of Work, letting an event embed a nonce tag whose event ID has a target number of leading zero bits.
|
Package nip13 implements NIP-13: Proof of Work, letting an event embed a nonce tag whose event ID has a target number of leading zero bits. |
|
sha256
Package sha256 implements the SHA224 and SHA256 hash algorithms as defined in FIPS 180-4.
|
Package sha256 implements the SHA224 and SHA256 hash algorithms as defined in FIPS 180-4. |
|
Package nip16 implements NIP-16: Event Treatment, the replaceable/ ephemeral event-kind ranges (folded into NIP-01 upstream, kept here as a distinct package for the kind-range predicates).
|
Package nip16 implements NIP-16: Event Treatment, the replaceable/ ephemeral event-kind ranges (folded into NIP-01 upstream, kept here as a distinct package for the kind-range predicates). |
|
Package nip17 implements NIP-17: Private Direct Messages, unencrypted kind-14 chat rumors meant to be sealed and gift-wrapped (see nip59) before publishing.
|
Package nip17 implements NIP-17: Private Direct Messages, unencrypted kind-14 chat rumors meant to be sealed and gift-wrapped (see nip59) before publishing. |
|
Package nip19 implements NIP-19: bech32-Encoded Entities, converting between raw hex keys/IDs and their human-friendly bech32 form (npub, nsec, note, nprofile, nevent, naddr).
|
Package nip19 implements NIP-19: bech32-Encoded Entities, converting between raw hex keys/IDs and their human-friendly bech32 form (npub, nsec, note, nprofile, nevent, naddr). |
|
Package nip23 implements NIP-23: Long-form Content, articles published as kind:30023 parameterized-replaceable events (Markdown content plus title/summary/image metadata).
|
Package nip23 implements NIP-23: Long-form Content, articles published as kind:30023 parameterized-replaceable events (Markdown content plus title/summary/image metadata). |
|
Package nip26 implements NIP-26: Delegated Event Signing, letting an issuer authorize a delegate pubkey to sign events on its behalf within caller-defined conditions (event kind, creation-time window).
|
Package nip26 implements NIP-26: Delegated Event Signing, letting an issuer authorize a delegate pubkey to sign events on its behalf within caller-defined conditions (event kind, creation-time window). |
|
Package nip33 implements NIP-33: Parameterized Replaceable Events (kind 30000-39999, renamed "addressable events" and folded into NIP-01 upstream), identified by pubkey+kind+"d" tag rather than pubkey+kind alone.
|
Package nip33 implements NIP-33: Parameterized Replaceable Events (kind 30000-39999, renamed "addressable events" and folded into NIP-01 upstream), identified by pubkey+kind+"d" tag rather than pubkey+kind alone. |
|
Package nip40 implements NIP-40: Expiration Timestamp, an "expiration" tag marking when relays should stop serving an event.
|
Package nip40 implements NIP-40: Expiration Timestamp, an "expiration" tag marking when relays should stop serving an event. |
|
Package nip42 implements NIP-42: Relay Authentication, letting a relay challenge a client to prove control of a pubkey (via a signed kind:22242 event) before granting access to restricted reads/writes.
|
Package nip42 implements NIP-42: Relay Authentication, letting a relay challenge a client to prove control of a pubkey (via a signed kind:22242 event) before granting access to restricted reads/writes. |
|
Package nip43 implements NIP-43: Relay Access Metadata and Requests -- relay membership lists, roles, and a self-service join/leave/invite flow.
|
Package nip43 implements NIP-43: Relay Access Metadata and Requests -- relay membership lists, roles, and a self-service join/leave/invite flow. |
|
Package nip44 implements NIP-44: Encrypted Payloads (Versioned), the current ChaCha20+HMAC-SHA256 (encrypt-then-MAC) scheme (v2) for direct-message and other private event content, superseding the legacy AES-CBC scheme in nip04.
|
Package nip44 implements NIP-44: Encrypted Payloads (Versioned), the current ChaCha20+HMAC-SHA256 (encrypt-then-MAC) scheme (v2) for direct-message and other private event content, superseding the legacy AES-CBC scheme in nip04. |
|
Package nip46 implements NIP-46: Nostr Connect (remote signing), letting a client ask a remote signer to sign events, encrypt/decrypt payloads, or hand over a public key — over an encrypted request/response event pair (kind 24133) — instead of the client holding the private key itself.
|
Package nip46 implements NIP-46: Nostr Connect (remote signing), letting a client ask a remote signer to sign events, encrypt/decrypt payloads, or hand over a public key — over an encrypted request/response event pair (kind 24133) — instead of the client holding the private key itself. |
|
Package nip47 implements NIP-47: Nostr Wallet Connect (NWC), a protocol letting Nostr clients access a remote Lightning wallet service over end-to-end encrypted Nostr events, using a unique keypair per connection.
|
Package nip47 implements NIP-47: Nostr Wallet Connect (NWC), a protocol letting Nostr clients access a remote Lightning wallet service over end-to-end encrypted Nostr events, using a unique keypair per connection. |
|
relayreg
Package relayreg declares NIP-47 support to a relay engine.
|
Package relayreg declares NIP-47 support to a relay engine. |
|
Package nip48 implements NIP-48: Proxy tags, which let an event declare that it originated on another protocol (ActivityPub, AT Protocol, RSS, or the web) and reference its source object there.
|
Package nip48 implements NIP-48: Proxy tags, which let an event declare that it originated on another protocol (ActivityPub, AT Protocol, RSS, or the web) and reference its source object there. |
|
relayreg
Package relayreg declares NIP-48 support to a relay engine.
|
Package relayreg declares NIP-48 support to a relay engine. |
|
Package nip49 implements NIP-49: Private Key Encryption, the scrypt-derived, password-protected "ncryptsec" encoding for a private key.
|
Package nip49 implements NIP-49: Private Key Encryption, the scrypt-derived, password-protected "ncryptsec" encoding for a private key. |
|
Package nip57 implements NIP-57 (Lightning Zaps) in two flavors:
|
Package nip57 implements NIP-57 (Lightning Zaps) in two flavors: |
|
relayreg
Package relayreg declares NIP-57 (Zaps, including the AltZap extension) support to a relay engine.
|
Package relayreg declares NIP-57 (Zaps, including the AltZap extension) support to a relay engine. |
|
Package nip65 implements NIP-65: Relay List Metadata, letting a user publish which relays they read from and write to (the "outbox model"), so other clients know where to find their events and send them replies.
|
Package nip65 implements NIP-65: Relay List Metadata, letting a user publish which relays they read from and write to (the "outbox model"), so other clients know where to find their events and send them replies. |
|
relayreg
Package relayreg declares NIP-65 support to a relay engine.
|
Package relayreg declares NIP-65 support to a relay engine. |
|
Package nip77 implements NIP-77: Negentropy Syncing, a range-based set reconciliation protocol relays and clients use to efficiently discover which events they're each missing without transferring full event lists.
|
Package nip77 implements NIP-77: Negentropy Syncing, a range-based set reconciliation protocol relays and clients use to efficiently discover which events they're each missing without transferring full event lists. |
|
Package nip88 implements NIP-88: Polls, allowing clients to publish single- or multiple-choice polls (kind 1068) and votes on them (kind 1018).
|
Package nip88 implements NIP-88: Polls, allowing clients to publish single- or multiple-choice polls (kind 1068) and votes on them (kind 1018). |
|
relayreg
Package relayreg declares NIP-88 support to a relay engine.
|
Package relayreg declares NIP-88 support to a relay engine. |
|
Package nip90 implements NIP-90: Data Vending Machines, a marketplace flow where customers announce compute jobs and service providers compete to fulfill them.
|
Package nip90 implements NIP-90: Data Vending Machines, a marketplace flow where customers announce compute jobs and service providers compete to fulfill them. |
|
relayreg
Package relayreg declares NIP-90 support to a relay engine.
|
Package relayreg declares NIP-90 support to a relay engine. |
|
Package nip98 implements NIP-98: HTTP Auth, a signed kind-27235 event carried in an HTTP Authorization header to prove control of a pubkey to an HTTP server (e.g.
|
Package nip98 implements NIP-98: HTTP Auth, a signed kind-27235 event carried in an HTTP Authorization header to prove control of a pubkey to an HTTP server (e.g. |
|
Package nipAA implements NIP-AA's pure, relay-independent orchestration pieces: the AUTH-event freshness check and Steps 3-4 of its relay verification algorithm (find the "auth" tag, verify it via nipOA, and evaluate only its created_at</created_at> clauses -- kind= clauses are deliberately not evaluated here, per the spec's explicit divergence from full NIP-OA verification at connection admission).
|
Package nipAA implements NIP-AA's pure, relay-independent orchestration pieces: the AUTH-event freshness check and Steps 3-4 of its relay verification algorithm (find the "auth" tag, verify it via nipOA, and evaluate only its created_at</created_at> clauses -- kind= clauses are deliberately not evaluated here, per the spec's explicit divergence from full NIP-OA verification at connection admission). |
|
Package nipB0 implements NIP-B0: Web Bookmarking, editable bookmarks of web pages published as kind 39701 parameterized-replaceable events.
|
Package nipB0 implements NIP-B0: Web Bookmarking, editable bookmarks of web pages published as kind 39701 parameterized-replaceable events. |
|
relayreg
Package relayreg declares NIP-B0 support to a relay engine.
|
Package relayreg declares NIP-B0 support to a relay engine. |
|
Package nipB7 implements NIP-B7: Blossom media — the Nostr-facing side of the Blossom protocol (github.com/hzrd149/blossom), covering:
|
Package nipB7 implements NIP-B7: Blossom media — the Nostr-facing side of the Blossom protocol (github.com/hzrd149/blossom), covering: |
|
client
Package client is an HTTP client for talking to Blossom servers (as distinct from nipB7 itself, which only builds/parses the protocol's events and types and makes no network calls).
|
Package client is an HTTP client for talking to Blossom servers (as distinct from nipB7 itself, which only builds/parses the protocol's events and types and makes no network calls). |
|
relayreg
Package relayreg declares NIP-B7 support to a relay engine.
|
Package relayreg declares NIP-B7 support to a relay engine. |
|
Package nipOA implements NIP-OA: Owner Attestation, an optional "auth" tag by which an owner key authorizes an agent key to publish events under the agent's own authorship.
|
Package nipOA implements NIP-OA: Owner Attestation, an optional "auth" tag by which an owner key authorizes an agent key to publish events under the agent's own authorship. |
|
Package relay is an embeddable Nostr relay engine: event storage (EventStore), WebSocket session handling (SessionHandler), NIP-11 negotiation, and a plugin registration mechanism (RegisterNIP / RegisterEventValidator) that NIP packages use to declare relay support without the relay package needing to import them.
|
Package relay is an embeddable Nostr relay engine: event storage (EventStore), WebSocket session handling (SessionHandler), NIP-11 negotiation, and a plugin registration mechanism (RegisterNIP / RegisterEventValidator) that NIP packages use to declare relay support without the relay package needing to import them. |
|
client
Package client is a Nostr relay WebSocket client: dial a relay (Connection), publish and subscribe, and round-trip higher-level protocols built on top of the wire format (e.g.
|
Package client is a Nostr relay WebSocket client: dial a relay (Connection), publish and subscribe, and round-trip higher-level protocols built on top of the wire format (e.g. |
|
migrations
Package migrations runs versioned schema migrations against the relay package's embedded bbolt key-value store, tracking the applied version in a dedicated bucket.
|
Package migrations runs versioned schema migrations against the relay package's embedded bbolt key-value store, tracking the applied version in a dedicated bucket. |
|
Package search implements profile search indexing and ranking used by the relay package to serve NIP-50 search queries: a pluggable Backend interface, a batching Service that indexes profile updates asynchronously, and a ReadOnlyService decorator for relay instances that should query but never index.
|
Package search implements profile search indexing and ranking used by the relay package to serve NIP-50 search queries: a pluggable Backend interface, a batching Service that indexes profile updates asynchronously, and a ReadOnlyService decorator for relay instances that should query but never index. |
|
Package testlogger wires a zerolog.Logger into testing.T/B so that production code's own log lines (session lifecycle, verification, migrations, etc.) show up correctly attributed to the (sub)test that triggered them -- hidden on pass, surfaced automatically on failure or with `go test -v` -- instead of being silenced or dumped raw to stdout.
|
Package testlogger wires a zerolog.Logger into testing.T/B so that production code's own log lines (session lifecycle, verification, migrations, etc.) show up correctly attributed to the (sub)test that triggered them -- hidden on pass, surfaced automatically on failure or with `go test -v` -- instead of being silenced or dumped raw to stdout. |
|
Package utils holds small helpers shared across this SDK's NIP and relay packages: event/tag validation, key management, NIP-05/LUD-16 URL helpers, logging, and LNURL decoding.
|
Package utils holds small helpers shared across this SDK's NIP and relay packages: event/tag validation, key management, NIP-05/LUD-16 URL helpers, logging, and LNURL decoding. |
|
Package wire defines the Nostr relay wire-protocol packet types (EVENT, REQ, EOSE, OK, NOTICE, CLOSE, AUTH, and NIP-77 negentropy packets) and their JSON encoding.
|
Package wire defines the Nostr relay wire-protocol packet types (EVENT, REQ, EOSE, OK, NOTICE, CLOSE, AUTH, and NIP-77 negentropy packets) and their JSON encoding. |
Click to show internal directories.
Click to hide internal directories.