One protocol for Nostr commerce

Open Markets Protocol

A coherent commerce protocol for Nostr. It brings the useful parts of existing specifications into one implementable path, centered on NIP-99 and the Gamma Markets specification.

01

Offers

Publish products, services, collections, variations, and shipping options.

02

Orders

Create private orders and carry status and shipping updates safely.

03

Payments

Request, execute, prove, and verify payments without changing Gamma wire semantics.

04

Resolution

Handle cancellation, terminal states, reviews, and product continuity.

Why this exists

Nostr commerce is not short of ideas. It is short of one clear path through them. Listings, peer-to-peer orders, private messages, wallet connections, receipts, shipping, and reviews are spread across NIPs and independent proposals with different maturity and compatibility.

Open Markets Protocol turns that landscape into one implementation contract. It does not replace Nostr. It defines how existing primitives work together for commerce and resolves ambiguities where the Gamma Markets draft and its pull requests disagree.

Design principles

  • NIP-99 first. Kind 30402 is the canonical public offer.
  • Private checkout. Personal, order, and payment data travels inside NIP-17 and NIP-59 gift wraps.
  • Compatible evolution. Existing Gamma kinds 16 and 17 remain valid.
  • Explicit authority. Client attribution and application recommendations never replace signatures or payment verification.
  • Small core. Escrow, arbitration, tax, inventory reservation, and exchange-rate policy are extension points, not hidden assumptions.

Specification status

This document is a normative successor proposal derived from NIP-99 and Gamma Markets spec.md. The key words MUST, MUST NOT, SHOULD, SHOULD NOT, and MAY describe conformance requirements.

NIP-15 is supported only as a legacy import format. NIP-69 remains a separate P2P liquidity protocol. Neither is silently treated as an Open Markets checkout event.