project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4

Hamza

Hamza is a multi-vendor crypto marketplace. Together, buy, sell, own.

Hamza

Created At

ETHGlobal London

Project Description

Hamza is an attempt to do the unthinkable. Create a decentralized marketplace for e-commerce. It's been attempted before, and hopefully will be again, and we hope to lead the charge into battle against Amazon. Hamza is a multi-vendor, crypto marketplace extending the functionality of the medusa.js library to integrate Account Abstracted wallets, crypto payments, gasless voting, decentralized dispute resolution, and on-chain reputation, reviews, and product listings. That may seem like a lot, and it is! And we certainly didn't implement all of it over the course of this hackathon. There's a lot still to build, but what we've got is a start. A rough implementation of Safe 4337 Wallets with gasless transactions provided by Pimlico roughly hewn onto the large, unwieldy and open-source library that is Medusa.js. Long-term, we'd like this project to be a template for others to come along and build their own decentralized, localized marketplaces, and account abstraction is a key pillar of ux that meets the expectations that consumers have for e-commerce applications. We want to help on-board the next billion crypto users, and we're pioneering consumer crypto apps, with more sustainable, less brutal business models than our centralized counterparts. Also, NOUNS!

How it's Made

Like I said in the description, we relied on Medusa.js at the core of the project. That's made up of a postgresDB, redis cache, typeORM, node backend server, and next.js front-end. We also used RainbowKit as our wallet modal and as the signer of the Safe AA wallet. We used the pimlico APIs as a bundler and paymaster for contract interactions. The hackiest thing about the project is how we do customerAuth. Medusa.js has a well defined schema for how it passes back JWTs and creates session keys, and to eliminate the e-mail/password requirements and authenticate a user with just a wallet we had to fudge the credentials and make a custom Auth service that wraps the medusa customerService.ts. We hope to extend the functionality and open-source some legitimate plugins for medusa in the future.

background image mobile

Join the mailing list

Get the latest news and updates