Inspiration
RowMart was inspired by the need for a more transparent, trust-minimized digital marketplace that also feels simple and accessible to everyday users. Many existing platforms rely heavily on centralized control, leading to issues around trust, censorship, and opaque fee structures. On the other hand, many decentralized applications solve the trust problem but introduce complexity that makes buying and selling feel overwhelming.
The idea behind RowMart was to bridge this gap by combining blockchain-based trust with a familiar, frictionless user experience. Instead of traditional sign-ups and authentication flows, users can participate simply by connecting a wallet. This approach makes the marketplace feel open and inclusive, no accounts to manage, no barriers to entry, just connect your wallet, and you are ready to buy or sell.
What it does
RowMart is a decentralized marketplace that connects buyers and sellers of goods, digital creations, and services using blockchain technology. Creators and vendors can list their products or services, while buyers can discover, purchase using MNEE token, and interact with listings in a trust-minimized environment.
All payments are handled through smart contracts interacting, making transactions transparent, verifiable, and resistant to tampering. RowMart uses an on-chain escrow mechanism that locks funds (MNEE token) until a product or service is confirmed as delivered. In the event of a dispute, an admin cannot access or seize the funds, but can only resolve the outcome by either refunding the buyer or releasing payment to the seller. Wallet integration removes the need for traditional accounts users interact directly with the marketplace by connecting their wallets while off-chain services support metadata and auxiliary features without compromising decentralization.
How we built it
RowMart was built as a full-stack Web3 application, intentionally split into three core parts: Smart Contracts, Frontend, and Backend, each with a clear responsibility.
Smart Contracts
The marketplace logic was written in Solidity and managed using Hardhat. The contracts handle product listing, buying, and selling, as well as ratings and reviews. Escrow and dispute resolution logic were implemented to ensure payments are secure and trustless funds are locked on-chain and only released to the seller or refunded to the buyer based on delivery confirmation or dispute outcomes.
Frontend
The frontend was built with React and integrated with Wagmi to enable seamless wallet connections and blockchain interactions. Through the interface, users can list products or services, make purchases, rate and review listings, and open disputes. Transaction states are tracked to give users clear feedback throughout the buying and selling process.
Backend
A Fastify-based backend supports off-chain responsibilities that are not suitable for on-chain execution. It manages and stores off-chain data, interacts with private services, and stores product metadata on IPFS to maintain decentralization. The backend also listens to smart contract events to keep off-chain data in sync, sends email notifications to users about their actions, and facilitates dispute resolution by communicating with both buyers and sellers off-chain.
Deployment
The entire system was tested locally and deployed to test networks and production environments (Demo site) with careful configuration of RPC endpoints and environment variables to ensure reliability and consistency.
Challenges we ran into
RowMart came with a steep learning curve, especially because this was my first deep dive into Web3 development. I started the project with very limited knowledge of blockchain concepts and tools such as viem, ethers, and Wagmi, which made even basic tasks challenging at the beginning.
One of the biggest hurdles was setting up test ETH and minting a mock ERC-20 token (MNEE) for development and testing. Understanding both the technical steps and the surrounding non-technical concepts took several days and required extensive experimentation before everything worked as expected.
I also ran into issues with the product purchase flow due to a small but critical mistake: forgetting to parse Ether correctly before sending a transaction. This caused hours of confusion, as contract tests were passing and initially suggested that the smart contract logic was correct. It took an entire night of debugging to identify the issue and understand where the frontend–contract interaction was breaking down.
The final major challenge appeared during deployment. When hosting the backend on Render, I discovered that outbound email on port 465 was blocked for security reasons. As a result, email notifications could not be tested on the live demo, even though they worked correctly in local development. This highlighted how deployment environments can introduce constraints that are completely outside the developer’s control.
Accomplishments that we're proud of
We are proud of delivering a functional, end-to-end decentralized marketplace with a clean and usable interface. Successfully integrating smart contracts, wallet interactions, and a modern frontend while maintaining transparency and security was a major milestone. The modular architecture also makes RowMart easier to maintain and extend over time.
On a personal level, I am especially proud that I was able to build the project largely as originally intended. While it still has areas for improvement, it goes beyond a simple Minimum Viable Product (MVP) and is fully documented, making it easier for others to understand and build upon.
One of the most meaningful accomplishments was writing comprehensive tests for the smart contracts, seeing them all pass, and successfully deploying the contracts to the Sepolia testnet. Being able to interact with the deployed contracts from both the frontend and the backend confirmed that the entire system from on-chain logic to user-facing features was working together as designed.
What we learned
Building RowMart provided deep, practical insight into Web3 development from the ground up. Over the course of the project, I gained a stronger understanding of smart contract security, transaction lifecycle management, and the complexities of frontend–blockchain integration. I also learned the importance of robust deployment and environment configuration in real-world systems.
On a personal level, this hackathon was a major learning milestone. I started with little to no knowledge of Web3, but the project pushed me to learn the fundamentals quickly from writing smart contracts in Solidity to interacting with them using tools like Viem and Wagmi. I now have a clear understanding of why decentralization matters and how powerful it is, especially the standardization of smart contracts. Being able to interact with different contracts in the same way using shared interfaces like ERC-20 was both eye-opening and motivating.
What's next for RowMart
RowMart is still evolving, and several improvements are already in progress some of which may be resolved by the time you read this. While the core functionality is in place, the next phase focuses on stability, usability, and readiness for real-world use.
Planned next steps include improving search and filtering, strengthening seller reputation mechanisms, expanding network support, refining the overall user experience, and optimizing gas usage to make the platform more affordable and scalable.
More specifically, the roadmap includes:
- Ensuring that off-chain transactions and records are not created unless the corresponding on-chain transaction is signed and confirmed, improving consistency between on-chain and off-chain data.
- Making RowMart fully responsive across all devices.
- Improving and refining the dispute resolution logic.
- Reducing contract fees to support better scalability and affordability.
- Improving synchronization of smart contract events with off-chain data so actions like product creation from external dApps using the same contract are correctly reflected in RowMart, and existing data sync issues are resolved.
- Writing clear and transparent terms of use and a privacy policy.
The long-term goal is to deploy the contracts to mainnet and launch RowMart on a production-ready server, complete with a dedicated website email for reliable user notifications. Some future improvements are already noted directly in the codebase as // TODO: items, serving as reminders of features and refinements still to come.
Built With
- axios
- chai
- css3
- erc-20
- ethers
- fastify
- hardhat
- ioredis
- javascript
- lucide-react
- mocha
- mongodb
- mongoose
- node.js
- nodemailer
- openzeppelin
- pinata
- rainbowkit
- react
- react-hot-toast
- react-router-dom
- redis
- reentrancyguard
- sepolia
- solidity
- tailwindcss
- typescript
- viem
- vite
- wagmi
- zustand


Log in or sign up for Devpost to join the conversation.