Hello everyone, I’d like to introduce a project that I have been working on for the past month: The Aztec Market System. It is currently still in development and not ready for production, but you may view it here: GitHub - Bale001/aztec-market-system · GitHub
The goal of this project is to create a framework that allows anyone to easily deploy fully decentralized hidden markets on the Aztec Network. Currently it is setup for selling physical goods, but in the future I’d like to expand to files, and maybe NFT’s. It takes full advantage of aztec’s privacy features to offer users, vendors, mods, and owners complete anonymity. Furthermore, due to the decentralized nature of these markets, they are nearly impossible to shutdown.
The project utilizes three decentralized networks together to make everything work:
- Aztec Network - For the marketplace smart contracts. All core functionality of the marketplaces relies on the Aztec Network.
- Arweave - Used for off-chain storage. Things like product information, custom pages, and anything else that is inefficient to store on-chain. Everything is stored encrypted on Arweave.
- SimpleX - Currently used for the dispute system. Paying a transaction fee just to contact moderators is unrealistic, so we rely on SimpleX for off-chain messaging.
How it works: Every marketplace has a URL that looks something like this: flr5bkdu4l4q2237w23bumyots5xlouft4a5vnrlsf36vtantuydblab.aztec. The URL encodes a “secret” that is used to derive the lookup key in the MarketplaceRegistry contract. The secret is also used as an AES-256-GCM key, which is used to encrypt public data about the market (the catalog, metadata, and more). Each marketplace is its own contract, which can be deployed from the app. Anyone without the link can see that the marketplace exists, but only people with the link can see what it is selling. The key is used for encryption on-chain, as well as encrypting blobs on Arweave. Market URL’s are not stored on-chain, so it will have to be shared with you via some other method.
Each marketplace is highly configurable. The owner can set the marketplace fee, the product layout, the theme, vendor registration rules, and more. They can assign a group of moderators to handle listing approval, dispute resolution, etc etc. Owners have full control over their marketplace.
The standard token used across every market is cUSDC (from shield.human.tech). The app supports bridging directly from their website. This way, buyers don’t have to worry about getting different tokens for different markets.
The framework is quite large and there is no way I can explain it all here, so please read the explainer doc for more information.
Thank you for reading, I hope to release this project on mainnet soon.