-
Notifications
You must be signed in to change notification settings - Fork 511
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NIP-88: First draft about products classification #1225
base: master
Are you sure you want to change the base?
Conversation
|
||
| Kind | Type | Description | ||
| --- | --- | ----------------------------------------------------- | ||
| `name` | `<string>` | The name of the the product, including the brand |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
keep brand value on a different field
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was thinking about it, I opted for this solution for backward compatibility with standard profiles
Why overload kind 0 instead of creating a new kind? It seems very weird to give a product an identity. |
If using a different kind was the first point I thought of of course, I preferred to start with kind:0 for backward compatibility, if profiles exist as bots, projects or companies, I don't see why they couldn't exist as products, and could be nice to have "talking" products that work smoothly in plain NIP-01 clients. It could be useful for marketing activities, too. Do you foresee any special problems? |
It's an interesting idea, I considered a similar one when I originally started working on groups. A group as an "agent" seemed kind of neat, because any group member could basically post on behalf of the group. That didn't work out for other reasons, but I think the basic litmus test here is: would it make sense to visit the pubkey's profile page on a normal social client? Bots, projects, companies, yes, groups maybe, but products? I suppose anything is possible, but it seems to me that it would be hard to make it intelligible, at least under the assumptions people bring to "social media" (which may or may not hold up long term on nostr). The flipside of the same issue is that the more a kind is semantically overloaded, the less it means. If kind 0 can mean "product", people will start to code product-specific support into their clients, which increases the barrier to entry to making a client that supports kind 0. So really, I don't know, but I'm against it. I don't see any problem with making products a separate kind, and creating each one with a separate key + regular profile if that's really what the implementer wants to do. Another question I have is why this couldn't just be added to NIP 99? |
The product structure is optional and backward compatible, so basic clients will just see the product as a standard profile, and they are not obliged to support NIP-88 in any way to adhere to kind:0. Or am I missing something?
Because this NIP is not about selling a product, but giving it a digital identity. |
I think this can all be accomplished with |
Great to have an alternative global product id considering GTINs need permission/payment to be created and maintained. But the more products a manufacturer have, higher the chance of leaking a product privkey leading to defaced product profiles. Maybe it is better to go the Brand + MPN route, cause its easier to keep just the brand privkey safe. A brand could list each product with many events like the one below:
The brand kind0 could have previous leaked or lost pubkeys in an indexable tag (p?). This may be useful for regular profiles too. |
I love the real world problem/use case thinking @dtonon. Left-curve product question from me: why do we need a NIP for products? Why not just
You can add the ISBN/UPC/similar in one of the profile fields, similar to how the nostr or LN address is added. |
@arthurfranca your one is a interesting alternative, I also thought a similar more structured scenario. But adding a generic custom MPN make the product code less standardized, I would avoid that. And we lose the possibility that the product entity can sign. When we find a good way to rotate keys, a product can be also transferred to a new manufacturer while maintaining cryptographic proof.
What do you mean? |
Delegation (NIP-26) is dead. And it is not strictly needed, if the manufacturer control the keys can simply add itself to the product event and thus attest to the ownership.
This way you cannot search them via a relay query, and this is critical from a GTIN to NPRODUCT migration perspective. |
In a scenario of leaked/lost brand privkey, it was just an idea to enable a client to check (by filtering Of course for clients to trust that info, there would need to have other hints like if reputable merchants are reselling/had sold items that are linked to both the new and old pubkeys somehow. |
It is a very interesting idea, but I can see some potential problems. For example, the loss, compromise or leakage of product keys, and the fact that a manufacturer with a large catalogue would have to keep all the private keys of its products, which can be difficult to manage. I think that to improve this, we could do something like BIP-85, so that a manufacturer can control its entire catalogue (or part of it) with just one key. Also, to make this as robust as possible, we need a standard way of rotating the keys. |
This NIP defines the use of some tags in metadata (kind:0) events to offer the possibility to have profile for products. Products have their own key-pair and the private key is typically controlled by the manufacturer.