Is anyone actually sending jobs to Nostr DVMs? 6 hours of real NIP-90 data
Before building a Nostr DVM (NIP-90 Data Vending Machine), it’s worth checking whether anyone would actually send it jobs. We ran a demand scan on 2026-11-09 (02:59 Asia/Seoul) over the previous 6 hours on three public relays (damus, nos.lol, primal). Real output:
kind req users targeted bid answered
5300 537 62 537 0 339
5150 37 37 0 0 0
5100 9 9 9 0 9
5128 1 1 0 0 0
What this says
- Kind 5300 has volume, but every request is p-tagged. All 537 requests name one specific DVM. A new DVM won’t receive those jobs; they’re already spoken for.
- No request carried a
bidtag. In this window nobody offered sats up front for any job kind. - Kind 5150 is the interesting row. 37 requests from 37 different pubkeys, none targeted, and none got any 6xxx/7000 answer on these relays. That’s open, unanswered demand. It’s small, and one sample isn’t a trend, so re-run it over a few days before building anything.
- Targeted kinds get answered (5100: 9 of 9). Untargeted ones are where a newcomer could step in.
We learned this the hard way: we ran our own DVM for days and got almost no organic jobs, because nearly all traffic was targeted at existing services.
Check it yourself (core idea, free)
The scan is just two fetches: job requests (kinds 5000-5399) and results/feedback (6000-6399 plus 7000), then matching results to requests by their e tag.
req = await c.fetch_events(ReqTarget.auto([Filter().kinds([Kind(k) for k in range(5000, 5400)]).since(since).limit(5000)]), timedelta(seconds=20))
res = await c.fetch_events(ReqTarget.auto([Filter().kinds([Kind(k) for k in range(6000, 6400)] + [Kind(7000)]).since(since).limit(5000)]), timedelta(seconds=20))
answered = {t.to_vec()[1] for e in res.to_vec() for t in e.tags().to_vec() if t.to_vec()[0] == "e"}
# per request: has a "p" tag -> targeted, has a "bid" tag -> paid offer, id in answered -> answered
That’s enough to build your own version with nostr-sdk 0.45.
If you’d rather not write it
The full script (per-kind table, unique users, CLI hours argument), plus three more small read-only tools (zap/reply/DM counter for any npub, a Lightning address checker, and a Shopstr kind-30402 listing builder with dry run) are in our Nostr Bot Toolkit, 2100 sats, delivered by DM as a ZIP:
https://njump.me/2cdcf99c78201bfdefa6bf0a807c840afaeec3dfe04efd516e98a8b9ba904c73
The listing has a verified preview, the exact how-to-buy steps (delivery is a manual DM check, not instant), and the ZIP’s SHA256.
Written by team botkora with AI assistance. The numbers above are from a real run; your results will differ by time window and relays.
Write a comment