A MiniDapp Generator for Multi-Product Marketplaces on the Minima Blockchain
multiMerch is a Node.js CLI tool that generates self-contained MiniDapp pairs (Shop + Inbox) for selling multiple unit-based products on the Minima blockchain. It is a direct evolution of miniMerch, scaled to handle a full product catalog while maintaining the clean, professional aesthetic.
The generated MiniDapps run entirely on Minima nodes — no servers, no middlemen, no centralized dependency.
The Freedom Ethos:
- Sovereign infrastructure — vendors control their data, their shop, their business
- No middlemen — peer-to-peer transactions on-chain, encrypted communication
- Portable — the generated
.mds.zipis the entire marketplace - Remixable — anyone can take the code, fork it, improve it, use it for their own purposes
- Privacy by design — delivery addresses encrypted via Maxima ChainMail pattern
The Vision:
In a decentralized world, everyone can have their own eBay. Your own Facebook. Your own platform. Aggregators can exist as a convenience layer, but the power always stays with the individual. This is building blocks for a free world.
- Protocol over Product — We're building infrastructure others can use, not a hosted service
- Simplicity — The CLI is the core; GUI is convenience, not requirement
- Clean Aesthetics — Same professional look as miniMerch, scaled appropriately
- Mobile-First Responsive — Swipeable cards on mobile, grid on desktop
- Trustless — No server dependency; runs on the blockchain
- A generator that creates distributable MiniDapp bundles
- A protocol seed that can be planted and will grow independently
- A personal marketplace for selling multiple products
- An educational codebase others can learn from and remix
- A hosted web application
- A centralized platform
- A multi-vendor marketplace (single vendor per generated shop)
- A blockchain other than Minima
| File | Purpose | Runs On |
|---|---|---|
multiShop_[name].mds.zip |
Shop for buyers | Buyer's Minima node |
multiShopInbox.mds.zip |
Inbox for vendor | Vendor's Minima node |
- Product catalog with multiple items
- Category navigation (sidebar on desktop)
- Image carousel per product (swipeable on mobile)
- Product grid (4-col desktop, 2-col mobile)
- Variant selection per product
- Multi-item shopping cart (localStorage persistence)
- Real-time cart total calculation
- Shipping method selection
- USDT and Minima payment options
- Encrypted delivery address (ChainMail pattern)
- Order confirmation with TX ID
- Receive encrypted multi-item orders
- View full order details (all items, quantities, prices)
- Decrypt delivery addresses
- Copy address to clipboard
- Reply to buyer (encrypted)
- Order status management
- Background polling (NOTIFYCOIN events)
- Setup command (vendor configuration)
- Generate from JSON catalog
- Inline product definition via flags
- Image directory support
- Obfuscated configuration for security
- Node.js 18+
- A running Minima node
- CoinMarketCap API key (optional, for price fetching)
git clone https://github.com/minima-global/multiMerch.git
cd multiMerch
npm installnpm run setup -- <vendor-address> <cmc-api-key> <vendor-public-key># From JSON catalog
npm run generate -- --name "My Shop" --catalog ./products.json
# From inline products
npm run generate -- \
--name "Quick Store" \
--products '[{"name":"Widget","price":19.99,"variants":["S","M","L"]}]'multiMerch/
├── src/
│ ├── index.js # CLI entry point
│ ├── generator/
│ │ ├── shop.js # Shop MiniDapp generator
│ │ ├── inbox.js # Inbox MiniDapp generator
│ │ └── catalog.js # Catalog builder
│ ├── templates/
│ │ ├── shop/ # Shop template
│ │ │ ├── index.html
│ │ │ ├── app.js
│ │ │ ├── catalog.js
│ │ │ ├── cart.js
│ │ │ ├── carousel.js
│ │ │ ├── checkout.js
│ │ │ ├── service.js
│ │ │ └── style.css
│ │ └── inbox/ # Inbox template
│ │ ├── index.html
│ │ ├── app.js
│ │ ├── service.js
│ │ └── style.css
│ └── utils/
│ └── config.js
├── docs/
│ ├── planning/ # Planning documents
│ ├── design/ # Design documents
│ └── architecture/ # Architecture docs
├── skills/
│ └── minima-mds/ # Minima MDS skill
├── package.json
├── README.md
└── LICENSE
- Planning Document — Full project plan
- Design Document — UI/UX design details
- Architecture Document — Technical architecture
- Minima MDS Skill — Persistent Minima developer knowledge
| Layer | Choice | Rationale |
|---|---|---|
| Generator | Node.js + ES Modules | Extends miniMerch pattern |
| Shop/Inbox Templates | Vanilla JS + CSS | No build step, portable |
| Cart State | localStorage | Client-side persistence |
| Order Database | MDS.sql (H2) | Per-MiniDapp storage |
| Encryption | Maxima ChainMail | P2P privacy |
| Payment | Minima/USDT on-chain | Native blockchain |
Apache License 2.0
- miniMerch — Single-product predecessor
- Minima — The blockchain that makes this possible
- MDS Documentation — MiniDapp System reference