Nostrdb for Windows is a free, open-source database for developers who build apps on the Nostr protocol and need fast local storage for Nostr events. It is a storage layer rather than a finished consumer app, so most people will meet it inside a client or tool someone else has built. The project describes itself as fast, and it sits on LMDB, a well-established embedded key-value store.
If you are looking for a Nostr messaging or feed app, Nostrdb is not that. It is the component underneath, and it makes sense if you are writing a client, relay tool or analysis script that has to search and store large volumes of signed events quickly. The project is written in C and C++, which keeps it close to the hardware and easy to embed in native code.
What Is a Nostr Database and Why It Matters
Nostr is a decentralized protocol in which users publish events that are signed with a key pair. Relays are the servers that receive these events and pass them along to other participants. Because the network is spread across many relays, an app often has to gather a large amount of data from several places before it can show a useful timeline or search result.
A local database solves part of that problem. Once events are saved on the user's machine, the app can answer questions from its own storage instead of asking relays again each time the window opens. This reduces repeated downloads and makes offline browsing of already-fetched content possible, which is a practical benefit for anyone who reads a lot of notes.
Who Nostrdb Is For
The most natural audience is developers who write Nostr clients, relay utilities or research tools. A team building a desktop client, for example, needs somewhere to keep profiles, follows and notes between sessions, and it needs that storage to stay fast as the history grows into the hundreds of thousands of events.
Hobbyists who script against Nostr can also benefit. Imagine a small program that collects posts about a topic from several relays, saves them locally and then runs searches over the saved set. A dedicated embedded store keeps that workflow simple, because nothing needs to be installed on a server to make it work.
How Memory-Mapped Storage Shapes Performance
LMDB maps its data file into the process's address space, so the program reads records almost as if they were already in memory. Reads run inside transactions, and many readers can work at the same time, while writes are serialized so that only one writer changes the data at once. For a read-heavy application, this model is often the main reason storage feels fast.
There are trade-offs. The data file can grow large as events accumulate, so disk space must be planned. Backups should copy the database folder when the application is closed or when no writes are in progress, which keeps the copy consistent. Understanding these habits early saves trouble later.
Key features
Storage on LMDB
Speed as the core goal
Native C and C++ code
Built around Nostr data
Supported coins
Nostrdb's documentation ties it to the Nostr network, which is the only network it is documented for. It stores Nostr events rather than coins or tokens, so it does not manage balances, send payments or act as a wallet.
How to install Nostrdb on Windows
- 1
Get the Windows build
Download only from the official website or the project's GitHub Releases page at github.com/damus-io/nostrdb. Choose the Windows build or installer that matches your system, and avoid mirrors, forum uploads or repacked copies of the files.
- 2
Verify the download
Compare the file's SHA-256 checksum with the value published alongside the release, or check its signature if one is provided. If the values do not match, delete the file and download it again before running or extracting anything.
-
Install or unpack
Run the installer, or extract the Windows build into a folder you control. Keep the library and header files together so your development project can find them, and write down the install location so you can reference it when you configure your build.
How to use Nostrdb
Nostrdb is used from code, so the workflow below describes the general pattern rather than exact commands. Check the repository documentation for current function names and configuration options before you start writing your integration.
- Decide where the database lives. Create a dedicated folder on a drive with enough free space, because the storage file grows as events accumulate.
- Open the database when your application starts, passing the folder path and the size settings the documentation recommends for your use case.
- Write incoming Nostr events inside a write transaction, so a batch of events is either stored completely or not stored at all.
- Run searches and lookups inside read transactions. Readers can work at the same time, so background threads can query stored events while the interface stays responsive.
- Close the database cleanly when the application shuts down, and keep a backup copy of the folder if the saved events matter to you.
Pros & cons
- Free and open source, with the source code available on GitHub
- Built on LMDB, a proven embedded storage engine
- Written in C and C++, which suits native applications
- Focused on Nostr event storage rather than a general-purpose database
- Aimed at developers, so it does not give everyday users a ready-made app
- Requires programming work before it becomes useful in an application
- Smaller ecosystem than general-purpose databases, so fewer ready-made tutorials
Is Nostrdb safe?
Nostrdb is open source, which makes its code easy to inspect, but a downloaded binary still has to be trusted. Get it from the official project page or GitHub Releases, verify the SHA-256 checksum or signature against the value published with the release, and avoid repackaged copies from forums or file mirrors. Never paste a Nostr private key or any seed-style secret into a third-party website, and keep private keys out of application logs and shared database backups. Before installing, confirm the latest release on the official website.
- Official source only. Download from github.com/damus-io/nostrdb. Ignore ads and lookalike domains.
- Check the SHA-256. Compare the installer hash with the value the developer publishes before running it.
- Never share your seed phrase. No developer, support agent or website — including CryptApps — will ever ask for it.
Alternatives
Nostrdb sits in a different layer from most entries in this Nostr catalog. Amethyst and Gossip are end-user clients that people open to read and write notes, while Vega is a cross-platform desktop client with a graphical interface. NAK and Nostr Commander RS are command-line tools for working with events directly, which makes them closer to Nostrdb's audience than the graphical clients. Nostr VPN and Blockcore Notes solve other problems entirely. Choose Nostrdb when you need an embeddable store inside your own software, and choose a client or command-line tool when you need to use Nostr today.
Specifications
- Price
- Free
- Type
- Open source
- License
- —
- Latest version
- —
- Last update
- 15 Oct 2026
- Windows support
- Yes (Windows build or installer)
- Source code
- github.com/damus-io/nostrdb
Frequently asked questions
Yes, Nostrdb is free and open source. You can download the Windows build or installer without payment, and the source code is available on GitHub for anyone who wants to review or modify it. Being free does not remove the usual need to check your download, so keep the verification steps in mind.
Nostrdb is safe to use when you get it from its official GitHub Releases page and verify the file. Compare the SHA-256 checksum or signature with the published value before running anything. Avoid copies from unofficial sites, and never enter a Nostr private key into a third-party website.
No. Nostrdb is a database library for storing Nostr events, not a social app with a feed or a composer. Developers build clients on top of it, and people interact with those clients. If you want to post notes today, look at a client such as Amethyst or Gossip instead.
LMDB stands for Lightning Memory-Mapped Database. It is an embedded key-value store that maps a data file into memory and supports many concurrent readers with one writer at a time. Nostrdb uses it as its storage foundation, which is why its performance characteristics follow from how LMDB works.
Familiarity with C or C++ helps, because your project will call into the library's native interface. Developers working in other languages would need a wrapper or binding, so check the repository for what exists before starting. Plan that work into your timeline if your stack is not native.
No. Nostrdb is built for Nostr events, and its documentation ties it only to the Nostr network. It is not a wallet and does not manage coins. If you need cryptocurrency software, look for dedicated wallet programs in this catalog instead.
Nostrdb stores events, while relays are the servers that receive and forward them. A typical app fetches events from relays and then saves them locally with Nostrdb, so the database and the relay do different jobs. The database lets the app keep working from saved data between sessions.
Verdict
Nostrdb is the right pick for developers who need a fast, embeddable store for Nostr events on Windows and are comfortable working in C or C++. It is free, open source and built on LMDB, a proven storage engine. It is not an app for everyday users and does not replace a Nostr client. If you want to browse or post right away, start with a client from this catalog, and consider Nostrdb later, when your own software needs to store data locally.