feat(extensions): add NIP-15 marketplace extension #5

Open
padreug wants to merge 1 commit from feature/marketplace into dev
Owner

Summary

  • Implements Nostr NIP-15 marketplace protocol for decentralized e-commerce
  • Merchants can create stalls and list products
  • Customers can browse, order, and pay via Lightning
  • Direct messaging between merchants and customers

Nostr Event Kinds

Kind Description
30017 Stall (merchant store)
30018 Product listing
4 Encrypted DMs for orders

RPC Methods

Stall Management:

  • marketplace.createStall - Create a merchant stall
  • marketplace.updateStall - Update stall details
  • marketplace.getStall - Get stall by ID
  • marketplace.listStalls - List stalls

Product Management:

  • marketplace.createProduct - List a product
  • marketplace.updateProduct - Update product
  • marketplace.getProduct - Get product by ID
  • marketplace.listProducts - List products (with filters)

Order Management:

  • marketplace.createOrder - Place an order
  • marketplace.getOrder - Get order details
  • marketplace.listOrders - List orders
  • marketplace.updateOrderStatus - Update order status

Messaging:

  • marketplace.sendMessage - Send message to merchant/customer
  • marketplace.listMessages - List conversation messages

Features

  • Multi-currency support (BTC sats as base)
  • Product categories and search
  • Order status tracking
  • Shipping information
  • Nostr event publishing for discoverability

Test plan

  • Review marketplace extension code
  • Verify TypeScript compilation
  • Test stall creation and Nostr publishing
  • Test product listing and search
  • Test order flow with Lightning payment
  • Test merchant-customer messaging

🤖 Generated with Claude Code

## Summary - Implements Nostr NIP-15 marketplace protocol for decentralized e-commerce - Merchants can create stalls and list products - Customers can browse, order, and pay via Lightning - Direct messaging between merchants and customers ## Nostr Event Kinds | Kind | Description | |------|-------------| | 30017 | Stall (merchant store) | | 30018 | Product listing | | 4 | Encrypted DMs for orders | ## RPC Methods **Stall Management:** - `marketplace.createStall` - Create a merchant stall - `marketplace.updateStall` - Update stall details - `marketplace.getStall` - Get stall by ID - `marketplace.listStalls` - List stalls **Product Management:** - `marketplace.createProduct` - List a product - `marketplace.updateProduct` - Update product - `marketplace.getProduct` - Get product by ID - `marketplace.listProducts` - List products (with filters) **Order Management:** - `marketplace.createOrder` - Place an order - `marketplace.getOrder` - Get order details - `marketplace.listOrders` - List orders - `marketplace.updateOrderStatus` - Update order status **Messaging:** - `marketplace.sendMessage` - Send message to merchant/customer - `marketplace.listMessages` - List conversation messages ## Features - Multi-currency support (BTC sats as base) - Product categories and search - Order status tracking - Shipping information - Nostr event publishing for discoverability ## Test plan - [ ] Review marketplace extension code - [ ] Verify TypeScript compilation - [ ] Test stall creation and Nostr publishing - [ ] Test product listing and search - [ ] Test order flow with Lightning payment - [ ] Test merchant-customer messaging 🤖 Generated with [Claude Code](https://claude.com/claude-code)
padreug added 1 commit 2026-02-13 19:32:24 +00:00
feat(extensions): add NIP-15 marketplace extension
Some checks are pending
Docker Compose Actions Workflow / test (push) Waiting to run
3a654857ff
Implements a Nostr-native marketplace extension for Lightning.Pub
that is compatible with NIP-15 (Nostr Marketplace).

Features:
- Stall management (kind 30017 events)
- Product listings (kind 30018 events)
- Order processing via encrypted Nostr DMs or RPC
- Multi-currency support with exchange rate caching
- Inventory management with stock tracking
- Customer relationship management
- Lightning payment integration

The extension leverages Lightning.Pub's existing Nostr infrastructure
for a more elegant implementation than traditional HTTP-based approaches.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
padreug force-pushed feature/marketplace from 3a654857ff to 30850a4aae 2026-02-13 20:06:51 +00:00 Compare
padreug force-pushed feature/marketplace from 30850a4aae to b5d81bcf30 2026-03-04 20:23:21 +00:00 Compare
padreug force-pushed feature/marketplace from b5d81bcf30 to 7ea027c5ce 2026-03-26 22:46:10 +00:00 Compare
padreug force-pushed feature/marketplace from 7ea027c5ce to 772a2131e6 2026-04-02 19:07:36 +00:00 Compare
padreug changed target branch from feature/extension-loader to dev 2026-04-02 19:07:45 +00:00
Some checks failed
Docker Compose Actions Workflow / test (push) Has been cancelled
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feature/marketplace:feature/marketplace
git checkout feature/marketplace

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git checkout dev
git merge --no-ff feature/marketplace
git checkout feature/marketplace
git rebase dev
git checkout dev
git merge --ff-only feature/marketplace
git checkout feature/marketplace
git rebase dev
git checkout dev
git merge --no-ff feature/marketplace
git checkout dev
git merge --squash feature/marketplace
git checkout dev
git merge --ff-only feature/marketplace
git checkout dev
git merge feature/marketplace
git push origin dev
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: aiolabs/lightning-pub#5
No description provided.