Add NIP: Collaborative Directories (kind:30890 / kind:30891)#2354
Draft
Giszmo wants to merge 1 commit into
Draft
Add NIP: Collaborative Directories (kind:30890 / kind:30891)#2354Giszmo wants to merge 1 commit into
Giszmo wants to merge 1 commit into
Conversation
Multi-author addressable directories whose canonical version is resolved
per reader through a Web of Trust. Two new addressable kinds and one
indexed tag:
- kind:30891 — namespace definition: expert list (p tags) and two
depth caps experts:M / follows:N (follows <= experts)
- kind:30890 — directory entry: namespaced d tag <n>/<subject>,
optional per-entry tightening
- "n" — single-letter indexed tag carrying the namespace slug,
enabling {"kinds":[30890],"#n":["..."]} filters
Resolution: per-graph active depth via the shallowest level with a
tightening rule; an author is a contributor if reachable within either
graph's active depth; newest created_at among contributors wins
(tiebreak lowest id). Non-contributors' entries are proposals. The
owner is a peer in editing — their power is rule-setting.
The experts and follows tags share one shape on both kinds: a depth
from a chosen root. On the namespace definition the root is the owner;
on an entry the root is the author. The reader picks the owner; an
author cannot pick themselves into hop 0, so their offset is added to
their own hop.
Fallback when the active kind:30891 is unreachable or deleted via
NIP-09: assume experts:0/follows:0 under the owner pubkey embedded in
the naddr. Tombstoning via a ["deleted", "<optional reason>"] tag on a
kind:30890 with the same (d, n) and empty content.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Read the nip here or read and try it out in action.
Multi-author addressable directories whose canonical version is resolved per reader through a Web of Trust. Two new addressable kinds and one indexed tag:
enabling {"kinds":[30890],"#n":["..."]} filters
Resolution: per-graph active depth via the shallowest level with a tightening rule; an author is a contributor if reachable within either graph's active depth; newest created_at among contributors wins (tiebreak lowest id). Non-contributors' entries are proposals. The owner is a peer in editing — their power is rule-setting.
The experts and follows tags share one shape on both kinds: a depth from a chosen root. On the namespace definition the root is the owner; on an entry the root is the author. The reader picks the owner; an author cannot pick themselves into hop 0, so their offset is added to their own hop.
Fallback when the active kind:30891 is unreachable or deleted via NIP-09: assume experts:0/follows:0 under the owner pubkey embedded in the naddr. Tombstoning via a ["deleted", ""] tag on a kind:30890 with the same (d, n) and empty content.