Skip to content

Conversation

@rossigee
Copy link

This PR proposes NIP-100, a new Nostr Implementation Possibility for decentralized star ratings and reviews. It defines addressable events (kind 30016) to allow users to post verifiable, censorship-resistant ratings and text reviews for entities like products, services, or locations, identified by URI-like strings.

Key Features:

  • Addressable Events: Uses kind 30016 with a d tag for one review per author per entity (replaceable per NIP-01).
  • Rating Structure: JSON-based rating tag with score (positive integer), optional max_score (default 5), and review_text.
  • Flexibility: Supports custom scales (e.g., 1-10), multiple identifiers per entity, and threaded discussions via NIP-10.
  • Aggregation & Display: Clients can compute averages, filter by reputation, and query via standard Nostr filters.
  • Consistency: Aligns with NIP-69's rating format and Nostr's event model.

Motivation:

Centralized review systems are prone to manipulation, censorship, and vendor control. NIP-100 enables user-owned reputation layers for e-commerce, marketplaces, and local services, promoting decentralization and trust.

Status:

This is a draft proposal. It meets NIP acceptance criteria (backwards-compatible, optional, implementable in 2+ clients and 1+ relay). Open for feedback and iterations.

Files Changed:

  • 100.md: New NIP document.
  • README.md: Added NIP-100 to list and kind 30016 to Event Kinds table.

References: NIP-01 (events), NIP-10 (threads), NIP-69 (ratings). No conflicts with existing NIPs.

Feedback welcome! 🚀

@luigi1256
Copy link

The NIP in question is NIP #879

@vitorpamplona
Copy link
Collaborator

Some thoughts:

  1. Use NIP-73 ids.
  2. Breakdown the json into one or multiple tags to avoid another Json parsing.
  3. Use NIP-22 for all replies
  4. Delete r. If you need to review under different identifiers, sign many events with their corresponding d
  5. Don't give an option of max_score just fix all use cases in 1-5.

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.

3 participants