Definition
NIP-15 defines a decentralized marketplace built directly on Nostr, letting a merchant run a storefront with nothing but a keypair and relays. There is no central platform taking a cut, holding the listings, or deciding who may sell; the merchant's catalog and the customer's orders are ordinary Nostr events and encrypted messages. This makes commerce as censorship-resistant and portable as the rest of the protocol — if one relay drops your stall, you publish it to another, and your customers' clients find it there.
Stalls and products
A merchant publishes a stall with kind 30017 (set_stall), which holds a unique identifier, name, currency, and shipping zones with region-specific costs. Individual items are published with kind 30018 (set_product), referencing their parent stall and carrying price, quantity (which may be null for digital goods), images, and key-value specifications. Optional kinds extend the model: 30019 customizes the storefront UI and 30020 supports auction-style listings. All of these are addressable events in the 30000-range described under Nostr Event Kind, so the merchant can edit a listing in place — publish a new event with the same d tag and every relay replaces the old version at the same stable address. Deleting a product is just as permissionless: a standard deletion request, honored by cooperating relays.
Passer a la caisse flow
Ordering happens over encrypted direct messages in three structured steps. First, the customer sends an order containing the selected items, quantities, and a shipping zone. Second, the merchant replies with payment options — a Lightning invoice, an on-chain Bitcoin address, or a payment URL. Third, once paid, the merchant confirms payment and shipping status. The internal stall and product identifiers chosen by the merchant must be echoed back in the customer's selection so orders map cleanly to inventory. Everything sensitive travels inside encrypted DMs; only the public catalog is visible on relays.
What it gets you — and what it does not
For a sovereign seller, this is e-commerce with no intermediary platform, no listing fees, no deplatforming risk, and native Bitcoin settlement straight to keys you control — self-custody extended to the storefront itself. The honest trade-offs are the ones any peer-to-peer commerce carries: there is no built-in escrow, no chargeback mechanism, and no platform to arbitrate disputes, so trust rides on the merchant's reputation — which on Nostr is at least portable and publicly inspectable, anchored to a long-lived pubkey rather than an account a platform can erase. Discovery is likewise up to clients and relays rather than a search algorithm someone else tunes.
The bigger picture
NIP-15 is one corner of a broader pattern: Nostr events as the coordination layer, Bitcoin as the settlement layer. The same shape appears in zaps for value-for-content and in the Data Vending Machine (DVM) for buying compute. A miner selling refurbished hashboards, a homesteader selling surplus produce, or a builder selling firmware support can all run the same stack: keypair, relays, Lightning node. It will not replace a polished platform storefront for everyone tomorrow — but it means a working market exists that nobody can switch off, and that alone changes the negotiation.
In Simple Terms
NIP-15 defines a decentralized marketplace built directly on Nostr, letting a merchant run a storefront with nothing but a keypair and relays. There is no…
