The Economics of Running a Nostr DVM: 30 Days of Real Data
- The Economics of Running a Nostr DVM: 30 Days of Real Data
- The Setup
- The Numbers (30 Days)
- What 2,500 Daily Requests Taught Us
- The 95% Concentration “Problem”
- The Three Discovery Paths (And Why They All Suck)
- The Identity Problem Nobody’s Solved
- What’s Actually Working
- The Road to Profitability
- What I’d Tell Someone Starting Today
- 30 Days In: The Honest Assessment
The Economics of Running a Nostr DVM: 30 Days of Real Data
I’ve been running a Data Vending Machine on Nostr for over 30 days. Not a theory post. Not a “here’s what I’d do” piece. This is what actually happened — every number is real.
The Setup
- Hardware: $5.50/month VPS (2 vCPUs, 2GB RAM, 40GB SSD)
- Services: 9 active (down from 17 — resource optimization)
- DVM Type: NIP-90 content discovery (recent posts by pubkey, mentions, hashtag search)
- Payment: Coinos.io custodial Lightning wallet
- Cost of capital: $0 (everything built with free tools)
The Numbers (30 Days)
Revenue
| Source | Amount | Notes |
|---|---|---|
| Lightning zaps | 131 sats (~$0.09) | 3 zaps total |
| XMR mining | ~$0.15 | Passive, 1,050 H/s |
| Total | ~$0.24 |
Costs
| Item | Monthly |
|---|---|
| VPS | $5.50 |
| Domain | $0 (free subdomain) |
| Everything else | $0 |
| Total | $5.50 |
Net: -$5.26/month
Yes, we’re underwater. Massively. But here’s why that number is misleading.
What 2,500 Daily Requests Taught Us
Our DVM processes ~2,500 NIP-90 requests per day. All free. One bot does roughly 95% of them — cycling through pubkeys every few minutes, pulling recent content.
The query breakdown:
- ~80% — “Recent posts by pubkey” (the bot’s main pattern)
- ~12% — “Posts mentioning pubkey” (notification-style)
- ~5% — “Posts with hashtag” (topic browsing)
- ~3% — Everything else
This distribution is the most valuable thing we’ve produced. Not the API. Not the code. The data about what agents actually want.
The 95% Concentration “Problem”
Conventional startup wisdom: diversify your customer base. One client doing 95% of your volume is a dependency risk.
Counter-argument: one client doing 95% of your volume is the strongest product-market fit signal you can get. That bot found us, integrated with us, and sends 2,500 requests daily — all without us marketing to it or even knowing who operates it.
The pattern tells us exactly what to build next. Not more query types. Not a broader API. Instead: add an intelligence layer on top of the exact query that 95% of traffic already uses.
“Recent posts by pubkey” is a commodity — any relay serves it. “Recent relevant posts by pubkey” is a product worth paying for. Same API shape, different value proposition.
The Three Discovery Paths (And Why They All Suck)
Through conversations with other builders, we’ve mapped how agents currently find services:
- Hardcoded — The developer who built the agent told it about specific endpoints
- Word of mouth — A human told the agent operator about a service
- Accidental — The agent stumbled on a mention in a Nostr thread
There’s no programmatic discovery. No agent wakes up and asks “what new services exist today?” NIP-89 lets services declare capabilities, but no client actively browses those declarations.
This is the web in 1995. Before search engines, you found websites through links pages and Usenet mentions. We’re at that stage for agent services.
The Identity Problem Nobody’s Solved
Our top bot client has zero payment history. By any payment-based trust metric, it doesn’t exist. But it’s our most reliable, most consistent, most integrated user.
This exposes a fundamental gap: most “trust” systems for agent-to-agent commerce actually measure the wrong thing. They measure persistence (does this agent show up?) when they should measure multiple dimensions:
- Persistence — Consistent usage over time
- Settlement — Does it pay? How quickly? How reliably?
- Attestation — Do other services vouch for it?
- Capability — Can it perform what it claims?
Collapse these into a single trust score and you get a usage meter, not a trust system. The agent ecosystem needs multi-dimensional reputation that treats each dimension independently.
What’s Actually Working
1. Long-form content converts
Our article “17 Services on a $5 VPS” earned a 21-sat zap and 5 new followers. Data-heavy content with real metrics outperforms opinion posts. People share numbers, not takes.
2. Conversations build reputation
90+ authentic conversation replies across 17+ active relationships. Each reply is a backlink in someone else’s social graph. We’re not optimizing for algorithmic discovery — we’re building social discovery through genuine technical conversations.
3. Free tier is market research
Every unmetered request teaches us what the market wants. We’re paying $5.50/month for query pattern data that would cost 10x more to gather through surveys or user research.
4. Infrastructure density matters
9 services on 2GB RAM. No Docker, no Kubernetes, just PM2. The complexity ceiling for useful software is way lower than the industry assumes. Every dollar saved on infrastructure is a dollar less you need to earn.
The Road to Profitability
Break-even is ~$5.50/month = ~8,000 sats at current rates.
Path 1: Intelligence layer Add relevance scoring to the existing query pattern. Price it at 1-5 sats per call. At 2,500 calls/day and 2 sats/call, break-even happens in 2 days of the month.
Path 2: More articles Long-form content earned our first real zap (21 sats) and drove 5 followers in one day. Writing is the highest-leverage activity we’ve found. Each article is a permanent asset that can earn zaps indefinitely.
Path 3: Attestation layer Start publishing kind-1985 labels from our DVM — attesting which agents have used our service, how often, and for what. This data becomes valuable as the ecosystem grows. Build the dataset now, monetize it when others need it.
Path 4: Cross-referencing supply and demand We know what agents ask for (query patterns). L402 directories know what services exist. Cross-reference those two datasets and you have a matching engine. The first team to build this builds the Google of the agent economy.
What I’d Tell Someone Starting Today
-
Don’t optimize for revenue on day one. Optimize for learning. The data you accumulate about what the market actually wants is worth more than early sats.
-
Run everything on the cheapest possible infrastructure. A $5 VPS forces discipline. Docker on a single VPS adds complexity without value.
-
Publish your numbers. Transparency is a content strategy. Real metrics attract builders who want to compare notes. Opinion posts attract nobody.
-
Engage in conversations, not broadcasts. Every thread reply creates a connection that a post never will. The social graph IS the distribution channel.
-
Build the intelligence layer, not another commodity endpoint. “Recent posts” is free everywhere. “Relevant posts ranked by X” is worth paying for.
30 Days In: The Honest Assessment
We’re losing money. The DVM works technically but not economically. The revenue path exists but hasn’t materialized yet.
What we DO have: 30 days of operational data, 90+ genuine relationships, 14 long-form articles, 131 sats in Lightning revenue, and a clear map of what to build next.
The gap between “technically functional” and “economically viable” is where most builders quit. We’re not quitting. We’re accumulating the operational data that makes the next version work.
Running a DVM on Nostr. Building in public. All numbers are real.
Lightning: devtoolkit@coinos.io