CrowdStore - P2P marketplace in browser with orders in Zcash memos

Hello everybody. Kindly find below my grant application for CrowdStore.

Link: CrowdStore Grant application

CrowdStore is a browser-based, fully decentralized P2P marketplace and store network, which lets anyone run stores without servers, with orders and ratings encrypted in Zcash memo fields and data shared among peers. Anonymous, signature-verified trades and post-order rating create trust and transparency while showcasing Zcash’s privacy tech. CrowdStore completes the Zcash ecosystem by giving users a practical way to earn and spend Zcash.

I will update this thread with more information about CrowdStore over time, and I’d appreciate your feedback. I’ll also include some of my replies from other forum threads here, so everything is in one place.

4 Likes

Main website URL:

Example working store:

Create new store:

Rationale

Currently, there is little practical reason for users to pay with Zcash in everyday life. Adoption remains limited, as most merchants and users are satisfied with Bitcoin or other widely accepted cryptocurrencies. While Zcash’s privacy features are technically advanced, most people do not feel a strong need for them in routine transactions.

CrowdStore changes this by introducing a peer-to-peer marketplace where anything can be bought or sold directly between users. In this context, Zcash’s private memo fields become essential, as they enable secure, encrypted communication between buyer and seller within each transaction. This gives Zcash a concrete and practical use case that goes beyond simple private payments.

CrowdStore is designed to let anyone create and operate their own online store without relying on centralized servers or third-party intermediaries. Each store functions as an independent storefront identified by a unique Store ID, and all transactions are conducted directly between buyers and sellers using Zcash, ensuring financial privacy through encryption and anonymous payments. Order details are securely encrypted, and an escrow system is used to protect both parties during transactions.

Future features

Additional features that will become available to store owners later are described below. (These are not part of the retroactive grant and will be implemented at a later stage, as they are not essential for the core operation of the marketplace. I am mentioning this here for clarity.)

  • Because CrowdStore operates as a distributed network, stores remain accessible as long as at least one peer hosts them, such as through a user’s browser. To maintain constant availability, store owners can either keep their stores open in their browser, or use the optional “CrowdBoost” service, which ensures continuous hosting even when no peers are online, using other peers network capacity. This system enables censorship-resistant commerce, protecting user freedom and data privacy while allowing for fully autonomous online marketplaces.
  • To protect merchants and buyers from cryptocurrency price volatility during transactions, CrowdStore offers “PriceLock”. When an order is placed and funds are held in escrow, PriceLock temporarily stabilizes the value of the payment by pegging it to a fiat equivalent (using third party exchange). This means that even if the market price of Zcash fluctuates while the order is being processed, the seller still receives the (near) original agreed-upon value when the escrow is released.
  • The Alias feature in CrowdStore allows store owners to replace their long, cryptic Store ID with a short, readable name that is easier for customers to remember and share. Instead of relying on the default 44-character identifier, merchants can register a custom alias - similar to a domain name -that directly links to their store. These aliases are allocated on a first come, first gets basis, meaning that once an alias is claimed, no one else can register the same name until it expires. This system not only enhances store branding and accessibility but also introduces a limited-name economy within the decentralized marketplace, where recognizable or desirable aliases may carry added value over time.

Very cool stuff! Sent you a DM here on the forums btw.

1 Like

I will closely follow this project.

1 Like

I m interested as a merchant, good luck with this project.

Suggestions :

  • being able to limit shipping to Europe, US, Worldwide

  • option to validate or refuse an order before the client pays. Some orders are complex (this laptop, this keyboard layout, shipped to this country ..).

  • option to make a custom special offer for a specific client (username ?)

1 Like

As described in the previous thread, I will copy it here so we have it in one place.

Shipping is solved this way:

  • there is a setting for global shipping rules which apply to all items

  • furthermore each item can have specific per-item shipping rules set up

Each shipping rule consists of following:

  • country specification (or set the rule for All countries)

  • courier name and duration

  • fee type (flat fee per item, flat fee per order, free shipping above X amount)

  • the fee cost (amount)

If you want to ship only to certain countries, you set rules only for those countries.

Example on screenshot:

  • FedEx worldwide shipping for $40 per item

  • FedEx free shipping if order is over $1000

  • Free shipping to Switzerland

Regarding custom offer for special client, that is very interesting idea.

At the moment, this feature is not directly supported, but there is a simple workaround.

When a buyer places an order, the system calculates the total amount in ZEC and displays a payment QR code. However, the payment amount itself is not strictly enforced — the buyer can technically send either a higher or lower amount. The merchant will then see the actual payment received and can choose whether to accept or reject the order. If the merchant agrees to honor a lower payment, this effectively allows for a negotiated price between buyer and seller, functioning much like the requested feature.

2 Likes

At this stage, it can be tricky to sort out any issues, especially if it’s a big project. Scammers might flood sellers with small transactions from a bunch of accounts and then ask for a full refund. This happens a lot with P2P sales on exchanges.

If the seller and buyer have agreed on a different amount, the seller changes it in their ad, and the buyer pays only what the system charges them, which is safer.

I didn’t hear about such problems with p2p sales on exchanges. Nevertheless, in CrowdStore, the buyer cannot ask for refund. So if any buyer sends small transactions, he does not get the funds back unless the merchant actively marks such payments eligible for refund.

But based on your feedback, I am thinking about a setting for each Store to automatically reject payments below specified amount, which would solve this situation, if that ever happens. Thank you for idea :slight_smile:

I’m happy to announce that the peer to peer marketplace is now fully functional and live, including admin interface for creating new stores. Store owners can register their shops directly from the web interface.

Go to www.crowdstore.net and click “Create my store” button.

I will be happy for all your feedback, if any. Thank you

1 Like

There are now some more sample shops listed at the bottom of main page:

1 Like

I am happy to announce that some of the features which were not in the initial release are now working too, namely

  • Store Alias - you can create short name for your store instead of the long 44-character code.
  • CrowdBoost - you can set your store to be loaded in the background of random users, keeping it alive even if your browser is closed.

Enjoy the new features :slight_smile: :four_leaf_clover:

CrowdStore gets order information from Zcash memo field of the payment.

As we know, Zcash memo field is limited to 512 bytes. The CrowdStore system requires approximately 200 bytes of that space for its own overhead, which includes store identification, encryption keys, signatures, and other metadata. This leaves about 222 bytes available for order information such as ordered items, shipping details, delivery address, recipient name, country, phone number, and email address.

Although this may not seem like much, the custom BPE (Byte Pair Encoding) compression I developed allows a significant amount of text to fit within this limit. For example, the following address (188 characters) compresses to just 133 bytes, achieving a 60% compression ratio.

Thanks to this encoding, even complex addresses - including those containing international characters such as Japanese - fit into the limited memo space. In the user interface, an indicator in the top-right corner shows how many characters remain available. If the entered address exceeds the limit, the system prompts the user to shorten it by removing non-essential details to ensure successful delivery.

And this is how the Zcash payment looks like at the end.

Notice that the memo includes the delivery information encrypted, and only the store can decrypt that. The length is 345 characters here, leaving lots of space for more information if necessary (more items, longer addresses, etc).

Visit CrowdStore to check it out! :slight_smile: :shopping_cart: