What is NIP-98?
NIP-98 defines a method for authenticating HTTP requests using signed Nostr events.
A client creates a kind 27235 event containing the target URL and HTTP method,
signs it with their Nostr key, base64-encodes it, and sends it in the HTTP
Authorization header.
Authorization: Nostr <base64-encoded-signed-event>
This gives any HTTP server passwordless authentication tied to Nostr identities.
No accounts, no sessions, no cookies — just cryptographic proof of identity.
How It Works
- Client creates a
kind 27235 ephemeral event
- Event includes
u tag (URL) and method tag (GET, POST, PUT, etc.)
- Optionally includes a
payload tag (SHA-256 hash of the request body)
- Client signs the event and base64-encodes it
- Server validates the signature, URL, method, and timestamp (within a short window)
The timestamp check prevents replay attacks. The URL and method binding prevents
token reuse across endpoints. No challenge-response is needed — the signed
event is self-contained proof.
Ecosystem
NIP-98 is used across 115+ projects. Below are the most notable by category.
Libraries & SDKs
- nostr-tools JS/TS — canonical Nostr library;
nip98.getToken() and nip98.validateToken()
- NDK JS/TS — Nostr Development Kit used by many downstream clients
- Welshman JS/TS — Nostr toolkit from Coracle with
Nip98.ts module
- nostr-hooks React — React hooks including
useNip98
- Nostrify Deno — Nostr framework with NIP-98 support
- rust-nostr Rust — comprehensive Nostr crate + FFI bindings for Python, Swift, Kotlin, JS, C#
- nostr-types Rust — types crate used by Gossip and Chorus
- go-nostr Go — Go Nostr library
- pynostr Python — Python Nostr library
- nostrc C — full C implementation with dedicated
nip98/ module
- NostrSharp C# — .NET Nostr library with NIP-98 support
Wallets & Payments
- LNbits — Lightning payment platform with NIP-98 login
- Coinos — Bitcoin/Lightning web wallet
- cashu.me — Cashu ecash wallet
- Nutshell Python — Cashu mint/wallet
- CDK Rust — Cashu Development Kit
- npub.cash — Cashu server with NIP-98 auth
- Alby — browser extension with NIP-98 signing
- ShockWallet — Lightning wallet
- LaWallet — Lightning/NWC wallet
Relays
- Chorus Rust — NIP-98 for web management API
- HORNETS Go — relay with NIP-98 middleware
- Relay Creator — relay management platform
- Pyramid Go — relay with NIP-98 cookie auth
- Kraken TS — NestJS relay with NIP-98 auth guard
- Ombra Rust — relay with NIP-98 management auth
- Alienos — self-hosted relay/blossom/nip-05 stack
Streaming & Music
- zap.stream Rust — live streaming with NIP-98 API auth
- Wavlake — music streaming platform with NIP-98 middleware
- Divine — looping video platform
- wavfunc — audio streaming client
AI & Data Vending Machines
- nostrdvm Python — NIP-90 DVM framework with NIP-98 uploads
- Routstr — decentralized AI inference with NIP-98 auth
- Wingmen — MCP agent platform with NIP-98 API handler
Infrastructure & Hosting
- LNVPS Rust — no-KYC VPS hosting with NIP-98 login
- Notepush Rust — Damus push notification service
- NostrGator — sovereign Nostr infrastructure stack
CLI Tools
- nak — Nostr Swiss Army knife;
nak curl injects NIP-98 headers
- go-nostrbuild Go — CLI uploader for nostr.build
- nosdav-cli — NosDAV command-line client
Key Management & Login
- Noauth — web key manager with NIP-98 signing permissions
- nostr-login — UI component supporting NIP-98 event signing
- nostr-one — web component for NIP-98 login
- Keycast — remote signing with NIP-98 admin auth
Other
- Fedi — Fedimint mobile app with NIP-98 signer auth
- noaa-oracle Rust — weather oracle with NIP-98 API auth
- TrueVote — open-source voting with NIP-98
- nostr-writer — Obsidian plugin with NIP-98 image uploads
- nostr_paywall Rust — NIP-98 + Lightning paywall demo
Related: Blossom
Blossom (Blobs Stored Simply on Mediaservers)
derives its auth from the NIP-98 pattern, adopting the
Authorization: Nostr <base64> header scheme but using a distinct
event kind (kind 24242) with server-agnostic scoping. Where NIP-98 binds
auth to a specific URL, Blossom binds to an operation type, enabling the same
auth event to work across multiple servers. See
blossom#8 for the design rationale.
NosDAV
NosDAV is a distributed authoring and versioning protocol
built on Nostr. It uses NIP-98 as its authentication layer for write operations,
enabling WebDAV-like file storage with Nostr identities.
NosDAV apps include bookmarks,
pastebin,
todo,
calendar,
kanban, and
mind maps.