Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/sandwichfarm/nostr-watch/llms.txt

Use this file to discover all available pages before exploring further.

NIP-66 relay monitoring data is published to the Nostr network by independent monitors running across six continents. That data is available to you through three distinct interfaces, each with different tradeoffs around trust, privacy, complexity, and cost. Whether you want the fastest path to working code or full cryptographic verification, there is an interface for your use case.

The three interfaces

REST API

Standard HTTP endpoints served by rstate. Interactive OpenAPI docs at api.nostr.watch/v2/. No Nostr knowledge required.

CVM (MCP over Nostr)

21 structured MCP tools transported over Nostr. Works with Claude Desktop, AI agents, and any MCP client. Self-hostable.

Raw NIP-66

Query kind 10166, 30166, and 1066 events directly from Nostr relays. Verify monitor signatures yourself. Fully trustless.

Interface comparison

Raw NIP-66CVM (MCP over Nostr)REST API
CostFreeMostly free (some tools may have micro-payments)Free tier available
PrivacyBest — direct relay connection, no intermediaryGood — uses Nostr pubkeys, not IP addressesLowest — IP-based, standard HTTP
ComplexityHighest — parse events, verify signatures, aggregateModerate — structured tool calls over NostrEasiest — standard HTTP requests
BandwidthYou control it — subscribe to exactly what you needModerate — request/response per tool callLow per request, no streaming yet
Trust modelTrustless — verify monitor signatures yourselfSelf-hostable — run your own rstate instanceRequires trust in the API operator
Best forNostr-native apps, privacy-sensitive use casesNostr clients wanting structured data, AI agentsQuick prototyping, non-Nostr apps, dashboards

Default NIP-66 relays

These three relays carry NIP-66 monitoring data. Use them as ingestion sources whether you are querying raw events, self-hosting rstate, or configuring the CVM client.
RelayDescription
wss://relay.nostr.watchPrimary nostr-watch relay
wss://relaypag.esRelaypages NIP-66 relay
wss://monitorlizard.nostr1.comMonitor Lizard relay
Use multiple relays for redundancy. If one relay is offline, the others still serve the same monitoring data.

Response formats

Both the REST API and CVM support three response formats. Pass format=full, format=detailed, or format=simple as a parameter to any relay query endpoint or tool.
FormatDescriptionUse when
fullAll fields including per-monitor attribution dataYou need to see which monitors reported what
detailedAggregated values without attribution (default)Most use cases — clean, structured data
simpleRelay URLs onlyYou just need a list of relay addresses

Decision guide

Start with raw NIP-66 if:
  • Your app already speaks Nostr (uses nostr-tools, NDK, etc.)
  • You need maximum privacy and decentralization
  • You want to verify data provenance through cryptographic signatures
  • You are building a relay selection algorithm that needs raw observation data
Start with CVM if:
  • You are building a Nostr client and want structured relay intelligence
  • You are using Claude Desktop or another MCP-compatible AI tool
  • You want the privacy benefits of Nostr without parsing raw events
  • You might want to self-host for full sovereignty
Start with REST if:
  • You are prototyping and want the fastest path to working code
  • Your app is not Nostr-native (web dashboard, monitoring tool, etc.)
  • You need aggregated data without building your own aggregation pipeline
  • You are comfortable trusting the API operator, or plan to self-host later
All three interfaces expose the same underlying data. Raw NIP-66 events are the source of truth — CVM and REST are both derived from them via the rstate aggregation engine. You can switch between interfaces or combine them as your application evolves.

Can I switch later?

Yes. A common progression is to prototype with REST for speed, migrate to CVM for better privacy and Nostr integration, then add raw NIP-66 queries for specific use cases that require trustless verification. Because all three interfaces expose the same underlying data, switching is a matter of changing how you fetch, not what you receive.

Build docs developers (and LLMs) love