Inspiration

As a web developer, I’ve noticed a massive gap in the e-commerce landscape. While stablecoins like MNEE offer incredible potential for global payments, the "legacy web"—specifically platforms like Joomla which powers millions of sites—is largely left behind.

Currently, if a Joomla merchant wants to accept crypto, they have two terrible options:

  1. Centralised Gateways: Services like BitPay that charge high fees (1-3%), require intrusive KYC, and hold custody of the merchant's funds.
  2. Manual Transfers: Asking customers to manually copy-paste wallet addresses, which is error-prone and offers a terrible user experience.

I asked myself: "Can I build a payment gateway that offers the security of blockchain and the ease of Web2 plugins, but with ZERO middlemen?"

That question inspired MNEE Direct. I wanted to empower merchants to own their financial infrastructure, turning a standard Joomla site into a Web3-native commerce platform without relying on third-party APIs to hold their money.

What it does

MNEE Direct is a self-hosted Joomla extension that allows merchants to accept MNEE stablecoin payments directly into their wallets.

  • Peer-to-Contract Payments: It connects the customer’s MetaMask wallet directly to the merchant's smart contract.
  • Smart UX: It handles the complex "waiting time" of blockchain transactions gracefully, guiding the user through the process without confusion.
  • Instant Verification: It provides a real-time, blockchain-verified receipt directly on the store page once the transaction is confirmed.
  • Zero Fees: Unlike centralized competitors, this gateway charges 0% transaction fees. The only cost is the network gas fee.

How I built it

This is a Full-Stack integration bridging Web2 PHP architecture with Web3 Logic. As a Solo Developer, I focused on creating a lightweight but secure architecture.

The Stack

  • Frontend: A custom Joomla Module (mod_mnee_pay) built with HTML/CSS and Ethers.js. It handles wallet connection, ERC-20 approvals, and transaction signing.
  • Blockchain: The module interacts directly with the MNEE ERC-20 contract on the Sepolia Testnet.
  • Backend (The Core): A dedicated PHP script (verify.php) that acts as a trustless oracle.

The Verification Logic

The most critical part of the build is the security layer. I didn't want to rely on the frontend telling the server "I paid." Instead, the PHP backend independently queries an Alchemy RPC Node. It fetches the transaction receipt using the hash provided by the client and runs a strict logic check:

$$ Verified = (Tx_{status} == 0x1) \land (Tx_{recipient} == Merchant_{address}) $$

Only if both conditions are met does the system generate the receipt.

Challenges we ran into

Building this alone presented unique challenges:

1. The "Race Condition" on Etherscan Initially, when a user paid and was immediately redirected to Etherscan, they would often see a "404 Not Found" page because the block explorer hadn't indexed the transaction yet. This scared users.

  • Solution: I engineered a JavaScript-based "Smart Wait" timer. It keeps the user engaged with a countdown for 5 seconds post-transaction before redirecting, allowing the blockchain nodes time to sync.

2. Local Environment SSL Issues Developing on a local XAMPP environment meant dealing with SSL certificate handshake failures when communicating with secure Alchemy RPC nodes.

  • Solution: I had to configure the cURL requests in PHP specifically to handle secure handshakes within a local development environment, ensuring the prototype mirrored production connectivity.

3. Trusting the Client A common mistake in DApps is relying on the frontend to update the database.

  • Solution: I enforced a strict "Trust No One" policy. The frontend is for display; the backend does the actual verification via RPC.

Accomplishments that I have proud of

  • Solo Development: Successfully building a full-stack application—from Solidity interaction to Joomla extension architecture—entirely on my own.
  • UX Optimization: Solving the "blockchain latency" problem with the 5-second smart redirect, making the experience feel like a modern Web2 app.
  • True Decentralization: Creating a tool that actually removes middlemen. The money goes straight from Wallet A to Wallet B.

What i learned

  • The Power of RPC: Integrating Alchemy's RPC into a PHP backend opened my eyes to how traditional servers can act as secure blockchain observers without running a full node.
  • UX is King in Web3: Technical correctness isn't enough. Managing user expectations (like block times and confirmation delays) is just as important as the smart contract logic itself.
  • Modularity: By keeping the verification logic in pure PHP, I realized this architecture is portable to other platforms.

What's next for MNEE Direct for Joomla

This MVP is just the beginning. The roadmap includes:

  1. VirtueMart Integration: Connecting this gateway to Joomla's most popular shopping cart system for automated inventory updates.
  2. Admin Dashboard: Building a backend UI for merchants to easily swap their receiving wallet addresses without touching code.
  3. WordPress Expansion: Since the core verification logic is written in platform-agnostic PHP, I plan to port this architecture to WordPress/WooCommerce, potentially bringing MNEE payments to 40% of the web.

Built With

Share this project:

Updates