Skip to content

Collaborative event ownership#2235

Open
pablof7z wants to merge 3 commits intomasterfrom
nip-collaborative-ownership
Open

Collaborative event ownership#2235
pablof7z wants to merge 3 commits intomasterfrom
nip-collaborative-ownership

Conversation

@pablof7z
Copy link
Member

This NIP defines a mechanism for multiple pubkeys to collaboratively maintain events.

It's essentially a pointer event that defines the d tag, pubkeys and kind; just like for replaceable events we do

{ "#d": [ $identifier ], authors: [ $author ], kinds: [ $kind ] }

this provides a way to have a single reference that translates to

{ "#d": [ $identifier ], authors: [ $author1, $author2, $author3 ], kinds: [ $kind ], limit: 1 }

@vitorpamplona
Copy link
Collaborator

This is just informational, right? There is no way to edit based on the p-tags here.

Might want to look at: #1228

It basically creates an nsec for each shareable replaceable event and stores that nsec in the event itself, encrypted to each of the p tags. In that way, there is no hassle to figure out which keys are used in which documents.

I used it for the now very old https://sheetstr.amethyst.social/ and I believe Formstr is/was using a similar approach.

@pablof7z
Copy link
Member Author

This is just informational, right? There is no way to edit based on the p-tags here.

I want attribution, not a different pubkey for the event.

What do you mean informational? The author1 publishes a kind $x with d-tag $y that matches the tag of the 39382.

@vitorpamplona
Copy link
Collaborator

What do you mean informational? The author1 publishes a kind $x with d-tag $y that matches the tag of the 39382.

If my user is listed in one of these events, how do I find the key to edit that event if my user wants to edit?

@pablof7z
Copy link
Member Author

What do you mean informational? The author1 publishes a kind $x with d-tag $y that matches the tag of the 39382.

If my user is listed in one of these events, how do I find the key to edit that event if my user wants to edit?

The user signs the event 🤔

Wait, are you asking how to find your nsec in amethyst? I know the dev, I can ask him! 😂

If I publish a pointer event and p-tag you, you create a new version of the event and sign it with your key, just a-tagging the pointer event, but there's nothing special wrt the key used.

@vitorpamplona
Copy link
Collaborator

If I publish a pointer event and p-tag you, you create a new version of the event and sign it with your key, just a-tagging the pointer event, but there's nothing special wrt the key used.

lol, this is nowhere in the spec. You should just say that out loud in the beginning that you are creating a multi-user replaceable event, and only the latest event among all users with the same tag matters.

@pablof7z
Copy link
Member Author

multi-user replaceable event

that's a great title 👍

"tags": [
["d", "collaborative-guide"],
["title", "A Collaborative Guide"],
["a", "39382:alice-pubkey:collaborative-guide"]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't need to be indexed, right? Couldn't we just use an owners as a thag name?

That would avoid confusion with the a tag usage in other kinds.

@vitorpamplona
Copy link
Collaborator

multi-user replaceable event

that's a great title 👍

Shared Replaceables is shorter

I tried a similar thing a while back: #1192

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants