It wasn't clear to me at first, but now I think we should reframe DVMs as bots, instead of as a standard for RPC communication via Nostr events.

"Bots" are often seen as useless, playful things, but if we call them "DVMs" it's clearer they can also be useful tools. Ultimately it doesn't matter, it's all marketing.

Finally, we can also reframe HTTP/JSON APIs as yet another type of DVM. Zap providers, for example, are an HTTP/Event-hybrid DVM. nostr:nprofile1qyghwumn8ghj7mn0wd68ytnhd9hx2tcpzamhxue69uhkjmnzdauzumn0wd68ytnhd9hx2tcprpmhxue69uhkxun9v968ytnwdaehgu3wwa5kuef0qyv8wumn8ghj7cm9d3kxzu3wdehhxarj9emkjmn99uq3samnwvaz7tmxd9k8getj9ehx7um5wgh8w6twv5hsqgpass40an279ylj3dnz0yehqj3lhr8p2w4fr4us4vgldf6j639y955x7rj8 's translator API is another type of HTTP/JSON DVM that follows an existing standard (which is to copy some other translation provider I forgot) and is implemented in some clients (Damus?). Primal, Nostr.Band and Nostr.Wine also offer trending feeds HTTP/JSON-based DVMs, but they're all incompatible among each other (meanwhile Snort and Iris use the Nostr.Band API while Primal and Yakihonne use the Primal API, I don't know who uses the Nostr.Wine API), we should try to get them to standardize these (or offer these feeds as custom relays, which would be better).

That would solve our problems instead of creating more.

Reply to this note

Please Login to reply.

Discussion

Hmm, I really think we shouldn’t call all those different things the same thing, that could get pretty confusing. They’re different enough to deserve separate standards. In a broad sense, you’re describing a relay, which is pretty much the only type of server on Nostr, aside from some more exotic experiments. They are servers and can have HTTP endpoints, as you mentioned. There’s even a relay management API now, so why not a service API? They can totally provide HTTP JSON APIs, which they’re already doing.

Now, as for bots and DVMs, from my point of view, they’re still different things. I see bots as some kind of autonomous agent that follows instructions or has simple behavior to listen, react, or do whatever they need to gather notes. They can publish notes based on certain conditions and can be as complex or simple as you want. They use DVMs to handle some functionality or access services, they both have in common that they do not need to manage or spin up a relay, they can listen and write to multiple relays.

Also, DVMs can have HTTP endpoints if you want, but I really think relays, bots, and DVMs are different stuff altogether.