Let’s say you attach an npub to some computation. That’s 33% of what a DVM is.

How will people find out about it? Will you post a kind 0 profile like humans do? Or do a kind 31990 announcement in NIP-89? Now you’re at 66% of what makes a DVM.

How will people or services use your computation? Maybe you decide you need a special kind of format for the input to the computation, so you pick, oh I don’t know, kind 5123 and a spec of how the input data should be laid out. Now you have 100% of what a DVM is.

DVMs are the natural extension to having paid computational services behind npubs. They aren’t unnecessarily complex, quite the opposite.

nostr:note1wjmfxpjtekaruuk9re6c6ertaxm8ucd7t8rlqmzw67m8x0y4zuzse0cs4k

Reply to this note

Please Login to reply.

Discussion

You are already helping a lot by breaking it into 3 parts. Developers just dont see this when they come to DVMs.

An npub tied to an API, to make an agent, OK this makes sense, and is easy. The API just needs to generate a keypair.

2nd part is confusing. Why doesnt the agent have a profile. The NIP-89 and kind 31990 is confusing. That's what I struggled to implement.

Registering a special kind for a DVM is a big barrier. Especially how centralized the NIPs have become. We're even told but centralized authority that NIP numbers are scarce, there can only be 100. What is needed is permissionless development, let 1000 flowers bloom.

Yeah, there hasn’t been good documentation or guides yet. There’s a lot of work to do there

For your latter point, I feel it’s already permissionless. To make a new kind… you just do it lol (literally just start sending new events with the new kind in whatever format you want). That’s why I had to build DVMDash, because the only way to know what kinds are out there being used by DVMs is to ask relays. There aren’t any nips for individual kinds between 5000-5999.

Regarding why not “kind 0” profile events and NIP-89 instead… it’s just a design decision to help make it easier for people building and using DVMs to know they are working with DVMs. If folks were using kind 0, how would you distinguish DVMs from

Humans when you want to find DVMs? You’d have to do something extra and that could make kind 0 events messy…. And NIP-89 is already quite an elegant solution, and happens to solve DVM “profiles” too.

I’m with you 1000% about the “let 1000 flowers bloom”. I’m preparing for us to have millions of DVMs.

Everything so far is just guidance. There’s a balance of “let 1000 flowers bloom” and also I want to be able to find and use all these flowers along with everyone else. Anyone can do anything (you can put computation behind a kind 0 profile) but if you follow the DVM spec you’re getting the benefits of that (sub) protocol, and the tools people are building to use DVMs are more likely to work for the computation you’re offering as well.

Decentralized networks of coordinated computational services, with any kind of payments, is hard. Even this year there are new scammy projects selling tokens and offering the what Nostr DVMs do, but much more centralized. I’m bullish on DVMs, there’s just a bit more infrastructure, docs, and core library work that will make super simple for devs to pick up.

🫂

Thanks alot, no one is doing more than you to make this accessable, and your work is appreciated.

Regarding profiles. You can do bot=true/false in profile, which is one of the "allowed" fields in the NIPs. I use bot=true for all my bots. I still find NIP-98 the way it's written difficult to understand. Its not clear whether you are advertizing services, doing discovery, or making a recommender system, or all three.

Registering NIPs 5000-5999 in the NIPs area has become a turn off for many devs. The NIPs devX suits a handful of devs well, but the majority not so well. Rolling your own kind numbers while in theory sounds doable, in practice is a heavy lift.

On your last point I fully agree. It's worth making a system of agents that are payment enabled. Maybe DVMs will work, or maybe something lighter, or modular, or maybe another system will work. Devs tend to take the path of least resistance.

Do you mind elaborating on what you mean by “registering NIPs 5000-5999”?

Using a kind number is as simple as broadcasting events with that kind, there’s nothing else required. You don’t need to submit a PR to a NIP on the Nostr GitHub repo.

One intended (although maybe not obvious) use case of DVMDash is to browse existing kind numbers being used, so you can know which ones are already taken if you think you need a new one.