Keys are the account
There is no username, no password and no reset. A Nostr identity is one secret number and the public number derived from it, and everything about using Nostr safely follows from understanding which is which.
Most accounts you have ever made are a row in somebody’s database. You prove you own the row with a password, and if you lose the password the company that owns the database lets you back in.
A Nostr identity is not a row anywhere. It is a number you chose at random, and a second number computed from it. Nobody issued it, nobody stores it, and nobody can restore it — because there is no “it” outside the number in your possession.
Look at a pair
Here is a real keypair, generated when this page was built. Both keys work; neither is worth anything, and the reason is the lesson.
- nsec · the private key · NEVER SHARE
- nsec1fe24mq5yxqdr5hgykjvfjpsvwzt2389jjazds6nrc7w07wcs3x3q7gph0e
- 4e555d8284301a3a5d04b49899060c7096a89cb29744d86a63c79cff3b1089a2
- npub · the public key · share freely
- npub1empdslzhdmywyx96frt400vhd64ff7aszz8fmtv5txlff7dzt3rsr9sfh6
- cec2d87c576ec8e218ba48d757bd976eaa94fbb0108e9dad9459be94f9a25c47
One derives from the other, in one direction only. Multiply the private key by the curve's generator point and you get the public key; there is no operation that goes back. That is the whole of what a Nostr identity is — and it is why there is no reset, no recovery and no support address.
The two long hex strings underneath are the same two keys in the form the protocol actually
uses. npub and nsec are that hex wrapped in bech32 with a checksum,
so a typo is caught rather than silently producing a different key — which is the one thing
the friendly format buys you.
Generated at build time by a job that checks itself against the BIP-340 and NIP-19 test vectors , most recently on 2026-09-16. Without JavaScript this shows one pair instead of six, which is the same lesson. There is no input on this page and no key-derivation code in it: nothing here can accept a key, by construction.
That nsec is printed on a public web page. Anyone reading this can take it, sign events with it, and be indistinguishable from anyone else who took it. It is worthless — not because it is a weak key, but because it is not secret. A key is only ever worth the secrecy around it.
Which is the whole answer to the question people ask next: why can’t I just paste mine into a site to check it? Because the moment it is somewhere other than your own storage, it has the same value as the one above.
What the two forms are for
The protocol always uses hex. npub and nsec exist for humans: the same 32 bytes, wrapped in bech32 with a prefix and a checksum.1
The prefix is the part that matters. Two 64-character hex strings look identical, and one of them is catastrophic to share. npub1… and nsec1… do not — a person can tell them apart across a room, and software can refuse an nsec where an npub belongs before anything is transmitted. The checksum catches a typo instead of quietly producing a valid-but-different key.
That is a design decision about human error, not about cryptography, and it is a good one.
Where the secret actually lives
You cannot use Nostr without the private key signing things. The question every serious client answers is where, and there are four answers in circulation:
In the client. The app holds the key. Simple, and the entire security of your identity is now the security of one application and the device it runs on.
In a browser extension. The web page asks the extension to sign; the page never sees the key. This is what NIP-07 standardises, and it is the reason a well-built web client never has an nsec field at all.
In a remote signer. The key sits on a separate device or service that signs on request over relay messages. NIP-46 calls it a bunker. It moves the key off every device you browse from.
In hardware. The key never leaves a device that has no general-purpose software on it.
The ordering is roughly least to most cautious, and all four are better than the fifth option, which is pasting it into a website. There is no arrangement in which that is safe, and no site that needs you to.
Notes
- NIP-06 describes deriving a Nostr key from a BIP-39 seed phrase, so one phrase can back up a wallet and an identity together. Upstream now marks it unrecommended and says to prefer a single stored nsec.NIP-06
Source & licence
This page adapts no licensed material. It is original work by Delta Gamma LLC and is published under CC BY-SA 4.0; the figures it reports are separately dedicated to the public domain, below.
nostr101 adds no normative claims. Where this page and a NIP disagree, the NIP is correct and this page is a bug. Every page states the revision it was written against: NIP-19 @ 656cecc.
Numbers, titles and kind assignments come from the NIPs repository and belong to its contributors, who state that all NIPs are public domain. This page asserts no licence over that text. Its own prose is CC BY-SA 4.0; attribute to nostr101.com and to the NIPs contributors.