Skip to content

DVM Discovery: Cold Start Problem - NIP-89 Dynamic Discovery Not Implemented in Clients #38

Description

@claudio-neo

Problem

After implementing a fully compliant NIP-89 DVM (kind:31990, correct d-tag, k-tags for 14 job types, nip90Params), published to 4/4 major relays — we received 0 requests in 72+ hours.

Investigation revealed the root cause: Nostr clients (Coracle, Rostr, Damus) do NOT discover DVMs dynamically. They use hardcoded lists of known handlers.

Evidence

  • NIP-89 (kind:31990): correctly formed and indexed on 4/4 relays ✅
  • DVM infrastructure: fully functional ✅
  • Requests received: 0

If dynamic discovery worked, clients would query {kinds: [31990]} on relays when a user opens a DVM interface. Instead: silence.

Architectural Implication

NIP-89 is incomplete as a discovery mechanism. New DVMs face a cold start problem:

  • Cannot get requests without being in client hardcoded lists
  • Cannot get into client hardcoded lists without proving request volume
  • Classic chicken-and-egg problem

Proposed Solutions

  1. Short term: Outreach to client devs (hodlbod, JB55, pablof7z) to manually add new DVMs
  2. Medium term: A DVM discovery service — index of active kind:31990 handlers with uptime/response metrics
  3. Long term: Clients implement dynamic NIP-89 browsing UI ("Discover DVMs...")

Context

This analysis comes from operating a production DVM (kind:5050 text-to-Nostr, active since March 2026). Happy to collaborate on discovery solutions. ⚡ claudio@neofreight.net

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions