quoting
naddr1qv…vddgFiling this in an article to put some of the research and concepts into motion. Thanks for all involved and for any advice on better ways to accomplish this. -Steve
Mockup
1️⃣ Add to Kinds section
### Kind 30021: Anchored Commerce Review `kind:30021` defines a signed commerce review event anchored to a NIP-15 marketplace listing or order reference. This event kind is intended to be used in conjunction with **NIP-59 Gift Wrap** to support privacy-preserving or pseudonymous reviews. Clients and relays that do not recognize this kind MUST ignore it.
2️⃣ Add ACReS Overview subsection
## Anchored Commerce Review System (ACReS) The Anchored Commerce Review System (ACReS) extends NIP-15 by defining a verifiable review mechanism that is cryptographically anchored to marketplace listings or orders. ACReS is composed exclusively of: - NIP-15 (Marketplace Events) - NIP-59 (Gift Wrap) No additional NIPs are required.
3️⃣ Event definition block
### Anchored Commerce Review Event An Anchored Commerce Review is represented by a `kind:30021` event. The event MAY be published publicly, or MAY be wrapped using NIP-59 to provide reviewer privacy.{ "kind": 30021, "created_at": "unix timestamp", "pubkey": "reviewer pubkey", "content": "review text", "tags": [] }
4️⃣ Required tags table
### Required Tags (kind:30021) | Tag | Description | |-----|-------------| | `e` | Event ID of the NIP-15 listing or order being reviewed | | `p` | Pubkey of the merchant or listing owner | | `rating` | Integer rating value (recommended range 1–5) | | `anchor` | Stable review anchor (SKU, order ID, or content hash) |Example
"tags": [ ["e", "listing_event_id"], ["p", "merchant_pubkey"], ["rating", "5"], ["anchor", "sku:survival-seasoning-batch-2"] ]
5️⃣ Optional tags block
### Optional Tags (kind:30021) | Tag | Description | |-----|-------------| | `title` | Short review title | | `quality` | Product quality rating | | `delivery` | Delivery or fulfillment rating | | `service` | Merchant service rating | | `confidence` | Reviewer confidence score (0–100) | | `proof` | Optional proof-of-purchase commitment |
6️⃣ NIP-59 Gift Wrap integration (key part)
### Gift-Wrapped Reviews (NIP-59) When reviewer privacy is desired, the entire `kind:30021` event MUST be wrapped using NIP-59. Relays MUST treat wrapped review events as opaque payloads and MUST NOT require decryption in order to accept or propagate them.Wrapped example
{ "kind": 1059, "content": "encrypted kind:30021 event", "tags": [ ["p", "recipient_pubkey"], ["kind", "30021"] ] }
7️⃣ Relay behavior section
### Relay Behavior Relays that support NIP-15 marketplaces: - SHOULD index `kind:30021` events - SHOULD associate reviews with referenced listings - MUST NOT reject gift-wrapped reviews Relays MAY provide aggregated rating metadata as a non-consensus feature.
8️⃣ Client behavior section
### Client Behavior Marketplace clients implementing ACReS: - SHOULD display aggregated review data per listing - SHOULD indicate whether a review is public or gift-wrapped - MUST respect NIP-59 encryption boundaries
9️⃣ Spam & abuse mitigation (lightweight, non-authoritative)
### Spam Considerations ACReS does not mandate global enforcement. Clients and relays MAY apply heuristics such as: - One review per anchor - Optional proof-of-purchase commitments - Temporal or reputation-based weighting
🔟 Compatibility note (important for reviewers)
### Backwards Compatibility This extension does not alter existing NIP-15 behavior. Clients and relays unaware of `kind:30021` will safely ignore review events without impact.
SmallBatchSteve on Nostr: Filing this in an article to put some of the research and concepts into motion. ...
Filing this in an article to put some of the research and concepts into motion. Thanks for all involved and for any advice on better ways to accomplish this. Is this even the right use for NIP-59?

